Ilustrativo: los seis pasos de este módulo, en el orden en que se convierten en un solo flujo.
⚡ Trigger
O trigger define la naturaleza de la automatización. Un Webhook la hace reactiva (alguien envía datos y ella responde); un Schedule la hace proactiva (se ejecuta sola en horarios definidos).
✓ Webhook (reactivo)
- ✓Formulario enviado, pago aprobado, mensaje recibido.
- ✓Respuesta en tiempo real al evento.
- ✓Recibes un payload listo para usar.
✓ Schedule (proactivo)
- ✓Informe diario, revisión de correos electrónicos cada 15 min.
- ✓No depende de que alguien lo active.
- ✓Definido por cron: 0 9 * * 1-5 (9 h en días hábiles).
POST /webhook/novo-lead
{ "nome": "Ana", "email": "ana@x.com", "mensagem": "Quero um orçamento" }
// disponível no fluxo como: ={{ $json.body.email }}
📥 Recopilar datos de entrada
Antes de llamar a la IA, extrae y normaliza los campos que importan. La calidad de la respuesta del modelo es proporcional al contexto que le proporcionas: basura entra, basura sale.
{
"nome": "={{ $json.body.nome }}",
"email": "={{ $json.body.email.toLowerCase() }}",
"mensagem": "={{ $json.body.mensagem.trim() }}"
}
📊 Por qué normalizar al ingresar los datos
- Consistencia - escribir el correo electrónico en minúsculas evita duplicados al guardar.
- Economía de tokens - enviar solo los campos útiles reduce el costo de la llamada de IA.
- Validación temprana - bloquear aquí las entradas vacías evita gastar una llamada en vano.
Acceder al payload
Crear contexto
Expresiones
Bloquear la basura pronto
🤖 Llamar a la IA
El corazón de la automatización con IA. Usa el node nativo (OpenAI/Anthropic) cuando existe; si no, el HTTP Request llama a la API directamente. Pide salida en JSON para no sufrir durante el parseo después.
{
"model": "gpt-4o-mini",
"response_format": { "type": "json_object" },
"messages": [
{ "role": "system", "content": "Classifique o lead. Responda JSON: {intencao, prioridade}." },
{ "role": "user", "content": "={{ $json.mensagem }}" }
]
}
💡 Consejo práctico
Coloca la estructura exacta del JSON que esperas en el system prompt y conecta el json_object modo. Eso reduce drásticamente las salidas mal formadas — y temperature: 0 hace que la clasificación sea más estable.
Define el rol y el formato
Salida estructurada
0 = estable
Más contexto = más $
🔍 Parsear la salida
La respuesta llega como texto (incluso en modo JSON, viene como una cadena dentro de un campo). Tienes que transformarla en campos reales para que los siguientes nodos puedan usarlos — con un fallback por si llega rota.
const raw = $json.choices[0].message.content; let parsed; try { parsed = JSON.parse(raw); } catch (e) { parsed = { intencao: "indefinida", prioridade: "baixa" }; } return [{ json: parsed }];
⚠️ Atención
A veces, los modelos envuelven el JSON en ```json ... ``` o agregan un texto antes. Siempre trata el error de parseo; nunca confíes al 100% en que la salida será perfecta.
🎯 Ejecuta la acción
A acción es lo que el cliente percibe y paga: enviar el correo, guardar la fila, insertar el registro. Es el único paso visible; todo lo anterior fue preparación.
Para: ={{ $json.email }}
Assunto: Recebemos seu pedido — prioridade ={{ $json.prioridade }}
Corpo: Olá ={{ $json.nome }}, classificamos como "={{ $json.intencao }}".
🎯 Elige la acción según el destinatario
- •Correo electrónico — cuando hay que notificar a una persona.
- •Hoja de cálculo — cuando el equipo hace seguimiento visual.
- •Base de datos — cuando otro sistema va a consumir el dato.
▶️ Ejecutar y observar
Ejecuta el flujo de verdad y inspecciona elemento por elemento. En automatización no usas breakpoints: lees la entrada y la salida de cada node en el panel de ejecución. El bug casi siempre está en el formato de los datos entre dos nodes.
Probar el workflow con datos reales
Dispara una vez con un payload de ejemplo. Mira cómo el flujo «se enciende» node por node.
Abre cada node y lee la entrada y la salida
Compara lo que entró con lo que salió. Donde el dato «desapareció» es donde está el error.
Pin data para iterar rápido
Fija la salida del trigger (pin) y vuelve a ejecutar solo los nodos siguientes sin gastar una nueva llamada de IA.
💡 Consejo práctico
Usa pin data en el trigger durante el desarrollo. Congelas una entrada de ejemplo e iteras en los nodes siguientes en segundos, sin activar webhooks reales ni consumir tokens en cada prueba.
📌 Resumen del módulo
Próximo Módulo:
4.3 - Integraciones y datos (APIs REST, autenticación, base de datos, hojas de cálculo, paginación)