This piece is not in this language yet. Showing the Spanish original.
From Product Pulse 004
Canal personalizado: lleva tus flujos a cualquier plataforma
Brain Studio como headless flow engine. Diseñas la lógica del agente una vez en Jelou y la conectas a tu propia interfaz vía API y webhook, con firma HMAC en ambas direcciones.
Custom Channels ya está en producción. Tu plataforma envía los mensajes por API, Brain ejecuta el flujo y responde al webhook que configures. Diseñas la lógica una vez y la corres donde la necesites, más allá de los canales nativos.

Docs.jelou.ai lo llama Canal Personalizado, y la idea central es que Brain Studio funciona como un headless flow engine: el flujo que ya construiste para WhatsApp o Instagram no cambia de lógica cuando lo llevas a tu propia app o a un web widget. Lo que cambia es el transporte — en vez de que Jelou hable directamente con Meta, habla con tu backend.
El modelo es simple en su forma pero exige disciplina en la implementación: tu plataforma envía cada interacción del usuario a un endpoint de Jelou, Jelou ejecuta el flujo que configuraste en el builder, y entrega la respuesta a un webhook que tú controlas. No hay polling — la entrega es push, con un solo intento y 20 segundos de timeout, así que tu endpoint tiene que responder rápido y de forma confiable.
Cómo se activa
Activar el canal
Habilita Personalizado desde el builder: nombre del canal, webhook, autenticación opcional y clave de firma HMAC — esta última es obligatoria.
Ver en DocsFirmar las peticiones
Cada petición entrante lleva X-Jelou-Signature calculado sobre el raw body con HMAC-SHA256. Cada entrega saliente hacia tu webhook lleva la misma firma para que puedas verificarla.
Ver en DocsEnviar y recibir
POST /v1/custom-channel/:botId envía la interacción; Jelou responde de inmediato con un executionId y procesa en segundo plano. La respuesta del bot llega después, por POST, a tu webhook.
Ver en Docs
const signature = request.headers.get("x-webhook-signature");
const secret = ctx.env.get("WEBHOOK_SECRET");
const body = await request.clone().text();
const valid = await crypto.subtle.verify(
"HMAC",
key, // importado con HMAC-SHA256 a partir de `secret`
sigBytes,
encoder.encode(body),
);
if (!valid) return { error: "invalid_signature" };No todos los nodos están disponibles en un canal personalizado. Plantillas HSM, WhatsApp Flows y la transferencia a un operador humano no aplican aquí — son capacidades específicas de canales nativos. Un flujo que use esos nodos necesita una rama alternativa para este canal.
Support
Still stuck?
Open it from your account.
How to write to us