Linear tells your agent when work changed state. MultiMail decides whether that change justifies an outbound email, and makes a human confirm before it goes out.
Linear is the issue tracker and project coordination tool most engineering teams actually use. Agents built on top of Linear data — triage bots, release coordinators, customer escalation handlers — frequently need to send email when something changes: a P0 closes, a cycle slips, a release ships. The problem is that Linear state changes do not map cleanly onto email-worthy events. An agent that emails customers every time an issue moves to Done will burn trust fast.
MultiMail sits between your Linear agent and your outbox. When the agent decides an email should go out, MultiMail captures that intent and holds it for human review under `gated_send` mode, or logs it with full auditability under `monitored` mode. Your team gets to confirm that the agent's judgment is correct before anything reaches a customer or teammate.
The integration is a webhook handler plus a few MultiMail API calls. Linear fires a webhook on issue state changes, cycle transitions, or project updates. Your handler reads the Linear context, decides whether an email is warranted, and calls `POST /send_email` — or queues the decision for a human to approve via `list_pending` and `decide_email`.
A Linear issue moving from In Progress to Done is internal signal, not a customer event. MultiMail's `gated_send` mode lets your agent propose the email while a human confirms it's appropriate — preventing notification spam from automated workflows.
Every email sent from a Linear-triggered agent is logged with the originating issue ID, the agent's reasoning, and approval timestamps. When a customer asks why they received a message, you have a complete record tied back to a specific Linear event.
Set `autonomous` for internal Slack-replacement notifications, `gated_send` for customer-facing release notes, and `read_only` for agents that should only report what they'd send. Oversight mode is configured per mailbox, not per request.
MultiMail fires webhooks on approval events. Your agent can listen for `email.approved` and `email.rejected` to update the Linear issue — adding a comment, changing state, or notifying the assignee — without polling.
MultiMail handles deliverability, DKIM signing, bounce tracking, and unsubscribe headers required by CAN-SPAM and GDPR. Your Linear agent calls one API endpoint; MultiMail handles the rest.
No code, no dashboard. Paste this to your AI agent — it connects MultiMail, creates an inbox, and builds the flow for you.
Install the Linear TypeScript SDK. In your MultiMail dashboard, create a mailbox for agent-sent notifications (e.g., `[email protected]`) and set its oversight mode to `gated_send` to hold all outbound emails for review.
In your Linear workspace settings, create a webhook pointing to your handler endpoint. Subscribe to `Issue` events at minimum. Linear will POST to your URL on every state change, assignment, or label update.
Handle the Linear webhook payload, fetch any additional context from the Linear API, and call `POST /send_email` on MultiMail. Include the Linear issue ID in `metadata` so you can correlate approval decisions back to issues.
Register a MultiMail webhook for `email.approved` and `email.rejected` events. When an approval decision arrives, extract `metadata.linear_issue_id` and post a comment to the Linear issue confirming whether the notification was sent.
Email infrastructure built for AI agents. Verifiable identity, graduated oversight, and a hosted MCP server. Formally verified in Lean 4.