Industrial Nodes

INDUSTRIAL NODES

AI Agent Configurator — Guia Completa
Documento oficial de configuracion y operacion del panel de control de inferencia para agentes de inteligencia artificial. Cubre la herramienta al 100% tanto para administradores como para empresas.
16 Pasos
JSON Auto-generado
Pagos Multi-region
Memoria de Usuarios
RAG Configurable
Llamadas & Voz
Rate Limiting & Anti-Spam
Error Handler
Idempotency Check
Actualizada: Julio 2026

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.

Analogia: INDUSTRIAL NODES es como el panel de control de un auto de Formula 1. Tu ajustas cada parametro (motor, suspension, aerodinamica) y el auto (tu agente IA) se comporta exactamente como lo configuraste.

Para quien es?

RolQue haceSecciones
EmpresaLlena datos de su negocio: servicios, precios, horarios, personalidad del agente, metodos de pagoPasos 1-8
AdminConfigura infraestructura tecnica: APIs, credenciales, RAG, voz, outreach, triggers, pipeline, integracionesPasos 9-16
AmbosRevisan juntos los flujos, validan la configuracion y exportan el JSON finalPaso 16 + Validacion

Que logra?

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

#Use caseMecánicaIndustrias típicasDetalle
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
Caso real en producción: un sistema real en producción (empresa de tratamiento de agua, Panamá · 2026) que atiende leads sin caídas, con un pico de 140 leads/hora y 80 leads/hora sostenido. Debutó en vivo en el SUMMIT FOR WELLBEING 2026.
Recursos relacionados:
  • 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.

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
La magia está en la configuración: Industrial Nodes genera un paquete de workflows perfectamente estructurado y listo para producción. Puedes exportarlo como ZIP troceado (un archivo por workflow, y el conjunto se adapta a lo que actives) o desplegarlo directo a tu n8n — cloud o local — desde el propio wizard. n8n es el motor que ejecuta tu agente 24/7.

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:

Arquitectura de Fallback Múltiple

El negocio nunca se detiene: La arquitectura cuenta con sistemas redundantes. Si un proveedor falla, el workflow migra automáticamente a alternativas viables.

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.

Antes de empezar: Ten a mano: datos fiscales, lista de servicios con precios, horarios, metodos de pago, tono de comunicacion, y preguntas clave para calificar clientes.

Checklist de preparacion

Todos los campos son adaptables a cualquier tipo de negocio.

Campos a llenar (Explicación a detalle)

CampoDescripcionEjemplo
NombreNombre completo del negocioConsultorio Medico Dr. Perez
IndustriaSector del negocioSalud, Odontologia, Legal, E-commerce...
Pais / CiudadUbicacion (clave para dialecto y referencias geográficas)Caracas, Venezuela
IdiomaIdioma principal (limita o expande el comportamiento NLU)Espanol, English, Bilingue
DescripcionQue haces y que ofreces (debe ser muy especifico)Consultorio medico general...
Sitio webURL del negociohttps://www.midominio.com
EmailEmail de contactoinfo@empresa.com
Cliente idealA quien atiendesFamilias y adultos 25-60
Ticket promedioRango de preciosBajo, Medio, Alto, Empresarial
Volumen/mesCantidad de consultas esperadasBajo, 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 de entrada

CanalTipoNota
WhatsAppChatEl mas usado. Requiere WhatsApp Business API
SMSTextoRequiere Twilio o similar
EmailCorreoConsultas formales y envio de facturas
VozLlamadaEl agente habla por telefono (paso 10)
Instagram DMChatRequiere Instagram Business API
Web ChatChatWidget embebido en tu pagina web
TelegramChatVia Telegram Bot API
MessengerChatVia Facebook Page API

Estrategias fuera de horario

EstrategiaQue hace
Mensaje automaticoResponde con un mensaje fijo
Recolectar datosPide nombre, telefono y motivo. Guarda en CRM
EmergenciaOfrece un numero de emergencia
24/7El agente nunca descansa
Regla de oro para Voz: Si el canal es Voz y el usuario quiere pagar, el agente NUNCA lee un link de pago por telefono. En su lugar dice: "Te envio el link de pago por email" y lo dispara por el canal alternativo configurado.
ModuloDescripcion
FAQResponde preguntas frecuentes basandose en tu documentacion (RAG)
Lead QualificationCalifica prospectos (frio/templado/caliente)
SchedulingAgenda citas presenciales o virtuales
DiagnosticoIdentifica necesidades del cliente
VentasPresenta servicios, precios y cotizaciones
SeguimientoFollow-up post-cita automatico
DocumentosEnvia formularios y materiales
PagosGenera links de pago y factura
EscaladoTransfiere a un humano cuando es necesario
RecordatoriosConfirmaciones automaticas de citas

Motor de IA

ModeloFortalezaCosto
GPT-4oEl mas versatil$$
GPT-4o MiniRapido y economico$
Claude Sonnet / HaikuRazonamiento largo, naturalidad$$ / $
Gemini ProDocumentos largos, multimodal$$
DeepSeek V3Economico, buen espanol$
GLM-5Alta capacidad$$
Selector en 3 niveles. El modelo ahora se elige con tres desplegables separados: Servicio (Anthropic, OpenAI, Google, DeepSeek, Zhipu…), Modelo (Claude Opus, GPT-4o, Gemini Pro…) y Versión (4.8, 4o, 2.5 Pro…). Elige el servicio primero y la lista de modelos se filtra sola. Aplica también al "Modelo Base de Inferencia" de la Base de Conocimiento.

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).

Este paso es critico. Si un servicio no esta aqui, el agente no lo ofrecera.

Tabla de servicios

CampoDescripcionEjemplo
NombreNombre visibleConsulta General
DescripcionBreve descripcionEvaluacion completa de 30 min
DuracionCuanto dura30 min, 45 min, 1 hora
PrecioCosto$40, $80, Gratis
ActivoToggle on/offUnchecked = no se ofrece

Logica de recomendacion

Estrategia upsell

EstrategiaQue hace
Sin upsellSolo sugiere lo que el cliente pide
SutilMenciona un servicio adicional sin insistir
ActivoPresenta activamente servicios complementarios
CondicionalSolo sugiere si cumple ciertos criterios

