Skip to main content

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_only unset (or false, the default): the form has a text field for your message plus an optional file-upload field (attach 0-10 files).
  • Set attachments_only to true: 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:

TierAdds
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:

TierTotal per messagePer file
none (free)5 MiB3 MiB
base20 MiB10 MiB
power35 MiB25 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 /send itself 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.