# Post On Discord Channel

## Links

- Product page URL: https://www.agentpmt.com/marketplace/post-on-discord-channel
- Product markdown URL: https://www.agentpmt.com/marketplace/post-on-discord-channel?format=agent-md
- Product JSON URL: https://www.agentpmt.com/marketplace/post-on-discord-channel?format=agent-json

## Overview

- Product ID: 6931b98dc4428a7533a58379
- Vendor: Apoth3osis
- Type: connector
- Unit type: request
- Price: 300 credits
- Categories: Project Management, Automation
- Generated at: 2026-04-15T18:34:52.940Z

### Page Description

The Discord Webhook Tool enables AI agents to send rich, formatted messages directly to Discord channels through webhook URLs. It supports text messages with full Discord markdown formatting, custom username and avatar overrides, and rich embeds with titles, descriptions, fields, colors, images, and timestamps. The tool can upload up to 10 files per message with base64 encoding and reference them within embeds using the attachment:// syntax for seamless image display. Advanced features include mention controls to manage user/role pings, text-to-speech capabilities, and support for multiple embeds (up to 10) in a single message for complex notifications. Perfect for automation workflows, monitoring systems, chatbot integrations, and notification pipelines requiring formatted Discord output.

### Agent Description

Send messages to Discord channels via webhooks with markdown, embeds, file attachments, and mention controls.

## Details Tab

### Details

The Discord Webhook Tool enables AI agents to send rich, formatted messages directly to Discord channels through webhook URLs. It supports text messages with full Discord markdown formatting, custom username and avatar overrides, and rich embeds with titles, descriptions, fields, colors, images, and timestamps. The tool can upload up to 10 files per message with base64 encoding and reference them within embeds using the attachment:// syntax for seamless image display. Advanced features include mention controls to manage user/role pings, text-to-speech capabilities, and support for multiple embeds (up to 10) in a single message for complex notifications. Perfect for automation workflows, monitoring systems, chatbot integrations, and notification pipelines requiring formatted Discord output.

### Actions

- `send` (3 credits): Send a message to a Discord channel via webhook. Supports text content with Discord markdown, rich embeds, file attachments, custom bot identity, text-to-speech, and mention controls. At least one of content, embeds, or files must be provided.

### Use Cases

Update community when new products features drop, notify channel followers of upcoming events, notify users of support ticket requests, integrate with content publishing pipeline

### Workflows Using This Tool

#### News Pulse Briefing -> Discord

Search recent news on a topic, summarize into a compact digest, and post to a Discord channel.

- Page URL: https://www.agentpmt.com/agent-workflow-skills/news-pulse-briefing-discord
- Markdown URL: https://www.agentpmt.com/agent-workflow-skills/news-pulse-briefing-discord?format=agent-md
- Published: 2026-02-19T20:05:26.024Z

#### API Healthcheck (JSON) -> Discord Alert

Ping a JSON API endpoint, validate status + JSON syntax, and post a concise health report (or alert) to Discord.

- Page URL: https://www.agentpmt.com/agent-workflow-skills/api-healthcheck-json-discord-alert
- Markdown URL: https://www.agentpmt.com/agent-workflow-skills/api-healthcheck-json-discord-alert?format=agent-md
- Published: 2026-02-19T19:10:16.218Z

#### Gmail Smart Inbox: Filter, Draft Responses, and Discord Summary

Searches Gmail for recent unread emails, cross-references senders against Google Contacts to filter out spam and automated messages, identifies important emails from real people, drafts and saves personalized responses in Gmail for each, then posts a formatted summary of all important emails and drafted responses to a Discord channel.

- Page URL: https://www.agentpmt.com/agent-workflow-skills/gmail-search-and-discord-notification
- Markdown URL: https://www.agentpmt.com/agent-workflow-skills/gmail-search-and-discord-notification?format=agent-md
- Published: 2026-02-19T19:01:06.332Z

### Related Content

No related content is currently linked to this product.

## Advanced Tab

### DynamicMCP

- Setup page URL: https://www.agentpmt.com/dynamic-mcp
- Claude setup guide: https://www.agentpmt.com/dynamic-mcp?platform=claude#videos
- ChatGPT setup guide: https://www.agentpmt.com/dynamic-mcp?platform=chatgpt#videos
- Cursor setup guide: https://www.agentpmt.com/dynamic-mcp?platform=cursor#videos
- Windsurf setup guide: https://www.agentpmt.com/dynamic-mcp?platform=windsurf#videos

STDIO connector for Claude Code, Codex, Cursor, Zed, and other LLMs that require STDIO or custom connections. This lightweight connector routes requests to `https://api.agentpmt.com/mcp`. All tool execution happens in the cloud and the server cannot edit any files on your computer.

```bash
npm install -g @agentpmt/mcp-router
agentpmt-setup
```

