AiHummer docs
v1.0.x
RU EN

Generic inbound

v1.0.x · updated 2026-06-26

Generic inbound is the universal entry point into AiHummer. When there is no purpose-built channel for your source — an email-to-webhook relay, a cron job, an internal tool — you post the message to one endpoint and it enters the turn engine like any other channel message.

The endpoint

Send a single JSON POST to the gateway:

POST /v1/inbound/generic
Content-Type: application/json
X-AIHummer-Inbound-Secret: <hmac>

{
  "channel": "my-app",
  "external_id": "user-42",
  "text": "Hello from my custom integration"
}

The body carries three fields:

  • channel — a logical channel name you choose for the source.
  • external_id — a stable identifier for the end user or conversation.
  • text — the message content.

Authentication

The endpoint is secured by an HMAC carried in the X-AIHummer-Inbound-Secret header, derived from the shared AIHUMMER_INBOUND_SECRET. Requests without a valid signature are rejected, so only callers that hold the secret can inject messages.

[!NOTE] The gateway must have a default workspace configured (AIHUMMER_DEFAULT_WORKSPACE_ID) to dispatch generic inbound messages.

Available / preview connectors

AiHummer offers additional channel connectors in preview: they are already implemented but not yet validated against live accounts. Each is installed from the Marketplace, runs host-native on its own port, and forwards inbound messages to /v1/inbound/generic.

ConnectorPortNotes
Discord8801
Slack8802
Matrix8803
Signal8804requires a signal-cli sidecar
Microsoft Teams8805
Email (IMAP/SMTP)8806
WhatsApp Cloud API8807

[!WARNING] Treat these connectors as available / preview. They are implemented, but not live-proven against real provider accounts — validate them in your own environment before relying on them in production.

The browser extension

AiHummer also ships a browser extension, a Manifest V3 side-panel chat surface. It is a client of /v1/chat/completions using a personal ah- API key — not a server-side channel. Use it for personal, in-browser chat rather than as an inbound source for routing.

Where to next