Desencadenantes
Todo grafo empieza con un único nodo de desencadenante. Un desencadenante no ejecuta ninguna lógica por sí mismo, solo decide cuándo el resto del grafo recibe una nueva ejecución.
Vistazo rápido
- Arrastra un nodo de desencadenante al lienzo; es el primer nodo y no tiene conector de entrada.
- Configúralo, si acepta algún campo (la cadencia de una programación, una carpeta que vigilar).
- Activa la automatización para que empiece a escuchar ese desencadenante.
- O sáltate todo eso y pulsa Test en cualquier momento para ejecutar el grafo una vez, sin importar el desencadenante.
Referencia detallada
Manual
Manual start no tiene campos. Es lo que usa el botón Test del builder: publica el borrador actual y luego encola una ejecución de inmediato.
Scheduled
Scheduled se dispara según una cadencia que tú defines.
| Campo | Opciones |
|---|---|
| Frequency | Interval, Daily, Weekly o Cron |
| Every (minutes) | Se usa solo en el modo Interval |
| Cron expression | Se usa solo en el modo Cron; una expresión estándar de 5 campos (minuto hora día-del-mes mes día-de-la-semana), por ejemplo 0 9 * * 1-5 para días laborables a las 09:00 |
| Timezone | Se usa solo en el modo Cron; un nombre IANA como Europe/Istanbul. Si se deja en blanco, la expresión se compara con el propio reloj del servidor |
Una automatización programada y activa se revisa en un ciclo recurrente en segundo plano; no necesitas mantener la aplicación abierta. Los modos Interval, Daily y Weekly se disparan en relación con la última vez que se disparó la propia automatización. El modo Cron mantiene un puntero de "próximo vencimiento" y recupera un minuto perdido (un despliegue, un reinicio, un ciclo lento) disparándose una vez en cuanto lo detecta, en lugar de perder esa ocurrencia en silencio; nunca se dispara dos veces para la misma ventana perdida.
Incoming webhook
Incoming webhook da a cada automatización una URL de entrada única, /api/workflow/hook/<automation id>, que inicia una ejecución cuando se la llama con una petición GET o POST. Solo se dispara mientras el estado de la automatización es Active.
Por ahora, el builder no te muestra ni copia esta URL; el inspector del propio nodo solo tiene el campo del secreto HMAC. Para usarla, tú (o alguien de tu equipo que programe) necesitas el id de la automatización, que puedes leer de las peticiones de red que la aplicación ya realiza mientras el builder está abierto, y combinarlo tú mismo con la ruta fija /api/workflow/hook/.
Eventos de diseño y del espacio de trabajo
Estos se disparan cuando ocurre algo en otro punto de la aplicación. Hoy, Design updated está conectado para dispararse automáticamente cada vez que se guarda un diseño. El resto están disponibles para configurarse ya; más acciones propias de la aplicación se irán conectando a ellos a medida que se construyan esas superficies.
| Nodo | Se dispara cuando |
|---|---|
| Design created | Se crea un diseño nuevo |
| Design updated | Se guarda un diseño |
| Design shared | Se comparte o se publica un diseño |
| Design downloaded | Se descarga un diseño |
| Part tagged | Se añade una etiqueta a una parte (opcionalmente filtrada a una sola etiqueta) |
| Brand applied | Se aplica un kit de marca a un diseño |
| Asset uploaded | Se añade un archivo a la biblioteca multimedia |
| AI generation done | Termina una generación de IA |
| New work in folder | Se añade un proyecto a una carpeta que elijas |
El puente de eventos
Cualquier tipo de desencadenante se puede iniciar también mediante una llamada de API genérica y autenticada, con alcance a tu espacio de trabajo: un triggerType y una carga útil opcional. Así es como se dispara por dentro el hook de actualización de diseño mencionado arriba, y está disponible para que tus propias integraciones lo llamen del mismo modo.
Varias automatizaciones, un mismo tipo de desencadenante
Más de una automatización activa puede usar el mismo tipo de desencadenante. Al guardar un diseño, por ejemplo, se pueden iniciar a la vez todas las automatizaciones activas de tipo "Design updated" de tu espacio de trabajo, cada una ejecutándose de forma independiente con su propio historial.
Cómo se usa
Paso a paso: una programación cron para las mañanas laborables
- Arrastra un desencadenante Scheduled a un grafo vacío; debe ser el único desencadenante del grafo.
- Pon Frequency en Cron.
- Escribe
0 9 * * 1-5(09:00, de lunes a viernes) en el campo de la expresión cron. - Pon Timezone en la tuya, por ejemplo
Europe/Istanbul, para que las 09:00 signifiquen tu mañana local y no el reloj del servidor. - Añade al menos un nodo de acción después (un desencadenante suelto no pasa Validate), luego Validate y Activate.
- La primera activación arma la próxima ocurrencia de la programación en lugar de dispararse de inmediato; a partir de ahí se dispara cada mañana que coincida sin que tengas que volver a tocarlo.
Paso a paso: un webhook con firma verificada
- Arrastra un desencadenante Incoming webhook, rellena una cadena aleatoria larga como su secreto HMAC y guarda una copia en un lugar seguro; luego no hay forma de revelar un secreto olvidado, solo de sobrescribirlo con uno nuevo.
- Añade al menos una acción después, Validate y luego Activate; la URL de entrada solo acepta llamadas una vez que el estado de la automatización es Active.
- Localiza el id de la automatización (mira más arriba) y da al sistema emisor la URL
/api/workflow/hook/<id>, con instrucciones para firmar el cuerpo JSON en bruto de la petición con tu secreto y enviarlo comoX-Signature: sha256=<hex hmac>. - Si el sistema emisor tiene una función de "enviar evento de prueba", úsala; si no, envía una petición a mano y comprueba la vista Activity en busca de una nueva ejecución, en lugar de esperar a un evento real.
Paso a paso: disparar un desencadenante desde tu propio código
- Cualquier tipo de desencadenante se puede iniciar mediante el puente de eventos genérico: un
POSTautenticado a/api/workflow/eventscon un cuerpo como{ "triggerType": "trigger.asset_uploaded", "payload": { "assetId": "..." } }. - Esta es la misma ruta que usa internamente el propio hook Design updated de la aplicación, así que es una forma probada de conectar un evento que el editor integrado todavía no dispara automáticamente.
- Una sola llamada dispara todas las automatizaciones ACTIVE de tu espacio de trabajo cuyo desencadenante coincida con ese tipo, y cada una obtiene su propia ejecución independiente sembrada con tu carga útil como contexto inicial.
Resolución de problemas
- El evento de mi desencadenante ocurrió pero no empezó ninguna ejecución. Hoy, solo Design updated está conectado para dispararse automáticamente desde la propia aplicación. Los demás desencadenantes de eventos de diseño y del espacio de trabajo funcionan a la perfección una vez disparados, pero por ahora nada de la aplicación los llama salvo tu propia integración a través del puente de eventos de arriba. Usa Test para ejecutar el grafo con independencia del desencadenante mientras esperas a que se conecte.
- La automatización está en Active pero una llamada de webhook devuelve 404. Confirma que el estado es realmente Active, no Paused ni Draft, ya que solo una automatización Active resuelve su URL de webhook, y vuelve a comprobar que el id de la URL es exacto.
- Una llamada de webhook devuelve 401. El desencadenante tiene un secreto HMAC configurado y la firma de la llamada o no se envió o no coincidió. La firma se calcula sobre el cuerpo exacto de la petición en bruto, así que reformatear o volver a serializar el JSON antes de firmarlo romperá la comprobación aunque el contenido parezca idéntico.
- El evento se dispara pero la ejecución no empieza siempre. Revisa los Settings de la automatización en busca de una ventana de Debounce, y el propio campo de debounce del nodo de desencadenante (en los desencadenantes de eventos); cualquiera de los dos descarta en silencio un disparo que caiga dentro del periodo de enfriamiento posterior al anterior.
- Una automatización programada se queda en silencio durante ciertas horas. Revisa los Settings en busca de Quiet hours; un desencadenante que, de otro modo, se dispararía dentro de esa ventana (en la propia zona horaria de la automatización) se aplaza en lugar de descartarse o encolarse, así que no se disparará de forma retroactiva cuando la ventana termine.
- Dos automatizaciones comparten un tipo de desencadenante y solo se ejecutó una. Es lo esperado si solo una estaba Active, o si el filtro propio de etiqueta o carpeta del nodo de desencadenante de la otra no coincidió con este evento en concreto.
Consejos
Un desencadenante por grafo
La validación marca un grafo con cero desencadenantes o con más de uno; mantén exactamente uno.
Los webhooks solo se disparan mientras está activa
Una llamada de webhook entrante a una automatización en Paused o Draft se ignora. Actívala primero.