This guide shows how to trigger Discord message summarizations from Zapier using the webhook API.
Pick any Zapier trigger event that should create a summary:
- Schedule by Zapier - Daily/weekly summary generation
- Gmail - Summarize when new email arrives
- Slack - Summarize Slack conversations
- Google Sheets - Trigger from spreadsheet updates
- Webhooks - Custom webhook triggers
- Any other Zapier app
- Click + Add Step in your Zap
- Search for Webhooks by Zapier
- Choose POST as the action event
- Click Continue
URL:
https://summarybot-ng.fly.dev/api/v1/summaries
Payload Type: json
Data: (See templates below)
Headers:
Content-Type: application/json
X-API-Key: test-api-key-12345
{
"messages": [
{
"id": "msg-001",
"author_name": "User1",
"author_id": "123456",
"content": "First message content",
"timestamp": "2026-01-06T10:00:00"
},
{
"id": "msg-002",
"author_name": "User2",
"author_id": "234567",
"content": "Second message content",
"timestamp": "2026-01-06T10:01:00"
}
],
"channel_id": "zapier-channel",
"guild_id": "zapier-guild"
}{
"messages": [
{
"id": "msg-001",
"author_name": "Alice",
"author_id": "111111",
"content": "Message content here",
"timestamp": "2026-01-06T10:00:00"
}
],
"channel_id": "zapier-channel-123",
"guild_id": "zapier-guild-456",
"options": {
"summary_length": "brief",
"include_bots": false,
"min_messages": 3
}
}"brief"- Short, concise summary (2-3 sentences)"detailed"- Medium-length summary (1 paragraph)"comprehensive"- Detailed summary with full context
Use Zapier's field mapping to populate dynamic data:
{
"messages": [
{
"id": "{{trigger.message_id}}",
"author_name": "{{trigger.author_name}}",
"author_id": "{{trigger.author_id}}",
"content": "{{trigger.message_content}}",
"timestamp": "{{trigger.timestamp}}"
}
],
"channel_id": "{{trigger.channel_id}}",
"guild_id": "zapier-integration",
"options": {
"summary_length": "detailed",
"include_bots": false
}
}Trigger: Schedule by Zapier (Daily at 5 PM) Action: Webhook POST to generate summary Use Case: Daily summary of all messages from the day
Trigger: Gmail - New Email Matching Search Action: Webhook POST with email content as messages Use Case: Summarize email threads automatically
Trigger: Slack - New Message Posted to Channel Action: Webhook POST to summarize conversation Use Case: Cross-post Slack summaries to Discord
Trigger: Google Calendar - Event Ended Action: Webhook POST to summarize meeting notes Use Case: Auto-generate meeting summaries
The API returns a summary object:
{
"id": "sum_1767657814",
"channel_id": "zapier-channel-123",
"guild_id": "zapier-guild-456",
"summary_text": "Brief overview of the conversation...",
"key_points": [
"First key point",
"Second key point"
],
"action_items": [],
"message_count": 5,
"start_time": "2026-01-06T10:00:00",
"end_time": "2026-01-06T10:05:00",
"metadata": {
"input_tokens": 488,
"output_tokens": 293,
"total_tokens": 781
}
}After the webhook action, you can:
- Send to Slack - Post the summary to a Slack channel
- Email - Send summary via Gmail/Outlook
- Google Sheets - Log summaries to a spreadsheet
- Discord - Post back to Discord using Discord webhook
- Notion - Save to a Notion database
- Any other Zapier action
- Add Slack action after webhook
- Choose Send Channel Message
- Map fields:
- Message Text:
{{webhook.summary_text}} - Additional Info:
Key Points: {{webhook.key_points}}
- Message Text:
Use any API key with 10+ characters:
X-API-Key: test-api-key-12345
Request a secure API key and store it in Zapier's secure storage:
- Go to Zap settings
- Store API key as a secret
- Reference it in headers:
{{secret.API_KEY}}
- Ensure
X-API-Keyheader is set - Key must be at least 10 characters
- Change
summary_lengthto:"brief","detailed", or"comprehensive"
- Check all required fields are present:
messages,channel_id,guild_id - Each message needs:
id,author_name,author_id,content,timestamp - Timestamps must be in ISO 8601 format:
2026-01-06T10:00:00
- Default: 100 requests per minute
- If exceeded, wait 60 seconds and retry
- Trigger: Schedule by Zapier (Daily at 9 AM)
- Action 1: Google Sheets - Lookup Spreadsheet Rows
- Find all messages from yesterday
- Action 2: Code by Zapier (JavaScript)
- Transform rows into message array format
- Action 3: Webhooks by Zapier (POST)
- Send to summary API
- Action 4: Discord Webhook
- Post summary back to Discord channel
- Click Test & Continue in Zapier
- Verify the webhook response appears
- Check that
summary_textcontains content - Ensure no error fields in response
- Turn on your Zap!
- API Endpoint: https://summarybot-ng.fly.dev
- Health Check: https://summarybot-ng.fly.dev/health
- Documentation: /workspaces/summarybot-ng/docs/
After setting up Zapier:
- Test with sample data
- Monitor token usage in responses
- Adjust
summary_lengthbased on needs - Set up error notifications in Zapier
- Create multiple Zaps for different use cases