Announcements
Post announcements with translation buttons, free on every server.
An announcement is a message with up to five translation buttons under it. A member who clicks one sees the announcement translated into that language, in a reply only they can see.
How it works
The buttons are configured once for the whole server: a language, a label, an emoji or both, and a color (blurple, gray, green or red).
Up to {max} buttons, shown in this order under every announcement. Each one translates the announcement into its language. Two buttons cannot share a language.
A click translates the text and the embeds of the announcement. Attachments are never translated.
In reply mode, a click always translates the current text of the original message, even after it was edited.
Announcements are free on every server, up to 3 per day.
Four ways to post an announcement
The Composer tab of the dashboard: write the message, check the preview, send it.
An external webhook: a URL that any tool able to post to a Discord webhook can use.
The context command on an existing message.
An announcement channel: every message posted in it becomes an announcement.
Composer
The Composer tab of the dashboard: write the message, check the preview, send it.
Switch the format to Container to post a Components V2 card: texts, separators, sections (texts with a link button or an image on the right), media galleries and link buttons, with an optional accent color. An image can be a link or one of the attachments; the attachments the card does not use are shown below it.
In both formats, an announcement can carry up to 5 link buttons of its own. They appear in their own row, above the translation buttons.
External webhooks
A webhook URL lets another tool or service post announcements into one channel, with the buttons attached.
The URL accepts the same requests as a Discord webhook, so any tool that can post to a Discord webhook can post announcements: paste the URL where the tool asks for a Discord webhook URL.
Send a message:
curl -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{"content": "Hello everyone!"}'Send a message with a file:
curl -X POST "$WEBHOOK_URL" \
-F 'payload_json={"content": "New screenshots"}' \
-F 'files[0][email protected]'Send a Components V2 message:
curl -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{"flags": 32768, "components": [{"type": 17, "components": [{"type": 10, "content": "## Patch notes"}, {"type": 14}, {"type": 9, "components": [{"type": 10, "content": "..."}], "accessory": {"type": 2, "style": 5, "label": "Changelog", "url": "https://example.com"}}]}]}'Components V2 messages are accepted: set flags to 32768 and send containers made of texts, separators, sections, media galleries and rows of link buttons. An image can point to an uploaded file with attachment:// followed by its file name. At most 5 link buttons per message; other buttons and select menus are refused, as the bot adds its own translation buttons in a last row.
A username or avatar_url sent with a request replaces the webhook’s saved name and avatar, for that message only.
Convert to announcement
Right-click a message (long-press on mobile), open Apps, then choose Convert to announcement. Only members who can manage messages see it. A message that already is an announcement is refused.
Announcement channels
Every message a member posts in these channels automatically becomes an announcement. Once the daily limit is reached, messages are left as they are.
Modes
The context command and the announcement channels turn an existing message into an announcement in one of three modes. The server default applies everywhere, and each announcement channel can override it.
| Option | Description |
|---|---|
| Automatic | The bot reposts the message under the author’s name and avatar with the buttons, then deletes the original. When the message cannot be reposted (a reply, a sticker, a poll, files that are too large…), the bot replies to it with the buttons instead. |
| Reply only | The message is left untouched: the bot replies to it with the buttons. Deleting the message also deletes the reply. |
| Repost only | The message is always reposted. When that is impossible, it is not converted and an error is shown. |
Button clicks are translated with this server’s premium engine instead of the free one. Each language is paid only once per announcement and kept for 90 days, so later clicks cost nothing. When no characters are left, the free engine takes over.
If an announcement is edited, its translation is redone once. If premium translation fails, the free engine answers instead.
Daily limit
Every server can post 3 announcements per day, whatever posted them. The counter resets at midnight UTC.
Composer and external webhooks: the announcement is refused with an error.
Context command: an error tells you when the limit resets.
Announcement channel: the message is left untouched, silently.
Commands
Everything can also be configured from Discord. These commands are reserved for moderators.
| Option | Description |
|---|---|
/announcements button set | Add or replace a translation button. |
/announcements button remove | Remove a translation button. |
/announcements channel add | Turn every message of a channel into an announcement. |
/announcements channel remove | Stop turning every message of a channel into an announcement. |
/announcements mode | Choose how the translation buttons are added by default. |
/announcements premium_translation | Translate the clicks with your premium engine instead of the free one. |
/announcements reply_text | Set a text shown above the buttons when they are added in a reply. |
/announcements show | Show the announcement settings of this server. |
Slash commands
/announcements button set
/announcements button remove
/announcements channel add
/announcements channel remove
/announcements mode
/announcements premium_translation
/announcements reply_text
/announcements show