Calendario

PlataformaDescripcion
Google CalendarIntegracion directa con Google
CalendlyEl mas popular para agendar
Cal.comAlternativa open-source
AcuityPara servicios de belleza/salud
ManualEl agente anota, el equipo agenda

CRM

CRMIdeal paraCold Leads
GoHighLevelAgencias y funnels complejosFallback genérico
HubSpotEmpresas con equipos de ventas Integración completa
SalesforceEmpresas grandes Integración completa
PipedriveEquipos de ventas enfocados Integración completa
NotionStartups y equipos ágiles que usan Notion DB Integración completa
Zoho / Airtable / Sheets / ClickUp / Asana / Trello / Monday / Jira / LinearOtros flujos customFallback genérico (customizable en n8n)
Mapeo de campos: El admin configura como se mapean los campos locales (nombre, telefono, email) a los campos del CRM (firstName, phone, email). Activar Modo Admin (icono escudo) para ver esta opcion.

Frio (0-30)
Responder y cerrar

Templado (31-69)
Nurturing

Caliente (70-100)
Agendar / Cobrar

Flujos por temperatura

TemperaturaAcciones disponibles
CalienteAgendar cita, notificar humano, enviar oferta
TempladoContinuar conversacion, enviar contenido, consulta gratis
FrioResponder 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.

CampoQué describes
Activar clasificación avanzadaEnciende esta capa por encima del scoring básico.
Criterios de aceptaciónQué 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 rechazoQué leads descartar (fuera de cobertura, sin autorización, piden un servicio que no ofreces).
Señales de lead calienteFrases o comportamientos que indican urgencia (pide precio/disponibilidad, da una fecha concreta, compara con la competencia).
Señales de lead fríoSeñales de baja intención (solo explora, respuestas vagas, sin fechas ni contacto).
Preguntas de calificación: también puedes agregar preguntas extra que el agente hace tras capturar al lead, cada una con el objetivo que persigue (ej. "¿Para cuándo lo necesitas?" → detectar urgencia).
RAG = Retrieval-Augmented Generation. Permite al agente buscar en tus documentos antes de responder, evitando alucinaciones.

Parametros

ParametroQue controlaRecomendado
Top-K (1-20)Cuantos fragmentos recupera del Vector Store5
Score Threshold (0-1)Similitud minima para considerar relevante0.70
Chunk SizeTamano de cada fragmento512
OverlapSuperposicion entre fragmentos50

Modelo de Embeddings

ModeloProveedorNota
text-embedding-3-smallOpenAIMejor relacion calidad/precio
text-embedding-3-largeOpenAIMayor precision
multilingual-e5-largeMultiBueno para multiples idiomas
text-embedding-ada-002OpenAI (Legacy)Descontinuado pero compatible

Busqueda Hibrida NUEVO

Combina busqueda semantica (por significado) con BM25 (por palabras clave). El slider de ponderacion controla el balance:

Ejemplo concreto. Con 70% semantica, si un cliente escribe «quiero que me devuelvan la plata», el agente encuentra tu politica de «reembolsos» aunque no use esa palabra exacta. Con 100% palabras clave (0% semantica) solo la encontraria si escribe literalmente «reembolso». Sube la semantica para consultas conceptuales; bajala si tus usuarios buscan terminos exactos (codigos, nombres, referencias).

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.

Anti-alucinacion: Si el agente busca "Cardiologia" y el mapping esta bien configurado, solo buscara en la coleccion col_cardiologia y no se mezclara con pediatria.

Fallback behavior

OpcionQue hace
Decir que no tiene infoEl agente admite que no encontro datos
Usar LLM generalResponde con el conocimiento general del modelo
Hacer mas preguntasPide mas detalles al cliente

Configuración de Presets & Importación de Empresa

Entrenamiento del Agente: Los Presets le enseñan al Agente las reglas absolutas del negocio que trascienden el RAG tradicional.

¿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".

CampoDescripcionEjemplo
NombreNombre del agenteValeria, Carlos, Asistente Digital
RolQue funcion cumpleAsistente virtual, Coordinadora
TonoComo se comunicaProfesional calido, Formal, Amigable, Empatico, Directo
BienvenidaPrimer mensajeHola! Soy Valeria, tu asistente virtual...
Temas prohibidosLo que NO debe abordarNo diagnosticar, no revelar datos
Keywords escalamientoPalabras que disparan transferenciaemergencia, urgencia, queja
Turnos maximosMensajes antes de escalar3, 5, 8, 12, sin limite
EmojisFrecuencia de emojisModerados, 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.

CampoQué controla
Detección inteligente de handoffCuando 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 adicionalesFrases 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ónPor dónde se avisa a la persona: WhatsApp, Email, Slack o CRM.
CoordinadorLa persona o correo que recibe la conversación escalada.
País de referenciaCódigo de país para normalizar los teléfonos al formato internacional (E.164).
Modo Admin: Haz clic en el icono del escudo en la esquina superior derecha. Esto activa controles adicionales para agregar, editar y eliminar opciones en todas las secciones.
Credenciales: Todas las claves se manejan como variables de entorno. En el JSON exportado solo aparecen los ultimos 4 caracteres como mascara (***5678). Las credenciales reales se configuran en n8n.

Redes Sociales & Plataformas

PlataformaQue necesitasDonde obtenerlo
WhatsApp / InstagramToken OAuth/API + ID de cuenta Meta Console
Telegram BotToken del bot@BotFather en Telegram
n8n Cloud / Make.comWebhook Keys n8n / Make

Modelos de IA — Consolas de Desarrollador

Para ingresar credenciales en n8n usa el formato variable: {{ $env.OPENAI_API_KEY }}. Obtenlas aquí:

ProveedorURL directa de la Consola
OpenAIhttps://platform.openai.com/api-keys
Anthropichttps://console.anthropic.com/settings/keys
Google AI Studiohttps://aistudio.google.com/app/apikey

Servicios de Soporte (Pagos & Voz)

