Skip to content

Web channel overview ​

The web channel is a server-to-server messaging channel. Your backend posts customer messages to the Genudo receiver, and Genudo posts the AI reply back to a callback_url you control, signed with HMAC-SHA256.

Unlike the widget, Genudo hosts no UI here — you own the chat surface entirely.

Before you start ​

Create the channel and configure it in the Genudo Console: pick the pipeline, set the callback_url, and optionally restrict allowed_origins / allowed_ips. The Console then shows you:

ValueUse
client_idBasic auth username for every request below
client_secretBasic auth password and the HMAC key for verifying callbacks
messages_webhookThe receiver URL your backend posts messages to

Channel setup is not part of this API — it is done in the Console.

The flow ​

1. Open a conversation     POST {api}/user/web-chat/initiate   → contact_id + socket token
2. Send a message          POST {receiver}/web-chat/message    → message_id
3. Receive the reply       POST your callback_url              ← signed by Genudo
4. Read history            GET  {api}/user/messages/webchat?conversation_id={conversation_id}

Step 1 is optional — the receiver creates the contact and conversation on the first inbound message anyway. Call it when you want to validate the pipeline, subscription and credits before accepting customer traffic, register the contact's name / email / phone, or get a socket subscription so you can render replies live instead of waiting on the webhook.

Authentication ​

Every endpoint in this section uses the channel's credentials, as HTTP Basic auth:

http
Authorization: Basic base64(client_id:client_secret)

These authenticate the channel, not a user, and are what your backend ships to production. They are unrelated to the account API tokens described in Authentication.

Two base URLs ​

PlaceholderWhat it isWhere to find it
{api}The console API, e.g. https://api.genudo.ai/apiFixed per environment
{receiver}The message receiver, e.g. https://receiver.genudo.aiThe channel's messages_webhook in the Console

Inbound messages go to {receiver}. Everything else goes to {api}. Posting to the wrong host is the most common setup mistake.

Identifiers ​

IdWho creates itMeaning
client_idGenudo, when the channel is createdPublic id of the channel, prefix wc_. Also the Basic auth username.
client_secretGenudo, when the channel is createdBasic auth password and the HMAC key for verifying callbacks.
contact_idYouYour own chat/session id. Send the same value on every message in a conversation; it comes back on the reply webhook.
conversation_idGenudoNumeric id used for history and the socket room.
message_idGenudoMongo id of a stored message. The inbound and reply ids are different.

Security ​

Every callback is signed — see Reply webhook. Verify the signature on every request; the URL is otherwise an open endpoint.

allowed_origins and allowed_ips on the channel additionally restrict who may post inbound messages. Both default to empty, which means allow all, not deny all.