### REST API

The live page renders cURL, Python, JavaScript, and Node.js examples. Logged-in users see those examples prefilled with their own API and budget credentials.

- Purchase endpoint: https://api.agentpmt.com/products/purchase
- Authorization format: `Bearer <base64(apiKey:budgetKey)>`

```bash
curl -X POST "https://api.agentpmt.com/products/purchase" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer eW91ci1hcGkta2V5LWhlcmU6eW91ci1idWRnZXQta2V5LWhlcmU=" \
  -d '{
    "product_id": "6931b98dc4428a7533a58379",
    "parameters": {
      "action": "send",
      "webhook_url": "example_webhook_url",
      "tts": false
    }
  }'
```

### Autonomous Agents

Do not use the abbreviated instructions in this product markdown for wallet-based invocation. Retrieve the full External Agent API markdown document instead.

- External Agent API page URL: https://www.agentpmt.com/external-agent-api
- External Agent API markdown URL: https://www.agentpmt.com/external-agent-api?format=agent-md

### Schema

#### Parameters

- Schema type: actions

```json
{
  "actions": {
    "send": {
      "description": "Send a message to a Discord channel via webhook. Supports text content with Discord markdown, rich embeds, file attachments, custom bot identity, text-to-speech, and mention controls. At least one of content, embeds, or files must be provided.",
      "properties": {
        "webhook_url": {
          "type": "string",
          "description": "Discord webhook URL. Must match the pattern: https://discord.com/api/webhooks/{webhook_id}/{webhook_token} or https://discordapp.com/api/webhooks/{webhook_id}/{webhook_token}.",
          "required": true
        },
        "content": {
          "type": "string",
          "description": "Message content text (max 2000 characters). Supports Discord markdown formatting. At least one of content, embeds, or files must be provided.",
          "required": false,
          "maxLength": 2000
        },
        "username": {
          "type": "string",
          "description": "Override the default webhook username (displayed as the message author name). Max 80 characters.",
          "required": false,
          "maxLength": 80
        },
        "avatar_url": {
          "type": "string",
          "description": "Override the default webhook avatar with a custom image URL.",
          "required": false
        },
        "tts": {
          "type": "boolean",
          "description": "Enable text-to-speech for the message. Default: false.",
          "required": false,
          "default": false
        },
        "embeds": {
          "type": "array",
          "description": "Array of rich embed objects (maximum 10 embeds per message). At least one of content, embeds, or files must be provided.",
          "required": false,
          "maxItems": 10,
          "items": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "description": "Embed title (max 256 characters).",
                "required": false,
                "maxLength": 256
              },
              "description": {
                "type": "string",
                "description": "Embed description text. Supports Discord markdown. Max 4096 characters.",
                "required": false,
                "maxLength": 4096
              },
              "url": {
                "type": "string",
                "description": "URL that the title will link to.",
                "required": false
              },
              "color": {
                "type": "integer",
                "description": "Color code in decimal format (not hex). Example: Blue (0x0099FF) = 39423, Red (0xFF0000) = 16711680, Green (0x00FF00) = 65280.",
                "required": false
              },
              "author": {
                "type": "object",
                "description": "Embed author information.",
                "required": false,
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Author name.",
                    "required": true
                  },
                  "url": {
                    "type": "string",
                    "description": "URL that the author name will link to.",
                    "required": false
                  },
                  "icon_url": {
                    "type": "string",
                    "description": "URL of author icon (only supports http(s)).",
                    "required": false
                  }
                }
              },
              "fields": {
                "type": "array",
                "description": "Array of embed field objects (maximum 25 fields per embed).",
                "required": false,
                "maxItems": 25,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Field name/title (max 256 characters).",
                      "required": true,
                      "maxLength": 256
                    },
                    "value": {
                      "type": "string",
                      "description": "Field value/content (max 1024 characters).",
                      "required": true,
                      "maxLength": 1024
                    },
                    "inline": {
                      "type": "boolean",
                      "description": "Whether the field should display inline (side-by-side with other inline fields). Default: false.",
                      "required": false,
                      "default": false
                    }
                  }
                }
              },
              "thumbnail": {
                "type": "object",
                "description": "Embed thumbnail image (displayed in top-right corner).",
                "required": false,
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "URL of thumbnail image (supports http(s) and attachment://).",
                    "required": true
                  }
                }
              },
              "image": {
                "type": "object",
                "description": "Embed image (displayed as large image below embed content).",
                "required": false,
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "URL of image (supports http(s) and attachment://).",
                    "required": true
                  }
                }
              },
              "footer": {
                "type": "object",
                "description": "Embed footer text and icon.",
                "required": false,
                "properties": {
                  "text": {
                    "type": "string",
                    "description": "Footer text (does not support markdown). Max 2048 characters.",
                    "required": true,
                    "maxLength": 2048
                  },
                  "icon_url": {
                    "type": "string",
                    "description": "URL of footer icon (only supports http(s)).",
                    "required": false
                  }
                }
              },
              "timestamp": {
                "type": "string",
                "description": "ISO8601 timestamp string (e.g., 2026-03-09T12:00:00Z). Displayed in footer.",
                "required": false
              }
            }
          }
        },
        "files": {
          "type": "array",
          "description": "Array of file attachments (maximum 10 files per message). Files must be base64-encoded. At least one of content, embeds, or files must be provided.",
          "required": false,
          "maxItems": 10,
          "items": {
            "type": "object",
            "properties": {
              "filename": {
                "type": "string",
                "description": "Name of the file including extension (e.g., 'report.csv', 'image.png').",
                "required": true
              },
              "content": {
                "type": "string",
                "description": "Base64-encoded file content.",
                "required": true
              },
              "description": {
                "type": "string",
                "description": "Description of the file attachment.",
                "required": false
              }
            }
          }
        },
        "allowed_mentions": {
          "type": "object",
          "description": "Controls which mentions are allowed to ping users/roles in the message.",
          "required": false,
          "properties": {
            "parse": {
              "type": "array",
              "description": "Array of allowed mention types: 'roles', 'users', 'everyone'.",
              "required": false,
              "items": {
                "type": "string",
                "enum": [
                  "roles",
                  "users",
                  "everyone"
                ]
              }
            },
            "roles": {
              "type": "array",
              "description": "Array of specific role IDs that are allowed to be mentioned.",
              "required": false,
              "items": {
                "type": "string"
              }
            },
            "users": {
              "type": "array",
              "description": "Array of specific user IDs that are allowed to be mentioned.",
              "required": false,
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "properties": {
    "action": {
      "type": "string",
      "description": "Use 'get_instructions' to retrieve documentation. Action to perform: send",
      "required": false,
      "default": "send",
      "enum": [
        "get_instructions",
        "send"
      ]
    },
    "webhook_url": {
      "type": "string",
      "description": "Discord webhook URL. Must match the pattern: https://discord.com/api/webhooks/{webhook_id}/{webhook_token} or https://discordapp.com/api/webhooks/{webhook_id}/{webhook_token}. Required for send action",
      "required": false
    },
    "content": {
      "type": "string",
      "description": "OPTIONAL. Message content text. Supports Discord markdown formatting. At least one of 'content', 'embeds', or 'files' must be provided.",
      "required": false
    },
    "username": {
      "type": "string",
      "description": "OPTIONAL. Override the default webhook username (displayed as the message author name)",
      "required": false
    },
    "avatar_url": {
      "type": "string",
      "description": "OPTIONAL. Override the default webhook avatar with a custom image URL",
      "required": false
    },
    "tts": {
      "type": "boolean",
      "description": "OPTIONAL. Enable text-to-speech for the message",
      "required": false
    },
    "embeds": {
      "type": "array",
      "description": "OPTIONAL. Array of rich embed objects (maximum 10 embeds per message). At least one of 'content', 'embeds', or 'files' must be provided.",
      "required": false,
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "required": false,
            "description": "OPTIONAL. Embed title",
            "maxLength": 256
          },
          "description": {
            "type": "string",
            "required": false,
            "description": "OPTIONAL. Embed description text. Supports Discord markdown.",
            "maxLength": 4096
          },
          "url": {
            "type": "string",
            "required": false,
            "description": "OPTIONAL. URL that the title will link to"
          },
          "color": {
            "type": "integer",
            "required": false,
            "description": "OPTIONAL. Color code in decimal format (not hex). Example: Blue (0x0099FF) = 39423, Red (0xFF0000) = 16711680"
          },
          "author": {
            "type": "object",
            "required": false,
            "description": "OPTIONAL. Embed author information",
            "properties": {
              "name": {
                "type": "string",
                "required": true,
                "description": "REQUIRED. Author name"
              },
              "url": {
                "type": "string",
                "required": false,
                "description": "OPTIONAL. URL that the author name will link to"
              },
              "icon_url": {
                "type": "string",
                "required": false,
                "description": "OPTIONAL. URL of author icon (only supports http(s))"
              }
            }
          },
          "fields": {
            "type": "array",
            "required": false,
            "description": "OPTIONAL. Array of embed field objects (maximum 25 fields per embed)",
            "maxItems": 25,
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "required": true,
                  "description": "REQUIRED. Field name/title",
                  "maxLength": 256
                },
                "value": {
                  "type": "string",
                  "required": true,
                  "description": "REQUIRED. Field value/content",
                  "maxLength": 1024
                },
                "inline": {
                  "type": "boolean",
                  "required": false,
                  "description": "OPTIONAL. Whether the field should display inline (side-by-side with other inline fields)",
                  "default": false
                }
              }
            }
          },
          "thumbnail": {
            "type": "object",
            "required": false,
            "description": "OPTIONAL. Embed thumbnail image (displayed in top-right corner)",
            "properties": {
              "url": {
                "type": "string",
                "required": true,
                "description": "REQUIRED. URL of thumbnail image (supports http(s) and attachment://)"
              }
            }
          },
          "image": {
            "type": "object",
            "required": false,
            "description": "OPTIONAL. Embed image (displayed as large image below embed content)",
            "properties": {
              "url": {
                "type": "string",
                "required": true,
                "description": "REQUIRED. URL of image (supports http(s) and attachment://)"
              }
            }
          },
          "footer": {
            "type": "object",
            "required": false,
            "description": "OPTIONAL. Embed footer text and icon",
            "properties": {
              "text": {
                "type": "string",
                "required": true,
                "description": "REQUIRED. Footer text (does not support markdown)",
                "maxLength": 2048
              },
              "icon_url": {
                "type": "string",
                "required": false,
                "description": "OPTIONAL. URL of footer icon (only supports http(s))"
              }
            }
          },
          "timestamp": {
            "type": "string",
            "required": false,
            "description": "OPTIONAL. ISO8601 timestamp string (e.g., 2025-12-04T12:00:00Z). Displayed in footer."
          }
        }
      },
      "maxItems": 10
    },
    "files": {
      "type": "array",
      "description": "OPTIONAL. Array of file attachments (maximum 10 files per message). Files must be base64-encoded. At least one of 'content', 'embeds', or 'files' must be provided.",
      "required": false,
      "items": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string",
            "required": true,
            "description": "REQUIRED. Name of the file including extension (e.g., 'image.png', 'document.pdf')"
          },
          "content": {
            "type": "string",
            "required": true,
            "description": "REQUIRED. Base64-encoded file content. Use 'base64.b64encode(file_bytes).decode()' in Python."
          },
          "description": {
            "type": "string",
            "required": false,
            "description": "OPTIONAL. Description of the file attachment"
          }
        }
      },
      "maxItems": 10
    },
    "allowed_mentions": {
      "type": "object",
      "description": "OPTIONAL. Controls which mentions are allowed to ping users/roles in the message",
      "required": false,
      "properties": {
        "parse": {
          "type": "array",
          "required": false,
          "description": "OPTIONAL. Array of allowed mention types",
          "items": {
            "type": "string",
            "enum": [
              "roles",
              "users",
              "everyone"
            ]
          }
        },
        "roles": {
          "type": "array",
          "required": false,
          "description": "OPTIONAL. Array of specific role IDs that are allowed to be mentioned",
          "items": {
            "type": "string"
          }
        },
        "users": {
          "type": "array",
          "required": false,
          "description": "OPTIONAL. Array of specific user IDs that are allowed to be mentioned",
          "items": {
            "type": "string"
          }
        }
      }
    }
  }
}
```