Proveedor / APIAcceso para Llaves de Conexión
Stripe (Pagos)Stripe Developer Dashboard
HubSpot (CRM)HubSpot Private Apps Console
Twilio / ElevenLabs (Voz)Twilio Console / ElevenLabs API
Servicios por categoría. Los servicios auxiliares ahora se agrupan por tipo — Pagos (Stripe, MercadoPago), Voz/Telefonía (Twilio, Vapi), Vector store (Pinecone) y Base de datos (Supabase) — para que sea claro qué es qué (antes aparecían mezclados).
Paso consolidado "Credenciales & APIs". Justo antes de Exportar hay un paso donde ves TODAS las claves que tu configuración necesita en un solo lugar: se prellena lo que ya escribiste aquí, se marca lo que falta según lo que activaste, e incluye los campos especiales de Meta (Phone Number ID, Access Token, Verify Token, App Secret y Business Account ID). No bloquea la exportación: puedes llenarlo ahí o luego en tu .env.
Como funciona: Cuando un cliente llama al numero configurado, el proveedor de voz envia el audio al workflow. La IA transcribe (STT), procesa y genera una respuesta que se convierte de vuelta a voz (TTS).

Llamada entrante

STT (transcripcion)

IA procesa

TTS (voz)

Cliente escucha

Comparativa de proveedores

ProveedorComplejidadSTT/TTSNota
VapiBajaIncluidoMejor para empezar rapido
Bland AIBajaIncluidoVoz natural
Retell AIBajaIncluidoOrientado a enterprise
TwilioAltaExternoMaximo control, menor costo a escala
GHL PhoneMediaIntegradoSolo si ya usas GHL
VonageAltaExternoAlternativa a Twilio
CustomAltaN/AURL webhook personalizada
Recomendacion: Usa Vapi o Bland AI para empezar. Manejan todo el audio por ti. Para mas control y menor costo a escala, usa Twilio con tu propio STT/TTS.

STT — Speech-to-Text

MotorFortaleza
OpenAI WhisperMuy preciso, multilingue, buen espanol
DeepgramUltra rapido, baja latencia
GoogleMuchas lenguas, integracion facil
AssemblyAIBueno para calls largos

TTS — Text-to-Speech

MotorFortaleza
ElevenLabsLas voces mas naturales del mercado
OpenAI TTSBuen balance calidad/precio
Google CloudMuchas voces, WaveNet
AzureVoces neuronales premium
PlayHTClonacion de voz

Configuracion del proveedor

CampoDescripcion
API KeyCredencial del proveedor de voz
Numero de telefonoNumero DID que recibe llamadas
Webhook URLURL de tu n8n donde llega la llamada
Account IDID de cuenta (Vapi, etc.)
Voice IDID de la voz en TTS (ej: ElevenLabs voice_id)
IdiomaIdioma de la voz (es, en, etc.)
VelocidadVelocidad de habla (0.5 a 2.0)

Comportamiento de llamada

ParametroDescripcionEjemplo
SaludoPrimer mensaje de la llamada"Hola, te comunicas con..."
Silencio maximoSegundos sin habla antes de accion10 seg
Duracion maximaMinutos maximos de llamada10 min
Palabras de transferenciaPalabras que disparan transferencia a humanohumano, agente, gerente
Numero de transferenciaA donde se transfiere+1 555 123 4567
Horario de llamadasRango de atencion telefonica08:00 - 18:00
Fuera de horarioQue hacer fuera de horarioVoicemail / Transferir / No contestar

Acciones Post-Llamada

AccionDescripcion
Guardar transcriptGuarda la transcripcion de la llamada
Calificar leadAsigna score segun contenido de la llamada
Agendar citaOfrece agendar si hubo interes
Resumen por WhatsAppEnvia resumen al cliente por WhatsApp
Notificar al duenoEnvia alerta al dueno
Actualizar pipelineMueve lead en CRM segun resultado
Webhook externoEnvia datos a sistema externo
Reactivo vs. proactivo: hasta aquí el agente respondía cuando alguien le escribía. El Outreach agrega disparadores programados que salen a buscar clientes por sí solos, en paralelo al webhook principal.

Activación y tipo

CampoQué controla
Activar outreach proactivoInterruptor maestro. Con él apagado, tu agente sigue siendo 100% reactivo.
Tipo de outreachSolo 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.

CampoQué controlaRecomendado
Subir lista CSVCarga 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 SheetsAlternativa al CSV: pega la URL de una hoja pública. No requiere API key.
Canal de envíoWhatsApp (Twilio), WhatsApp (Meta Cloud), Facebook Messenger, Email (SendGrid) o SMS (Twilio).WhatsApp
Máximo de mensajes por díaTope diario del batch para no quemar tu número.50
Plantilla del mensajeCuerpo del mensaje en frío. Admite variables {{nombre}}, {{empresa}}, {{segmento}}.
Personalizar con IADeja 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áximaHora 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íoDías de la semana en que corre la campaña.Lun · Mié · Vie
Zona horariaLa zona horaria del calendario de envío.La de tu país
Auto-rescan de leads nuevosCada cuántas horas re-escanea la lista buscando contactos nuevos. En 0 queda apagado.0 (off)
Cuida tu número: empieza con un tope diario bajo y una plantilla natural. El envío masivo agresivo puede hacer que WhatsApp bloquee tu línea.
Ventana de 24h de Meta: los canales WhatsApp (Meta Cloud) y Facebook Messenger solo permiten mensajes libres dentro de las 24 horas posteriores al último mensaje del cliente. Para salir en frío o reenganchar fuera de esa ventana necesitas una plantilla aprobada por Meta. Twilio y SMS no tienen esa restricción de plantilla.

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.

CampoQué controla
Activar seguimientoEnciende la rama de reactivación de leads del CRM.
Días sin contactoCuántos días de silencio antes de re-enganchar (ej. 3).
Etiquetas / StagesFiltra qué leads entran, por etiqueta y por etapa del pipeline (ej. lead,MQL,SQL).
Mensaje de reengancheTexto con el que el agente reabre la conversación.
Canal de reengancheElige por dónde sale el mensaje de reenganche: WhatsApp (Twilio), WhatsApp (Meta Cloud) o Facebook Messenger.
Avanzar de etapa automáticamenteMueve el lead en el CRM cuando responde.
Límite de consultaMá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.

