Nodos
El catálogo de nodos reúne 36 tipos repartidos en las tres pestañas de la paleta: Triggers, Actions (que incluye las acciones de diseño y de IA) y Rules (lógica, tiempos y control de flujo). Cada nodo es totalmente configurable y se valida en el mismo momento en que lo colocas. Algunos nodos de acción ya se ejecutan de verdad; unos pocos figuran en el catálogo por delante de su ejecutor y registran con honestidad un paso "todavía sin conectar" en lugar de fingir que han funcionado. Consulta la columna When run más abajo.
Vistazo rápido
- Abre la pestaña de la paleta que corresponda a lo que necesitas: Triggers, Actions o Rules.
- Arrastra el nodo al lienzo.
- Configura sus campos en el inspector.
- Revisa las tablas de abajo antes de confiar en el efecto real de un nodo de acción.
Referencia detallada
Triggers
Un único nodo de desencadenante inicia cada grafo. Consulta Desencadenantes para ver cómo se dispara cada uno realmente.
| Nodo | Qué inicia una ejecución |
|---|---|
| Manual start | Tú, desde el botón Test del builder |
| Scheduled | Una cadencia por intervalo, diaria o semanal |
| Incoming webhook | Una llamada a la URL propia de la automatización |
| 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 elegida |
Acciones de diseño
| Nodo | Qué hace | Campos | When run |
|---|---|---|---|
| Pick a part | Elige un proyecto y luego una parte dentro de él (página, marco o diapositiva); los pasos posteriores actúan sobre ella | Part (abre el selector de parte) | Se ejecuta de verdad |
| Set status / folder | Cambia el estado del diseño o lo mueve a una carpeta, o ambas cosas | Status, Folder | Se ejecuta de verdad |
| Publish a part | Publica la parte seleccionada como plantilla de la comunidad | ninguno | Todavía sin conectar |
| Duplicate a design | Crea una copia del diseño seleccionado | ninguno | Todavía sin conectar |
| Generate a cover | Genera una portada o miniatura para la parte seleccionada | ninguno | Todavía sin conectar |
Acciones de IA
Se ejecuta a través de tu propia clave de proveedor de IA, la misma que usas en el resto de la aplicación; consulta Usa tu propia clave de IA.
| Nodo | Qué hace | Campos | When run |
|---|---|---|---|
| Generate copy | Escribe texto con un LLM | Ajustes de IA (se abren desde el nodo) | Se ejecuta de verdad con cualquier clave de IA conectada; si no, registra un paso omitido |
| Generate an image | De texto a imagen | Ajustes de IA (se abren desde el nodo) | Se ejecuta de verdad con una clave compatible con OpenAI; con cualquier otro proveedor, o sin clave, registra un paso omitido |
| Generate a video | De texto a vídeo | Ajustes de IA (se abren desde el nodo) | Hoy siempre registra un paso omitido; el vídeo todavía no está conectado a ningún proveedor, ni siquiera con una clave configurada |
| Run an AI skill | Ejecuta una habilidad de AI Studio | Ajustes de IA (se abren desde el nodo) | Igual que Generate an image para una habilidad que produce imágenes; una habilidad que produce vídeo siempre registra un paso omitido |
Acciones de notificación
| Nodo | Qué hace | Campos | When run |
|---|---|---|---|
| In-app notification | Crea una notificación en tu espacio de trabajo | Message | Se ejecuta de verdad |
| Send webhook | Envía una petición POST a una URL | URL | Se ejecuta de verdad |
| Slack / Discord | Publica un mensaje mediante un webhook entrante | Webhook URL, Message | Se ejecuta de verdad |
| Write an audit entry | Añade una línea al registro de auditoría | ninguno | Se ejecuta de verdad |
| Send email | Envía un correo | To, Subject, Body | Se ejecuta de verdad a través de la conexión SMTP configurada en tu espacio de trabajo; sin ella registra un paso omitido |
| Add to calendar | Añade un evento al calendario del espacio de trabajo | Title | Se ejecuta de verdad; aparece en el feed de actividad de tu Portal Calendar |
Reglas y lógica
Todos los nodos de esta sección los gestiona directamente el motor central, así que todos se ejecutan de verdad.
| Nodo | Qué hace | Campos |
|---|---|---|
| Condition (yes/no) | Divide el flujo en dos ramas según una condición | Condition |
| Filter | Detiene el flujo si no se cumple una condición | Condition |
| Delay | Espera antes de continuar | Amount, Unit (minuto, hora, día) |
| Wait until a date | Espera hasta una fecha y hora concretas | Date |
| Set a variable | Escribe un valor en el contexto de la ejecución para pasos posteriores | Key, Value |
| Expression / template | Construye un valor a partir de salidas anteriores | Template |
| HTTP request | Llama a una URL y guarda la respuesta | URL, Method, Body |
| No-op | No hace nada; un paso de paso a través | ninguno |
| Exit | Termina la automatización | ninguno |
Plantillas y condiciones
La mayoría de los campos de texto y de área de texto, el nodo Expression / template y varios campos de notificación aceptan marcadores de doble llave, escritos como {{ context.someKey }}, que recuperan lo que hayan escrito los nodos anteriores en la ejecución, por ejemplo la parte que elegiste o un bloque de texto generado por IA.
En cambio, Condition (yes/no) y Filter construyen una regla estructurada: eliges un campo, una comparación (igual a, contiene, empieza por, mayor que, está vacío y más, según el tipo de dato del campo) y un valor. Cualquiera de los dos lados de la regla puede referirse al contexto de la ejecución del mismo modo, por ejemplo comparando {{ context.status }} con un valor fijo como approved. Una regla vacía siempre pasa, y por eso un nodo Condition o Filter recién creado deja pasar todo hasta que lo configuras.
Cómo se usa
Paso a paso: configurar un paso de petición HTTP
- Arrastra HTTP request al lienzo desde la pestaña Rules y conéctalo después del nodo que produzca los datos que necesitas enviar.
- Define Method (GET, POST, PUT, PATCH o DELETE) y URL; el campo URL acepta
{{ context.x }}igual que cualquier campo de texto. - Elige Auth: None, Bearer token, Basic (
user:pass) o una cabecera personalizada, y rellena el campo de valor correspondiente que aparezca. - Para un método que lleva cuerpo, elige un tipo de Body (JSON, form o texto sin formato) y escribe el Body, de nuevo con marcadores donde los necesites.
- Deja Response variable con su valor por defecto
__http, o cámbialo, y luego referencia el resultado más adelante, por ejemplo{{ context.__http.status }}o un valor anidado dentro de{{ context.__http.body }}.
Paso a paso: notificar a un canal de Slack o Discord
- En la aplicación de destino, crea un webhook entrante para el canal en el que quieras publicar y copia su URL.
- Arrastra Slack / Discord al lienzo (Actions > Notification) y pega esa URL en Webhook URL.
- Escribe el Message, usando
{{ context.x }}para incluir cualquier cosa que hayan producido los nodos anteriores. - Si quieres, define Username e Icon emoji para que las publicaciones automáticas sean fáciles de detectar en un canal con mucho movimiento.
- Prueba la automatización una vez; una publicación fallida aparece como un paso
errorcon el estado HTTP adjunto, no como un no-op silencioso.
Tareas habituales
- Disparar cada mañana de día laborable. En un desencadenante Scheduled, pon Frequency en Cron, la expresión en
0 9 * * 1-5y una zona horaria comoEurope/Istanbul. El modo Cron mantiene un puntero de recuperación, así que un minuto perdido (un despliegue, un arranque en frío) todavía se dispara una vez que se recupera, en lugar de perderse en silencio. - Aceptar solo llamadas de webhook firmadas. Rellena el secreto HMAC del desencadenante Incoming webhook; a partir de entonces el emisor debe enviar una cabecera
X-Signature: sha256=...calculada sobre el cuerpo en bruto, o la llamada se rechaza con un 401 antes de que se ejecute nada. - Mover una parte a revisión tras la aprobación. Encadena Pick a part con Set status / folder y pon Status en "İncelemede" (En revisión); usa la misma ruta de actualización que el propio control de estado del editor.
- Redactar un pie de foto o un resumen. El prompt de un nodo Generate copy puede referirse directamente al contexto anterior, por ejemplo
Summarize this in one sentence: {{ context.__aiText }}encadenado después de otro paso de IA. - Llamar a una API externa y actuar según la respuesta. Un nodo HTTP request (pestaña Rules) puede configurar autenticación Bearer/Basic/cabecera personalizada, escribir su respuesta en una variable (por defecto
__http), y un nodo Filter justo después puede filtrar según esa respuesta, por ejemplo continuando solo cuando la llamada tuvo éxito. - Firmar un webhook saliente. El campo Secret de la acción Webhook gönder (Send webhook), si se rellena, firma el cuerpo de la petición con HMAC-SHA256 y lo envía en la cabecera indicada en Signature header (por defecto
X-Signature), de modo que el receptor puede verificar que la llamada procede realmente de tu automatización. - Combinar varios valores de contexto en una sola cadena. Usa Expression / template en lugar de varios nodos Set a variable, por ejemplo
{{ context.name }} <{{ context.email }}>escrito una vez en su campo Template, y luego referencia el resultado más adelante como{{ context.__expr }}. - Enlazar una notificación de vuelta al trabajo al que se refiere. El campo Href de In-app notification acepta una ruta como
/works/<id>, de modo que al hacer clic en la notificación dentro del espacio de trabajo tu equipo llega directamente al proyecto afectado. - Detener una ejecución antes de tiempo sin que cuente como un fallo. Encadena un nodo Filter con una regla que sea falsa para los casos que quieras descartar; una ejecución filtrada aparece como Exited en Runs, no como Failed, y no se ejecuta nada posterior al filtro.
Resolución de problemas
- El paso de un nodo aparece como
skippeden Activity. Es o bien un filtro intencionado (un nodo Filter cuya condición no se cumplió), o un nodo cuyo ejecutor de verdad todavía no está conectado (mira las columnas "When run" de arriba), o una acción que aún no tiene nada sobre lo que actuar (un correo sin conexión SMTP, una IA sin clave compatible). Ninguno de estos casos es un error; la ejecución continúa hacia lo que venga después. - Un nodo de acción falla una y otra vez en el mismo paso. Abre la pestaña Settings de su inspector y define un número de reintentos y una espera, o cambia On error a Continue para que el resto del grafo se ejecute igualmente; consulta Crear un flujo de trabajo.
- Mi condición nunca parece pasar (o nunca parece fallar). Comprueba que el campo que lee de verdad se resuelve en algo: una errata en una ruta
{{ context.x }}, o un nodo anterior que a su vez fue omitido, dejan el valor vacío, y la mayoría de las comparaciones que no son "está vacío" fallan frente a un valor vacío. - Una ejecución nunca llegó a empezar. Eso es una cuestión de desencadenante, no de nodo; consulta Desencadenantes para ver los detalles de debounce, horas de silencio y estado Active.
- Set status / folder registra "önce bir parça seç" (elige primero una parte) y se omite. Este nodo actúa sobre la parte que haya elegido antes un nodo Pick a part en la misma ejecución. Si no hay uno antes de él en el grafo, no tiene nada sobre lo que actuar, así que siempre se omite con ese mensaje.
- "Publish a part", "Duplicate a design" o "Generate a cover" nunca parecen hacer nada. Estas tres acciones de diseño todavía van por delante de su ejecutor; siempre registran un paso omitido y dejan pasar, exactamente igual que un nodo de IA o de correo cuya dependencia no está configurada. Hoy por hoy, nada de lo que configures en ellas cambia eso.
- Una publicación en Slack o un webhook saliente no llegaron y no se avisó. Revisa primero su entrada en Recent step logs. Una URL de webhook entrante incorrecta o caducada, o un destino que devolvió un estado distinto de 2xx, aparecen ambos como un paso
errorcon el estado de la respuesta en el mensaje, no como un fallo oculto.
Consejos
Skipped no significa roto
Un nodo marcado como "todavía sin conectar" no es un error. La ejecución igualmente pasa por él, registra un paso "skipped" honesto y continúa hacia el siguiente nodo, así que el resto de tu grafo sigue funcionando mientras esperas a que se conecte el ejecutor de ese nodo.
Combina condición y filtro
Usa Condition cuando necesites dos caminos distintos (sí y no); usa Filter cuando solo quieras detener una ejecución que no cumple los requisitos.