The most useful thing about a self-hosted AI agent is not that it runs on your server. It is that you can talk to it from your phone without installing anything new - your agent becomes a bot in Telegram, a contact in WhatsApp, or a member of your Discord server, and it messages you when something needs your attention.
This guide covers what each channel requires, the gotchas that catch people out, and the exact setup steps for connecting all three to AIDA.
Why messaging channels beat another app
A web dashboard is a place you have to remember to visit. A chat thread is somewhere you already are all day.
That difference matters most for anything proactive. If your agent finds something urgent in your inbox, a message in WhatsApp reaches you in the checkout queue. The same alert sitting in a dashboard reaches you tonight, if you remember to look.
It also means no new app to install, no new login, and no new notification settings - it works on any device where you already have the messaging app, including a phone you never set the agent up on.
Which channel should you pick?
Telegram is the easiest by a wide margin - bots are a first-class platform feature, and setup takes about two minutes with no accounts to create. If you want one channel and do not care which, start here.
WhatsApp is where most people already live, which makes it the most useful and the most involved. It requires a free Meta Business Account, a WhatsApp Business number, and - this is the one people miss - your AIDA instance reachable over HTTPS, because Meta delivers messages to a webhook on your server.
Discord is the natural pick if you already run a server for your team or community, and it is the best of the three for shared use, since a bot in a channel is visible to everyone in it.
You can run all three at once, but pick deliberately rather than by default - each one is another place your agent can interrupt you.
Telegram setup
1. Create a bot with BotFather
- Open Telegram and search for @BotFather
- Send
/newbot - Give it a name (for example, "My AIDA")
- Give it a username ending in
bot, for examplemy_aida_bot - BotFather sends you a token that looks like
123456789:ABCdefGHI...- copy it
2. Add the token to AIDA
- Open AIDA → Settings
- Scroll to Telegram Bot
- Paste the token into Bot Token and click Save
- Restart AIDA so the bot activates:
sudo docker restart aida
3. Start chatting
Search for your bot by username in Telegram, click Start, and send it a message. Everything that works in the web chat works here - email, calendar, web search, tasks, reminders, and all your tools.
Troubleshooting: if the bot does not respond, check the token saved correctly and that you restarted AIDA. A Conflict error in the logs means two AIDA instances are using the same bot token - only one can hold it at a time. Queries that chain several tools together can take 20-40 seconds, which is normal.
WhatsApp setup
What you need first: a Meta Business Account (free), a WhatsApp Business phone number, and your AIDA instance accessible over HTTPS with a real domain and SSL certificate. The HTTPS requirement is not optional - Meta will not deliver messages to anything else.
1. Create a Meta app
- Go to developers.facebook.com and log in
- My Apps → Create App, select Business as the type
- Name it (for example, "AIDA WhatsApp") and create it
- On the dashboard, find WhatsApp and click Set Up
2. Collect three credentials
- Phone Number ID - under WhatsApp → API Setup
- Access Token - generate a temporary one to test, but create a permanent one under System Users for real use
- Verify Token - any string you choose; you will enter the same value in both Meta and AIDA
3. Configure AIDA
Open AIDA → Settings, enter the Phone Number ID, Access Token and Verify Token, then click Save.
4. Set up the webhook in Meta
- In the Meta dashboard, go to WhatsApp → Configuration
- Set the Callback URL to
https://your-aida-domain.com/api/whatsapp/webhook - Set the Verify Token to the same string you entered in AIDA
- Click Verify and Save
- Under Webhook Fields, subscribe to messages
5. Test it
Message your WhatsApp Business number and AIDA should reply within seconds. Try "What's on my calendar today?" or "Summarize my unread emails".
Troubleshooting: no response usually means the webhook URL is wrong or your instance is not reachable over HTTPS - Meta's dashboard should show a green checkmark on the webhook. A Config incomplete log entry means one of the three fields is missing. And if it worked yesterday but not today, your temporary access token expired: Meta's temporary tokens last 24 hours, which is why production setups need a System User token.
Discord setup
1. Create the bot
- Go to discord.com/developers
- New Application, name it "AIDA"
- Open the Bot section, click Reset Token, and copy the token somewhere safe
2. Enable the required intents
Still in the Bot section, enable Message Content Intent (without it the bot cannot read messages at all) and Server Members Intent, then save.
3. Invite the bot to your server
- Go to OAuth2
- Under Scopes, select bot
- Under Bot Permissions, select Send Messages, Read Messages/View Channels, and Read Message History
- Open the generated invite URL, pick your server, and authorize
4. Configure AIDA and restart
Paste the token into the Discord Bot Token field in AIDA → Settings, click Save, then restart: sudo docker restart aida
5. Test it
Send a message in any channel the bot can see.
Troubleshooting: a bot showing offline usually means AIDA is not running (sudo docker ps) or was not restarted after saving the token. A bot that is online but silent almost always means Message Content Intent is not enabled. And note that the bot listens in every channel it can see - use Discord's channel permissions to narrow that down.
Set up a morning briefing while you are here
Connecting a channel is the boring half. The useful half is having the agent reach out on its own.
- Open AIDA → Settings → Morning Briefing
- Toggle Enable daily briefing on
- Set your time (for example, 8:00 AM)
- Set Channel to Telegram or WhatsApp
- Customize the briefing prompt if you want, and save
You will get a daily summary of weather, calendar events, tasks and email before you open your laptop. Make sure your timezone is set under Settings → User Profile, or it will arrive at the wrong hour.
A few security notes
- Bot tokens are credentials. Anyone holding a Telegram or Discord token can act as your bot. Keep them out of screenshots and repositories, and regenerate immediately if one leaks.
- Grant Discord the minimum. The invite flow will happily hand over far more permission than the bot needs.
- Use a permanent WhatsApp token properly. System User tokens do not expire like temporary ones, which also means a leaked one keeps working - store it accordingly.
- Think about quiet hours before the first 3am message. An agent that can reach you anywhere can also wake you up.
The short version
Telegram if you want it working in five minutes. WhatsApp if that is genuinely where you live and you are willing to set up a Meta app and an HTTPS endpoint. Discord if the agent is for a team.
All three turn a server process into something that behaves like a colleague who messages you when it matters - which is the entire point of running an agent rather than opening a chatbot tab.
---
Related reading: What is a self-hosted AI agent? · Install a self-hosted AI agent on a VPS · How AIDA decides what is urgent