CampoQué controlaRecomendado
Activar secuenciaEnciende la cadena automática de follow-ups.
Mensajes de la secuenciaAgrega 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 documentoSube un PDF/DOCX/CSV/TXT y el wizard trocea el texto en mensajes de la secuencia automáticamente.
Al responder el leadQué hacer cuando contesta: enrutar al pipeline con contexto, solo notificarte, o ambos.Ambos
Máx. follow-ups sin respuestaCuántos intentos antes de cerrar el lead.3
Etiqueta de campañaTag para segmentar y medir la campaña (ej. webinar_q1).
El estado vive en el workflow: la secuencia recuerda en qué paso va cada lead dentro de n8n. Si re-importas el workflow desde cero, ese progreso se reinicia.
¿Para qué sirven? El webhook principal se dispara cuando un cliente escribe. Los triggers agregan otras formas de arrancar el flujo: una hora programada, un formulario web, un correo entrante, otro workflow, etc. Cada uno corre por su cuenta y puede alimentar todo el pipeline o solo un módulo.

Tipos disponibles

TipoCuándo se disparaQué configuras
Trigger manualCuando lo ejecutas a mano desde n8n (ideal para pruebas).Nada.
Cron personalizadoEn un horario recurrente que tú defines.Expresión cron (ej. 0 9 * * 1 = lunes 9am).
Formulario web públicoCuando alguien envía un formulario alojado por n8n.Título del formulario.
Evento del workflowAl activarse el workflow.Nada.
Sub-workflowCuando 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 propioCuando 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.

Los triggers personalizados (incluidos los que creas desde cero) funcionan en ambos wizards: soporte (paso 16) y contenido (paso 12). En contenido cada trigger dispara un job del pipeline de vídeo.

¿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.

Ejemplo: un cron los lunes a las 9am que dispara el módulo de reportes y te manda el resumen de la semana, mientras el webhook de WhatsApp sigue atendiendo clientes en paralelo.

El Pipeline de Orquestación

El orden altera el producto: La automatización IA es secuencial. Tu agente procesará los eventos de izquierda a derecha según el orden que configures.

Ejemplo Visual de Lógica de Flujo:

INCORRECTO:
Intentar Vender
Validar Leads
Consultar Base de Datos
CORRECTO:
1. Validar / Calificar
2. Consultar Base Datos (RAG)
3. Presentar Venta / Cobrar

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.

Metodos de pago disponibles

MetodoRegionTipoComo funciona
StripeInternacionalAPICheckout Session → link automatico
MercadoPagoLatamAPICheckout Pro → multiples metodos locales
PayPalInternacionalAPIConfirma por webhook con la API oficial verify-webhook-signature (OAuth). Env: PAYPAL_CLIENT_ID/PAYPAL_SECRET/PAYPAL_WEBHOOK_ID
SquareUSA / InternacionalCapturaSin webhook propio: el cliente envía el comprobante y el agente de visión (GPT-4V) lo verifica
WompiColombiaCapturaSin webhook propio: confirmación por captura (GPT-4V)
CulqiPerúCapturaSin webhook propio: confirmación por captura (GPT-4V)
PayULatam / regionalCapturaSin webhook propio: confirmación por captura (GPT-4V)
Pago Movil (VE)VenezuelaManualMuestra datos → cliente paga → envia captura
Transferencia Bancaria (Internacional)InternacionalManualMuestra datos bancarios (IBAN/SWIFT) para transferencia internacional desde cualquier país
ZelleUSAManualMuestra email Zelle → cliente envia
Binance PayCryptoAPIConfirma por firma HMAC-SHA512 local contra BINANCE_PAY_SECRET (sin llamada externa). Webhook de merchant → /webhook/lex-payment-callback
WiseInternacionalAPITransferencias internacionales
Confirmación por captura (Square/Wompi/Culqi/PayU): estos proveedores no tienen verificación por webhook en el agente. El cliente envía la captura del comprobante y el agente de visión (GPT-4V) la verifica — necesitas OPENAI_API_KEY. Los pasos exactos según los proveedores que actives salen en PASOS_MANUALES.md.

Plantilla de factura

CampoDescripcion
Tipo de documentoCotizacion (antes de cobrar), Factura (se cobra al generar), Solo link de pago
MonedaUSD, EUR, VES, COP, etc.
ImpuestoTasa (%) y nombre (IVA, GST, Tax)
Tax ID / RIFIdentificacion fiscal del negocio
Pie de facturaNota legal o condicion
Vigencia del link24h, 48h, 72h, 7 dias
RecordatorioSi no paga: sin recordatorio, 12h, 24h, 48h

Reglas de entrega por canal

Define como se entrega el link de pago segun el canal activo:

CanalAccion por defectoFallback
WhatsAppEnviar link directo
Instagram DMEnviar link directo
EmailEnviar link + factura PDF
VozOfrecer enviar por otro medioemail
Web ChatBoton embebido
TelegramEnviar link directo
SMSEnviar link corto
Voz + Pagos: El agente NUNCA lee un link de pago por telefono. Siempre ofrece enviarlo por otro canal (email/WhatsApp).

Verificacion de pagos manuales

