Keep Customers Informed Through Every Return Step

AI sends stage-by-stage return updates from receiving through refund processing. Customers know exactly where their return stands.


Why this matters

Customers anxiously check refund status, generating support tickets that cost $5-15 each. 'Where is my refund?' is often the top support inquiry for ecommerce businesses. The lack of proactive updates damages trust and increases churn, especially when refunds take 5-10 business days to process.


How MultiMail solves this

MultiMail's AI agent sends automated status updates as returns progress through receiving, inspection, and refund stages. Autonomous mode ensures instant notifications at each milestone, preempting customer inquiries and reducing support volume by up to 50%.

1

Track Return Events

Your returns management system sends webhook events as returns progress: shipped, received at warehouse, inspection started, inspection passed, refund initiated, refund complete.

2

Compose Stage-Specific Updates

The AI agent drafts appropriate messaging for each stage with expected timelines for the next step, keeping customers informed without overwhelming them.

3

Send Immediately

Using send_email with autonomous oversight, status updates are sent the moment each stage completes. No delay between processing and notification.

4

Handle Inquiries

The agent uses check_inbox to monitor for customer questions about their return, providing automated status lookups or routing complex issues to support.


Implementation

Send a Refund Processed Notification
python
import requests

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

def send_refund_notification(return_info: dict):
    response = requests.post(
        f"{API}/send",
        headers=HEADERS,
        json={
            "from": "[email protected]",
            "to": [return_info["customer_email"]],
            "subject": f"Refund processed: ${return_info[&"cm">#039;amount']} for order #{return_info['order_id']}",
            "text_body": (
                f"Hi {return_info[&"cm">#039;customer_name']},\n\n"
                f"We&"cm">#039;ve processed your refund of ${return_info['amount']} "
                f"for the returned {return_info[&"cm">#039;item_name']}.\n\n"
                f"You&"cm">#039;ll see the credit on your {return_info['payment_method']} "
                f"within 3-5 business days.\n\n"
                f"Return ID: {return_info[&"cm">#039;return_id']}\n"
                f"Original order: "cm">#{return_info['order_id']}\n\n"
                f"Questions? Reply to this email or visit our help center."
            ),
            "html_body": f"<h2>Refund Processed</h2><p>Hi {return_info[&"cm">#039;customer_name']}...</p>"
        }
    )
    return response.json()

send_refund_notification({
    "customer_email": "[email protected]",
    "customer_name": "Jordan",
    "amount": "89.99",
    "item_name": "Wireless Headphones",
    "order_id": "ORD-29481",
    "return_id": "RET-5891",
    "payment_method": "Visa ending in 4242"
})

Notify a customer that their refund has been processed with expected timeline.

Send Stage-by-Stage Updates
python
import requests

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

stage_messages = {
    "received": {
        "subject": "Return received at our warehouse",
        "body": "We&"cm">#039;ve received your return package. Inspection will begin within 1-2 business days."
    },
    "inspecting": {
        "subject": "Return inspection in progress",
        "body": "Your returned item is being inspected. You&"cm">#039;ll hear from us within 24 hours."
    },
    "approved": {
        "subject": "Return approved - refund initiated",
        "body": "Your return has been approved. Refund of ${amount} has been initiated."
    },
    "refunded": {
        "subject": "Refund processed - ${amount} to your card",
        "body": "Your refund of ${amount} has been processed. Allow 3-5 business days."
    }
}

def send_stage_update(email: str, stage: str, amount: str):
    msg = stage_messages[stage]
    requests.post(
        f"{API}/send",
        headers=HEADERS,
        json={
            "from": "[email protected]",
            "to": [email],
            "subject": msg["subject"].replace("${amount}", amount),
            "text_body": msg["body"].replace("${amount}", amount)
        }
    )

Notify customers at each stage of the return process.

MCP Tool: Return Status Workflow
typescript
"cm">// Send refund processed notification
const result = await mcp.send_email({
  to: "[email protected]",
  subject: "Refund processed: $89.99 will appear in 3-5 business days",
  text_body: "Hi Jordan, we've processed your refund of $89.99 for the returned Wireless Headphones..."
});

// Tag for return tracking
await mcp.tag_email({
  email_id: result.id,
  tags: ["return-update", "RET-5891", "refund-processed"]
});

// Monitor for customer questions about returns
const inbox = await mcp.check_inbox({
  mailbox_id: "returns-mailbox-id",
  status: "unread"
});

for (const msg of inbox.emails) {
  const email = await mcp.read_email({ email_id: msg.id });
  console.log(`Return inquiry from ${email.from}: ${email.subject}`);
}

Use MCP tools to send return updates and handle customer inquiries.


What you get

50% Fewer Support Tickets

Proactive stage-by-stage updates answer 'where is my refund?' before customers ask, cutting return-related support volume in half.

Faster Customer Awareness

Autonomous mode notifies customers within seconds of each return stage completing. No delays from manual processes or batched notifications.

Increased Customer Trust

Transparent return communication shows customers you value their experience. This trust translates into repeat purchases even after a return.

Complete Return Audit Trail

Every status notification is logged with timestamps, providing a complete record for dispute resolution and customer service.


Recommended oversight mode

Recommended
autonomous
Return status updates are event-driven, templated, and customer-critical. Delays reduce their value. Autonomous mode ensures customers receive timely updates at every stage without human bottleneck.

Common questions

How many update emails should I send per return?
Four to five touchpoints work well: return label sent, package received at warehouse, inspection complete, refund initiated, and refund processed. Each provides new information without overwhelming the customer.
What if the return is rejected during inspection?
Your AI agent sends a rejection notification explaining the reason and next steps. For sensitive rejections, you can configure gated_send mode specifically for rejection emails so support reviews the messaging before delivery.
Can customers reply to check status?
Yes. The agent monitors the returns mailbox using check_inbox. It can parse status inquiry replies and send an automated response with the current return stage. Complex questions are routed to human support.
Does this integrate with our returns platform?
MultiMail handles email delivery. Your AI agent connects to your returns management system (Returnly, Loop, etc.) via webhooks to receive stage events. The agent processes events and sends notifications through MultiMail. No native integration is required.

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.