Connectors: one interface for every external service.

A connector is a standard adapter between your automation and an external service. It handles the connection, authentication, and event format so your handler code stays clean. Every connector can receive events (a Slack message arrived, an email came in) and send actions (post to a channel, send a reply).

When a connector emits an event, it arrives in the engine as a prefixed event: slack:message, telegram:command, email:inbound. Your handlers listen for these events and call connector methods to respond.

Available connectors

Connector Receives Sends
Slack message, reaction, mention, command postMessage, postEphemeral, react, updateMessage, deleteMessage
Telegram message, callback, command sendMessage, sendPhoto, answerCallback, setWebhook
Discord message, interaction, member-join, member-leave, ready postMessage, reply
Email inbound (IMAP polling) send (SMTP)
Webhook configurable per endpoint --
OpenRouter -- complete (LLM chat completion)
Cron scheduled events (built-in) --

Building your own

Every connector follows the same shape: start(), stop(), onEvent(), and optional send() methods. The connector pattern is documented with enough detail that Claude can scaffold a new one from the docs alone.

If the service you need isn't in the list, describe it in your prompt. The docs are machine-readable: Claude will create the connector, wire it up, and tell you what API keys you need.