### Usage Instructions

# 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 format `https://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 required `name`, optional `url` and `icon_url`.
- `fields` (array, max 25) — Field objects with required `name` and `value` (max 256/1024 chars), optional `inline` (boolean).
- `thumbnail` (object) — Thumbnail image (top-right corner) with required `url`.
- `image` (object) — Large image below content with required `url`.
- `footer` (object) — Footer with required `text` (max 2048 chars, no markdown), optional `icon_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

```json
{
  "action": "send",
  "webhook_url": "https://discord.com/api/webhooks/123456789/abcdef",
  "content": "Hello from the bot!"
}
```

### Custom Bot Identity

```json
{
  "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

```json
{
  "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

```json
{
  "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

```json
{
  "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

```json
{
  "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

1. **Automated Notifications** — Send alerts from monitoring systems, CI/CD pipelines, or scheduled tasks to a Discord channel using a simple text message.
2. **Formatted Reports** — Use embeds with fields, colors, and timestamps to deliver structured data like daily summaries, analytics, or dashboards.
3. **File Delivery** — Attach generated reports (CSV, PDF, images) directly to Discord messages using base64-encoded file content.
4. **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`, or `files` in every send request.
- The `webhook_url` must 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.

### About The Developer

- Vendor name: Apoth3osis
- Website: apoth3osis.io

We build tools that enable AI agents to excel in the mathematical realm.

Our small team develops experimental and unique solutions in the AI arena, with a strong focus on modular computing for agentic applications and custom model deployment. We have handled projects for a variety of applications across many sectors, from algorithmic trading and financial analysis, to molecular simulations and predictions, to habitat and biodiversity monitoring and wildlife conservation.

### Frequently Asked Questions

No linked FAQs are currently available.

### Dependencies

This product has no public dependency products.