Migrate Customers Smoothly with Clear Communication

AI drafts phased migration emails with technical guides and timelines. Your team verifies every detail before customers see it.


Why this matters

Platform migrations, API version upgrades, and service transitions create anxiety for customers. Poorly communicated migrations cause support overload, broken integrations, and customer churn. Customers need clear, phased guidance but producing accurate technical migration content for each customer segment is enormously time-consuming.


How MultiMail solves this

MultiMail's AI agent drafts phased migration communications with technical guides, timelines, and support resources tailored to each customer's integration. With gated_all oversight, your engineering and support teams verify every technical detail before delivery — because errors in migration instructions can break customer integrations.

1

Segment Migration Cohorts

Use search_contacts to identify customers affected by the migration. Tag them by integration type, API version, and migration priority to send the right message to each group.

2

Draft Phase-Specific Communications

The AI drafts emails for each migration phase — announcement, preparation guide, migration window, and completion confirmation. Each email includes relevant technical details for the customer's specific integration.

3

Engineering Reviews Everything

With gated_all oversight, every migration email is reviewed for technical accuracy. Engineering verifies code examples, endpoint changes, and breaking changes before any customer receives instructions.

4

Send and Track Progress

Approved emails are sent to the appropriate cohort. Tag conversations to track which customers have acknowledged, started, and completed their migration.


Implementation

Send Migration Announcement
python
import requests

API = "https://api.multimail.dev/v1"
HEADERS = {"Authorization": "Bearer mm_live_xxx"}

"cm"># Find customers on API v1
v1_customers = requests.get(
    f"{API}/contacts/search",
    headers=HEADERS,
    params={"tags": "api-v1"}
).json()

for customer in v1_customers["contacts"]:
    response = requests.post(
        f"{API}/send",
        headers=HEADERS,
        json={
            "from": "[email protected]",
            "to": customer["email"],
            "subject": "Action required: API v2 migration guide (deadline April 30)",
            "text_body": f"Hi {customer[&"cm">#039;name']},\n\nWe're upgrading to API v2 with improved performance. Your v1 integration will continue working until April 30, 2026.\n\nMigration guide: https://docs.example.com/migrate-v2\n\nKey changes:\n- New auth header format\n- Paginated responses\n- Webhook payload v2 schema"
        }
    )
    print(f"Migration notice sent to {customer[&"cm">#039;email']}")

Notify affected customers about an upcoming API migration with timeline and preparation steps.

Track Migration Progress
python
import requests

API = "https://api.multimail.dev/v1"
HEADERS = {"Authorization": "Bearer mm_live_xxx"}

"cm"># Tag customers who have migrated
requests.post(
    f"{API}/contacts/{contact_id}/tags",
    headers=HEADERS,
    json={"tags": ["migration-complete"]}
)

"cm"># Find customers who haven't started
not_started = requests.get(
    f"{API}/contacts/search",
    headers=HEADERS,
    params={"tags": "api-v1,-migration-started"}
).json()

"cm"># Send reminder
for customer in not_started["contacts"]:
    requests.post(
        f"{API}/send",
        headers=HEADERS,
        json={
            "from": "[email protected]",
            "to": customer["email"],
            "subject": "Reminder: API v1 sunset in 30 days",
            "text_body": f"Hi {customer[&"cm">#039;name']}, API v1 will be retired on April 30. We haven't detected any v2 API calls from your integration yet..."
        }
    )

Tag customers by migration status and send follow-ups to those who haven't started.

MCP Tool Integration
typescript
"cm">// Migration communication workflow via MCP

"cm">// 1. Find affected customers
const affected = await mcp.search_contacts({
  tags: ["api-v1"]
});

"cm">// 2. Send migration guide
for (const customer of affected.contacts) {
  await mcp.send_email({
    from: "[email protected]",
    to: customer.email,
    subject: "Action required: API v2 migration guide",
    text_body: `Hi ${customer.name}, we're upgrading to API v2...`
  });

  "cm">// 3. Tag as notified
  await mcp.add_contact({
    email: customer.email,
    tags: ["migration-notified"]
  });
}

Manage migration communications using MultiMail MCP tools.


What you get

Zero Broken Integrations

Gated_all oversight ensures every migration instruction is technically accurate before customers attempt changes to their integrations.

Phased Communication

AI manages multi-phase migration campaigns — announcement, preparation, migration window, and completion — keeping customers informed at every stage.

Segment-Specific Guidance

Different customer segments receive migration instructions tailored to their specific integration patterns, API usage, and technical complexity.

Migration Progress Tracking

Contact tagging creates a real-time view of migration progress across your customer base, making it easy to identify and support stragglers.


Recommended oversight mode

Recommended
gated_all
Migration communications contain technical instructions that can break customer integrations if inaccurate. Gated_all ensures engineering reviews every detail — endpoint changes, code examples, and timelines — before customers act on the instructions.

Common questions

Why is gated_all necessary for migration emails?
Migration instructions tell customers exactly how to modify their code and configurations. An error in an endpoint URL, authentication change, or breaking change description could cause production outages for your customers. Gated_all ensures engineering verifies every technical detail.
How do I handle different migration paths for different customers?
Tag customers by integration type, API version, and feature usage. The AI drafts migration instructions specific to each segment — webhook users get webhook migration steps, REST API users get endpoint changes, and so on.
Can I track which customers have completed their migration?
Yes. Combine MultiMail's contact tagging with your API usage data. Tag customers as they progress through migration stages (notified, started, completed) and use search_contacts to identify customers who need follow-up.
How many migration phases should I plan?
Most migrations work well with 4 phases: initial announcement (90 days out), detailed preparation guide (60 days), migration window reminder (30 days), and final deadline notice (7 days). The AI can draft all phases upfront for batch review.

Explore more use cases

The only agent email with a verifiable sender

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