Send
This module allows authorized users to send messages through the bot, and/or editing previously sent messages.
Note
All 4 actions below live under one /send command tree. /send embed, /send edit, and /send webhook each have an inline content option (embed_json for /send embed, content for the other two) - type your message/embed directly into the command and it sends right away. Leave that option blank and a short form (a Discord modal) opens for it instead. /send message works differently - see its own section below. The dashboard's Message Composer page offers a Send and an Edit action with a full JSON embed editor and a live preview - use whichever you prefer.
NSFW content isn't allowed (see the Content Policy): on all of these, including the composer, the image URLs of an embed (image, thumbnail, author icon, footer icon) are checked with the same NSFW detection and server threshold as attachments, and a flagged one rejects the send.
Warning
/send embed, /send edit, and /send webhook do not support attaching a file/image - Discord's modal forms have no file-upload field for those. File attachments are supported by /send message and by the Send action of the dashboard's Message Composer page (the Composer's Edit action cannot change attachments). Both follow the same rules described in the /send message section below: the same file types and size limits for your server's premium tier, a malware scan and an NSFW image check before delivery. From the Composer, delivery is asynchronous: the page shows a "Scanning attachments..." state and then reports the result - the message id once delivered, or the reason it was rejected.
/send message
Command Syntax
/send message channel:{channel} attachments_only:{optional true/false} Command Description
Sends a message, with optional file attachments, to the given channel. This subcommand always
opens a form (a Discord modal) - there's no inline content option like the other /send actions.
- Leave
attachments_onlyunset (orfalse, the default): the form has a text field for your message plus an optional file-upload field (attach 0-10 files). - Set
attachments_onlytotrue: the form skips the text field entirely and requires at least one file attachment.
You can use embed json built with Discohook as the text content, if you want the message to be embedded.
Note
File attachments. Which file types you can attach depends on your server's premium tier: free servers can attach images; the base tier adds video, plain text, and PDF; the power tier further adds audio, Office documents (Microsoft and OpenDocument formats), and common compressed/data files. The exact extensions per tier:
| Tier | Adds |
|---|---|
none (free) | .png .jpg .jpeg .gif .webp .bmp .tif .tiff .svg .heic .heif .avif |
base | + .mp4 .mov .webm .mkv .avi .wmv .m4v .txt .pdf |
power | + .mp3 .wav .flac .ogg .docx .xlsx .pptx .odt .ods .odp .csv .json .zip .rar .7z .tar .gz .bz2 .xz |
Total attachment size per message and the cap on each individual file both scale with tier too:
| Tier | Total per message | Per file |
|---|---|---|
none (free) | 5 MiB | 3 MiB |
base | 20 MiB | 10 MiB |
power | 35 MiB | 25 MiB |
Images are also checked for NSFW content, using the same detection and server threshold described in the AutoModerator docs. NSFW content isn't allowed (see the Content Policy), so if any image is flagged the whole message is dropped, nothing is delivered, and you'll get a reply only you can see naming the flagged file.
Every attachment is scanned for malware before it's delivered - a flagged file is never sent, and you'll get a reply only you can see naming which file was rejected. Compressed files (zip/rar/7z/tar/gz/bz2/xz) are scanned inside-out, so malware hidden inside an archive is caught too. Executable and script files (.exe, .bat, .sh, and similar) are never accepted, at any tier.
Permissions Needed
- User: You need View Channel and Send Messages in the channel you're running the command from and in the target channel (when they differ). If you're attaching a file, you also need the Attach Files permission in both of those channels.
Examples
/send message channel:#this-channel
/send message channel:#this-channel attachments_only:True
/send embed
Command Syntax
/send embed channel:{channel} embed_json:{optional embed JSON} Command Description
Sends an embed (built as JSON, e.g. with Discohook) to the given channel. Type the JSON directly into the embed_json option to send it right away, or leave it blank to open a form for it instead.
Warning
Only JSON is accepted for embeds - there's no tag-based shorthand.
Permissions Needed
- User: None.
Examples
/send embed channel:#that-channel embed_json:{"title":"Hi"} /send embed channel:#that-channel
/send edit
Command Syntax
/send edit message_link:{message link} content:{optional new content} Command Description
Edits a message GiselleBot previously sent. Paste the message's link (right-click a message -> Copy Message Link). Type the new content directly into the content option to apply it right away, or leave content blank to open a form pre-filled with the message's current content instead.
You can use embed json built with Discohook instead of a regular text, if you want the message to be embedded.
You cannot edit a message attachment.
Note
To remove the content (plain text) of a message, submit {"content":""} as the form's content. To remove all embeds of a message, submit {"embeds":[]}.
Note
The form can only pre-fill a message under 4000 characters (a longer one can't be pre-filled without silently truncating it) - editing that message still works if you type the new content inline instead of opening the form.
Permissions Needed
- User: None.
Examples
/send edit message_link:https://discord.com/channels/533372744130363392/534171951732752394/534751296847216642 content:Updated!
/send edit message_link:https://discord.com/channels/533372744130363392/534171951732752394/534751296847216642
/send webhook
Command Syntax
/send webhook webhook_url:{full webhook URL} content:{optional message} Command Description
Sends a message through a webhook. Paste the webhook's full URL - the webhook doesn't have to belong to the channel you run the command from, only to the current server. Type the message directly into the content option to send it right away, or leave content blank to open a form for it instead.
This command is meant to test the functionality of a Discord webhook.
You can use embed json built with Discohook instead of a regular text, if you want the message to be embedded.
Permissions Needed
- User: Manage Webhooks. Discord's command-permissions picker for
/senditself is open to everyone; Manage Webhooks is enforced in-code for this subcommand (see Layer 3).
Examples
/send webhook webhook_url:https://discord.com/api/webhooks/123456789098765432/AbCdEf... content:Hello!
/send webhook webhook_url:https://discord.com/api/webhooks/123456789098765432/AbCdEf...
On the Dashboard
Your server's Message Composer page covers Send and Edit in two tabs, without the modal-form size limits:
- Send - pick a channel, then write the message content and/or a full embed in the built-in JSON embed editor, with a live preview of how it will look. After sending, an Edit This Message link jumps straight into the Edit tab, pre-filled with what was just sent.
- Edit - paste a message link (or reuse the one from Send) to load its current content/embed into the same editor and save changes.
Neither tab can attach a file/image - unlike /send message, the dashboard's Message Composer doesn't have a file-upload field. See the Warning above.
See also
Full migration mapping for these commands: Migration Guide.