es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Actualización: El tipo de disparador no está funcionando en Zapier.

Estoy intentando crear un desencadenador (basado en encuesta) en la aplicación/integración de Zapier que debería ejecutar el zap cuando se actualice un elemento existente.

La respuesta de la API contiene una matriz como esta:

[
  { id: 1, title: 'AWS', time: '2021-12-03T11:41:13.615Z', modTime: '2021-12-03T11:41:13.615Z' },
  { id: 2, title: 'GCP', time: '2021-12-03T11:41:13.615Z', modTime: '2021-12-03T11:46:13.615Z' },
]

Ahora, según la documentación de Zapier, si un elemento contiene la clave id y updated_at, funcionará si el mismo registro se actualiza con el campo de marca de tiempo de última modificación.

Para crear un desencadenador de actualización, utilice un punto final de API que liste todos los elementos, tanto nuevos como actualizados, o alternativamente un punto final que liste solo los elementos actualizados. Zapier necesita un campo de identificación compuesto que cambie cada vez que el elemento se actualice (idealmente z.hash('md5', item.id + item.updated_at)), de modo que las actualizaciones posteriores no sean filtradas por el deduplikator de Zapier.

Para eso, he creado una nueva clave updated_at y he copiado el valor de la clave modTime. Pero este desencadenador solo está funcionando para nuevos registros y no para ninguna actualización en un registro existente. ¿Me estoy perdiendo algo? Puedo hacer que id sea nuevo cada vez así: { id: rec.id + ':' + rec.modTime ... }, pero también se ejecutará para nuevos registros, lo cual no quiero. Aquí está mi código:

// Sentencias de importación

const listData = async (z) => {
  const records = await getTaskList(z);
  return records.map((rec) => ({
      ...rec,
      updated_at: rec.modTime
  }));
};

export default {
  display: {
    description: 'Se desencadena cuando se actualiza una tarea.',
    label: 'Tarea actualizada',
  },
  key: 'tarea_actualizada',
  noun: 'Tarea actualizada',
  operation: {
    outputFields: outFields,
    perform: listData,
    sample: getSampleData(),
  },
};
Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que tu activador solo funciona para registros nuevos y no para actualizaciones en registros existentes. Según la documentación, para crear un activador de actualización, necesitas utilizar un punto de conexión de API que liste todos los elementos, tanto nuevos como actualizados, o un punto de conexión que liste solo los elementos actualizados. Además, Zapier necesita un campo de ID compuesto que cambie cada vez que el elemento se actualice para asegurarse de que las actualizaciones posteriores no sean filtradas por el eliminador de duplicados de Zapier.

    En tu código, has añadido una nueva clave updated_at y has copiado el valor de la clave modTime en ella. Sin embargo, parece que esto no es suficiente para que tu activador funcione en registros existentes. Una solución que has sugerido es hacer que el ID sea nuevo cada vez agregando una nueva cadena al ID existente. Sin embargo, esto también activará el zap para registros nuevos, lo cual no deseas.

    Una posible solución es comprobar el valor de updated_at de cada registro con respecto a la última vez que ejecutaste el activador. Si el valor de updated_at es mayor que la última hora de ejecución, puedes activar el zap para ese registro. Puedes almacenar la última hora de ejecución en una tienda o un campo personalizado y actualizarla cada vez que ejecutes el activador.

    Otra solución es utilizar activadores basados en webhooks en lugar de activadores basados en encuestas. Con un activador basado en webhooks, tu aplicación puede enviar un webhook a Zapier cada vez que se actualice un registro. Este webhook contendrá los datos del registro actualizado y se puede utilizar para activar el zap. Esta solución puede requerir algunos cambios en tu aplicación para admitir webhooks, pero puede proporcionar una forma más eficiente y confiable de activar zaps para actualizaciones de registros.

Comments are closed.