INDUSTRIAL NODES
Que es INDUSTRIAL NODES?
Un panel de configuracion visual que transforma parametros de negocio en un JSON ejecutable para tu plataforma de automatizacion.
INDUSTRIAL NODES es un Inference Control Panel — una herramienta visual que permite configurar completamente un agente de inteligencia artificial sin escribir codigo. Toda la configuracion se exporta como un JSON estructurado que alimenta directamente un nodo de agente IA en tu plataforma de automatizacion.
Para quien es?
| Rol | Que hace | Secciones |
|---|---|---|
| Empresa | Llena datos de su negocio: servicios, precios, horarios, personalidad del agente, metodos de pago | Pasos 1-8 |
| Admin | Configura infraestructura tecnica: APIs, credenciales, RAG, voz, outreach, triggers, pipeline, integraciones | Pasos 9-16 |
| Ambos | Revisan juntos los flujos, validan la configuracion y exportan el JSON final | Paso 16 + Validacion |
Que logra?
- Atiende clientes 24/7 por WhatsApp, Instagram, Email, SMS, Voz, Web y mas
- Califica leads automaticamente con preguntas inteligentes y scoring
- Sugiere servicios del catalogo basandose en las necesidades del cliente
- Agenda citas en Google Calendar, Calendly u otro
- Atiende llamadas telefonicas con IA de voz (STT + TTS)
- Genera facturas y links de pago por Stripe, MercadoPago, Pago Movil, Zelle, etc.
- Recuerda cada cliente entre conversaciones (memoria persistente)
- Usa RAG para responder basandose en la documentacion del negocio
- Escalada a humano cuando detecta urgencia o consultas complejas
Los 16 Pasos
Empresa & Nicho
Datos del negocio, industria, audiencia
Canales & Horarios
Canales activos, horario, fuera de hora
Funcionalidades
Modulos del agente, motor de IA
Catalogo de Servicios
Servicios, precios, promociones
Agendamiento & CRM
Calendario, CRM, mapeo de campos
Leads & Calificacion
Preguntas, scoring, flujos
Configuracion RAG
Top-K, umbral, hybrid search, mapping
Personalidad del Agente
Nombre, tono, bienvenida, limites
Accesos & APIs
Redes sociales, API keys, servicios
10 Llamadas & Voz
STT, TTS, proveedores, post-llamada
11 Outreach Proactivo
Cold outreach, seguimiento CRM, nurturing
12 Triggers Personalizados
Cron, formulario, email, webhook propio
13 Pipeline de Ejecucion
Orden de operaciones, modulos, validacion
14 Facturacion & Pagos
Metodos multi-region, verificacion, cuotas
15 Memoria de Usuarios
Perfiles, storage, privacidad
16 Exportar
ZIP troceado, deploy directo a n8n
10 sistemas empresariales generables en 30 minutos
Cada use case es una mecánica replicable que sirve a múltiples industrias. Cambias el contexto y el wizard adapta el stack automáticamente. Para ver el detalle interactivo de cada caso (industrias específicas + stack chips + features recomendados), abre la presentación visual .
| # | Use case | Mecánica | Industrias típicas | Detalle |
|---|---|---|---|---|
| 1 | Conversacional B2C con reporte geolocalizado | WhatsApp califica leads por ubicación → genera reporte HTML+PDF → agenda visita | Agua, energía solar, HVAC, agrícola, telecom rurales | — |
| 2 | Cotizador inteligente B2B con dossier | Calculadora pricing LLM → propuesta PDF → alerta sales rep → CRM update | Logística, manufactura custom, agencias, ingeniería | — |
| 3 | Qualified-meeting booking enterprise | Lead inbound → enrichment Tavily → BANT scoring → agenda Google Calendar | SaaS B2B, consultoría enterprise, financieros, M&A | — |
| 4 | Soporte multinivel con escalación | Ticket clasificado por urgencia → tier 1 con KB RAG → escala humano si confianza baja | Software companies, telcos, banca digital, e-commerce | — |
| 5 | Onboarding personalizado post-pago | Trigger Stripe → WhatsApp recolecta datos → LLM plan PDF → calendariza sesión | Coaching, cursos, gimnasios, clínicas, mentoring | — |
| 6 | Recuperación oportunidades perdidas | Webhook abandonment → LLM analiza fricción → mensaje + email con descuento dinámico | E-commerce, real estate, automotriz, educación | — |
| 7 | Concierge corporativo 24/7 | WhatsApp reservas + consultas → escala a humano si excede confianza → dashboards | Hotelería, restaurantes, clínicas, spas, gym chains | — |
| 8 | Triage profesional regulado | LLM clasifica área + urgencia + presupuesto → research interna → handoff con dossier | Legal, contabilidad, médica, ingeniería, consultoría | — |
| 9 | Drip multi-canal fundraising | Donante clasificado por capacidad → drip personalizada → reporta impacto periódico | ONGs, fundaciones, partidos, alumni associations | — |
| 10 | Post-venta con upsell inteligente | Check-ins 7/30/90 días → LLM detecta señales upsell → genera oferta personalizada | SaaS, automotriz, inmobiliario, seguros, salud privada | — |
- Los agentes de soporte integran hasta 10 CRMs, voz, RAG, pagos y follow-up automático — cada capacidad se documenta en su paso correspondiente de esta guía.
Arquitectura del Sistema
INDUSTRIAL NODES
Configurador visual
JSON agent_config
14 secciones
Plataforma n8n
Ejecuta el workflow
Pinecone
Vector Store RAG
Canal Entrada
Webhook
AI Agent
Router
Agendar
Cobrar
RAG
Calificar
CRM
Notificar
Confiabilidad Industrial
Cómo se construyen los agentes de Industrial Nodes para aguantar producción.
Cada agente se construye con prácticas de ingeniería de confiabilidad orientadas a producción: objetivo de 99.99% de disponibilidad y mecanismos de tolerancia a fallos activos de fábrica.
Validaciones automáticas
Al exportar tu agente, el sistema inyecta validaciones automáticas en todo el flujo, previniendo fallos críticos mediante:
- Identificadores de trabajo únicos (`job_id`) que previenen duplicidad de pagos y colisiones de estado.
- Limitación de Tasa Inteligente (Rate Limiter) que evita el colapso del sistema o sobrecarga por tokens no autorizados.
- Estructura nativa para manejo automático de errores
Error Handlerpara intercepción in-situ.
Arquitectura de Fallback Múltiple
Por ejemplo, si la transcripción principal falla, el sistema conmuta con Claude/Gemini. Si el CRM principal en nube no responde, los Leads entran a la base de fallback en Supabase. Si la voz colapsa, muta temporalmente a comunicación texto. Siempre hay continuidad operativa.
Guia de la Empresa
Los pasos 1-8 son donde tu defines como debe comportarse tu agente.
Checklist de preparacion
- Nombre legal del negocio y descripcion clara
- Industria y ubicacion (pais y ciudad)
- Lista de servicios (nombre, descripcion, precio, duracion)
- Horarios de atencion por dia
- Canales de contacto activos
- Metodos de pago aceptados
- RIF o Tax ID del negocio
- Email y telefono de contacto
- Tono de comunicacion preferido
- Preguntas clave para calificar clientes
Empresa & Nicho
Informacion base del negocio — quien eres, a quien atiendes y que haces.
Campos a llenar (Explicación a detalle)
| Campo | Descripcion | Ejemplo |
|---|---|---|
| Nombre | Nombre completo del negocio | Consultorio Medico Dr. Perez |
| Industria | Sector del negocio | Salud, Odontologia, Legal, E-commerce... |
| Pais / Ciudad | Ubicacion (clave para dialecto y referencias geográficas) | Caracas, Venezuela |
| Idioma | Idioma principal (limita o expande el comportamiento NLU) | Espanol, English, Bilingue |
| Descripcion | Que haces y que ofreces (debe ser muy especifico) | Consultorio medico general... |
| Sitio web | URL del negocio | https://www.midominio.com |
| Email de contacto | info@empresa.com | |
| Cliente ideal | A quien atiendes | Familias y adultos 25-60 |
| Ticket promedio | Rango de precios | Bajo, Medio, Alto, Empresarial |
| Volumen/mes | Cantidad de consultas esperadas | Bajo, Medio, Alto |
Súper-Prompt Plantilla (Descripción de Empresa)
Para evitar ambigüedades cognitivas, copia esta plantilla de razonamiento estructurado, pégala en el campo 'Descripción Comercial' del configurador y sustituye los valores entre corchetes [ ]:
Somos [Nombre Empresa], una entidad del sector [Industria] operando en [Ubicación].
Nuestro objetivo central es: [Objetivo principal de interacción con usuarios].
Servicios core: [Breve enumeración de máxima 3 líneas].
Público objetivo: [Rango demográfico/económico].
Estrategia: Evitamos ambigüedad; debemos [acción principal que se espera del bot, ej: "responder ágilmente a consultas y enfocar agendamientos rápidos"].
Canales & Horarios
Por donde te contactan tus clientes y cuando estas disponible.
Canales de entrada
| Canal | Tipo | Nota |
|---|---|---|
| Chat | El mas usado. Requiere WhatsApp Business API | |
| SMS | Texto | Requiere Twilio o similar |
| Correo | Consultas formales y envio de facturas | |
| Voz | Llamada | El agente habla por telefono (paso 10) |
| Instagram DM | Chat | Requiere Instagram Business API |
| Web Chat | Chat | Widget embebido en tu pagina web |
| Telegram | Chat | Via Telegram Bot API |
| Messenger | Chat | Via Facebook Page API |
Estrategias fuera de horario
| Estrategia | Que hace |
|---|---|
| Mensaje automatico | Responde con un mensaje fijo |
| Recolectar datos | Pide nombre, telefono y motivo. Guarda en CRM |
| Emergencia | Ofrece un numero de emergencia |
| 24/7 | El agente nunca descansa |
Funcionalidades
Modulos que activas para tu agente — que puede hacer.
| Modulo | Descripcion |
|---|---|
| FAQ | Responde preguntas frecuentes basandose en tu documentacion (RAG) |
| Lead Qualification | Califica prospectos (frio/templado/caliente) |
| Scheduling | Agenda citas presenciales o virtuales |
| Diagnostico | Identifica necesidades del cliente |
| Ventas | Presenta servicios, precios y cotizaciones |
| Seguimiento | Follow-up post-cita automatico |
| Documentos | Envia formularios y materiales |
| Pagos | Genera links de pago y factura |
| Escalado | Transfiere a un humano cuando es necesario |
| Recordatorios | Confirmaciones automaticas de citas |
Motor de IA
| Modelo | Fortaleza | Costo |
|---|---|---|
| GPT-4o | El mas versatil | $$ |
| GPT-4o Mini | Rapido y economico | $ |
| Claude Sonnet / Haiku | Razonamiento largo, naturalidad | $$ / $ |
| Gemini Pro | Documentos largos, multimodal | $$ |
| DeepSeek V3 | Economico, buen espanol | $ |
| GLM-5 | Alta capacidad | $$ |
Tokens máximos
Controla el tamaño máximo de la respuesta del modelo: 300 (respuestas cortas/rápidas), 600 (estándar recomendado), 1000 o 2000 (respuestas largas o documentos).
Catalogo de Servicios
El "cerebro" del agente — que puede ofrecer y sugerir a cada cliente.
Tabla de servicios
| Campo | Descripcion | Ejemplo |
|---|---|---|
| Nombre | Nombre visible | Consulta General |
| Descripcion | Breve descripcion | Evaluacion completa de 30 min |
| Duracion | Cuanto dura | 30 min, 45 min, 1 hora |
| Precio | Costo | $40, $80, Gratis |
| Activo | Toggle on/off | Unchecked = no se ofrece |
Logica de recomendacion
- Sintomas/Match: Si el cliente describe sintomas, sugiere servicios que coincidan
- Popularidad: Sugerir primero los mas solicitados
- Presupuesto: Ajustar sugerencias al rango de precio
- Historial: Si es cliente recurrente, sugerir complementarios
- Venta cruzada: Sugerir servicios adicionales al que elija
Estrategia upsell
| Estrategia | Que hace |
|---|---|
| Sin upsell | Solo sugiere lo que el cliente pide |
| Sutil | Menciona un servicio adicional sin insistir |
| Activo | Presenta activamente servicios complementarios |
| Condicional | Solo sugiere si cumple ciertos criterios |
Agendamiento & CRM
Calendario para citas y gestion de contactos.
Calendario
| Plataforma | Descripcion |
|---|---|
| Google Calendar | Integracion directa con Google |
| Calendly | El mas popular para agendar |
| Cal.com | Alternativa open-source |
| Acuity | Para servicios de belleza/salud |
| Manual | El agente anota, el equipo agenda |
CRM
| CRM | Ideal para | Cold Leads |
|---|---|---|
| GoHighLevel | Agencias y funnels complejos | Fallback genérico |
| HubSpot | Empresas con equipos de ventas | Integración completa |
| Salesforce | Empresas grandes | Integración completa |
| Pipedrive | Equipos de ventas enfocados | Integración completa |
| Notion | Startups y equipos ágiles que usan Notion DB | Integración completa |
| Zoho / Airtable / Sheets / ClickUp / Asana / Trello / Monday / Jira / Linear | Otros flujos custom | Fallback genérico (customizable en n8n) |
Leads & Calificacion
Como el agente evalua y clasifica prospectos.
Frio (0-30)
Responder y cerrar
Templado (31-69)
Nurturing
Caliente (70-100)
Agendar / Cobrar
Flujos por temperatura
| Temperatura | Acciones disponibles |
|---|---|
| Caliente | Agendar cita, notificar humano, enviar oferta |
| Templado | Continuar conversacion, enviar contenido, consulta gratis |
| Frio | Responder y cerrar, nurturing, recursos |
Clasificación avanzada Opcional
Además del scoring numérico, puedes describir en lenguaje natural qué leads te sirven y cuáles no. El agente los clasifica automáticamente leyendo la conversación.
| Campo | Qué describes |
|---|---|
| Activar clasificación avanzada | Enciende esta capa por encima del scoring básico. |
| Criterios de aceptación | Qué leads SÍ cualifican (ej. presupuesto sobre cierto monto, zona de cobertura, es quien decide, intención de comprar en menos de 30 días). |
| Criterios de rechazo | Qué leads descartar (fuera de cobertura, sin autorización, piden un servicio que no ofreces). |
| Señales de lead caliente | Frases o comportamientos que indican urgencia (pide precio/disponibilidad, da una fecha concreta, compara con la competencia). |
| Señales de lead frío | Señales de baja intención (solo explora, respuestas vagas, sin fechas ni contacto). |
Configuracion RAG
Controla como el agente busca y usa informacion de tu documentacion.
Parametros
| Parametro | Que controla | Recomendado |
|---|---|---|
| Top-K (1-20) | Cuantos fragmentos recupera del Vector Store | 5 |
| Score Threshold (0-1) | Similitud minima para considerar relevante | 0.70 |
| Chunk Size | Tamano de cada fragmento | 512 |
| Overlap | Superposicion entre fragmentos | 50 |
Modelo de Embeddings
| Modelo | Proveedor | Nota |
|---|---|---|
text-embedding-3-small | OpenAI | Mejor relacion calidad/precio |
text-embedding-3-large | OpenAI | Mayor precision |
multilingual-e5-large | Multi | Bueno para multiples idiomas |
text-embedding-ada-002 | OpenAI (Legacy) | Descontinuado pero compatible |
Busqueda Hibrida NUEVO
Combina busqueda semantica (por significado) con BM25 (por palabras clave). El slider de ponderacion controla el balance:
- 0.0 = Solo BM25 (busqueda por palabras clave)
- 0.5 = Balance 50/50
- 0.7 (recomendado) = Mas peso semantico
- 1.0 = Solo semantica
Filtros de Metadatos
Permite filtrar los resultados del Vector Store por metadatos (categoria, ano, idioma, etc.) en formato JSON.
Knowledge Source Mapping
Mapea cada servicio a una coleccion especifica del Vector Store. Esto previene alucinaciones.
col_cardiologia y no se mezclara con pediatria.Fallback behavior
| Opcion | Que hace |
|---|---|
| Decir que no tiene info | El agente admite que no encontro datos |
| Usar LLM general | Responde con el conocimiento general del modelo |
| Hacer mas preguntas | Pide mas detalles al cliente |
Configuración de Presets & Importación de Empresa
¿Cómo se entrena un Preset? Usando el módulo de "Importación de Empresa", subes archivos de texto/JSON estáticos de "Directrices Absolutas".
- Archivos de Contexto Ideal: PDFs o TXTs que contengan guiones de ventas (Sales Scripts), políticas de reembolsos y manual de marca.
- Efecto en el comportamiento: A diferencia de la Base de Datos RAG (que el bot *consulta*), los Presets se inyectan permanentemente en la memoria a corto plazo del bot. El agente NINGUNA VEZ contradecirá estas guías globales.
Personalidad del Agente
Define quien es tu agente, como habla y cuales son sus limites.
| Campo | Descripcion | Ejemplo |
|---|---|---|
| Nombre | Nombre del agente | Valeria, Carlos, Asistente Digital |
| Rol | Que funcion cumple | Asistente virtual, Coordinadora |
| Tono | Como se comunica | Profesional calido, Formal, Amigable, Empatico, Directo |
| Bienvenida | Primer mensaje | Hola! Soy Valeria, tu asistente virtual... |
| Temas prohibidos | Lo que NO debe abordar | No diagnosticar, no revelar datos |
| Keywords escalamiento | Palabras que disparan transferencia | emergencia, urgencia, queja |
| Turnos maximos | Mensajes antes de escalar | 3, 5, 8, 12, sin limite |
| Emojis | Frecuencia de emojis | Moderados, Frecuentes, No |
Súper-Prompt Plantilla (Directrices / Personalidad)
Copia esta plantilla de razonamiento estructurado, pégala en Instrucciones Adicionales y reemplaza las variables [ ] para mantener los bordes cognitivos del agente exactos a prueba de ambigüedades:
IDENTIDAD: Eres [Nombre Agente], el experto/a principal de soporte lógico de [Nombre Empresa].
TONO DE VOZ: [Ej: Cálido pero conciso. Cero corporativismo robótico, usa emojis esporádicos].
DIRECTRICES DE NAVEGACIÓN OBLIGATORIA:
1. THINKING: Antes de formular una respuesta, evalúa silenciosamente si la solicitud del usuario viola tus límites de seguridad o carecemos de info.
2. RESTRICCIÓN: Jamás inventes precios falsos ni ofrezcas descuentos [o promesas de servicio] que no provea RAG.
3. CONVERSACIÓN: Guía siempre al usuario fluidamente hacia [Meta final, Ej: concretar la cita en Calendly o realizar el pago web].
Handoff inteligente y escalación
Define cómo y cuándo el agente pasa la conversación a una persona real.
| Campo | Qué controla |
|---|---|
| Detección inteligente de handoff | Cuando está activada, el agente detecta solo cuando el cliente quiere hablar con un humano, está molesto o pide que dejen de escribirle — y escala sin necesidad de una palabra clave exacta. |
| Ejemplos adicionales | Frases en el idioma de tus clientes que también deben disparar el handoff (ej. "quiero hablar con alguien de verdad", "no me manden más mensajes"). |
| Canal de escalación | Por dónde se avisa a la persona: WhatsApp, Email, Slack o CRM. |
| Coordinador | La persona o correo que recibe la conversación escalada. |
| País de referencia | Código de país para normalizar los teléfonos al formato internacional (E.164). |
Guia del Administrador
Los pasos 9-16 son de naturaleza tecnica. Aqui configuras la infraestructura.
***5678). Las credenciales reales se configuran en n8n.Accesos & APIs
Credenciales de redes sociales, modelos de IA y servicios auxiliares.
Redes Sociales & Plataformas
| Plataforma | Que necesitas | Donde obtenerlo |
|---|---|---|
| WhatsApp / Instagram | Token OAuth/API + ID de cuenta | Meta Console |
| Telegram Bot | Token del bot | @BotFather en Telegram |
| n8n Cloud / Make.com | Webhook Keys | n8n / Make |
Modelos de IA — Consolas de Desarrollador
Para ingresar credenciales en n8n usa el formato variable: {{ $env.OPENAI_API_KEY }}. Obtenlas aquí:
| Proveedor | URL directa de la Consola |
|---|---|
| OpenAI | https://platform.openai.com/api-keys |
| Anthropic | https://console.anthropic.com/settings/keys |
| Google AI Studio | https://aistudio.google.com/app/apikey |
Servicios de Soporte (Pagos & Voz)
| Proveedor / API | Acceso para Llaves de Conexión |
|---|---|
| Stripe (Pagos) | Stripe Developer Dashboard |
| HubSpot (CRM) | HubSpot Private Apps Console |
| Twilio / ElevenLabs (Voz) | Twilio Console / ElevenLabs API |
.env.Llamadas & Voz
Configura un agente de IA que atienda llamadas automaticamente.
Llamada entrante
STT (transcripcion)
IA procesa
TTS (voz)
Cliente escucha
Comparativa de proveedores
| Proveedor | Complejidad | STT/TTS | Nota |
|---|---|---|---|
| Vapi | Baja | Incluido | Mejor para empezar rapido |
| Bland AI | Baja | Incluido | Voz natural |
| Retell AI | Baja | Incluido | Orientado a enterprise |
| Twilio | Alta | Externo | Maximo control, menor costo a escala |
| GHL Phone | Media | Integrado | Solo si ya usas GHL |
| Vonage | Alta | Externo | Alternativa a Twilio |
| Custom | Alta | N/A | URL webhook personalizada |
STT — Speech-to-Text
| Motor | Fortaleza |
|---|---|
| OpenAI Whisper | Muy preciso, multilingue, buen espanol |
| Deepgram | Ultra rapido, baja latencia |
| Muchas lenguas, integracion facil | |
| AssemblyAI | Bueno para calls largos |
TTS — Text-to-Speech
| Motor | Fortaleza |
|---|---|
| ElevenLabs | Las voces mas naturales del mercado |
| OpenAI TTS | Buen balance calidad/precio |
| Google Cloud | Muchas voces, WaveNet |
| Azure | Voces neuronales premium |
| PlayHT | Clonacion de voz |
Configuracion del proveedor
| Campo | Descripcion |
|---|---|
| API Key | Credencial del proveedor de voz |
| Numero de telefono | Numero DID que recibe llamadas |
| Webhook URL | URL de tu n8n donde llega la llamada |
| Account ID | ID de cuenta (Vapi, etc.) |
| Voice ID | ID de la voz en TTS (ej: ElevenLabs voice_id) |
| Idioma | Idioma de la voz (es, en, etc.) |
| Velocidad | Velocidad de habla (0.5 a 2.0) |
Comportamiento de llamada
| Parametro | Descripcion | Ejemplo |
|---|---|---|
| Saludo | Primer mensaje de la llamada | "Hola, te comunicas con..." |
| Silencio maximo | Segundos sin habla antes de accion | 10 seg |
| Duracion maxima | Minutos maximos de llamada | 10 min |
| Palabras de transferencia | Palabras que disparan transferencia a humano | humano, agente, gerente |
| Numero de transferencia | A donde se transfiere | +1 555 123 4567 |
| Horario de llamadas | Rango de atencion telefonica | 08:00 - 18:00 |
| Fuera de horario | Que hacer fuera de horario | Voicemail / Transferir / No contestar |
Acciones Post-Llamada
| Accion | Descripcion |
|---|---|
| Guardar transcript | Guarda la transcripcion de la llamada |
| Calificar lead | Asigna score segun contenido de la llamada |
| Agendar cita | Ofrece agendar si hubo interes |
| Resumen por WhatsApp | Envia resumen al cliente por WhatsApp |
| Notificar al dueno | Envia alerta al dueno |
| Actualizar pipeline | Mueve lead en CRM segun resultado |
| Webhook externo | Envia datos a sistema externo |
Outreach Proactivo
Convierte a tu agente en un canal bidireccional: envía mensajes en frío a una lista y hace seguimiento automático a los leads de tu CRM.
Activación y tipo
| Campo | Qué controla |
|---|---|
| Activar outreach proactivo | Interruptor maestro. Con él apagado, tu agente sigue siendo 100% reactivo. |
| Tipo de outreach | Solo cold (lista nueva de contactos), Solo seguimiento CRM (reactivar leads existentes) o Ambos (recomendado). |
Cold outreach — lista de contactos
Aparece si elegiste Solo cold o Ambos.
| Campo | Qué controla | Recomendado |
|---|---|---|
| Subir lista CSV | Carga tus contactos (.csv/.xlsx). Columnas mínimas: nombre + (telefono o email). El wizard detecta las columnas y te deja mapearlas a mano. | — |
| Importar desde Google Sheets | Alternativa al CSV: pega la URL de una hoja pública. No requiere API key. | — |
| Canal de envío | WhatsApp (Twilio), WhatsApp (Meta Cloud), Facebook Messenger, Email (SendGrid) o SMS (Twilio). | |
| Máximo de mensajes por día | Tope diario del batch para no quemar tu número. | 50 |
| Plantilla del mensaje | Cuerpo del mensaje en frío. Admite variables {{nombre}}, {{empresa}}, {{segmento}}. | — |
| Personalizar con IA | Deja que un modelo reescriba cada mensaje según el contacto. Puedes elegir el modelo (GPT-4o mini, Claude Sonnet, Gemini, etc.). | Activado |
| Hora de envío / Ventana máxima | Hora a la que arranca el envío y hora límite (quiet hours). No envía fuera de esa franja. | 10:00 – 18:00 |
| Días de envío | Días de la semana en que corre la campaña. | Lun · Mié · Vie |
| Zona horaria | La zona horaria del calendario de envío. | La de tu país |
| Auto-rescan de leads nuevos | Cada cuántas horas re-escanea la lista buscando contactos nuevos. En 0 queda apagado. | 0 (off) |
Seguimiento CRM — reactivar leads fríos
Aparece si elegiste Solo seguimiento CRM o Ambos. En vez de una lista nueva, el agente consulta tu CRM y re-engancha a quienes no responden hace tiempo.
| Campo | Qué controla |
|---|---|
| Activar seguimiento | Enciende la rama de reactivación de leads del CRM. |
| Días sin contacto | Cuántos días de silencio antes de re-enganchar (ej. 3). |
| Etiquetas / Stages | Filtra qué leads entran, por etiqueta y por etapa del pipeline (ej. lead,MQL,SQL). |
| Mensaje de reenganche | Texto con el que el agente reabre la conversación. |
| Canal de reenganche | Elige por dónde sale el mensaje de reenganche: WhatsApp (Twilio), WhatsApp (Meta Cloud) o Facebook Messenger. |
| Avanzar de etapa automáticamente | Mueve el lead en el CRM cuando responde. |
| Límite de consulta | Máximo de leads a traer por corrida (ej. 50). |
Secuencia de nurturing SDR automático
Una cadencia de varios mensajes que el agente envía hasta que el lead responde.
| Campo | Qué controla | Recomendado |
|---|---|---|
| Activar secuencia | Enciende la cadena automática de follow-ups. | — |
| Mensajes de la secuencia | Agrega los que quieras con «+ Agregar mensaje» y borra cualquiera con «Eliminar» (ya no hay tope de 5). Cada mensaje tiene sus días de espera y su texto. | 3 mensajes |
| Importar desde documento | Sube un PDF/DOCX/CSV/TXT y el wizard trocea el texto en mensajes de la secuencia automáticamente. | — |
| Al responder el lead | Qué hacer cuando contesta: enrutar al pipeline con contexto, solo notificarte, o ambos. | Ambos |
| Máx. follow-ups sin respuesta | Cuántos intentos antes de cerrar el lead. | 3 |
| Etiqueta de campaña | Tag para segmentar y medir la campaña (ej. webinar_q1). | — |
Triggers Personalizados
Disparadores adicionales que ejecutan en paralelo al webhook principal — para que tu agente reaccione a más cosas que un solo mensaje entrante.
Tipos disponibles
| Tipo | Cuándo se dispara | Qué configuras |
|---|---|---|
| Trigger manual | Cuando lo ejecutas a mano desde n8n (ideal para pruebas). | Nada. |
| Cron personalizado | En un horario recurrente que tú defines. | Expresión cron (ej. 0 9 * * 1 = lunes 9am). |
| Formulario web público | Cuando alguien envía un formulario alojado por n8n. | Título del formulario. |
| Evento del workflow | Al activarse el workflow. | Nada. |
| Sub-workflow | Cuando otro flujo de n8n lo invoca. | Los inputs se definen en n8n. |
| Email (IMAP) | Cuando llega un correo a una casilla. | Carpeta/mailbox (requiere credencial IMAP). |
| Webhook con path propio | Cuando un sistema externo llama a una URL tuya. | Path + método (POST/GET). |
Crear uno personalizado
Si necesitas un disparador que no está en la lista, el botón "Crear personalizado…" te deja definir cualquier nodo trigger de n8n a mano: nombre, tipo de nodo (ej. n8n-nodes-base.webhook), versión, parámetros en JSON e ícono. El agente materializa ese nodo tal cual lo definiste (con su tipo y versión) y lo conecta a la entrada del pipeline — es tu responsabilidad que el tipo de nodo exista y los parámetros sean válidos.
¿Qué ejecuta cada trigger?
Por cada trigger que agregues eliges su destino: el pipeline completo (la misma entrada que un mensaje normal) o un módulo específico del pipeline (por ejemplo, solo generar un reporte). Así un mismo agente puede tener varias "puertas de entrada" con propósitos distintos.
Pipeline de Ejecución
El orden lógico en que tu agente ejecuta cada operación.
El Pipeline de Orquestación
Ejemplo Visual de Lógica de Flujo:
Súper-Prompt Plantilla (Pipeline Lógico)
Si tu agente posee validaciones lógicas complejas por Pipeline, incrusta esta orden explícita en su configuración secundaria:
EJECUCIÓN SECUENCIAL:
PRIORIDAD 1 (SEGURIDAD): Revisa si el lead es un bot.
PRIORIDAD 2 (DATOS): No asumas información. Extrae datos usando RAG exclusivamente.
PRIORIDAD 3 (ACCIÓN): Solo si el lead está perfilado (+70pts), genera el Checkout.
Facturación & Pagos
Sistema completo de facturación y cobros multi-región.
Metodos de pago disponibles
| Metodo | Region | Tipo | Como funciona |
|---|---|---|---|
| Stripe | Internacional | API | Checkout Session → link automatico |
| MercadoPago | Latam | API | Checkout Pro → multiples metodos locales |
| PayPal | Internacional | API | Confirma por webhook con la API oficial verify-webhook-signature (OAuth). Env: PAYPAL_CLIENT_ID/PAYPAL_SECRET/PAYPAL_WEBHOOK_ID |
| Square | USA / Internacional | Captura | Sin webhook propio: el cliente envía el comprobante y el agente de visión (GPT-4V) lo verifica |
| Wompi | Colombia | Captura | Sin webhook propio: confirmación por captura (GPT-4V) |
| Culqi | Perú | Captura | Sin webhook propio: confirmación por captura (GPT-4V) |
| PayU | Latam / regional | Captura | Sin webhook propio: confirmación por captura (GPT-4V) |
| Pago Movil (VE) | Venezuela | Manual | Muestra datos → cliente paga → envia captura |
| Transferencia Bancaria (Internacional) | Internacional | Manual | Muestra datos bancarios (IBAN/SWIFT) para transferencia internacional desde cualquier país |
| Zelle | USA | Manual | Muestra email Zelle → cliente envia |
| Binance Pay | Crypto | API | Confirma por firma HMAC-SHA512 local contra BINANCE_PAY_SECRET (sin llamada externa). Webhook de merchant → /webhook/lex-payment-callback |
| Wise | Internacional | API | Transferencias internacionales |
OPENAI_API_KEY. Los pasos exactos según los proveedores que actives salen en PASOS_MANUALES.md.Plantilla de factura
| Campo | Descripcion |
|---|---|
| Tipo de documento | Cotizacion (antes de cobrar), Factura (se cobra al generar), Solo link de pago |
| Moneda | USD, EUR, VES, COP, etc. |
| Impuesto | Tasa (%) y nombre (IVA, GST, Tax) |
| Tax ID / RIF | Identificacion fiscal del negocio |
| Pie de factura | Nota legal o condicion |
| Vigencia del link | 24h, 48h, 72h, 7 dias |
| Recordatorio | Si no paga: sin recordatorio, 12h, 24h, 48h |
Reglas de entrega por canal
Define como se entrega el link de pago segun el canal activo:
| Canal | Accion por defecto | Fallback |
|---|---|---|
| Enviar link directo | — | |
| Instagram DM | Enviar link directo | — |
| Enviar link + factura PDF | — | |
| Voz | Ofrecer enviar por otro medio | |
| Web Chat | Boton embebido | — |
| Telegram | Enviar link directo | — |
| SMS | Enviar link corto | — |
Verificacion de pagos manuales
de pago
o referencia
| Metodo de verificacion | Que hace |
|---|---|
| Dueno aprueba | Tu recibes notificacion con la captura y decides manualmente |
| Auto-verificar | Compara monto + referencia automaticamente |
| IA revisa captura | La IA lee la captura y recomienda aprobacion/rechazo |
WHATSAPP_PHONE_NUMBER_ID + WHATSAPP_ACCESS_TOKEN). Requiere la tabla payment_proof_pending (viene en setup.sql) y activar el sub-workflow del cron en n8n.Notificaciones al dueno
Medios configurables: Email, WhatsApp, Slack, Telegram, CRM, SMS. La plantilla usa variables: {{customer_name}}, {{amount}}, {{payment_method}}, {{reference}}.
Acciones post-pago
- Confirmar pago — Marcar como pagado en CRM
- Enviar comprobante — Factura/receipt al cliente
- Agendar cita — Ofrecer agendar automaticamente
- Actualizar pipeline — Mover lead a "Pagado"
- Iniciar seguimiento — Activar secuencia de follow-up
- Pedir resena — Opcional, post-servicio
- Webhook out — Enviar datos a sistema externo
Pagos fraccionados Opcional
Permite ofrecer el pago en cuotas. El agente propone el plan cuando el monto supera el mínimo que definas y lleva el control de cada cuota.
| Campo | Qué controla | Recomendado |
|---|---|---|
| Activar pagos fraccionados | Enciende la opción de cuotas. | — |
| Máximo de partes | Número máximo de cuotas del plan (2-12). | 3 |
| Días entre partes | Intervalo entre cuotas. | 30 |
| Canal de recordatorios | WhatsApp (Twilio), WhatsApp (Meta Cloud), Facebook Messenger, Email o SMS para avisar cada vencimiento. Meta aplica su ventana de 24h en mensajes proactivos. | |
| Recordatorio N días antes | Cuántos días antes del vencimiento se avisa. | 2 |
| Monto mínimo para fraccionar | Umbral sobre el que el agente ofrece cuotas. | 100 |
| Permitir pagos anticipados | Si el cliente puede adelantar cuotas o debe respetar las fechas. | Sí |
Memoria de Usuarios
El agente recuerda informacion de cada cliente entre conversaciones.
usuario nuevo
(onboarding)
Guarda perfil
en storage
IA reconoce al usuario
y personaliza
Storage
| Opcion | Ideal para |
|---|---|
| Supabase | PostgreSQL + API — el mas completo y recomendado |
| Redis | Cache ultra-rapido, temporal |
| Airtable | Interfaz visual para el equipo |
| Google Sheets | Simple y gratuito |
| MongoDB | Documentos flexibles, escalable |
| PostgreSQL | Base de datos directa |
Campos del perfil
| Campo | Field ID | Obligatorio |
|---|---|---|
| Nombre completo | full_name | Si |
email | Si | |
| Telefono | phone | Si |
| Pais / Ciudad | location | No |
| Empresa / Ocupacion | occupation | No |
| Preferencias | preferences | No |
| Notas adicionales | notes | No |
Ambito de memoria
- Historial de servicios — que ha contratado
- Preferencias — gustos, horarios preferidos
- Datos de contacto — nombre, email, telefono
- Conversaciones previas — resumen de chats
- Pagos realizados — historial de transacciones
- Citas agendadas — proximas y pasadas
- Feedback — quejas, resenas, sugerencias
Privacidad
- Retencion: 30 dias, 90 dias, 180 dias, 1 ano o indefinido. Ojo: con un plazo finito, un cron diario BORRA (DELETE) de forma irreversible los perfiles sin actividad más allá de ese plazo — es lo que significa "retención de datos". Si necesitas conservar el historial, usa indefinido. El cron se importa/activa aparte en n8n.
- Editar perfil: El usuario dice "actualizar mis datos"
- Eliminar perfil: Comandos como "eliminar mis datos", "borrar mi perfil", "olvidate de mi"
- Cuando mostrar perfil: Siempre al inicio / Solo cuando pide / Inteligente (si pasaron +7 dias)
Exportar Configuracion
Genera el paquete completo para implementar tu agente IA.
Qué contiene el ZIP
El paquete viene troceado: en vez de un solo workflow gigante, obtienes un archivo por responsabilidad — más fácil de importar, versionar y depurar. El conjunto se adapta a tu configuración: hay una base que siempre está presente y workflows extra que se agregan solo si los activaste en el wizard. El prefijo por defecto es IndustrialNodes_ (o el nombre de tu empresa si lo configuraste en el paso final).
Base — siempre presente
…_wf1_inbound.json
Entrada multicanal +
rate limit + idempotencia
…_wf2_agent.json
El agente IA: memoria,
router, RAG y herramientas
…_error_handler.json
Manejo de errores
multicanal
configuracion_referencia.json
Toda tu configuración +
.env.example de credenciales
setup.sql
Crea las tablas en Supabase.
Ejecútalo ANTES de importar
PASOS_MANUALES.md
Pasos manuales según TU
config (cuentas/webhooks)
Se agregan según lo que actives
…_wf3_payment.json
Solo si configuras cobros
reales (links + verificación)
…_wf4_followup.json
Solo si activas la cola de
seguimiento / reenganche
…_wf5_dashboard.json
Solo si activas métricas
/ logging estructurado
…_memory_extended.json
Solo si activas RAG /
memoria con vector store
…_wf_crm_sync · scheduling ·
report · conversions · …
Un flujo-isla por cada
integración que uses
lex_consultor_workflow.json (más simple para agentes pequeños); encendido separas pagos, follow-up, CRM, informes y conversiones en workflows independientes (recomendado para agentes grandes). El panel «El ZIP contiene» lista en vivo exactamente qué archivos vas a descargar según tu elección.El enlace entre sub-workflows se resuelve solo
El agente se entrega troceado en varios workflows que se llaman entre sí. Cuando usas el Deploy directo, la herramienta detecta el ID que n8n le asigna a cada sub-workflow y los conecta automáticamente — no tienes que configurar ninguna variable de enlace a mano (las LEX_*_WF_ID). Funciona igual en n8n gratis o de pago. Si en vez de desplegar descargas el ZIP e importas a mano, el README te dice qué poner.
Tipo de cuenta de n8n (Community vs Con Variables)
En el paso final eliges qué tipo de cuenta de n8n tienes. Eso decide cómo se ponen tus credenciales (OpenAI, Twilio, etc.):
| Tipo de cuenta | Cómo se ponen las variables |
|---|---|
| Community (gratis) para tu n8n gratis o self-hosted | Los workflows usan variables de entorno ($env). Las pones una vez en Settings → Environment Variables (o el .env del host). El README trae los nombres y valores. |
| Con Variables (pago) | Los workflows usan $vars. Al hacer Deploy directo, la herramienta sube tus credenciales por ti como Variables de n8n. Cero configuración manual. |
Proceso de implementacion
setup.sql del ZIP y pégalo entero en tu Supabase (Dashboard → SQL Editor → Run). Ese fichero se genera leyendo TU workflow, así que trae exactamente las tablas que tu agente usa — ni una más, ni una menos. Si te lo saltas, el agente da 404 en runtime y no te avisa (los nodos se tragan el error). Revisa también PASOS_MANUALES.md: lista lo que tu configuración necesita que montes a mano (cuentas, webhooks, subsistemas).En n8n, ve a Workflows → Import from File e importa cada archivo del ZIP (…_wf1_inbound.json, …_wf2_agent.json, …_wf3_payment.json, el error_handler y los opcionales). Atajo: usa el Deploy directo del wizard y omite este paso.
En n8n, ve a Settings → Environment Variables. Siempre: OPENAI_API_KEY. Según tu vector store (elegido en el paso de RAG): si usas Pinecone (por defecto) → PINECONE_API_KEY, PINECONE_INDEX, PINECONE_ENVIRONMENT; si usas Supabase pgvector → SUPABASE_URL, SUPABASE_KEY (no necesitas Pinecone). Opcionalmente: MAILGUN_API_KEY, MAILGUN_DOMAIN, OWNER_EMAIL, CRM_API_KEY. La lista exacta para TU configuración está en el .env.example del ZIP.
Abre el nodo "Cargar Configuracion" y pega el contenido de configuracion_referencia.json. Reemplaza TODO el objeto de ejemplo.
Cada nodo con candado necesita credenciales: Embedding (OpenAI API), Vector Store (Header Auth con Api-Key), Modelo IA (OpenAI/Anthropic), Email (Mailgun), CRM (HubSpot/GHL).
Activa el workflow. Envia un mensaje al webhook (POST /webhook/lex-agent-message) y verifica la respuesta. Los nodos de seguridad (Rate Limiter, Idempotency) son automaticos.
$env.NOMBRE_VAR) en n8n. El workflow es seguro para compartir.Validacion (7 campos criticos)
- Nombre de la empresa
- Descripcion del negocio
- Al menos un canal activo
- Al menos un servicio activo
- Top-K configurado (RAG)
- Nombre del agente
- Mensaje de bienvenida
Adapter Providers y destino de despliegue Opcional
En la parte final del paso Exportar hay una tarjeta opcional de proveedores. Sirve para fijar explícitamente qué servicio usa cada categoría. Si la dejas en none, no afecta el workflow generado.
none), el wizard inyecta los nodos n8n correspondientes ya cableados —no un placeholder— para Research, Conversiones, LLM, PDF, Email, Mensajería, Storage, Acortador de URLs y destino de despliegue.| Selector | Opciones |
|---|---|
| Storage | Supabase · AWS S3 · Cloudflare R2 · Cloudinary. Aplica al Generador de informes (R2 por defecto, o Supabase/S3/Cloudinary). |
| Mensajería | Meta WhatsApp · Twilio WhatsApp · Facebook Messenger · Slack · Telegram |
| Brevo · Resend | |
| LLM | Anthropic · OpenAI · Gemini |
| PDFShift · Gotenberg (self-hosted) | |
| Conversiones | Meta CAPI · Google Ads · TikTok Events. Multi-selección: se genera un flujo de tracking por cada red elegida. |
| Research | Brave · Tavily · Perplexity · OpenAI (LLM) · Anthropic (LLM) · Gemini (LLM) |
| Acortador de URLs | TinyURL · Bitly — acorta los links antes de enviarlos por WhatsApp |
Importar Blueprint (MCP) Opcional
El botón de la varita mágica del encabezado abre un modal donde pegas el JSON que devuelve lex_blueprint_generate (la herramienta MCP). Al pegarlo, el wizard auto-rellena los campos de proveedores —Storage, Mensajería, Email, LLM, PDF, Conversiones, Research, Acortador de URLs y destino de despliegue— con los valores del blueprint. Así saltas la configuración manual: describes el agente en el MCP, generas el blueprint y lo importas de un pegue.
Features industriales Opcional · opt-in
El paso Exportar incluye un panel de toggles industriales. Cada uno es opt-in: si lo enciendes, el wizard emite un sub-workflow adicional en el ZIP. Si no activas ninguno, el paquete queda idéntico.
| Toggle | Qué genera |
|---|---|
| Cola de follow-ups | Sub-workflow con cron + tabla Postgres followup_queue: encola y despacha seguimientos programados sin perder estado entre ejecuciones. |
| Generador de informes | Cadena LLM → HTML → PDF → storage → entrega por WhatsApp/Email + aviso al admin. Usa los proveedores de Storage, PDF, LLM, Mensajería y Email de los Adapter Providers. |
| Sincronización CRM | Webhook /crm-sync que empuja y actualiza registros en el CRM elegido en el paso CRM. |
| Refresco OAuth | Cron que refresca los tokens de HubSpot / Salesforce / GoHighLevel antes de que expiren. Persiste en la tabla oauth_tokens. |
| Máquina de estados | State machine por entidad persistida en Supabase. Defines los estados y transiciones en un JSON; el sub-workflow los aplica. |
Flujo de Atencion Completo
Cliente
escribe
Webhook
Rate
Limiter
Idempotency
Check
Memoria?
AI Agent
Router
FAQ
Calificar
Agendar
Cobrar
Escalar
CRM
Notificar
Responder
Flujo de Pagos Completo
Pago Automatico (Stripe, MercadoPago, PayPal)
AUTOMATICO
link
paga
confirma
Post-pago
Pago Manual (Pago Movil, Transferencia)
MANUAL
datos
vuelve
captura
Flujo de Memoria de Usuarios
Mensaje
Buscar perfil
Onboarding → Crear perfil
Cargar perfil → Personalizar
Fin de conversacion
Actualizar perfil
Estructura del JSON
{
"agent_config": {
"identity": { nombre, rol, tono, bienvenida, idioma, limites, escalamiento },
"rag_settings": { top_k, score_threshold, chunk_size, overlap,
embedding_model, hybrid_search, hybrid_semantic_weight,
metadata_filters, system_prompt, fallback,
knowledge_source_mapping },
"ai_model": { provider, model, temperature, max_tokens },
"business_rules": { schedule, channels, after_hours },
"repertory_catalog": { services, recommendation_logic, upsell, promotions },
"scheduling": { tool, appointment_types, duration, calendar_link },
"crm": { type, api_url, pipeline, capture_fields, field_mapping },
"lead_qualification": { questions, criteria, scoring, actions },
"integrations": { social_platforms, ai_providers, extra_services },
"voice_config": {
enabled, provider, stt, tts, voice_id,
call_behavior: { greeting, max_silence, max_duration,
transfer_keywords, transfer_number,
business_hours, after_hours },
post_call_actions
},
"payment_config": { providers, currency, tax, delivery_rules },
"post_payment_flow": { manual_verification, notifications, actions, webhook },
"user_memory": { storage, retention, profile_fields, memory_scope, onboarding },
"company": { name, industry, location, description, audience }
},
"_meta": { generator, created, validation }
}
Implementacion en n8n
Nodos incluidos en el workflow
| Nodo | Tipo | Funcion |
|---|---|---|
| Error Handler | Error Trigger v1 | Captura errores del workflow y notifica por email |
| Notificar Error Dueno | HTTP Request v4.2 | Envia alerta con detalles del error |
| Webhook Entrada Mensajes | Webhook v2 | Recibe mensajes (responseMode: lastNode) |
| Rate Limiter | Code v2 | Anti-spam por IP/usuario (max 10 req/min) |
| Rate Limit Excedido? | If v2 | Evalua si se debe rechazar la solicitud |
| Idempotency Check | Code v2 | Evita procesar el mismo mensaje dos veces |
| Es duplicado? | If v2 | Descarta mensajes ya procesados |
| Cargar Configuracion | Code v2 | Extrae agent_config del payload |
| Gestion Memoria Usuario | Code v2 | Busca perfil por phone/email |
| Es usuario nuevo | Switch v3 | Decide onboarding o continuar |
| Generar Embedding (OpenAI) | HTTP Request v4.2 | Convierte mensaje a vector para RAG |
| Buscar en Vector Store | HTTP Request v4.2 | Busca documentos relevantes en Pinecone |
| Inyectar Contexto RAG | Code v2 | Arma system prompt con contexto RAG |
| Formatear Mensajes IA | Code v2 | Prepara array de mensajes para el modelo |
| Llamar Modelo IA | HTTP Request v4.2 | OpenAI/Anthropic/Google/DeepSeek |
| Inferir Intencion | Code v2 | Detecta agendar/pagar/escalar/calificar |
| Ruteo por Intencion | Switch v3 | Redirige al flujo correcto |
| Agendar en [Herramienta] | HTTP Request v4.2 | Crea cita en Calendly/Google/Cal |
| Generar Link de Pago | Code v2 | Crea link segun metodo de pago activo |
| Notificacion Escalamiento | Code v2 | Prepara email de escalamiento |
| Enviar Escalamiento | HTTP Request v4.2 | Envia email via Mailgun |
| Preparar Datos CRM / Actualizar CRM | Code + HTTP | Push de lead calificado al CRM |
| Respuesta General IA | Code v2 | Responde cuando la intencion es "general" |
| Responder al Cliente | RespondToWebhook v1 | Devuelve respuesta JSON final |
| Webhook Confirmacion Pago | Webhook v2 | Recibe webhooks de Stripe/MP |
| Webhook Llamada Voz | Webhook v2 | Recibe llamadas de Vapi/Twilio y responde la config del asistente (ver nota) |
assistant-request al arrancar la llamada, el mismo webhook le devuelve la configuración del asistente (mensaje inicial, voz, modelo, transcriptor, tiempo de silencio, duración máxima, server URL). Configura el server URL de tu asistente Vapi apuntando a /webhook/lex-voice-call. (No devuelve el "system prompt" ni las herramientas — solo los campos de arranque de la llamada.)Nodos de seguridad
Error
Handler
Notificar
Error
Stop
| Nodo | Como funciona |
|---|---|
| Error Handler | Se activa automaticamente cuando CUALQUIER nodo falla. Captura el nombre del nodo, mensaje de error y ID de ejecucion. Envia una alerta por email al dueno via Mailgun. |
| Rate Limiter | Cuenta solicitudes por IP + usuario en una ventana de 1 minuto. Si supera 10 solicitudes, responde con HTTP 429 (Too Many Requests) y un mensaje pidiendo que espere. Los datos se limpian automaticamente. |
| Idempotency Check | Genera un hash unico por mensaje (usando message_id, from + timestamp). Si ya se proceso un mensaje con ese ID en la ultima hora, responde con status: "already_processed" sin re-procesar. Los IDs viejos se limpian automaticamente. |
Variables de entorno necesarias
| Variable | Para que | Requerida |
|---|---|---|
$env.OPENAI_API_KEY | Embeddings + chat con modelo IA | Si |
$env.PINECONE_API_KEY | Vector store para RAG — solo si eliges Pinecone (el default) | Según vector store |
$env.PINECONE_INDEX | Nombre del indice en Pinecone (solo con Pinecone) | Según vector store |
$env.PINECONE_ENVIRONMENT | Region del indice (ej. gcp-starter) (solo con Pinecone) | Según vector store |
$env.SUPABASE_URL / $env.SUPABASE_KEY | Vector store alternativo: Supabase pgvector. Requerido para la búsqueda híbrida (semántica + léxica): ejecuta sql/fase4h_hybrid_search.sql para crear la columna tsvector + el RPC match_documents_hybrid. Pinecone/Qdrant/Chroma no tienen híbrido. | Según vector store |
$env.CRM_API_KEY | Actualizar contactos en CRM | Opcional |
$env.MAILGUN_API_KEY | Enviar notificaciones por email (incluido Error Handler) | Opcional |
$env.MAILGUN_DOMAIN | Dominio de Mailgun | Opcional |
$env.OWNER_EMAIL | Email del dueno para alertas y errores | Opcional |
$env.STRIPE_SECRET_KEY | Generar links de pago | Opcional |
$env.VOICE_PROVIDER_API_KEY | Proveedor de voz (Vapi, Twilio) | Opcional |
.env.example pueden incluirlas. Si vas a compartir esos archivos, deja los campos vacíos y configura las claves directamente en n8n (Settings → Variables), donde se manejan como variables de entorno y nunca quedan dentro del workflow.Webhooks y APIs Necesarias
| Servicio | Tipo | Endpoint |
|---|---|---|
| Stripe | Webhook IN | /webhook/lex-payment-callback |
| MercadoPago | Webhook IN | /webhook/lex-payment-callback |
| Twilio | Webhook IN | /webhook/lex-voice-call |
| Meta (WhatsApp/IG) | Webhook IN | /webhook/lex-agent-message |
| Vapi / Bland | Webhook IN | /webhook/lex-voice-call |
| Sistema propio | Webhook OUT | Configurable en paso 14 |
| Calendly / Google | API OUT | Crear citas |
| CRM | API OUT | Crear/actualizar leads |
Preguntas Frecuentes
Para la Empresa
¿Puedo cambiar la configuracion despues de exportar?
Si. Vuelve a INDUSTRIAL NODES, cambia lo que necesites y re-exporta.
¿Que pasa si no tengo todos los datos?
Llena lo que tengas. Los campos criticos son: nombre, descripcion, al menos un canal, un servicio y nombre del agente.
¿Puedo tener varios agentes?
Si. Crea una configuracion separada para cada agente.
¿El agente ofrece descuentos por su cuenta?
Solo las promociones activas que configures en el paso 4.
Para el Admin
¿Donde se configuran las credenciales?
En n8n como credenciales de nodos o variables de entorno ($env). Nunca en el JSON.
¿Como conecto los webhooks de Stripe/MercadoPago?
Stripe: Dashboard → Developers → Webhooks → agrega la URL. Selecciona payment_intent.succeeded y payment_intent.payment_failed.
¿Se puede usar sin RAG?
Si, pero el agente solo respondera con conocimiento general (puede alucinar). Se recomienda siempre usar RAG.
¿Como funciona el agente de voz?
El proveedor (Vapi, Twilio, etc.) recibe la llamada, transcribe con STT, envia al webhook de n8n, la IA procesa, responde con TTS, y el proveedor reproduce la voz.
Seguridad
¿Que es el Error Handler?
Es un nodo que se activa automaticamente cuando cualquier otro nodo falla. Captura el error y envia una notificacion por email al dueno con detalles del fallo (nodo, mensaje, ID de ejecucion).
¿Como funciona el Rate Limiter?
Cuenta solicitudes por IP y usuario en una ventana de 1 minuto. Si un usuario envia mas de 10 solicitudes, recibe un HTTP 429 con un mensaje de "Demasiadas solicitudes". Se limpia automaticamente.
¿Que es Idempotency Check?
Evita que un mismo mensaje se procese dos veces. Genera un ID unico por mensaje y lo guarda por 1 hora. Si llega un duplicado, responde con already_processed sin re-procesar.
¿Puedo desactivar estos nodos?
Si, pero no se recomienda. Puedes eliminar los nodos del workflow en n8n si no los necesitas. Son una capa de proteccion que no afecta el funcionamiento normal.
Solucion de Problemas
El workflow no importa en n8n
Verifica que el archivo JSON empieza con { y termina con }. Actualiza a n8n 1.x+.
El agente responde en ingles
Verifica que identity.language este configurado como "Espanol" y que el nodo System Prompt lo use.
La memoria no funciona
Configura las credenciales del storage (Supabase, etc.) en n8n. El usuario se identifica por telefono o email.
Los pagos no se confirman
Verifica que el webhook de Stripe/MP apunte a /webhook/lex-payment-callback de tu n8n.
Confiabilidad Industrial
Los mecanismos que evitan que tu negocio se caiga.
Industrial Nodes está construido bajo prácticas de ingeniería de confiabilidad orientadas a producción: objetivo de 99.99% de disponibilidad (máximo 52.56 minutos de downtime al año) y seis mecanismos de tolerancia a fallos activos en cada agente. No perseguimos un sello estadístico — construimos los sistemas que evitan que el negocio se caiga.
Los 6 pilares de confiabilidad
- Rate Limiting Distribuido: vía RPC
rate_limit_checken Supabase con degradación gracil. Si Supabase no responde, el sistema entra en modo degradado con flag_rate_degradeden lugar de fallar. - Health Check /health: endpoint público que verifica env vars críticas, estado del circuit breaker LLM, ping a OpenAI y Supabase. Persistido en tabla
system_health_log. - Circuit Breaker LLM: estado
CLOSED → OPEN → HALF_OPEN → CLOSEDcon contador de fallos en$getWorkflowStaticData('global').llmFails. Si el LLM falla N veces, el circuit pasa a OPEN y los siguientes requests reciben respuesta degradada sin gastar tokens. - DLQ + Retry Exponencial: webhooks externos con
wh_retry: 3y fallback a Dead Letter Queue (tablasmedia_dlq,cog_crm_ops_log) si todos los reintentos fallan. - Idempotency Dual: header
Idempotency-Key+ tabla de tracking (payment_events_processed,generated_content_log,cog_crm_ops_log) con TTL 24h. Previene duplicados en pagos, content generation, y operaciones CRM. - Audit Log Universal: cada transición de estado crítica queda registrada en un log de auditoría (
audit_log) con nivel (info/warn/error), servicio, tipo de evento y contexto — para diagnosticar en producción cualquier cosa que pase.
Query SQL Error Budget
SELECT date_trunc('minute', timestamp) AS minute,
COUNT(*) FILTER (WHERE overall_status IN ('unhealthy','degraded')) AS down_minutes
FROM system_health_log
WHERE timestamp > now() - interval '30 days'
GROUP BY minute
ORDER BY minute DESC;
Calidad de lo que exportas
Cada agente que generas pasa por una validación automatizada antes de entregártelo —schema n8n 1.x/2.x, typeVersions, expresiones y conexiones— para que importe limpio en tu instancia, sin los errores típicos de un JSON armado a mano.
Validación de Workflows n8n
Cómo Industrial Nodes verifica cada workflow antes de entregártelo.
Cuando exportas o despliegas, Industrial Nodes valida automáticamente el workflow contra la especificación de n8n (1.x/2.x) — schema, typeVersions, expresiones y conexiones — para que importe limpio sin que revises nada a mano. No tienes que correr ninguna herramienta.
Exit codes
0: validación exitosa, sin issues críticos1: errores críticos detectados (workflow no importable o con bugs)2: solo warnings (modo--stricttratará esto como fallo)
Qué valida
- Estructura root:
name,nodes,connectionsrequeridos settings.executionOrder = 'v1'(legacy 'v0' detectado como warning)versionIdcon formato UUID v4- Cada nodo: id único, name único, type contra whitelist, typeVersion contra whitelist por tipo
- Connections: source y target deben existir en
nodes[] - Credentials: shape
{id, name}, genericAuthType válido - Expressions: prefijo
=mandatory,$('NodeName')referencia nodos existentes - 15 node types canónicos n8n 1.x
Tabla de node types n8n 1.x soportados (2026)
| Type | typeVersion actual | Versions válidas | Docs |
|---|---|---|---|
n8n-nodes-base.webhook | 2 | [1, 1.1, 2] | Docs |
n8n-nodes-base.httpRequest | 4.4 | [1, 2, 3, 4, 4.1, 4.2, 4.3, 4.4] | Docs |
n8n-nodes-base.code | 2 | [1, 2] | Docs |
n8n-nodes-base.switch | 3 | [1, 2, 3] | Docs |
n8n-nodes-base.if | 2 | [1, 2] | Docs |
n8n-nodes-base.merge | 3 | [1, 2, 2.1, 3] | Docs |
n8n-nodes-base.wait | 1.1 | [1, 1.1] | Docs |
n8n-nodes-base.scheduleTrigger | 1.2 | [1, 1.1, 1.2] | Docs |
n8n-nodes-base.respondToWebhook | 1.5 | [1, 1.1, 1.2, 1.3, 1.4, 1.5] | Docs |
n8n-nodes-base.splitInBatches | 3 | [1, 2, 3] | Docs |
n8n-nodes-base.executeWorkflow | 1.2 | [1, 1.1, 1.2] | Docs |
n8n-nodes-base.formTrigger | 2.2 | [1, 2, 2.1, 2.2, 2.3] | Docs |
n8n-nodes-base.manualTrigger | 1 | [1] | Docs |
n8n-nodes-base.emailReadImap | 1 | [1] | Docs |
n8n-nodes-base.workflowTrigger | 1 | [1] | Docs |
Variables de Entorno (.env.example)
32+ variables organizadas en 9 categorías. Copia .env.example a .env y completa solo las categorías que tu agente realmente use.
n8n Core
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
WEBHOOK_URL | URL base de tu instancia n8n | Tu dominio n8n (ej: https://n8n.tudominio.com) | Sí |
EXECUTIONS_TIMEOUT | Timeout global de ejecuciones (segundos) | Valor recomendado: 3600 | Opcional |
NODE_FUNCTION_ALLOW_BUILTIN | Módulos Node.js permitidos en Code nodes. Sin ella, los nodos que verifican firmas de webhooks (pagos, agenda) lanzan "Module 'crypto' is disallowed". El .env.example del ZIP la incluye. En n8n Cloud no se puede configurar: allí la verificación de firmas no está disponible. | Valor: crypto,buffer,url | Sí (self-hosted) |
Supabase (REQUIRED)
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
SUPABASE_URL | URL del proyecto Supabase | Supabase Dashboard → Settings → API → Project URL | Sí |
SUPABASE_KEY | Service role key de Supabase | Supabase Dashboard → Settings → API → service_role (secret) | Sí |
SUPABASE_STORAGE_BUCKET | Nombre del bucket de storage | Crear en Supabase Storage. Default: lex-content | Opcional |
LLM Providers (al menos uno)
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
OPENAI_API_KEY | API key de OpenAI (GPT-4o, Whisper, DALL-E, embeddings) | platform.openai.com/api-keys | Sí (recomendado) |
ANTHROPIC_API_KEY | API key de Anthropic (Claude) | console.anthropic.com | Alternativa |
GOOGLE_AI_API_KEY | API key de Google AI (Gemini) | aistudio.google.com | Alternativa |
Handoff a humano
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
HANDOFF_RESUME_SECRET | Secret para reanudar conversaciones post-handoff | Generar con openssl rand -hex 32 | Si usa handoff |
Media APIs (Content Configurator)
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
ELEVENLABS_API_KEY | Voz IA / TTS premium | elevenlabs.io → Profile → API Key | Opcional |
FREESOUND_API_KEY | Efectos de sonido gratuitos | freesound.org | Opcional |
EPIDEMIC_SOUND_API_KEY | Música de fondo premium | Epidemic Sound Partner API | Opcional |
ARTLIST_API_KEY | Música y SFX premium | Artlist Enterprise API | Opcional |
PIXABAY_API_KEY | Imágenes/videos stock gratuitos | pixabay.com/api | Opcional |
PEXELS_API_KEY | Imágenes/videos stock gratuitos | pexels.com/api | Opcional |
UNSPLASH_API_KEY | Fotografía stock premium | unsplash.com/developers | Opcional |
SHUTTERSTOCK_API_KEY | Stock media premium (imágenes, video, música) | shutterstock.com/developers | Opcional |
Image Generation
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
STABILITY_API_KEY | Stable Diffusion API (miniaturas, banners) | platform.stability.ai | Opcional |
REPLICATE_API_TOKEN | Modelos open-source via API | replicate.com | Opcional |
NANO_BANANA_API_KEY | GPU serverless para modelos custom | Banana.dev / Fal.ai dashboard | Opcional |
DALL_E_API_KEY | DALL-E 3 (usa OPENAI_API_KEY si es la misma) | Misma que OPENAI_API_KEY | Opcional |
Notificaciones
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
TWILIO_ACCOUNT_SID | SID de cuenta Twilio | console.twilio.com → Account Info | Si usa SMS/voz |
TWILIO_AUTH_TOKEN | Auth token de Twilio | Mismo dashboard de Twilio | Si usa SMS/voz |
TWILIO_PHONE_FROM | Número de teléfono Twilio (formato +E.164) | Twilio → Phone Numbers | Si usa SMS/voz |
OWNER_PHONE | Teléfono del dueño para alertas | Tu número personal | Opcional |
OWNER_EMAIL | Email del dueño para alertas | Tu email | Recomendado |
SENDGRID_API_KEY | API key de SendGrid para emails | app.sendgrid.com | Opcional |
SENDGRID_FROM_EMAIL | Email remitente verificado en SendGrid | SendGrid → Sender Authentication | Opcional |
SLACK_WEBHOOK_URL | Webhook de Slack para notificaciones | Slack App → Incoming Webhooks | Opcional |
TELEGRAM_BOT_TOKEN | Token del bot de Telegram | @BotFather en Telegram | Opcional |
TELEGRAM_CHAT_ID | Chat ID para notificaciones Telegram | @userinfobot o API getUpdates | Opcional |
RESEND_API_KEY | API key de Resend (alternativa a SendGrid) | resend.com | Opcional |
RESEND_FROM | Email remitente para Resend | Tu dominio verificado en Resend | Opcional |
Storage
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
AWS_S3_BUCKET | Bucket S3 para archivos | AWS Console → S3 | Opcional |
GOOGLE_CLOUD_STORAGE_BUCKET | Bucket GCS para archivos | Google Cloud Console → Storage | Opcional |
R2_BUCKET | Bucket Cloudflare R2 | Cloudflare Dashboard → R2 | Opcional |
R2_ENDPOINT | Endpoint de Cloudflare R2 | Cloudflare R2 → Settings | Opcional |
CRM (Cognitive Layer)
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
HUBSPOT_API_KEY | API key de HubSpot CRM | HubSpot → Settings → Integrations → Private Apps | Opcional |
SALESFORCE_CLIENT_ID | Client ID OAuth2 de Salesforce | Salesforce Setup → App Manager | Opcional |
ZOHO_CRM_TOKEN | Token de API de Zoho CRM | Zoho API Console → Self Client | Opcional |
PIPEDRIVE_API_TOKEN | Token de API de Pipedrive | Pipedrive → Settings → Personal Preferences → API | Opcional |
MONDAY_API_TOKEN | Token de API de Monday.com | Monday.com → Developers → API | Opcional |
NOTION_TOKEN | Token de integración Notion | Notion → Settings → Connections → Develop or manage integrations | Opcional |
NOTION_API_KEY | Alias del token Notion usado por los nodos Cold Leads Multi-CRM. Puede ser el mismo valor que NOTION_TOKEN. | Misma ubicación que NOTION_TOKEN | Si usa Notion como CRM de cold leads |
NOTION_LEADS_DB | ID de la base de datos Notion donde viven los leads. Requerido por el nodo Notion Cold Leads del flujo multi-CRM. | Abrir la DB en Notion → Share → Copy link → el ID es el hash de 32 caracteres en la URL | Si usa Notion como CRM de cold leads |
SF_INSTANCE_URL | URL de la instancia Salesforce. Ej: https://miempresa.my.salesforce.com | Salesforce → Setup → My Domain | Si usa Salesforce como CRM de cold leads |
SF_ACCESS_TOKEN | OAuth2 access token Salesforce | Salesforce Setup → App Manager → Connected App | Si usa Salesforce como CRM de cold leads |
Búsqueda Web + Video Cloud
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
TAVILY_API_KEY | Búsqueda web IA para research | tavily.com | Opcional |
SERPAPI_KEY | Google Search API wrapper | serpapi.com | Opcional |
BRAVE_API_KEY | Brave Search API | brave.com/search/api | Opcional |
SHOTSTACK_API_KEY | API de renderizado de video cloud | dashboard.shotstack.io | Si usa video |
CREATOMATE_API_KEY | Alternativa a Shotstack para video | creatomate.com | Opcional |
.env a Git. Asegúrate de que .gitignore lo excluya. En n8n, configura las variables en Settings → Variables.Endpoint /health
Health check público para monitoreo de uptime y estado del sistema.
URL del Endpoint
GET {{WEBHOOK_URL}}/webhook/lex-health
Response Payload (200 OK - Healthy)
{
"status": "healthy",
"overall_status": "healthy",
"timestamp": "2026-04-11T12:00:00.000Z",
"checks": {
"env_vars": { "status": "ok", "missing": [] },
"circuit_breaker": { "status": "CLOSED", "fail_count": 0 },
"openai_ping": { "status": "ok", "latency_ms": 120 },
"supabase_ping": { "status": "ok", "latency_ms": 45 }
},
"version": "1.0",
"uptime_seconds": 86400
}
Response Payload (503 - Degraded/Unhealthy)
{
"status": "degraded",
"overall_status": "degraded",
"timestamp": "2026-04-11T12:05:00.000Z",
"checks": {
"env_vars": { "status": "ok", "missing": [] },
"circuit_breaker": { "status": "OPEN", "fail_count": 5 },
"openai_ping": { "status": "timeout", "latency_ms": null },
"supabase_ping": { "status": "ok", "latency_ms": 50 }
},
"version": "1.0",
"uptime_seconds": 86400
}
Códigos HTTP
| Código | Estado | Significado |
|---|---|---|
200 | healthy | Todos los checks pasan. Sistema operativo. |
503 | degraded | Al menos un check falla pero el sistema sigue operando con limitaciones. |
503 | unhealthy | Checks críticos fallan. El sistema no puede procesar requests. |
Query SQL para Monitoreo
-- Últimas 24h de health checks
SELECT timestamp, overall_status, checks
FROM system_health_log
WHERE timestamp > now() - interval '24 hours'
ORDER BY timestamp DESC
LIMIT 100;
-- Uptime % últimos 30 días
SELECT
ROUND(
100.0 * COUNT(*) FILTER (WHERE overall_status = 'healthy') / COUNT(*),
4
) AS uptime_pct
FROM system_health_log
WHERE timestamp > now() - interval '30 days';
Integración con Servicios de Monitoreo
| Servicio | Configuración |
|---|---|
| Uptime Robot | New Monitor → HTTP(s) → URL: {{WEBHOOK_URL}}/webhook/lex-health → Interval: 5 min → Alert on 503 |
| Pingdom | Add Check → HTTP → URL del health endpoint → Check interval: 1 min → Alert contacts |
| Healthchecks.io | New Check → Cron: */5 * * * * → Ping URL desde n8n Schedule Trigger cada 5 min |
| Better Stack | Monitors → New → HTTP → URL + Expected status 200 → Alertas por Slack/Email |
Despliegue a Producción
Checklist paso a paso para poner tu agente en producción.
Checklist de Despliegue
- Clonar/instalar n8n:
npx n8n(local) o desplegar en n8n Cloud, Railway, o Docker. Verificar que sea n8n 1.x+. - Importar workflow JSON: En n8n, ir a Workflows → Import from File → seleccionar el JSON exportado por el configurador.
- La validación ya ocurrió: el wizard verifica cada workflow automáticamente al exportarlo, así que puedes importarlo directo. Si editaste el JSON a mano, re-expórtalo desde el wizard para re-validarlo.
- Configurar credenciales en n8n: Settings → Variables → agregar cada variable del
.env.exampleque tu agente necesite. - Ejecutar SQL setup en Supabase: Ejecutar los scripts SQL de tablas necesarias (
system_health_log,audit_log,payment_events_processed, etc.) en el SQL Editor de Supabase. - Configurar webhooks externos:
- Stripe: Dashboard → Developers → Webhooks →
{{WEBHOOK_URL}}/webhook/lex-payment-callback - MercadoPago: Developers → Webhooks → misma URL
- Meta (WhatsApp/IG): App Dashboard → Webhooks →
{{WEBHOOK_URL}}/webhook/lex-agent-message
- Stripe: Dashboard → Developers → Webhooks →
- Activar workflow: En n8n, toggle "Active" en la esquina superior derecha del workflow.
- Test request: Enviar un mensaje de prueba al webhook principal y verificar respuesta correcta:
curl -X POST {{WEBHOOK_URL}}/webhook/lex-agent-message \ -H "Content-Type: application/json" \ -d '{"from":"test","message":"Hola, quiero información"}' - Verificar /health:
Debe retornarcurl {{WEBHOOK_URL}}/webhook/lex-health{"status":"healthy"}. - Configurar monitoreo: Conectar Uptime Robot, Pingdom o Healthchecks.io al endpoint
/health(ver sección anterior). - Backup del workflow: Guardar una copia del JSON del workflow en un repositorio Git. Configurar exports automáticos si es posible.
Superprompts Industriales Copy-Paste
Prompts listos para producción para cada campo del configurador de soporte. Copia, personaliza los {{PLACEHOLDERS}} y pega en el configurador.
Campo: Bienvenida (f_welcome)
Hola! Soy {{NOMBRE_AGENTE}}, tu asistente virtual de {{EMPRESA}}.
Estoy aquí para ayudarte con:
- {{SERVICIO_1}}
- {{SERVICIO_2}}
- {{SERVICIO_3}}
- Resolver tus dudas sobre nuestros servicios
{{HORARIO_NOTA: Ej: "Nuestro horario de atención humana es L-V 9am-6pm, pero yo estoy disponible 24/7."}}
¿En qué puedo ayudarte hoy?
Personaliza los {{PLACEHOLDERS}} según tu negocio antes de pegarlo en el configurador.
Campo: Descripción del Negocio (f_desc)
{{EMPRESA}} es una empresa de {{INDUSTRIA}} ubicada en {{CIUDAD}}, {{PAÍS}}, especializada en {{ESPECIALIDAD_PRINCIPAL}}. Fundada en {{AÑO_FUNDACIÓN}}, atendemos a {{TIPO_CLIENTES}} con un enfoque en {{DIFERENCIADOR_CLAVE}}.
Nuestros servicios principales son:
1. {{SERVICIO_1}}: {{DESCRIPCIÓN_BREVE_1}}
2. {{SERVICIO_2}}: {{DESCRIPCIÓN_BREVE_2}}
3. {{SERVICIO_3}}: {{DESCRIPCIÓN_BREVE_3}}
Nuestra propuesta de valor es {{PROPUESTA_VALOR}}. Nos diferenciamos por {{DIFERENCIADOR}} y nuestro cliente ideal es {{PERFIL_CLIENTE_IDEAL}}.
Personaliza los {{PLACEHOLDERS}} según tu negocio antes de pegarlo en el configurador.
Campo: Cliente Ideal (f_audience)
Nuestro cliente ideal es {{DEMOGRAFÍA}} ({{RANGO_EDAD}} años) ubicado en {{ZONA_GEOGRÁFICA}}, que busca {{NECESIDAD_PRINCIPAL}}.
Características:
- Nivel socioeconómico: {{NIVEL_SOCIOECONOMICO}}
- Frecuencia de compra: {{FRECUENCIA}}
- Canal preferido: {{CANAL_PREFERIDO}}
- Dolor principal: {{PAIN_POINT}}
- Motivación de compra: {{MOTIVACIÓN}}
Tipos de clientes que atendemos:
1. {{SEGMENTO_1}}: {{DESCRIPCIÓN_SEGMENTO_1}}
2. {{SEGMENTO_2}}: {{DESCRIPCIÓN_SEGMENTO_2}}
3. {{SEGMENTO_3}}: {{DESCRIPCIÓN_SEGMENTO_3}}
Personaliza los {{PLACEHOLDERS}} según tu negocio antes de pegarlo en el configurador.
Campo: Temas Prohibidos (f_limits)
TEMAS ESTRICTAMENTE PROHIBIDOS:
- No discutir precios de la competencia ni hacer comparaciones directas
- No ofrecer descuentos no autorizados (solo las promociones activas configuradas)
- No dar consejos {{AREA_SENSIBLE}} (ej: médicos, legales, financieros según aplique)
- No compartir información interna de la empresa (márgenes, costos, proveedores)
- No aceptar pagos fuera de los canales oficiales configurados
- No prometer tiempos de entrega que no estén confirmados en el sistema
SI EL CLIENTE INSISTE EN TEMAS PROHIBIDOS:
Responder: "Entiendo tu consulta. Para ese tema específico, te recomiendo comunicarte directamente con {{CONTACTO_ALTERNATIVO}} al {{CANAL_CONTACTO}}. Yo puedo ayudarte con {{REDIRECCION_TEMA}}."
TEMAS OFF-LIMITS ADICIONALES:
{{LISTA_TEMAS_ADICIONALES}}
Personaliza los {{PLACEHOLDERS}} según tu negocio antes de pegarlo en el configurador.
Campo: Keywords de Escalamiento (f_escalate)
hablar con humano, hablar con persona, quiero hablar con alguien, operador, agente real, supervisor, gerente, queja, reclamo, demanda, abogado, denuncia, {{KEYWORD_INDUSTRIA_1}}, {{KEYWORD_INDUSTRIA_2}}, urgente, emergencia, cancelar todo, devolver dinero, reembolso, muy molesto, pésimo servicio, no funciona nada
Separa por comas. Agrega keywords específicas de tu industria.
Campo: Instrucciones Extra (f_extra)
Eres {{NOMBRE_AGENTE}}, asistente de {{EMPRESA}} especializado en {{NICHO}}. Tu rol es {{ROL_PRINCIPAL}}.
REGLAS ESTRICTAS:
- SIEMPRE responde en {{IDIOMA}} con tono {{TONO}}.
- NUNCA inventes precios, fechas, o disponibilidad. Si no tienes info en el contexto RAG, responde: "{{FALLBACK_MESSAGE}}".
- Si el cliente menciona temas fuera del scope ({{OFF_LIMITS}}), redirige amablemente al objetivo principal.
- Si detectas frustración severa, escala automáticamente con keyword interno [ESCALATE].
- Máximo {{MAX_MENSAJES}} intercambios antes de intentar cerrar con CTA.
OBJETIVO DE CONVERSACIÓN:
{{OBJETIVO_PRINCIPAL}} (ej: agendar consulta, calificar lead, cerrar venta)
FORMATO DE RESPUESTA:
- Mensaje conversacional natural (no robotizado)
- Máximo {{MAX_LONGITUD}} caracteres
- Si el cliente proporciona datos personales, incluye un resumen al final estructurado como JSON: {"nombre": "...", "email": "...", "telefono": "...", "intent": "..."}
PRIORIDAD DE ACCIONES:
1. Identificar necesidad del cliente
2. Proveer información relevante del RAG
3. Guiar hacia {{ACCION_DESEADA}}
4. Capturar datos de contacto para CRM
CONTEXTO ADICIONAL:
{{CUALQUIER_INFO_ADICIONAL_DEL_NEGOCIO}}
Personaliza los {{PLACEHOLDERS}} según tu negocio antes de pegarlo en el configurador.
Campo: Mensaje Fuera de Horario (f_afterMsg)
Gracias por contactar a {{EMPRESA}}. En este momento estamos fuera de nuestro horario de atención ({{HORARIO_ATENCION}}).
Puedo ayudarte con información general sobre nuestros servicios. Para atención personalizada, nuestro equipo estará disponible {{PRÓXIMO_HORARIO}}.
Si tu consulta es urgente, puedes:
- Enviar un email a {{EMAIL_URGENCIAS}}
- {{CANAL_ALTERNATIVO_URGENTE}}
Mientras tanto, ¿hay algo en lo que pueda orientarte?
Personaliza los {{PLACEHOLDERS}} según tu negocio antes de pegarlo en el configurador.
Campo: Ejemplos de Handoff (f_handoffExamples)
EJEMPLOS DE CUÁNDO TRANSFERIR A UN HUMANO:
1. Cliente dice: "Necesito hablar con alguien de verdad"
Respuesta: "Entiendo perfectamente. Te voy a conectar con un asesor de nuestro equipo. {{MENSAJE_TRANSICION_HANDOFF}}"
2. Cliente dice: "Tengo un problema con mi {{PRODUCTO/SERVICIO}} y nada funciona"
Respuesta: "Lamento mucho la situación. Voy a transferirte con un especialista que podrá resolver esto directamente. {{MENSAJE_TRANSICION_HANDOFF}}"
3. Cliente dice: "Quiero un reembolso / cancelar"
Respuesta: "Entiendo tu solicitud. Para procesar {{TIPO_SOLICITUD}}, necesito transferirte con nuestro equipo de {{DEPARTAMENTO}}. {{MENSAJE_TRANSICION_HANDOFF}}"
4. Detección de frustración: Cliente usa lenguaje agresivo o repetidamente no queda satisfecho
Respuesta: "Veo que no he podido resolver tu consulta satisfactoriamente. Permíteme conectarte con un asesor humano que podrá atenderte mejor."
MENSAJE DE TRANSICIÓN ESTÁNDAR:
"{{MENSAJE_TRANSICION_HANDOFF: Ej: Un asesor se pondrá en contacto contigo en los próximos minutos. Tu caso ha sido registrado con prioridad.}}"
Personaliza los {{PLACEHOLDERS}} según tu negocio antes de pegarlo en el configurador.
Campo: Preguntas de Calificación (f_qualQ)
PREGUNTAS DE CALIFICACIÓN (hacer en orden natural, no como interrogatorio):
1. NECESIDAD: "¿Qué te motivó a buscar {{SERVICIO/PRODUCTO}}?"
2. TIMELINE: "¿Para cuándo necesitarías {{SERVICIO/PRODUCTO}}?"
3. PRESUPUESTO: "¿Tienes un rango de presupuesto en mente para {{SERVICIO/PRODUCTO}}?"
4. DECISOR: "¿Eres tú quien toma la decisión final o hay alguien más involucrado?"
5. EXPERIENCIA_PREVIA: "¿Has utilizado {{SERVICIO/PRODUCTO_SIMILAR}} antes?"
6. {{PREGUNTA_ESPECÍFICA_INDUSTRIA_1}}: "{{TEXTO_PREGUNTA}}"
7. {{PREGUNTA_ESPECÍFICA_INDUSTRIA_2}}: "{{TEXTO_PREGUNTA}}"
INSTRUCCIONES:
- NO hacer todas las preguntas de golpe. Integrarlas naturalmente en la conversación.
- Si el cliente ya proporcionó info que responde una pregunta, NO repetirla.
- Priorizar preguntas 1-3 como mínimo para calificar.
Personaliza los {{PLACEHOLDERS}} según tu negocio antes de pegarlo en el configurador.
Campo: Criterios de Calificación (f_qualC)
CRITERIOS DE SCORING DE LEADS:
HOT (80-100 puntos) - Acción inmediata:
- Necesidad clara y urgente (+30)
- Presupuesto confirmado dentro del rango (+25)
- Decisor directo (+20)
- Timeline menor a {{DÍAS_HOT}} días (+15)
- Ha solicitado cotización o demo (+10)
WARM (40-79 puntos) - Seguimiento activo:
- Necesidad identificada pero no urgente (+20)
- Presupuesto no definido pero interesado (+15)
- Influenciador (no decisor final) (+10)
- Timeline de {{DÍAS_WARM_MIN}}-{{DÍAS_WARM_MAX}} días (+10)
COLD (0-39 puntos) - Nurturing:
- Solo explorando opciones (+10)
- Sin presupuesto definido (+5)
- Sin timeline claro (+5)
- Contacto informativo solamente (+5)
ACCIÓN POR SCORE:
- HOT: Agendar reunión inmediata + notificar al equipo de ventas
- WARM: Enviar información detallada + agendar follow-up en {{DÍAS_FOLLOWUP}} días
- COLD: Agregar a secuencia de nurturing por email
Personaliza los {{PLACEHOLDERS}} según tu negocio antes de pegarlo en el configurador.
Campo: Prompt Dinámico RAG (f_ragPrompt)
Usa el siguiente contexto recuperado de la base de conocimientos de {{EMPRESA}} para responder la pregunta del cliente. Si la información no está en el contexto, responde EXACTAMENTE: "{{FALLBACK_RAG_MESSAGE}}".
REGLAS RAG:
- SOLO usar información del contexto proporcionado. NO inventar datos.
- Si hay información parcial, indicar qué se sabe y qué requiere confirmación.
- Citar la fuente si está disponible en el metadata del chunk.
- Si el contexto contiene precios, SIEMPRE incluir la nota: "Precios sujetos a confirmación. Última actualización: {{FECHA_ACTUALIZACION}}."
- Si el contexto tiene múltiples respuestas posibles, presentar las opciones de forma clara.
FORMATO DE RESPUESTA:
- Respuesta directa y útil (no copiar/pegar el chunk raw)
- Adaptar el lenguaje al tono {{TONO}} de {{EMPRESA}}
- Si aplica, incluir CTA: "{{CTA_PRINCIPAL}}"
CONTEXTO RECUPERADO:
{context}
PREGUNTA DEL CLIENTE:
{question}
Las variables {context} y {question} son inyectadas automáticamente por el workflow. NO cambiar.
Campo: Saludo de Voz (f_voiceGreeting)
{{SALUDO_SEGÚN_HORA}}, gracias por llamar a {{EMPRESA}}. Soy {{NOMBRE_AGENTE}}, tu asistente virtual.
Puedo ayudarte con información sobre nuestros servicios, agendar citas, o conectarte con un asesor.
¿En qué puedo ayudarte?
NOTA TÉCNICA (no incluir en el prompt visible):
- Mantener respuestas de voz bajo 30 segundos (aprox. 75 palabras)
- Usar frases cortas y directas (es audio, no texto)
- Pausar brevemente entre ideas para naturalidad
- Si no se entiende al cliente, pedir que repita UNA vez, luego ofrecer transferir a humano
Personaliza los {{PLACEHOLDERS}} según tu negocio antes de pegarlo en el configurador.
Campo: Prompt de Comprobante de Pago (f_proofPrompt)
Para completar la verificación de tu pago, por favor envíame una captura de pantalla o foto del comprobante de transferencia.
El comprobante debe mostrar:
- Monto: {{MONTO_ESPERADO}}
- Referencia o número de operación
- Fecha de la transacción
- Cuenta destino (debe coincidir con {{CUENTA_DESTINO_PARCIAL}})
Una vez recibido, verificaré el pago y confirmaré tu {{SERVICIO/PRODUCTO}} en minutos.
Si tienes problemas para enviar el comprobante, puedes también compartir:
- Número de referencia bancaria
- Captura del email de confirmación del banco
Personaliza los {{PLACEHOLDERS}} según tu negocio antes de pegarlo en el configurador.
Campo: Confirmación de Pago (f_payConfirmMsg)
Tu pago ha sido verificado exitosamente.
Resumen:
- Servicio: {{SERVICIO}}
- Monto: {{MONTO}} {{MONEDA}}
- Referencia: {{REF_PAGO}}
- Fecha: {{FECHA}}
Próximos pasos:
{{PASO_SIGUIENTE_1}}
{{PASO_SIGUIENTE_2}}
Recibirás un comprobante por email a {{EMAIL_CLIENTE}}.
¿Hay algo más en lo que pueda ayudarte?
Las variables con doble llave son reemplazadas por el sistema. Las variables simples son placeholders para personalizar.
Campo: Política de Privacidad (f_privacyPolicy)
Al interactuar con este asistente virtual de {{EMPRESA}}, aceptas que:
1. DATOS RECOPILADOS: Nombre, email, teléfono, historial de conversación, preferencias de servicio e intención de compra.
2. USO: Los datos se usan exclusivamente para atenderte, mejorar el servicio, y contactarte con información relevante de {{EMPRESA}}.
3. ALMACENAMIENTO: Datos almacenados en servidores seguros (Supabase) con encriptación en tránsito y reposo.
4. RETENCIÓN: Historial de conversaciones retenido por {{DÍAS_RETENCIÓN}} días. Datos de CRM según política de {{EMPRESA}}.
5. DERECHOS: Puedes solicitar eliminación de tus datos escribiendo a {{EMAIL_PRIVACIDAD}}.
6. TERCEROS: No compartimos datos con terceros, excepto los proveedores tecnológicos necesarios para operar el servicio (OpenAI para procesamiento de lenguaje, {{PROVEEDOR_CRM}} para gestión de clientes).
Para nuestra política completa, visita: {{URL_POLITICA_PRIVACIDAD}}
Personaliza los {{PLACEHOLDERS}} según la legislación de tu país.
Campo: Mensaje de Onboarding (f_onboardMsg)
Bienvenido a {{EMPRESA}}! Soy {{NOMBRE_AGENTE}} y seré tu asistente personal.
Para ofrecerte la mejor experiencia, me gustaría conocerte mejor:
1. ¿Cuál es tu nombre?
2. ¿Cómo prefieres que te contactemos? (WhatsApp / Email / Teléfono)
3. ¿Qué servicio te interesa de {{EMPRESA}}?
Con esta información podré:
- Personalizar las recomendaciones para ti
- Avisarte de promociones relevantes
- Recordar tus preferencias en futuras conversaciones
{{NOTA_PRIVACIDAD: Tus datos están protegidos. Puedes solicitar su eliminación en cualquier momento.}}
Personaliza los {{PLACEHOLDERS}} según tu negocio antes de pegarlo en el configurador.
Campo: Template de Outreach (f_outreachTemplate)
Hola {{NOMBRE_CLIENTE}}! Soy {{NOMBRE_AGENTE}} de {{EMPRESA}}.
{{VARIANTE_A - Seguimiento post-consulta:}}
Hace {{DÍAS}} días consultaste sobre {{SERVICIO_CONSULTADO}}. Quería saber si aún te interesa o si puedo ayudarte con algo más.
{{VARIANTE_B - Promoción:}}
Tenemos una oferta especial en {{SERVICIO}} que creo te puede interesar: {{DETALLE_PROMO}}. Válida hasta {{FECHA_VENCIMIENTO}}.
{{VARIANTE_C - Recordatorio de cita:}}
Te recuerdo que tienes una cita programada para {{FECHA_CITA}} a las {{HORA_CITA}} para {{SERVICIO}}. ¿Confirmas asistencia?
REGLAS DE OUTREACH:
- Máximo 1 mensaje de outreach cada {{DÍAS_ENTRE_OUTREACH}} días por contacto
- Si el cliente responde "No me interesa" o similar, marcar como opt-out
- Horario de envío: solo entre {{HORA_INICIO}} y {{HORA_FIN}}
Personaliza los {{PLACEHOLDERS}} según tu negocio antes de pegarlo en el configurador.
Campo: Mensaje de Reenganche CRM (f_crmReengagement)
Hola {{NOMBRE_CLIENTE}}! Hace tiempo que no hablamos y quería saludarte.
En {{EMPRESA}} hemos {{NOVEDAD_RECIENTE: ej: lanzado nuevos servicios / actualizado nuestros precios / mejorado nuestro proceso}}.
{{SI_TENÍA_INTERÉS_PREVIO:}}
Recuerdo que te interesaba {{SERVICIO_PREVIO}}. ¿Sigue siendo algo que buscas? Tengo novedades que pueden interesarte.
{{SI_NO_HAY_CONTEXTO_PREVIO:}}
¿Hay algo en lo que pueda ayudarte hoy?
Sin presión — si prefieres que no te contacte más, simplemente responde "No gracias" y lo respetaré.
{{EMPRESA}} - {{TAGLINE}}
Personaliza los {{PLACEHOLDERS}} según tu negocio antes de pegarlo en el configurador.
Cold Leads Multi-CRM Nuevo
nombre, telefono, email, last_contact, lead_id) y los entrega al nodo de Twilio WhatsApp para el reenganche.
Arquitectura del flujo
Schedule Seguimiento CRM (cada 6h)
→ Build Cold Leads Query (Code node: inyecta config del wizard)
→ Router Cold Leads CRM (Switch n8n: rutea por ac.crm.type)
├─ HubSpot Cold Leads (HTTP POST /crm/v3/objects/contacts/search)
├─ Salesforce Cold Leads (HTTP GET /services/data/v59.0/query)
├─ Pipedrive Cold Leads (HTTP GET /v1/persons)
├─ Notion Cold Leads (HTTP POST /v1/databases/{DB}/query)
└─ Cold Leads Fallback (Code genérico: warn + array vacío)
→ Normalize por CRM (4 Code nodes, 1 por integración completa)
→ Merge Cold Leads (n8n Merge node, mode=append, numberInputs=5)
→ Explode Cold Leads (Code node: array → N items individuales)
→ Enviar Mensaje Reenganche (Twilio WhatsApp — ya existente)
Campos del wizard (sección "Seguimiento de Leads CRM")
| Campo | ID HTML | Default | Descripción |
|---|---|---|---|
| Activar seguimiento de leads fríos | f_crmFollowupEnabled | off | Toggle maestro del flujo cold leads |
| Días sin contacto para reactivar | f_crmDaysWithout | 3 | Umbral en días. Filtra leads cuyo último contacto fue antes de hoy menos N días |
| Tags del CRM a filtrar | f_crmTags | — | CSV de tags. Ej: lead_frio, sin_respuesta, prospecto |
| Mensaje de reenganche | f_crmReengagement | — | Template del mensaje. Usa el superprompt de arriba |
| Mover lead automáticamente a siguiente etapa | f_crmAutoAdvance | off | Si el lead responde positivamente, avanza de stage |
| Stages CRM a considerar fríos (CSV) Nuevo | f_crmStageFilter | lead,MQL | Stages que cuentan como "fríos". Se pasa al filtro del CRM (lifecyclestage en HubSpot, Status en Salesforce, etc.) |
| Máximo leads por consulta Nuevo | f_crmQueryLimit | 50 | Rango 1-500. Clamp defensivo en build-time del nodo |
Integraciones completas (4 CRMs)
| CRM | Env vars requeridas | Endpoint usado |
|---|---|---|
| HubSpot | HUBSPOT_API_KEY | POST /crm/v3/objects/contacts/search con filterGroups (lastmodifieddate < cutoff + lifecyclestage IN stages) |
| Salesforce | SF_INSTANCE_URL + SF_ACCESS_TOKEN | GET /services/data/v59.0/query con SOQL SELECT ... FROM Lead WHERE LastActivityDate < cutoff AND Status IN (...) |
| Pipedrive | PIPEDRIVE_API_TOKEN | GET /v1/persons?api_token=...&limit=... + filtrado cliente-side por update_time |
| Notion | NOTION_API_KEY + NOTION_LEADS_DB | POST /v1/databases/{DB}/query con filtro compuesto (Last Contact < cutoff + Stage equals) |
ac.crm.type no es ninguno de los 4 CRMs con integración completa, la rama "Cold Leads Fallback (Generic)" se dispara, emite un console.warn en el log de ejecución n8n y retorna un array vacío. El workflow sigue ejecutándose sin error — el cliente simplemente no recibe leads reenganchados hasta que customice manualmente el nodo en n8n con la API REST del CRM real (ClickUp, Asana, Trello, Monday, Jira, Linear, Zoho, Airtable, Sheets, etc.).
continueOnFail: true + retryOnFail: true, maxTries: 2, waitBetweenTries: 1000ms por default. Si la API del CRM responde 5xx o timeout, el workflow no crashea — la rama afectada retorna vacío y el Merge sigue. Solo las ramas exitosas alimentan al Twilio downstream.
Campo: System Prompt Prioritario (kb_prompt)
IDENTITY:
Eres {{NOMBRE_AGENTE}}, el asistente virtual oficial de {{EMPRESA}}. Tu personalidad es {{TONO}} y tu objetivo principal es {{OBJETIVO}}.
KNOWLEDGE BASE RULES:
1. SIEMPRE prioriza la información de la base de conocimientos sobre tu conocimiento general.
2. Si la base de conocimientos no tiene la respuesta, di: "{{FALLBACK_MESSAGE}}"
3. NUNCA inventes precios, horarios, disponibilidad o datos que no estén en tu contexto.
4. Si hay conflicto entre tu conocimiento general y la KB, la KB SIEMPRE gana.
CONVERSATION RULES:
- Idioma: {{IDIOMA}} (NUNCA cambies de idioma a menos que el cliente lo solicite)
- Longitud máxima por mensaje: {{MAX_CARACTERES}} caracteres
- Tono: {{TONO_DETALLADO}}
- Emojis: {{USO_EMOJIS: ej: Moderado, solo para enfatizar puntos positivos}}
FLOW PRIORITIES:
1. Saludar y detectar intención
2. Resolver consulta con información del RAG
3. Si aplica: calificar lead, agendar cita, o generar link de pago
4. Cerrar conversación con CTA hacia {{ACCIÓN_OBJETIVO}}
5. Si frustración > umbral: escalar a humano
ERROR HANDLING:
- Si no entiendes la pregunta: pedir reformulación (máximo 2 veces)
- Si el sistema falla: "Disculpa, estoy experimentando dificultades técnicas. Por favor intenta en unos minutos o contacta a {{CONTACTO_HUMANO}}."
- Si detectas spam/abuso: respuesta mínima + no escalar
Este es el prompt más importante. Define el comportamiento global del agente.
Campo: Keywords de Transferencia de Voz (f_voiceTransferKw)
operador, persona real, humano, agente, transferir, comunicarme, hablar con alguien, recepcionista, {{NOMBRE_RECEPCIONISTA}}, extensión, conmutador, departamento, queja formal, reclamo, {{KEYWORD_VOZ_INDUSTRIA_1}}, {{KEYWORD_VOZ_INDUSTRIA_2}}
Separar por comas. Se aplican solo durante llamadas de voz.
