Conceptos de Runia Nexus
Canvas, versiones, sesiones, ownership, dual history, triggers e integraciones
Esta página asienta los conceptos que todas las demás asumen. Si vas a trabajar sobre Runia Nexus, leela una vez y te ahorra preguntas después.
Canvas
Un canvas es la definición visual de un agente: los nodos y las flechas que los conectan. Es lo que ves en el editor cuando abrís un agente para diseñarlo.
Un canvas siempre está asociado a una empresa (la del cliente final) y tiene un nombre y un estado. Cada empresa puede tener varios canvases (por ejemplo, uno por producto, uno por canal, uno para cobranzas).
Versiones
Cada vez que publicás un canvas, se crea una versión nueva y pasa a ser la activa. Las versiones anteriores no se pierden: quedan archivadas por si querés volver atrás.
El flujo típico:
- Editás el canvas. Los cambios viven en un borrador (no afecta producción).
- Probás el borrador.
- Cuando está listo, tocás publicar. Se crea la versión nueva y pasa a ser la que atiende.
- Las versiones viejas quedan como histórico.
Podés tener varias versiones publicadas en paralelo si querés, por ejemplo para hacer un A/B o mantener una versión distinta por segmento de clientes. Cada versión corre por su cuenta sin pisarse con las demás.
Nodos
Un nodo es una unidad de trabajo adentro del canvas: cuando la ejecución llega a un nodo, pasa algo (se manda un mensaje, el LLM responde, se hace una consulta a una integración, se bifurca el flow).
Los nodos están agrupados en cinco categorías:
- Triggers: puntos de entrada. Arrancan la ejecución cuando pasa algo (mensaje entrante, webhook, evento de integración, scheduled).
- Agents: nodos de IA conversacionales. El corazón del canvas. Tienen prompt, modelo, flow tools, política de memoria.
- Lógica: router, switch, reglas, fork/join, delay, channel switch. Para ramificar y controlar el flow.
- Acciones: send message, voice message, inject message, set variable, transfer to human, close session, http request, send template.
- Integraciones: nodos que ejecutan una acción de una integración conectada (consultar disponibilidad en Calendly, crear evento en Google Calendar, buscar en KB).
La referencia completa de cada nodo está en la sección Nodos.
Sesiones
Una sesión es una conversación en curso entre un contacto y un canal. Cada sesión tiene un contacto (por ejemplo, el número de WhatsApp del cliente), un canal (el número desde el que contesta el negocio) y un historial de mensajes.
Las sesiones expiran por inactividad. El tiempo se configura por
cliente, según el tipo de negocio (una consulta médica puede necesitar
20 minutos de espera, un helpdesk puede aguantar una hora). Cuando
expira, si el canvas tiene un trigger session_timeout, podés dispararle
un flow (tipo "¿seguís ahí?" o cerrarla con un mensaje de despedida).
Ownership
Toda sesión tiene un owner: la IA o un humano específico. El owner define quién está contestando desde el lado del negocio.
- Owner IA: el canvas se ejecuta en cada mensaje entrante. El agente responde.
- Owner humano: el canvas no se ejecuta. La conversación la maneja ese operador desde la bandeja de entrada hasta que la cierra o la devuelve a la IA.
El cambio de owner lo puede disparar el agente (llamando al flow tool
ft_transfer_to_human) o un operador humano (respondiendo desde la
bandeja, lo que toma la sesión automáticamente).
Dual history
Concepto crítico y fácil de confundir. Cada sesión tiene dos historiales separados:
- Historial del inbox — los mensajes que ve el operador humano en la bandeja de entrada. Es lo real, lo que el cliente mandó y lo que el bot contestó.
- Historial del LLM — lo que el agente de IA "recuerda" como contexto de la conversación.
Por qué dos historiales
Porque a veces el canvas necesita manipular lo que el agente recuerda sin tocar lo que el operador ve. Ejemplos:
- Inyectar contexto oculto al agente (resultado de una llamada a una API, data de un webhook, una nota interna) sin que aparezca como mensaje en el inbox.
- Compactar la memoria del agente cuando se pone larga, sin perder los mensajes que el operador necesita para auditar.
- Limpiar la memoria del agente para que arranque "de cero" en una parte del flow, sin borrar la conversación real.
Qué nodo toca cada historial
| Nodo | Inbox | Memoria del agente |
|---|---|---|
send_message | ✅ Agrega el mensaje | ✅ Agrega el mensaje |
inject_message | ❌ No toca | ✅ Agrega (contexto invisible) |
agent | ❌ No toca directo | ✅ Agrega la respuesta |
compact_history | ❌ No toca | ✅ Comprime |
clear_history | ❌ No toca | ✅ Borra |
close_session | ❌ No toca | ✅ Borra |
Regla de oro: si querés que el cliente lo vea, send_message. Si
querés que solo el agente lo recuerde, inject_message.
Triggers
Un trigger es el punto de entrada al canvas. Cuando pasa el evento que matchea el trigger, Nexus arranca la ejecución por ese nodo.
Los triggers disponibles:
- session_start: llega un mensaje entrante. El más común.
- session_close: se cierra una sesión (manualmente o por timeout).
- session_timeout: sesión expira por inactividad.
- template_reply: el cliente responde a una plantilla de WhatsApp.
- webhook: un sistema externo le pega a una URL del canvas para avisar que pasó algo (un pago, un envío).
- scheduled: corre en horarios programados (todos los lunes a las 9, una vez al día, etc).
- tag_added: se le agrega un tag a un contacto.
- manual: lo dispara un operador desde el panel.
- integration_event: eventos de integraciones (ej: Calendly confirma un turno, Stripe cobra un pago).
Un canvas puede tener varios triggers. Cada uno arranca un flow distinto según el evento. Por ejemplo, un canvas de turnos puede tener:
session_start→ atiende consultas de disponibilidad por WhatsApp.integration_event(Calendly,booking_created) → manda confirmación cuando alguien reserva por la web.
Integraciones
Las integraciones son servicios externos que la empresa conecta al panel (Calendly, Google Calendar, Knowledge Bases, Stripe, Google Sheets, etc.). Cuando se conecta una integración, sus acciones quedan disponibles como nodos arrastrables en el editor.
Por ejemplo, al conectar Calendly aparecen 4 nodos nuevos en el editor:
consultar_disponibilidad, agendar_turno, cancelar_turno,
listar_turnos. Al conectar Google Calendar aparecen 3 similares. Al
conectar una KB aparece un nodo kb_search.
Integration events vs integration tools
Dos cosas distintas en el mismo ecosistema:
- Integration tools (acciones): nodos que el canvas ejecuta como parte del flow. Ej: el agente decide "necesito ver qué turnos están libres", el canvas llama al nodo
consultar_disponibilidad. - Integration events (triggers): el provider emite un evento y Nexus dispara un canvas. Ej: Calendly confirma una reserva → arranca el flow que manda la confirmación por WhatsApp.
Un flow de ejemplo que usa todo junto
Un agente de turnos típico:
- Un mensaje entrante dispara
session_start. Se crea una sesión con owner IA. - El trigger pasa al nodo
agent, que entiende que el cliente quiere un turno. - El agente llama al flow tool
ft_consultar_disponibilidad. La ejecución salta al nodo de integración de Calendly. - El nodo responde con horarios libres. El agente los usa en su siguiente respuesta.
send_messagemanda la respuesta al cliente. El mensaje queda en el inbox y en la memoria del agente.- El cliente responde con un horario. El agente decide reservar y llama a
ft_agendar_turno. El nodo correspondiente crea la reserva. - Más tarde, Calendly emite el evento
booking_created. Ese evento dispara un segundo flow (o el mismo canvas con otro trigger) que manda un recordatorio 24hs antes del turno.
Trace IDs (para cuando algo falla)
Cada mensaje que entra al sistema recibe un trace_id único. Todos los logs de ese mensaje (en Gateway, Session Core, Nexus, Backend CRM) quedan etiquetados con el mismo trace_id.
Es la herramienta de debugging principal. Si un cliente reporta "a las 15:03 le escribí al bot y no me respondió", buscás en los logs por ese trace_id y ves el recorrido completo: dónde entró, qué nodo se ejecutó, qué respondió el LLM, si hubo algún error, cuánto tardó cada paso.
No necesitás usarlo todos los días, pero la primera vez que debuggees un caso raro va a ser tu mejor amigo.
Próximo paso
Con los conceptos claros, el paso natural es conectar el MCP al editor para empezar a trabajar conversacionalmente con el canvas desde Claude o Cursor.