Connector overview
Route one agent into Telegram, WhatsApp, Messenger, Discord, or KakaoTalk with verifiable credentials.
Route one agent into Telegram, WhatsApp, Messenger, Discord, or KakaoTalk with verifiable credentials.
Connectors receive events from an external messaging platform, normalize text or supported audio, run the same site agent, and return a channel-appropriate response. Each external user gets channel-scoped conversation history visible in Conversations.
Capability matrix#
| Channel | Inbound text | Inbound voice | Outbound text | Outbound voice | Provider setup after save |
|---|---|---|---|---|---|
| Telegram | Yes | Yes | Yes | Optional | Webhook registered automatically |
| Yes | Yes | Yes | Optional | Add Meta webhook and messages subscription | |
| Messenger | Yes | Yes | Yes | No | Add Meta webhook and subscribe the Page |
| Discord | /ask question | No | /ask response | No | Paste the interactions endpoint; command registration is automatic |
| KakaoTalk | Yes | No | Inline skill response | No | Add the skill URL, header, and block in Open Builder |
“Voice in” means a supported voice/audio message is downloaded and transcribed. “Voice out” requires a working speech provider and the connector's Reply with voice option. Unsupported attachments such as images and locations are ignored rather than interpreted as agent instructions.
Before connecting#
- Test the intended site agent in the dashboard. Publishing is recommended so its public links and pages work; a draft connector can still answer.
- Configure a working model key under Settings → AI provider keys. Configure speech keys before testing voice. See Provider keys.
- Create a dedicated app, bot, number, or channel in the external provider. Do not reuse a credential owned by an unrelated production integration.
- Confirm your deployment has a public HTTPS connector base URL. Provider webhooks cannot deliver to
localhostwithout a secure development tunnel. - Open the site's Connectors page and choose the channel.
On save, Make Agent Fast calls the provider to validate the submitted credential. A connected label means the credential validation and any automatic provisioning completed; it does not prove that a manual Meta, Discord, or Kakao console step was completed.
Credential handling#
Connector forms accept provider credentials only from the authenticated dashboard or the server-side Public API. Secrets are encrypted at rest and never returned in connector list responses. Treat the following values as passwords:
- Telegram bot token
- Meta access tokens and app secret
- Discord bot token
- Kakao REST API key and bot secret
Do not place them in browser JavaScript, screenshots, support tickets, or source control. The webhook URL and Meta verify token are configuration values intended to be copied to the matching provider console; they do not replace provider credentials.
Connect through the API#
Use a server-held MAF API key with connectors:write. The channel-specific credentials object is write-only. The response omits plaintext secrets and includes the webhook URL needed for manual provider setup.
curl -X POST "https://makeagent.fast/api/v1/sites/$SITE_ID/connectors" \
-H "Authorization: Bearer $MAF_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: connector-telegram-v1" \
-d '{
"channel": "telegram",
"credentials": { "bot_token": "'$TELEGRAM_BOT_TOKEN'" },
"config": { "reply_with_voice": false }
}'Saving the same channel replaces its credential/configuration while preserving its routing token. Use API authentication, Scopes and errors, and the API reference for production integration rules.
Test and observe#
Use a provider test user and a realistic question that depends on the agent's knowledge. Confirm all of the following:
- The provider accepts or verifies the webhook endpoint.
- A message reaches the agent and receives the expected response.
- Last message changes on the connector card.
- The thread appears in Conversations with the correct channel.
- Any provider review/development-mode restriction is understood before public launch.
- Voice is tested separately from text when the channel supports it.
The connector card surfaces the last provider or delivery error. Provider dashboards also retain delivery logs; compare timestamps and event identifiers when only one side reports the request.
Disable, rotate, or remove#
Disable stops processing while retaining the connector record. Telegram's webhook is removed on disable and registered again on enable; console-configured provider subscriptions remain and should also be paused provider-side if necessary. Remove deletes the Make Agent Fast connector and attempts best-effort provider teardown, but it does not delete the external app, revoke its credential, or erase existing conversation history.
For a rotation, create the new provider token, update the connector, test it, then revoke the old token. If a credential was exposed, revoke it at the provider first and treat the interval as a security incident.
Common failures#
| Symptom | Check |
|---|---|
| Credentials do not validate | Correct app/bot, token type, expiry, required provider permission, and copied characters |
| Webhook verification fails | Public HTTPS URL, exact verify token, correct provider product, and request-signing secret |
| Verification succeeds but no messages arrive | Event subscription, Page/number/channel association, provider app mode, and connector enabled state |
| Text works but voice fails | Channel capability, speech/transcription key, supported audio, media permission, and provider download expiry |
| Replies stop after rotation | New credential saved, old credential revoked only after testing, and manual provider subscription still points to this webhook |
Continue with the channel guide for the exact provider fields and console sequence.