IA muestra datos
de pago
Cliente paga
Envia captura
o referencia
Verificacion
CONFIRMADO
Metodo de verificacionQue hace
Dueno apruebaTu recibes notificacion con la captura y decides manualmente
Auto-verificarCompara monto + referencia automaticamente
IA revisa capturaLa IA lee la captura y recomienda aprobacion/rechazo
Temporizador del comprobante: cuando el cliente dice "ya te lo envío" y el pago es manual, el agente abre un registro con un plazo (15 min / 30 min / 1 h / 24 h, lo eliges en el wizard). Un cron barre los vencidos cada ~10 min y aplica tu política: cancelar la orden, recordar al cliente, o mantener abierto. El aviso sale por WhatsApp (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

  1. Confirmar pago — Marcar como pagado en CRM
  2. Enviar comprobante — Factura/receipt al cliente
  3. Agendar cita — Ofrecer agendar automaticamente
  4. Actualizar pipeline — Mover lead a "Pagado"
  5. Iniciar seguimiento — Activar secuencia de follow-up
  6. Pedir resena — Opcional, post-servicio
  7. 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.

CampoQué controlaRecomendado
Activar pagos fraccionadosEnciende la opción de cuotas.
Máximo de partesNúmero máximo de cuotas del plan (2-12).3
Días entre partesIntervalo entre cuotas.30
Canal de recordatoriosWhatsApp (Twilio), WhatsApp (Meta Cloud), Facebook Messenger, Email o SMS para avisar cada vencimiento. Meta aplica su ventana de 24h en mensajes proactivos.WhatsApp
Recordatorio N días antesCuántos días antes del vencimiento se avisa.2
Monto mínimo para fraccionarUmbral sobre el que el agente ofrece cuotas.100
Permitir pagos anticipadosSi el cliente puede adelantar cuotas o debe respetar las fechas.
Nota: el control de cuotas se registra en tu base de datos. La cobranza recurrente automática (Stripe/MercadoPago) puede requerir configuración adicional en n8n según tu proveedor.
Primer contacto
usuario nuevo
IA pide datos
(onboarding)

Guarda perfil
en storage
Conversacion futura
IA reconoce al usuario
Recupera perfil
y personaliza

Storage

OpcionIdeal para
SupabasePostgreSQL + API — el mas completo y recomendado
RedisCache ultra-rapido, temporal
AirtableInterfaz visual para el equipo
Google SheetsSimple y gratuito
MongoDBDocumentos flexibles, escalable
PostgreSQLBase de datos directa

Campos del perfil

CampoField IDObligatorio
Nombre completofull_nameSi
EmailemailSi
TelefonophoneSi
Pais / CiudadlocationNo
Empresa / OcupacionoccupationNo
PreferenciaspreferencesNo
Notas adicionalesnotesNo

Ambito de memoria

Privacidad

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
Separación por responsabilidad: cada workflow hace una sola cosa y se comunica con los demás. Puedes actualizar el agente sin tocar los pagos, o el follow-up sin tocar la entrada. La configuración es el "combustible" único de tu negocio: cambia el JSON → cambia el agente.
Tú eliges: monolito o troceado. En el paso final hay un interruptor «Trocear en múltiples workflows». Apagado entregas un solo 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.
Dos formas de implementar: (A) Deploy directo — desde el paso final del wizard, conecta la URL y API key de tu n8n (cloud o local) y el wizard sube todos los workflows por ti, adaptándolos automáticamente a la versión de n8n que uses (1.x o 2.x, seleccionable). (B) Importar manualmente — descarga el ZIP y sigue los pasos de abajo.

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áticamenteno 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 cuentaCó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.
Si no estás seguro, deja Community: es lo que aplica a las cuentas gratis (incluida la de prueba de n8n.cloud). Puedes cambiar de opinión y volver a exportar o desplegar cuando quieras.

Proceso de implementacion

Paso 0 — La base de datos (antes de todo): abre el fichero 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).
1
Importar los workflows

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.

2
Configurar variables de entorno

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 pgvectorSUPABASE_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.

3
Pegar la configuracion

Abre el nodo "Cargar Configuracion" y pega el contenido de configuracion_referencia.json. Reemplaza TODO el objeto de ejemplo.

4
Conectar credenciales

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).

5
Activar y probar

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.

Seguridad: El ZIP NO contiene API keys en texto plano. Todas las credenciales se manejan como variables de entorno ($env.NOMBRE_VAR) en n8n. El workflow es seguro para compartir.

Validacion (7 campos criticos)

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.

