For the complete documentation index, see llms.txt. This page is also available as Markdown.

Channels and Sources

Configure channel sources that receive inbound traffic and route conversations to workflows.

Channels and sources control how external conversations enter Hexabot and how those conversations are routed to workflows.

Open them from Integrations > Channels or go to /settings/sources.

Core Concepts

Concept
What it means

Channel

An installed communication handler, such as web, console, or a custom channel. A channel defines the transport, message behavior, and settings schema.

Source

A configured entrypoint for one channel. A source has its own internal ID, name, enabled state, default workflow, and channel-specific settings.

Source Ref

The public reference used by widgets and webhooks to connect to a specific source. For the Hexabot Chat Widget, pass this value as sourceId.

You do not create channel types from this page. The channel list comes from the channels installed in the API. You create and maintain sources for those channels.

Hexabot creates a default source for each registered channel when the API starts and no source exists for that channel. You can add more sources when you need separate entrypoints for different websites, brands, environments, workflows, or settings.

Source List

The Channels page shows source rows.

Use the search box to find sources by name or channel. The source name is also shown in the Inbox conversation list, so clear names make support work easier.

Sources are not deleted from the admin panel. Disable a source when you want to stop traffic without losing the source ID, settings, or historical conversation links.

Create a Source

  1. Open Integrations > Channels.

  2. Click Add.

  3. Choose a channel from the menu.

  4. Enter a unique source name.

  5. Select a default workflow, if this entrypoint should start a specific conversational workflow.

  6. Keep Enabled on if the source should accept traffic immediately.

  7. Fill the channel-specific settings.

  8. Click Save.

The Add button is disabled when the API reports no registered channels. It is hidden when your role does not have source create permission.

Edit a Source

Click the pencil action on a source row.

Editable fields:

Field
Notes

Name

Required and stored without leading or trailing spaces.

Default workflow

Optional. Leave empty when the client or channel should decide which workflow to run.

Enabled

Turn off to reject new inbound events for this source.

Settings

Rendered from the selected channel's settings schema.

The channel field is read-only in the form. If you need the same settings on another channel, create a new source for that channel.

Default Workflow Routing

When an inbound event reaches a source, Hexabot resolves the workflow in this order:

Priority
Source

1

Explicit workflow passed by the client or webhook request.

2

Source default workflow.

3

Channel or workflow trigger behavior, if no workflow is set.

Use a default workflow when the source should consistently start the same automation. Leave it empty when the source is only used for manual tests, custom dispatch logic, or multiple workflow entrypoints.

For the web widget, each source can have its own default workflow.

The widget can also pass workflowId. Hexabot forwards that value as workflow_id on /webhook/:sourceId/.

When workflowId is present, it overrides the source default workflow.

The admin chat console uses enabled console sources. When a workflow is opened in the visual editor, the embedded console prefers a console source whose default workflow matches that workflow, then a console source with no default workflow, then the first enabled console source.

Channel Settings

The Settings section is generated from the channel schema returned by the API. Different channels can expose different fields. The backend validates these settings again when you save, so invalid values can still be rejected by the API.

Built-in web-style sources commonly include:

Setting
Effect

Allowed domains

Comma-separated CORS origins allowed to connect to the source. The API checks this before accepting web-style requests. Use exact origins such as https://www.example.com, or * only when any origin should be allowed.

Greeting message

Message shown on the widget pre-chat screen.

Window title

Header title for the web widget. Available on the web channel.

Avatar URL

Chatbot avatar image URL. Available on the web channel.

Show emoji / file / location

Enables or hides those widget actions.

Allowed upload types

Comma-separated MIME types accepted by the widget upload input.

Thread inactivity hours

Starts a new thread when the last message is older than this threshold.

Show start button / Disable input / Persistent menu

Exposed by the built-in schema for compatible web-style clients. Current widget behavior also depends on the widget implementation and available menu items.

If the form says no settings schema is available, the channel did not expose configurable source settings. You can still save the source with empty settings.

Maximum upload size is not part of the web source settings schema. Set it in the widget client with the maxUploadSize prop and enforce it on the server with API upload configuration.

Web Widget Sources

For a web widget deployment, create or choose an enabled web source, copy its Source Ref, and pass it as sourceId in the widget configuration:

The current web channel requires Socket.IO transport. The widget transport option accepts ws or polling, and defaults to ws.

At runtime, the widget connects with that Source Ref. Hexabot then sends the source settings, persistent menu tree, current profile, thread information, and message history back to the widget.

Plain HTTP calls to the web channel are rejected by the backend.

The widget will not connect without a sourceId. A disabled source, wrong Source Ref, wrong channel, missing allowed domain, or unsupported transport can prevent the widget from loading or sending messages.

Inbox Behavior

Sources are attached to subscribers and threads. In the Inbox:

UI behavior
Detail

Source filter

Filters conversations by enabled sources.

Conversation badge

Shows the source name beside each conversation.

Thread history

Keeps the source association even if the source is later disabled.

Use separate sources when support agents need to distinguish traffic from different websites, products, regions, or test environments.

Last updated

Was this helpful?