Email oversight for AI agents built on Salesforce

When agents react to Salesforce triggers—deal stage changes, case escalations, renewal alerts—MultiMail ensures every outbound email passes the right approval gate before it reaches your customer.


Salesforce Flows, Apex triggers, and Einstein AI can detect the right moment to reach out to a customer. What they cannot do is safely hand that email to an AI agent without human review. CRM-native email tooling has no concept of graduated autonomy—it either sends or it doesn't.

MultiMail sits between your Salesforce automation and the outbound SMTP layer. Agents receive CRM event data via webhook or direct API call, compose a response, and submit it through MultiMail's oversight pipeline. A gated_send configuration holds the message in a pending queue until a human approves it in the MultiMail dashboard or via a webhook callback.

This matters most in regulated industries. Salesforce is widely deployed in financial services, healthcare, and insurance—sectors where FINRA, HIPAA, and GDPR impose strict controls on AI-generated customer communications. MultiMail's approval audit log gives compliance teams a per-message record of what was sent, when, and by which agent identity.

The integration requires no Salesforce package installation. You call the MultiMail REST API from an Apex class, a Flow's HTTP callout action, or an external agent process that consumes Salesforce event data via Platform Events or Change Data Capture.

Built for Salesforce developers

Approval gates on CRM-triggered email

Salesforce can fire a trigger the moment a deal closes or a case breaches SLA. MultiMail's gated_send mode intercepts the agent's outbound email and holds it for human review before delivery—preventing premature or incorrect customer communications from shipping automatically.

Identity verification across mailboxes

Agents operating across multiple Salesforce orgs or business units can be bound to specific MultiMail mailboxes. Each mailbox has a verified sending identity, so customer-facing email always comes from the correct domain and passes DKIM and SPF checks—not from a shared alias or unverified relay.

Compliance audit trail per message

Every message processed by MultiMail—whether approved, rejected, or cancelled—is logged with agent identity, timestamp, oversight mode, and approval decision. This satisfies GDPR Article 22 documentation requirements and FINRA record-keeping rules for AI-assisted customer outreach.

Cancellable sends before delivery

If an agent dispatches an email and a human reviewer catches an error, a POST to the mailbox's email-cancel route revokes delivery before it leaves the queue. Salesforce's native email actions have no equivalent recall mechanism once triggered.

Inbound routing back into Salesforce

MultiMail webhooks deliver inbound email payloads to any HTTPS endpoint, including Salesforce Platform Event ingestion endpoints or external agent processes. Customer replies to agent-sent emails can be parsed, classified, and written back to the relevant Case or Opportunity record.


Try it with your agent

No code, no dashboard. Paste this to your AI agent — it connects MultiMail, creates an inbox, and builds the flow for you.

Paste this prompt into your AI agent: 1. Get MultiMail ready for a Salesforce Agentforce implementation. Read https://multimail.dev/llms.txt, connect the MultiMail MCP server to this agent, create a free MultiMail inbox for Salesforce-originated messages, and set up a verified sending domain. Keep MultiMail in gated_send oversight mode for this build. 2. Wire MultiMail into Salesforce using real Agentforce extension points. In Salesforce, use Agent Builder to add or update the relevant Agentforce agent, define a topic for customer email follow-up from Opportunity, Case, and renewal contexts, and add custom agent actions backed by Salesforce Flow or invocable Apex where Salesforce needs to pass record context into the agent. 3. Give the Salesforce agent three MultiMail-backed capabilities: check the connected inbox for replies, draft a reply using the Salesforce record context, and send or schedule an outbound email only through MultiMail. Use Salesforce Flow or invocable Apex only for Salesforce record lookup, trigger context, and agent action orchestration; use the connected MultiMail MCP server for the email work. 4. Send one test email from a safe Salesforce test record, such as a sandbox Opportunity or Case with an internal recipient. Confirm the agent can read the Salesforce context, compose the email in MultiMail, and route the outbound message through the verified sender. 5. Keep gated_send enabled. The Salesforce agent may draft and prepare messages from deal stage changes, case escalations, and renewal alerts, but every outbound email must stop for developer review and explicit approval before MultiMail sends it.

Step by step

1

Create a MultiMail account and provision a mailbox

