Speed Up Expense Approvals With Smart Notifications

AI sends instant approval requests with expense summaries and policy compliance flags. Managers approve faster with all the context upfront.


Why this matters

Expense approvals get stuck in manager inboxes for days or weeks, delaying employee reimbursements and creating frustration. When managers finally review expenses, they lack context about policy compliance and have to cross-reference amounts against guidelines manually. This bottleneck is entirely avoidable with better notification design.


How MultiMail solves this

MultiMail's AI agent sends instant, enriched expense approval notifications the moment an expense report is submitted. Each notification includes an expense summary, policy compliance flags, and one-click approve/reject actions. Autonomous oversight is appropriate because these are internal notifications with verified data — the risk of an incorrect notification is low and the cost of delay is high.

1

Receive Expense Submission

Your expense management system notifies the AI agent when an employee submits an expense report. The event includes itemized expenses, receipts, and the designated approver.

2

Check Policy Compliance

The agent evaluates each expense against your company policy: per-diem limits, category restrictions, receipt requirements, and approval thresholds.

3

Compose Approval Notification

The agent creates a clear notification with the expense summary, compliance flags (all items within policy, or specific violations highlighted), and direct links to approve or reject.

4

Send to Approver

Under autonomous oversight, the notification is sent instantly to the designated manager via send_email. Speed is key — the faster the manager sees it, the faster the employee gets reimbursed.


Implementation

Send Expense Approval Notification
python
import requests

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

def notify_expense_approval(expense: dict):
    "cm"># Check policy compliance
    compliance = check_policy(expense["items"])

    items_summary = "\n".join([
        f"  - {item[&"cm">#039;description']}: ${item['amount']:.2f} "
        f"({&"cm">#039;within policy' if item['compliant'] else 'OVER LIMIT'})"
        for item in compliance["items"]
    ])

    status = "All items within policy" if compliance["all_compliant"] \
        else f"{compliance[&"cm">#039;violations']} policy violation(s) flagged"

    body = (
        f"Expense approval needed from {expense[&"cm">#039;employee_name']}\n\n"
        f"Total: ${expense[&"cm">#039;total']:.2f}\n"
        f"Date range: {expense[&"cm">#039;date_range']}\n"
        f"Policy check: {status}\n\n"
        f"Items:\n{items_summary}\n\n"
        f"Approve: {expense[&"cm">#039;approve_url']}\n"
        f"Reject: {expense[&"cm">#039;reject_url']}"
    )

    requests.post(
        f"{API}/send",
        headers=HEADERS,
        json={
            "from": "[email protected]",
            "to": expense["approver_email"],
            "subject": f"Expense approval: ${expense[&"cm">#039;total']:.2f} from {expense['employee_name']}",
            "text_body": body,
            "html_body": build_approval_html(expense, compliance)
        }
    )

Process an expense submission and send an enriched approval request.

Send Approval Result to Employee
python
import requests

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

def notify_approval_result(expense: dict, decision: str, notes: str):
    if decision == "approved":
        subject = f"Expense approved: ${expense[&"cm">#039;total']:.2f}"
        body = (
            f"Hi {expense[&"cm">#039;employee_name']},\n\n"
            f"Your expense report for ${expense[&"cm">#039;total']:.2f} has been "
            f"approved by {expense[&"cm">#039;approver_name']}. Reimbursement "
            f"will be processed in the next pay cycle.\n\n"
            f"Details: {expense[&"cm">#039;view_url']}"
        )
    else:
        subject = f"Expense needs revision: ${expense[&"cm">#039;total']:.2f}"
        body = (
            f"Hi {expense[&"cm">#039;employee_name']},\n\n"
            f"Your expense report requires revision.\n\n"
            f"Manager notes: {notes}\n\n"
            f"Please update and resubmit: {expense[&"cm">#039;edit_url']}"
        )

    requests.post(
        f"{API}/send",
        headers=HEADERS,
        json={
            "from": "[email protected]",
            "to": expense["employee_email"],
            "subject": subject,
            "text_body": body
        }
    )

Notify the employee when their expense report is approved or rejected.

MCP Tool Integration
typescript
"cm">// Using MultiMail MCP tools for expense approvals

async function notifyExpenseApproval(expense: ExpenseReport) {
  const compliance = checkPolicy(expense.items);

  "cm">// Notify approver
  await mcp.send_email({
    to: expense.approverEmail,
    subject: `Expense approval: $${expense.total.toFixed(2)} from ${expense.employeeName}`,
    text_body: [
      `${expense.employeeName} submitted an expense report.`,
      `Total: $${expense.total.toFixed(2)}`,
      `Policy: ${compliance.allCompliant ? "All within policy" : `${compliance.violations} violations`}`,
      ``,
      `Items:`,
      ...compliance.items.map(i =>
        `  - ${i.description}: $${i.amount.toFixed(2)} ${i.compliant ? "" : "(OVER LIMIT)"}`
      ),
      ``,
      `Approve: ${expense.approveUrl}`,
      `Reject: ${expense.rejectUrl}`
    ].join("\n")
  });
}

Send expense approval notifications using MultiMail MCP tools.


What you get

Instant Notifications

Managers receive approval requests the moment expenses are submitted. No more expenses sitting unnoticed in a queue for days.

Policy Compliance Pre-Check

Every notification includes compliance flags so managers can spot policy violations at a glance. This speeds up the review process and catches issues before approval.

One-Click Approval

Direct approve/reject links in the email let managers act immediately without logging into the expense system. This reduces approval time from days to hours.

Faster Employee Reimbursement

Faster approval means faster reimbursement. Employees get their money back sooner, which improves satisfaction and encourages timely expense reporting.


Recommended oversight mode

Recommended
autonomous
Expense approval notifications are internal emails with verified data from your expense system. They contain no AI-generated content that could be incorrect. Autonomous mode ensures instant delivery so managers can act quickly, reducing the approval bottleneck.

Common questions

Can the AI auto-approve expenses under a certain threshold?
The AI sends notifications — approval decisions remain with the designated manager. However, you can build auto-approval logic in your expense system for amounts under a threshold (e.g., under $50) and only send notifications for larger amounts. MultiMail handles the communication, not the approval decision.
How do I handle expenses that need multiple approvers?
Your AI agent can implement sequential or parallel approval workflows. For sequential approval, it sends to the first approver and only notifies the next after approval. For parallel, it sends to all approvers simultaneously. Configure routing based on amount thresholds or expense categories.
Can managers approve via email reply?
Yes. Your AI agent can monitor for replies containing 'approved' or 'rejected' using MultiMail's inbound processing. When a reply is detected, the agent updates the expense system accordingly. This is especially convenient for managers on mobile devices.
What if the manager is out of office?
Your agent can detect OOO status and reroute the approval notification to a backup approver. It can also send reminder escalations if an expense remains unapproved after a configurable period.

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.