Ya no es solo "staging de blueprint": estos selectores ahora generan nodos reales en el workflow. Al elegir un proveedor (distinto de 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.
SelectorOpciones
StorageSupabase · AWS S3 · Cloudflare R2 · Cloudinary. Aplica al Generador de informes (R2 por defecto, o Supabase/S3/Cloudinary).
MensajeríaMeta WhatsApp · Twilio WhatsApp · Facebook Messenger · Slack · Telegram
EmailBrevo · Resend
LLMAnthropic · OpenAI · Gemini
PDFPDFShift · Gotenberg (self-hosted)
ConversionesMeta CAPI · Google Ads · TikTok Events. Multi-selección: se genera un flujo de tracking por cada red elegida.
ResearchBrave · Tavily · Perplexity · OpenAI (LLM) · Anthropic (LLM) · Gemini (LLM)
Acortador de URLsTinyURL · Bitly — acorta los links antes de enviarlos por WhatsApp
Destino de despliegue: aquí mismo eliges self-hosted (tu propio n8n en Docker/localhost) o cloud (n8n.cloud). El wizard adapta el workflow a la versión de n8n de destino. Este selector vive en el paso Exportar, no en Accesos & APIs.

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.

ToggleQué genera
Cola de follow-upsSub-workflow con cron + tabla Postgres followup_queue: encola y despacha seguimientos programados sin perder estado entre ejecuciones.
Generador de informesCadena 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 CRMWebhook /crm-sync que empuja y actualiza registros en el CRM elegido en el paso CRM.
Refresco OAuthCron que refresca los tokens de HubSpot / Salesforce / GoHighLevel antes de que expiren. Persiste en la tabla oauth_tokens.
Máquina de estadosState machine por entidad persistida en Supabase. Defines los estados y transiciones en un JSON; el sub-workflow los aplica.

Cliente
escribe

Webhook

Rate
Limiter

Idempotency
Check

Memoria?

AI Agent

Router

FAQ

Calificar

Agendar

Cobrar

Escalar

CRM

Notificar

Responder

Pago Automatico (Stripe, MercadoPago, PayPal)


AUTOMATICO
IA genera
link
Cliente
paga
Webhook
confirma
CONFIRMADO
Post-pago

Pago Manual (Pago Movil, Transferencia)


MANUAL
IA muestra
datos
Paga y
vuelve
Envia
captura
VERIFICAR
CONFIRMADO

Mensaje

Buscar perfil
Existe?
NO — Nuevo
Onboarding → Crear perfil
SI — Conocido
Cargar perfil → Personalizar

Fin de conversacion

Actualizar perfil
{
  "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 }
}

Nodos incluidos en el workflow

NodoTipoFuncion
Error HandlerError Trigger v1Captura errores del workflow y notifica por email
Notificar Error DuenoHTTP Request v4.2Envia alerta con detalles del error
Webhook Entrada MensajesWebhook v2Recibe mensajes (responseMode: lastNode)
Rate LimiterCode v2Anti-spam por IP/usuario (max 10 req/min)
Rate Limit Excedido?If v2Evalua si se debe rechazar la solicitud
Idempotency CheckCode v2Evita procesar el mismo mensaje dos veces
Es duplicado?If v2Descarta mensajes ya procesados
Cargar ConfiguracionCode v2Extrae agent_config del payload
Gestion Memoria UsuarioCode v2Busca perfil por phone/email
Es usuario nuevoSwitch v3Decide onboarding o continuar
Generar Embedding (OpenAI)HTTP Request v4.2Convierte mensaje a vector para RAG
Buscar en Vector StoreHTTP Request v4.2Busca documentos relevantes en Pinecone
Inyectar Contexto RAGCode v2Arma system prompt con contexto RAG
Formatear Mensajes IACode v2Prepara array de mensajes para el modelo
Llamar Modelo IAHTTP Request v4.2OpenAI/Anthropic/Google/DeepSeek
Inferir IntencionCode v2Detecta agendar/pagar/escalar/calificar
Ruteo por IntencionSwitch v3Redirige al flujo correcto
Agendar en [Herramienta]HTTP Request v4.2Crea cita en Calendly/Google/Cal
Generar Link de PagoCode v2Crea link segun metodo de pago activo
Notificacion EscalamientoCode v2Prepara email de escalamiento
Enviar EscalamientoHTTP Request v4.2Envia email via Mailgun
Preparar Datos CRM / Actualizar CRMCode + HTTPPush de lead calificado al CRM
Respuesta General IACode v2Responde cuando la intencion es "general"
Responder al ClienteRespondToWebhook v1Devuelve respuesta JSON final
Webhook Confirmacion PagoWebhook v2Recibe webhooks de Stripe/MP
Webhook Llamada VozWebhook v2Recibe llamadas de Vapi/Twilio y responde la config del asistente (ver nota)
El webhook de voz no solo recibe — también responde: cuando el proveedor (Vapi) manda el evento 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

Proteccion automatica: Estos 3 nodos se ejecutan antes de cualquier logica de negocio. No requieren configuracion manual y protegen tu workflow contra abuso, duplicados y errores silenciosos.

Error
Handler

Notificar
Error

Stop
NodoComo funciona
Error HandlerSe 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 LimiterCuenta 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 CheckGenera 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.
Personalizacion: Puedes ajustar el limite de rate limiting (actualmente 10 req/min) y la ventana de idempotency (actualmente 1 hora) editando el codigo del nodo en n8n.

Variables de entorno necesarias

VariablePara queRequerida
$env.OPENAI_API_KEYEmbeddings + chat con modelo IASi
$env.PINECONE_API_KEYVector store para RAG — solo si eliges Pinecone (el default)Según vector store
$env.PINECONE_INDEXNombre del indice en Pinecone (solo con Pinecone)Según vector store
$env.PINECONE_ENVIRONMENTRegion del indice (ej. gcp-starter) (solo con Pinecone)Según vector store
$env.SUPABASE_URL / $env.SUPABASE_KEYVector 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_KEYActualizar contactos en CRMOpcional
$env.MAILGUN_API_KEYEnviar notificaciones por email (incluido Error Handler)Opcional
$env.MAILGUN_DOMAINDominio de MailgunOpcional
$env.OWNER_EMAILEmail del dueno para alertas y erroresOpcional
$env.STRIPE_SECRET_KEYGenerar links de pagoOpcional
$env.VOICE_PROVIDER_API_KEYProveedor de voz (Vapi, Twilio)Opcional
Seguridad: carga tus API keys y credenciales reales en el wizard solo si vas a mantener total privacidad sobre los documentos generados — el ZIP y el .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.
ServicioTipoEndpoint
StripeWebhook IN/webhook/lex-payment-callback
MercadoPagoWebhook IN/webhook/lex-payment-callback
TwilioWebhook IN/webhook/lex-voice-call
Meta (WhatsApp/IG)Webhook IN/webhook/lex-agent-message
Vapi / BlandWebhook IN/webhook/lex-voice-call
Sistema propioWebhook OUTConfigurable en paso 14
Calendly / GoogleAPI OUTCrear citas
CRMAPI OUTCrear/actualizar leads

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.

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

  1. Rate Limiting Distribuido: vía RPC rate_limit_check en Supabase con degradación gracil. Si Supabase no responde, el sistema entra en modo degradado con flag _rate_degraded en lugar de fallar.
  2. 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.
  3. Circuit Breaker LLM: estado CLOSED → OPEN → HALF_OPEN → CLOSED con 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.
  4. DLQ + Retry Exponencial: webhooks externos con wh_retry: 3 y fallback a Dead Letter Queue (tablas media_dlq, cog_crm_ops_log) si todos los reintentos fallan.
  5. 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.
  6. 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.

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

Qué valida

Tabla de node types n8n 1.x soportados (2026)

TypetypeVersion actualVersions válidasDocs
n8n-nodes-base.webhook2[1, 1.1, 2]Docs
n8n-nodes-base.httpRequest4.4[1, 2, 3, 4, 4.1, 4.2, 4.3, 4.4]Docs
n8n-nodes-base.code2[1, 2]Docs
n8n-nodes-base.switch3[1, 2, 3]Docs
n8n-nodes-base.if2[1, 2]Docs
n8n-nodes-base.merge3[1, 2, 2.1, 3]Docs
n8n-nodes-base.wait1.1[1, 1.1]Docs
n8n-nodes-base.scheduleTrigger1.2[1, 1.1, 1.2]Docs
n8n-nodes-base.respondToWebhook1.5[1, 1.1, 1.2, 1.3, 1.4, 1.5]Docs
n8n-nodes-base.splitInBatches3[1, 2, 3]Docs
n8n-nodes-base.executeWorkflow1.2[1, 1.1, 1.2]Docs
n8n-nodes-base.formTrigger2.2[1, 2, 2.1, 2.2, 2.3]Docs
n8n-nodes-base.manualTrigger1[1]Docs
n8n-nodes-base.emailReadImap1[1]Docs
n8n-nodes-base.workflowTrigger1[1]Docs

n8n Core

VariableDescripciónDónde obtenerlaRequerida
WEBHOOK_URLURL base de tu instancia n8nTu dominio n8n (ej: https://n8n.tudominio.com)
EXECUTIONS_TIMEOUTTimeout global de ejecuciones (segundos)Valor recomendado: 3600Opcional
NODE_FUNCTION_ALLOW_BUILTINMó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 (self-hosted)

Supabase (REQUIRED)

VariableDescripciónDónde obtenerlaRequerida
SUPABASE_URLURL del proyecto SupabaseSupabase Dashboard → Settings → API → Project URL
SUPABASE_KEYService role key de SupabaseSupabase Dashboard → Settings → API → service_role (secret)
SUPABASE_STORAGE_BUCKETNombre del bucket de storageCrear en Supabase Storage. Default: lex-contentOpcional

LLM Providers (al menos uno)

VariableDescripciónDónde obtenerlaRequerida
OPENAI_API_KEYAPI key de OpenAI (GPT-4o, Whisper, DALL-E, embeddings)platform.openai.com/api-keysSí (recomendado)
ANTHROPIC_API_KEYAPI key de Anthropic (Claude)console.anthropic.comAlternativa
GOOGLE_AI_API_KEYAPI key de Google AI (Gemini)aistudio.google.comAlternativa

Handoff a humano

VariableDescripciónDónde obtenerlaRequerida
HANDOFF_RESUME_SECRETSecret para reanudar conversaciones post-handoffGenerar con openssl rand -hex 32Si usa handoff

Media APIs (Content Configurator)

VariableDescripciónDónde obtenerlaRequerida
ELEVENLABS_API_KEYVoz IA / TTS premiumelevenlabs.io → Profile → API KeyOpcional
FREESOUND_API_KEYEfectos de sonido gratuitosfreesound.orgOpcional
EPIDEMIC_SOUND_API_KEYMúsica de fondo premiumEpidemic Sound Partner APIOpcional
ARTLIST_API_KEYMúsica y SFX premiumArtlist Enterprise APIOpcional
PIXABAY_API_KEYImágenes/videos stock gratuitospixabay.com/apiOpcional
PEXELS_API_KEYImágenes/videos stock gratuitospexels.com/apiOpcional
UNSPLASH_API_KEYFotografía stock premiumunsplash.com/developersOpcional
SHUTTERSTOCK_API_KEYStock media premium (imágenes, video, música)shutterstock.com/developersOpcional

Image Generation

VariableDescripciónDónde obtenerlaRequerida
STABILITY_API_KEYStable Diffusion API (miniaturas, banners)platform.stability.aiOpcional
REPLICATE_API_TOKENModelos open-source via APIreplicate.comOpcional
NANO_BANANA_API_KEYGPU serverless para modelos customBanana.dev / Fal.ai dashboardOpcional
DALL_E_API_KEYDALL-E 3 (usa OPENAI_API_KEY si es la misma)Misma que OPENAI_API_KEYOpcional

Notificaciones

VariableDescripciónDónde obtenerlaRequerida
TWILIO_ACCOUNT_SIDSID de cuenta Twilioconsole.twilio.com → Account InfoSi usa SMS/voz
TWILIO_AUTH_TOKENAuth token de TwilioMismo dashboard de TwilioSi usa SMS/voz
TWILIO_PHONE_FROMNúmero de teléfono Twilio (formato +E.164)Twilio → Phone NumbersSi usa SMS/voz
OWNER_PHONETeléfono del dueño para alertasTu número personalOpcional
OWNER_EMAILEmail del dueño para alertasTu emailRecomendado
SENDGRID_API_KEYAPI key de SendGrid para emailsapp.sendgrid.comOpcional
SENDGRID_FROM_EMAILEmail remitente verificado en SendGridSendGrid → Sender AuthenticationOpcional
SLACK_WEBHOOK_URLWebhook de Slack para notificacionesSlack App → Incoming WebhooksOpcional
TELEGRAM_BOT_TOKENToken del bot de Telegram@BotFather en TelegramOpcional
TELEGRAM_CHAT_IDChat ID para notificaciones Telegram@userinfobot o API getUpdatesOpcional
RESEND_API_KEYAPI key de Resend (alternativa a SendGrid)resend.comOpcional
RESEND_FROMEmail remitente para ResendTu dominio verificado en ResendOpcional

Storage

VariableDescripciónDónde obtenerlaRequerida
AWS_S3_BUCKETBucket S3 para archivosAWS Console → S3Opcional
GOOGLE_CLOUD_STORAGE_BUCKETBucket GCS para archivosGoogle Cloud Console → StorageOpcional
R2_BUCKETBucket Cloudflare R2Cloudflare Dashboard → R2Opcional
R2_ENDPOINTEndpoint de Cloudflare R2Cloudflare R2 → SettingsOpcional

CRM (Cognitive Layer)

VariableDescripciónDónde obtenerlaRequerida
HUBSPOT_API_KEYAPI key de HubSpot CRMHubSpot → Settings → Integrations → Private AppsOpcional
SALESFORCE_CLIENT_IDClient ID OAuth2 de SalesforceSalesforce Setup → App ManagerOpcional
ZOHO_CRM_TOKENToken de API de Zoho CRMZoho API Console → Self ClientOpcional
PIPEDRIVE_API_TOKENToken de API de PipedrivePipedrive → Settings → Personal Preferences → APIOpcional
MONDAY_API_TOKENToken de API de Monday.comMonday.com → Developers → APIOpcional
NOTION_TOKENToken de integración NotionNotion → Settings → Connections → Develop or manage integrationsOpcional
NOTION_API_KEYAlias del token Notion usado por los nodos Cold Leads Multi-CRM. Puede ser el mismo valor que NOTION_TOKEN.Misma ubicación que NOTION_TOKENSi usa Notion como CRM de cold leads
NOTION_LEADS_DBID 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 URLSi usa Notion como CRM de cold leads
SF_INSTANCE_URLURL de la instancia Salesforce. Ej: https://miempresa.my.salesforce.comSalesforce → Setup → My DomainSi usa Salesforce como CRM de cold leads
SF_ACCESS_TOKENOAuth2 access token SalesforceSalesforce Setup → App Manager → Connected AppSi usa Salesforce como CRM de cold leads

Búsqueda Web + Video Cloud

VariableDescripciónDónde obtenerlaRequerida
TAVILY_API_KEYBúsqueda web IA para researchtavily.comOpcional
SERPAPI_KEYGoogle Search API wrapperserpapi.comOpcional
BRAVE_API_KEYBrave Search APIbrave.com/search/apiOpcional
SHOTSTACK_API_KEYAPI de renderizado de video clouddashboard.shotstack.ioSi usa video
CREATOMATE_API_KEYAlternativa a Shotstack para videocreatomate.comOpcional
Seguridad: NUNCA subas el archivo .env a Git. Asegúrate de que .gitignore lo excluya. En n8n, configura las variables en Settings → Variables.

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ódigoEstadoSignificado
200healthyTodos los checks pasan. Sistema operativo.
503degradedAl menos un check falla pero el sistema sigue operando con limitaciones.
503unhealthyChecks 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

ServicioConfiguración
Uptime RobotNew Monitor → HTTP(s) → URL: {{WEBHOOK_URL}}/webhook/lex-health → Interval: 5 min → Alert on 503
PingdomAdd Check → HTTP → URL del health endpoint → Check interval: 1 min → Alert contacts
Healthchecks.ioNew Check → Cron: */5 * * * * → Ping URL desde n8n Schedule Trigger cada 5 min
Better StackMonitors → New → HTTP → URL + Expected status 200 → Alertas por Slack/Email

Checklist de Despliegue

  1. Clonar/instalar n8n: npx n8n (local) o desplegar en n8n Cloud, Railway, o Docker. Verificar que sea n8n 1.x+.
  2. Importar workflow JSON: En n8n, ir a Workflows → Import from File → seleccionar el JSON exportado por el configurador.
  3. 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.
  4. Configurar credenciales en n8n: Settings → Variables → agregar cada variable del .env.example que tu agente necesite.
  5. 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.
  6. 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
  7. Activar workflow: En n8n, toggle "Active" en la esquina superior derecha del workflow.
  8. 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"}'
  9. Verificar /health:
    curl {{WEBHOOK_URL}}/webhook/lex-health
    Debe retornar {"status":"healthy"}.
  10. Configurar monitoreo: Conectar Uptime Robot, Pingdom o Healthchecks.io al endpoint /health (ver sección anterior).
  11. Backup del workflow: Guardar una copia del JSON del workflow en un repositorio Git. Configurar exports automáticos si es posible.
Listo para producción: Una vez completados todos los pasos, tu agente estará operativo 24/7 con monitoreo de /health, circuit breaker, rate limiting, y audit logging activos.

Campo: Bienvenida (f_welcome)

Superprompt: Mensaje de Bienvenida
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)

Superprompt: Descripción del Negocio
{{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)

Superprompt: Perfil del Cliente Ideal
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)

Superprompt: Límites y Temas Prohibidos
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)

