Draft and send messages—always with your approval
Draft emails or messages from templates and context. Send is gated; allowlists and rate limits apply.
What Communications does
Communications provides safe message drafting and sending capabilities. Draft emails or messages from templates and context. All sends require approval, and outbound connections are disabled by default. Allowlists and rate limits prevent abuse.
Drafting capabilities
- Draft from templates or context
- Personalize with recipient data
- Preview before sending
Sending capabilities Gated
- Send via provider (requires approval)
- Batch sends (gated)
- Domain allowlists and rate limits
Who benefits from Communications
Individuals
Follow-ups without typing
Teams & Managers
Standardized comms and batched updates
Developers & IT
Pluggable providers and structured payloads
Security & Compliance
Outbound off by default; logs of every send
How it works
Draft message
Use comms.draft_message with templates or context. Personalize with recipient data.
Preview and approve
Review draft before sending. Edit if needed.
Send via provider (gated)
Use comms.send_message to send. Requires approval and checks domain allowlist.
Record message ID
Log message ID and timestamp for audit trail.
Example workflows
Draft weekly update email
Approval before send"Draft weekly update email; hold for review"
- docs.search_docs (find weekly notes)
- llm.generate (summarize into email)
- comms.draft_message (format as email)
- comms.send_message (send) — pauses for approval
Email sent with approval timestamp and message ID
Send reminders to allowed list
Approval before batch send"Send reminders to team about Q3 planning"
- kg.query (get team email addresses)
- comms.draft_message (personalize for each recipient)
- comms.send_message (batch send) — pauses for approval
Batch sent with approval log and message IDs
Follow-up email from meeting notes
Approval before send"Draft follow-up email from today's meeting notes"
- docs.search_docs (find today's meeting notes)
- llm.generate (extract action items and draft email)
- comms.draft_message (format as email)
- comms.send_message (send) — pauses for approval
Follow-up email sent with action items and approval log
Technical details
Key tools
- comms.draft_message
- comms.send_message (gated)
- comms.list_providers
- comms.get_status
Configuration
PROVIDER_TOKENS— API keys for email/SMS providersDOMAIN_ALLOWLIST— allowed recipient domainsRATE_LIMIT— sends per hourSEND_ENABLE— false (default)
Performance notes
- Draft: 100-500ms depending on template complexity
- Send: depends on provider latency
- Batch: rate-limited to prevent abuse
Observability
- Send counts and approval rates
- Rejects and rate limit hits
- Provider latency and error rates
Security posture
Explicit approvals
All sends require approval. No messages sent without explicit consent.
Outbound disabled by default
Sending requires explicit enablement. Outbound connections are off by default.
Domain allowlists
Only allowlisted recipient domains can receive messages.
Audit logs
All sends logged with message IDs, timestamps, and approval decisions.
Roadmap & status
Current features
- Draft messages from templates
- Provider stubs for email/SMS
- Approval gates and audit logs
Coming soon
- Full provider adapters (SendGrid, Twilio, etc.)
- Templating engine with variables
- Delivery status tracking
Frequently asked questions
Ready to draft and send safely?
Get started with Communications in minutes. All sends require approval.