Flujos conversacionales como código
TL;DR: Debajo del editor —y de lo que te arme tu asistente de IA— cada flujo es un JSON. Eso lo convierte en un artefacto de software de primera clase: lo exportas, lo revisas en un pull request, lo versionas con Git y lo despliegas por CI/CD. Nada de lo que genere una IA en tu cuenta se queda sin auditar.
¿No programas? No necesitas nada de esta página. Pídele el flujo a Claude o a ChatGPT, o ármalo en el editor visual — así se hace, paso a paso.
Un flujo de FAQ declarado en JSON
En resumen: cada flujo es un archivo JSON, así que entra en Git, se revisa en un pull request y se despliega por CI/CD. Es el mismo flujo que verías en el editor visual, en formato de texto.
{
"flow": {
"name": "FAQ Horarios",
"trigger": "KEYWORD",
"triggerKeywords": ["horario", "hora", "cuando", "abierto"]
},
"steps": [
{
"stepOrder": 1,
"stepType": "QUESTION",
"name": "Responder horario",
"config": {
"messageType": "BUTTONS",
"text": "Atendemos L-V 09:00–18:00 · Sáb 09:00–13:00.\n¿Algo más?",
"buttons": [
{ "id": "precios", "title": "Precios" },
{ "id": "asesor", "title": "Hablar con asesor" }
]
},
"transitions": [
{ "toStepOrder": 2, "condition": "BUTTON", "matchValue": "asesor", "priority": 10 },
{ "toStepOrder": 3, "condition": "ANY", "priority": 1 }
]
},
{
"stepOrder": 2,
"stepType": "MESSAGE",
"name": "Escalar a asesor",
"config": { "text": "Te conecto con un asesor 👤", "transferToAgent": true }
},
{
"stepOrder": 3,
"stepType": "END",
"name": "Cierre",
"config": { "message": "¡Gracias por escribirnos!" }
}
]
}Este flujo resuelve el 100% de las consultas de horario sin consumir un solo token de IA.
Git-native desde el día 1
Cada cambio en un flujo es un commit. Tu equipo puede hacer code review de la lógica conversacional igual que hace review del código.
Deploy por API en milisegundos
Un endpoint POST /flows/import carga el JSON actualizado. Tu pipeline de CI/CD despliega flujos de conversación como despliega features.
Reutilización y composición
Los flujos referencian otros flujos por ID. Escribe una vez y reutiliza en cientos de bots sin duplicar lógica.
Auditable y testeable
Escribe unit tests para tus flujos. Simula entradas y verifica que el árbol de decisiones lleva al nodo correcto antes de producción.
Tres formas de armar el mismo flujo
El JSON no sustituye al editor visual: es el mismo flujo visto como texto. Los tres caminos llegan al mismo sitio y puedes cambiar de uno a otro cuando quieras.
| Camino | Para quién | Qué te da |
|---|---|---|
| El editor visual | El dueño del negocio | Lo ves en pantalla y lo entiendes sin que nadie te lo explique. |
| Conversando con Claude o ChatGPT | Cualquiera | El más rápido de los tres: se lo pides y aparece armado en tu cuenta. |
| El archivo JSON, con Git y CI/CD | Un equipo técnico | Versionado, revisión en pull request y despliegue automático. |
Donde sí hay una diferencia real es fuera: en ManyChat o Wati el arrastre es lo único que existe y el flujo no sale de ahí. Aquí el tercer camino siempre está disponible, así que tus flujos son tuyos y te los llevas si algún día te vas.
Tipos de nodo disponibles en FlujosChat
Cada step de un flujo tiene un tipo que define su comportamiento. Compose flujos complejos combinando estos bloques.
MESSAGEEnvía texto, imagen, vídeo, PDF o audio. Los botones y las listas son configuración de este paso.
QUESTIONPregunta y espera la respuesta del cliente para guardarla en una variable.
CONDITIONBifurca el flujo según variables o respuestas previas.
WAITPausa el flujo hasta que el usuario responda o pase X tiempo.
API_CALLLlama a un endpoint externo y usa la respuesta en el flujo.
AI_HANDOFFEntrega la conversación a un equipo de agentes de IA cuando la lógica no cubre el caso.
PAYMENTCobra por Yape: crea la expectativa de pago y espera la confirmación automática.
ENDCierra el flujo y libera la sesión del cliente.
Pipeline de CI/CD para flujos conversacionales
El mismo rigor que aplicas a tu código backend, aplicado a tu lógica conversacional.
name: Deploy Chatbot Flows
on:
push:
branches: [main]
paths: ['flows/**/*.json']
jobs:
validate-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate JSON schemas
run: |
for f in flows/**/*.json; do
npx ajv validate -s schemas/flow.schema.json -d "$f"
done
- name: Run flow unit tests
run: npm test -- --testPathPattern=flows/
- name: Deploy flows to FlujosChat
env:
FLUJOSCHAT_API_KEY: ${{ secrets.FLUJOSCHAT_API_KEY }}
run: |
for f in flows/**/*.json; do
curl -X POST https://api.flujoschat.foo/v1/flows/import \
-H "Authorization: Bearer $FLUJOSCHAT_API_KEY" \
-H "Content-Type: application/json" \
-d "@$f"
doneCada merge a main despliega automáticamente los flujos actualizados. Zero-click deployment de lógica conversacional.