Superprompt: Triggers de Escalamiento
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)

Superprompt: Instrucciones Extra del Agente
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)

Superprompt: Mensaje Fuera de Horario
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)

Superprompt: Ejemplos de Handoff a Humano
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)

Superprompt: Preguntas de Calificación de Leads
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)

Superprompt: Criterios de Calificación
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)

Superprompt: Prompt Dinámico RAG
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)

Superprompt: Saludo de Llamada de Voz
{{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)

Superprompt: Solicitud de Comprobante de Pago
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)

Superprompt: Mensaje de Confirmación de Pago
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)

Superprompt: Política de Privacidad
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)

Superprompt: Onboarding de Nuevos Usuarios
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)

Superprompt: Template de Outreach Proactivo
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)

Superprompt: Reenganche de Leads Fríos
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

Al activar Reenganche de Leads Fríos en el wizard, Industrial Nodes genera automáticamente una cadena de 13 nodos n8n que consulta tu CRM cada 6 horas, normaliza los leads fríos al formato canónico (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")

CampoID HTMLDefaultDescripción
Activar seguimiento de leads fríosf_crmFollowupEnabledoffToggle maestro del flujo cold leads
Días sin contacto para reactivarf_crmDaysWithout3Umbral en días. Filtra leads cuyo último contacto fue antes de hoy menos N días
Tags del CRM a filtrarf_crmTagsCSV de tags. Ej: lead_frio, sin_respuesta, prospecto
Mensaje de reenganchef_crmReengagementTemplate del mensaje. Usa el superprompt de arriba
Mover lead automáticamente a siguiente etapaf_crmAutoAdvanceoffSi el lead responde positivamente, avanza de stage
Stages CRM a considerar fríos (CSV) Nuevof_crmStageFilterlead,MQLStages que cuentan como "fríos". Se pasa al filtro del CRM (lifecyclestage en HubSpot, Status en Salesforce, etc.)
Máximo leads por consulta Nuevof_crmQueryLimit50Rango 1-500. Clamp defensivo en build-time del nodo

Integraciones completas (4 CRMs)

CRMEnv vars requeridasEndpoint usado
HubSpotHUBSPOT_API_KEYPOST /crm/v3/objects/contacts/search con filterGroups (lastmodifieddate < cutoff + lifecyclestage IN stages)
SalesforceSF_INSTANCE_URL + SF_ACCESS_TOKENGET /services/data/v59.0/query con SOQL SELECT ... FROM Lead WHERE LastActivityDate < cutoff AND Status IN (...)
PipedrivePIPEDRIVE_API_TOKENGET /v1/persons?api_token=...&limit=... + filtrado cliente-side por update_time
NotionNOTION_API_KEY + NOTION_LEADS_DBPOST /v1/databases/{DB}/query con filtro compuesto (Last Contact < cutoff + Stage equals)
Fallback genérico: si 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.).
Robustez de fábrica: cada nodo HTTP de los 4 CRMs lleva 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)

Superprompt: System Prompt Global (Knowledge Base)
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)

Superprompt: Keywords de Transferencia de Voz
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.

INDUSTRIAL NODES
AI Agent Configurator — Guía Completa
RAG híbrido · Llamadas de voz · Pagos multi-región · Memoria persistente · Reintentos y error handler · Health check