How do I connect each one?
| Platform | What you paste into Socifyr | How to get it |
|---|---|---|
| Telegram | Bot token and chat ID | Create a bot with @BotFather (/newbot), add it to your channel as an admin with Post messages, then use the channel handle (@mychannel) or numeric ID (-100123...) |
| Discord | Webhook URL | Channel, Edit, Integrations, Webhooks, New Webhook, copy the URL. One webhook per channel |
| Slack | Incoming webhook URL | Add Incoming WebHooks at slack.com/apps, choose the channel, copy the https://hooks.slack.com/services/... URL |
None of these credentials expire. A Telegram bot token, a Discord webhook and a Slack webhook all keep working until you revoke them: /revoke in @BotFather, delete the webhook in Discord, or deactivate the integration in Slack. That makes them the lowest-maintenance connections, with no reconnect flow to babysit. A webhook is also locked to the channel chosen when it was created, so one webhook means one destination.
What are the limits on each platform?
| Limit | Telegram | Discord | Slack |
|---|---|---|---|
| Text length | 4,096 chars | 2,000 chars | 40,000 chars |
| Caption on media | 1,024 chars | 2,000 chars | n/a |
| Images | Up to 10, 10 MB each | Up to 10 files, 8 MB each | Not supported |
| Video | 50 MB, 1 hour | 8 MB, 10 minutes | Not supported |
| Posts per rolling 24 hours | 100 | 100 | 100 |
Two behaviors are worth knowing because they are silent. Discord content is truncated at 2,000 characters rather than split or rejected, so a long post arrives cut off. Telegram media captions are truncated at 1,024 characters even though text messages allow 4,096. If you send long content to either, shorten it first.
How do I post to all three in one call?
curl -X POST https://api.socifyr.com/api/content/text \
-H "Authorization: Bearer sk_your_key" \
-H "X-Workspace-Id: <workspaceId>" \
-H "Content-Type: application/json" \
-d '{
"connections": ["telegram-myaccount", "discord-myaccount", "slack-myaccount"],
"text": "Release 2.4 is live. Notes: https://example.com/changelog"
}'socifyr post "Deploy finished: v2.4 is live" \
--to telegram-myaccount,discord-myaccount,slack-myaccount --waitThis pattern suits release announcements, incident updates and community posts. An AI agent can do the same through the MCP server with post_text. For anything media-heavy, route Slack out of the connection list: a post with images or video sent to Slack fails with "Slack incoming webhooks cannot upload files — text posts only", while the other channels succeed independently and the post finishes as partial_failure.
How do images and video behave on Telegram and Discord?
- Telegram sends multiple photos as one album (up to 10). Public channels get
t.me/<channel>/<id>links and private channels gett.me/c/...links in the result. - Discord attaches up to 10 files to the message. Files over 8 MB are rejected by Discord's own API, a hard limit. Messages appear under the webhook's name and avatar.
- Slack is text only. File upload needs a full Slack app with the
files:writescope, which is not supported yet.
await socifyr.uploads.photos({
connections: ['telegram-myaccount', 'discord-myaccount'],
medias: ['https://cdn.example.com/chart.png'],
text: 'Weekly numbers',
})How do I keep an agent from spamming a team channel?
Chat channels are where a looping agent does the most visible damage. Put a dailyPostLimit on the API key it uses, or set requireApproval so every post waits for a human. Both are covered in how to give an AI agent safe access to social accounts.
How do I find my Telegram chat ID?
For a public channel use the handle with an at sign, such as @mychannel. For a private channel or a group use the numeric ID, which starts with -100. The bot must be in the chat, and for a channel it must be an administrator with the Post messages right, otherwise posts fail with a permission error. Keep the bot token private: anyone holding it can post as the bot until you revoke it with /revoke in @BotFather.
When should I use these instead of the OAuth platforms?
| Use case | Good fit |
|---|---|
| Release and deploy announcements to your own team | Slack, Discord |
| Public channel broadcasts to subscribers | Telegram |
| Community updates with attached screenshots | Discord (8 MB files), Telegram (10 MB photos) |
| Anything that needs reliability without token upkeep | All three, since credentials do not expire |
These channels are lower stakes than a brand account, which makes them a good place to test an automation before pointing it at Instagram or LinkedIn. The same request shape works everywhere, so moving a working flow to a public platform is a matter of adding slugs to connections.
Frequently asked questions
How do I post to a Telegram channel with an API?
Can I post to Discord through a webhook?
discord- slug. Messages appear under the webhook's name and avatar, with up to 10 attachments of 8 MB each.Can Socifyr upload images to Slack?
files:write.