Sign up at multimail.dev and create a mailbox for your Salesforce-connected agent. Use a subdomain of your company domain (e.g., sales@acme.multimail.dev) or verify your own domain to send from support@yourdomain.com. Copy your API key from the dashboard—it starts with mm_live_ for production or mm_test_ for sandbox testing.

2

Store your API key securely in Salesforce

In Salesforce Setup, create a Custom Label named MultiMail_API_Key and paste your mm_live_ key as the value. Custom Labels are org-level constants that Apex can read at runtime without hardcoding credentials. For Named Credentials, configure an external endpoint pointing to https://api.multimail.dev with the Authorization header set to Bearer {your_key}.

3

Set oversight mode for your first flow

Oversight is configured on the mailbox, not per send. Create the mailbox with gated_send for any customer-facing email that needs human review. Use monitored if you want autonomous sends with a notification trail, or autonomous only after your team has validated the agent's output quality. Start with gated_send during development.

4

Configure a webhook endpoint to receive approval events

In the MultiMail dashboard under Settings > Webhooks, add your endpoint URL (e.g., https://your-agent-host.com/webhooks/multimail). Subscribe to the email.received, email.delivered, and email.bounced event types. Your handler matches each event back to the originating Salesforce record by the thread or address it carries.

5

Test end-to-end with a sandbox Salesforce org

Use a Salesforce Developer Edition or sandbox org paired with a MultiMail mm_test_ key. Trigger your Flow or Apex callout manually, confirm the message appears in list_pending, approve it from the dashboard, and verify your webhook handler receives the message.approved event and writes the outcome back to the Salesforce record.


Common questions

Does MultiMail require installing a managed package in Salesforce?
No. MultiMail is a REST API. You call it from Apex via HttpRequest, from a Flow's HTTP callout action, or from an external agent process that consumes Salesforce events. There is no AppExchange package or Salesforce-side component required.
Can I use MultiMail with Salesforce Einstein AI or Agentforce?
Yes. Einstein and Agentforce can generate email drafts or determine when to reach out. You route those outputs through MultiMail's API rather than Salesforce's native email actions. MultiMail adds the approval gate, identity verification, and audit log that CRM-native tooling does not provide for AI-generated messages.
How do I match a MultiMail approval event back to the Salesforce record that triggered it?
Pass Salesforce record IDs in the metadata field when calling the send endpoint—for example, {"salesforce_case_id": "5003000000D8cuI"}. MultiMail echoes this metadata in every webhook event. Your webhook handler reads the case or opportunity ID from metadata and calls the Salesforce REST API to update the record.
What oversight mode should I use for high-volume Salesforce outreach like renewal reminders?
Start with gated_send during rollout so your team can validate the agent's output. Once output quality is confirmed over several hundred messages, move to monitored—the agent sends autonomously, but every message is logged and your team receives notifications. Reserve autonomous for low-risk, high-volume flows where your team has explicitly signed off on the agent's judgment.
How does MultiMail help with GDPR compliance for Salesforce-triggered emails?
GDPR Article 22 requires that automated decision-making affecting individuals be subject to human oversight on request. MultiMail's approval audit log records agent identity, timestamp, oversight mode, and the human reviewer's decision for every message. This log is queryable via the API and can be exported for regulatory documentation. For suppression and unsubscribe compliance, store opt-out status in Salesforce and check it before calling the MultiMail send endpoint.
Can inbound customer replies be routed back into Salesforce?
Yes. Configure a MultiMail inbound webhook to receive reply events. The payload includes the parsed email body, sender address, and the thread ID. Your webhook handler calls the Salesforce REST API to append the reply content to the relevant Case or Opportunity, or publishes a Platform Event that a Salesforce Flow picks up to create a follow-up task.
What happens if a Salesforce record changes after an email is queued for approval?
POST to the mailbox's email-cancel route (/v1/mailboxes/{mailbox_id}/emails/{email_id}/cancel) before a reviewer approves it. MultiMail returns 200 with status "cancelled" if the cancellation succeeds, or an error if the message was already delivered. To automate this, listen for Salesforce Change Data Capture events on the relevant object and cancel the corresponding pending MultiMail email when the record enters a state that makes the queued email invalid.

Explore more

The only agent email with a verifiable sender

Email infrastructure built for AI agents. Verifiable identity, graduated oversight, and a hosted MCP server. Formally verified in Lean 4.