Overview
The Composio notifier provides:- Multi-platform support (Slack, Discord, Gmail)
- Single configuration for all channels
- Automatic authentication via Composio
- Priority-based emoji indicators
- Action button support
- Automatic timeout handling (30s)
- Optional peer dependency (graceful degradation)
The Composio SDK is an optional peer dependency. If not installed, the plugin will log a warning and perform no-ops without crashing.
Prerequisites
- Composio Account: Sign up at https://composio.dev
- Composio SDK: Install the optional dependency
- Connected Apps: Connect your Slack/Discord/Gmail accounts through Composio dashboard
Configuration
Add the Composio notifier to youragent-orchestrator.yaml:
Configuration Options
Your Composio API key. Get it from the Composio Dashboard.Falls back to
COMPOSIO_API_KEY environment variable if not specified in config.Default notification platform. Must be one of:
slack- Send to Slack via Composiodiscord- Send to Discord via Composiogmail- Send email via Gmail
You must have the corresponding app connected in your Composio account.
Channel name for Slack (e.g.,
#agent-notifications) or Discord.Slack: Accepts channel names (#channel) or user IDs (@user)Discord: Channel names are converted to channel IDs by ComposioExplicit channel ID for Slack or Discord.Slack: Channel ID like
C1234567890Discord: Numeric channel ID like 123456789012345678If both
channelName and channelId are provided, channelId takes precedence.Email recipient address. Required when
defaultApp is gmail.Platform-Specific Behavior
Slack
Tool Used:SLACK_SEND_MESSAGE
Payload:
- Supports both channel names and IDs
- Emoji-based priority indicators
- Markdown formatting
- Action URLs in message body
Discord
Tool Used:DISCORD_SEND_MESSAGE
Payload:
- Requires numeric channel IDs (not names)
- Emoji-based priority indicators
- Markdown formatting
- Action URLs in message body
Discord requires numeric channel IDs. Channel names are passed to Composio, which attempts to resolve them to IDs.
Gmail
Tool Used:GMAIL_SEND_EMAIL
Payload:
- Fixed subject line: “Agent Orchestrator Notification”
- Plain text body with emoji indicators
- Action URLs listed in email body
Priority Emoji
Each notification includes a priority indicator:🚨 urgent
🚨 urgent
Critical issues requiring immediate attention (Unicode: U+1F6A8)
👉 action
👉 action
Actions waiting for human decision (Unicode: U+1F449)
⚠️ warning
⚠️ warning
Warning conditions to be aware of (Unicode: U+26A0)
ℹ️ info
ℹ️ info
Informational updates (Unicode: U+2139)
Message Format
Standard Notification
With Actions
Actions without URLs are listed without links. This is common for callback-based actions that require custom handling.
Usage Examples
Slack Notifications
Discord Notifications
Email Notifications
Multi-Environment Setup
Advanced Features
Custom Message Posting
Thepost() method allows sending custom messages with optional channel override:
Entity ID Support
The plugin passesentityId to Composio’s executeAction() if needed for multi-tenant scenarios:
Timeout Handling
All Composio API calls have a 30-second timeout to prevent hanging:Troubleshooting
SDK not installed warning
SDK not installed warning
No API key configured
No API key configured
Invalid defaultApp error
Invalid defaultApp error
Gmail requires emailTo
Gmail requires emailTo
App not connected in Composio
App not connected in Composio
Composio API returns error: “App not connected”Solution:
- Go to Composio Dashboard
- Navigate to “Connected Accounts”
- Click “Connect” for Slack/Discord/Gmail
- Complete OAuth flow
- Retry notification
Discord channel not found
Discord channel not found
Discord requires numeric channel IDs. Channel names may not resolve.Solution: Use explicit channel IDFind channel ID:
- Enable Developer Mode in Discord settings
- Right-click channel → Copy ID
Timeout errors
Timeout errors
- Network connectivity issues
- Composio API slowness
- Large message payload
- Check network connection
- Retry the operation
- Contact Composio support if persistent
Comparison with Other Notifiers
| Feature | Composio | Slack | Webhook |
|---|---|---|---|
| Multi-platform | ✅ 3 platforms | ❌ Slack only | ✅ Any HTTP |
| Setup complexity | Medium | Low | Low |
| Authentication | Composio OAuth | Webhook URL | Custom headers |
| Message formatting | Platform-aware | Block Kit | Custom JSON |
| Action buttons | Text only | Interactive | Custom |
| Email support | ✅ Gmail | ❌ | ✅ (custom) |
| Retries | SDK handles | Manual | Built-in |
| Cost | Composio pricing | Free (webhook) | Free (DIY) |
Source Code
View the plugin source:- Package:
@composio/ao-plugin-notifier-composio - Location:
packages/plugins/notifier-composio/src/index.ts
Related
- Composio Documentation - Official Composio docs
- Slack Notifier - Direct Slack webhook integration
- Webhook Notifier - Generic HTTP webhooks
- Desktop Notifier - OS-native notifications
- Notifier Plugin Interface - Technical interface
