Post On Discord Channel - Instructions
Overview
Send messages, rich embeds, and file attachments to Discord channels via webhooks. Supports text messages with Discord markdown, up to 10 rich embeds per message, up to 10 file attachments, custom bot identity (username/avatar), text-to-speech, and mention controls.
Actions
send
Post a message to a Discord channel using a webhook URL. At least one of content, embeds, or files must be provided.
Required Fields:
action— Set to"send"webhook_url— Discord webhook URL in the formathttps://discord.com/api/webhooks/{webhook_id}/{webhook_token}
Optional Fields:
content(string, max 2000 chars) — Message text. Supports Discord markdown formatting.username(string, max 80 chars) — Override the default webhook display name.avatar_url(string) — Override the default webhook avatar with a custom image URL.tts(boolean, default false) — Enable text-to-speech for the message.embeds(array, max 10) — Array of rich embed objects (see Embed Structure below).files(array, max 10) — Array of file attachment objects (see File Structure below).allowed_mentions(object) — Controls which mentions can ping users/roles (see Mention Controls below).
Embed Structure
Each embed object supports:
title(string, max 256 chars) — Embed title.description(string, max 4096 chars) — Embed body text. Supports Discord markdown.url(string) — URL the title links to.color(integer) — Color as decimal integer. Example: Blue = 39423, Red = 16711680, Green = 65280.author(object) — Author block with requiredname, optionalurlandicon_url.fields(array, max 25) — Field objects with requirednameandvalue(max 256/1024 chars), optionalinline(boolean).thumbnail(object) — Thumbnail image (top-right corner) with requiredurl.image(object) — Large image below content with requiredurl.footer(object) — Footer with requiredtext(max 2048 chars, no markdown), optionalicon_url.timestamp(string) — ISO 8601 timestamp displayed in the footer, e.g."2026-03-09T12:00:00Z".
File Structure
Each file object requires:
filename(string) — File name with extension, e.g."report.pdf".content(string) — Base64-encoded file content.description(string, optional) — Description of the attachment.
Mention Controls
The allowed_mentions object controls pings:
parse(array) — Allowed mention types:"roles","users","everyone".roles(array) — Specific role IDs allowed to be mentioned.users(array) — Specific user IDs allowed to be mentioned.
Examples
Simple Text Message
{
"action": "send",
"webhook_url": "https://discord.com/api/webhooks/123456789/abcdef",
"content": "Hello from the bot!"
}
Custom Bot Identity
{
"action": "send",
"webhook_url": "https://discord.com/api/webhooks/123456789/abcdef",
"content": "Status update: all systems operational.",
"username": "Status Bot",
"avatar_url": "https://example.com/bot-avatar.png"
}
Rich Embed with Fields
{
"action": "send",
"webhook_url": "https://discord.com/api/webhooks/123456789/abcdef",
"embeds": [
{
"title": "Daily Sales Report",
"description": "Summary for March 9, 2026",
"color": 39423,
"fields": [
{ "name": "Total Revenue", "value": "$12,450", "inline": true },
{ "name": "Orders", "value": "87", "inline": true },
{ "name": "Top Product", "value": "Widget Pro", "inline": false }
],
"footer": { "text": "Generated automatically" },
"timestamp": "2026-03-09T17:00:00Z"
}
]
}
Embed with Image and Author
{
"action": "send",
"webhook_url": "https://discord.com/api/webhooks/123456789/abcdef",
"embeds": [
{
"title": "New Blog Post Published",
"url": "https://example.com/blog/new-post",
"description": "Check out our latest article on automation best practices.",
"color": 65280,
"author": {
"name": "Content Team",
"icon_url": "https://example.com/team-icon.png"
},
"image": { "url": "https://example.com/blog-banner.png" },
"thumbnail": { "url": "https://example.com/logo-small.png" }
}
]
}
File Attachment
{
"action": "send",
"webhook_url": "https://discord.com/api/webhooks/123456789/abcdef",
"content": "Here is the report you requested.",
"files": [
{
"filename": "report.csv",
"content": "bmFtZSxhZ2UKSm9obiwyNQpKYW5lLDMw",
"description": "Monthly sales data"
}
]
}
Message with Mention Controls
{
"action": "send",
"webhook_url": "https://discord.com/api/webhooks/123456789/abcdef",
"content": "Attention @everyone: server maintenance at 10 PM.",
"allowed_mentions": {
"parse": ["everyone"]
}
}
Common Workflows
- Automated Notifications — Send alerts from monitoring systems, CI/CD pipelines, or scheduled tasks to a Discord channel using a simple text message.
- Formatted Reports — Use embeds with fields, colors, and timestamps to deliver structured data like daily summaries, analytics, or dashboards.
- File Delivery — Attach generated reports (CSV, PDF, images) directly to Discord messages using base64-encoded file content.
- Multi-Channel Broadcasting — Send the same message to multiple channels by calling the tool once per webhook URL.
Important Notes
- You must provide at least one of
content,embeds, orfilesin every send request. - The
webhook_urlmust match the Discord webhook URL pattern. You can create webhooks in Discord under Channel Settings > Integrations > Webhooks. - Embed colors must be decimal integers, not hex strings. Convert hex to decimal (e.g., 0x0099FF = 39423).
- File content must be valid base64-encoded data.
- Discord limits: 2000 characters for content, 10 embeds per message, 25 fields per embed, 10 files per message.
- The
tts(text-to-speech) option will cause the message to be read aloud to users in the channel.







