Skip to content

Deep Dives

Deep diveGuideBrain StudioArquitecturaCanal personalizado

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.

Jelou como hub central: conecta canales como WhatsApp, Instagram, Slack, Teams y Gmail con tu plataforma vía Canal Personalizado
Los canales de entrada (izquierda) llegan a Brain a través de Jelou. Los destinos de la derecha, con línea punteada, son los que un canal personalizado puede alcanzar cuando la conversación necesita vivir en tu propia interfaz.

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

  1. 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 Docs
  2. Firmar 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 Docs
  3. Enviar 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
Verificar la firma de una entrega — ejemplo real de Jelou Functions
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