Channels
A Channel is a wire connecting askTheodor to the outside world — an email account, a messaging app, and so on. It’s how a message from a real person reaches your Workers, and how a worker’s prepared reply finds its way back.
Channels turn your workforce from something you talk to inside the app into something that can quietly handle your incoming correspondence — on your terms.
What you can connect
- Live today: Email and Signal.
- Live, unofficial: WhatsApp, through a bridge that automates WhatsApp Web. It can get a number banned, so use it for personal or testing use on a number you control. See Channels settings.
- Next update (0.9.283): Telegram, through the official Bot API.
- Planned: Discord, Slack, Teams, and Viber.
Each channel stores its own connection settings (account details, credentials) and reports when it last checked for messages and whether that went smoothly.
Routing: deciding who handles what
A channel on its own just receives. Routing rules decide what happens next. Each rule matches an inbound message — by who it’s from, and optionally by subject (for email) — and sends it to a target:
- a specific worker (persona),
- a Company’s lead,
- the Kafenio tavern, or
- a generated report.
So “anything from my biggest client → route to Iris” or “newsletters → file a report” become simple rules you set once.
Two directions: the phone console
Channels also work the other way round: you can reach your team through them. Register your own
number, Telegram chat id or e-mail address in the phone console. Messages
from those addresses skip the routing rules. They’re commands and conversations: talk to Theodor, @ a
worker, brief a Company’s CEO with #, list what’s waiting with tasks, and approve it by short code.
Results and a daily report come back to your phone.
Only the addresses you register can command. Everyone else is handled as before.
Messages from other people on WhatsApp
A WhatsApp number is often your personal number. So from 0.9.283 each WhatsApp channel has a mode for messages from anyone who isn’t a phone-console owner:
- 🔒 Private (the default): ignored, not stored, not answered.
- 🗂 Secretary: each message is noted as a request and passed to you with a code. You answer with
reply <code> <answer>, in your own words, or file it withdone <code>. The sender can get a short acknowledgement that says it’s an automated assistant, at most once every 12 hours. Nothing is ever acted on, and the sender can’t command anything. - 🤖 Handled by workers: the routing rules decide, as on any other channel. Use this for a dedicated number that customers write to.
The Inbox, and the golden rule
Inbound messages land in your Inbox, where you can see them and chat about them with Theodor. When a worker handles one, it drafts a reply — and that’s where it stops. Nothing is sent automatically. The draft is saved and surfaced for you to review, edit, and send.
This is deliberate and central to how askTheodor treats safety: the app prepares; you decide what actually goes out. (A rule can optionally let a worker run tools to act on a request, but it’s still gated by your autonomy settings and the global kill-switch — see Budgets & approvals.)
In practice
What connecting a channel actually buys you is triage, not automation. Incoming messages get read, classified and answered in draft, so you start from a queue of prepared responses rather than an unread inbox. The reading is delegated; the sending never is.
Ground the replies before you connect anything. A channel worker with an empty Library writes plausible, generic answers. Put your top questions, prices, delivery times and policies in the Library first — then the drafts are worth the review time instead of being rewritten from scratch.
Treat inbound content as untrusted. A message can contain text designed to read as an instruction to the worker handling it. That’s exactly why the reply is a draft and why the worker’s allowlist should be narrow — capability it doesn’t hold can’t be misused by a hostile email.
Give the channel worker an escalation rule. Write into its SOP what it must not answer — refunds, legal commitments, discounts beyond your standard, complaints — and what to do instead: draft a holding reply, flag it, and say why it stopped.
🎓 Learn it hands-on: OAuth sign-in · Let a secretary take messages
Terms in this page
- Channel — a connection between askTheodor and an external messaging system (email, Signal, WhatsApp, and Telegram from the next update).
- Phone console — commanding your team from your own number or address; see Phone console.
- Secretary mode — a WhatsApp mode where other people’s messages become requests for you to answer.
- Inbound message — a message arriving from the outside world through a channel.
- Routing rule — a setting that matches inbound messages (by sender, and optionally subject) and sends them to a chosen target.
- Target — where a routed message goes: a worker, a Company lead, the Kafenio tavern, or a report.
- Worker / persona — the AI character that handles a routed message; see Workers.
- Inbox — the in-app place where inbound messages collect for you to review.
- Draft — a reply a worker prepares but does not send; you review and send it yourself.
- Kill-switch / autonomy — the safety controls that govern whether a worker may act on a message; see Budgets & approvals.