Meeting Notes That Actually Get Sent

AI generates structured meeting summaries with action items and decisions. The organizer reviews before distributing to all attendees.


Why this matters

Meeting notes are rarely distributed promptly or completely. The meeting organizer intends to send notes but gets pulled into the next meeting, and by end of day the details are fuzzy. Action items get lost, decisions are forgotten, and the next meeting starts with "what did we agree on last time?"


How MultiMail solves this

MultiMail's AI agent generates comprehensive meeting summaries from notes or transcripts, extracts action items with owners and deadlines, and drafts a distribution email. With gated_send oversight, the meeting organizer reviews for accuracy before the notes reach all attendees.

1

Receive Meeting Notes

Feed the AI agent meeting transcripts, rough notes, or recording summaries. It can process multiple input formats and extract structured information.

2

Generate Structured Summary

The AI organizes the meeting into sections: decisions made, action items (with owners and deadlines), key discussion points, and follow-up topics for the next meeting.

3

Organizer Reviews

With gated_send, the organizer verifies that decisions are accurately captured, action items are assigned to the right people, and sensitive discussions are appropriately summarized.

4

Distribute to Attendees

Approved notes are sent to all attendees and relevant stakeholders who couldn't attend, creating a searchable record of meeting outcomes.


Implementation

Generate and Distribute Meeting Notes
python
import requests

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

def distribute_meeting_notes(meeting: dict, notes: str):
    "cm"># Generate structured summary
    summary = generate_meeting_summary(notes)
    
    body = (
        f"Meeting: {meeting[&"cm">#039;title']}\n"
        f"Date: {meeting[&"cm">#039;date']}\n"
        f"Attendees: {&"cm">#039;, '.join(meeting['attendees'])}\n\n"
        f"DECISIONS:\n{format_decisions(summary[&"cm">#039;decisions'])}\n\n"
        f"ACTION ITEMS:\n{format_actions(summary[&"cm">#039;action_items'])}\n\n"
        f"KEY DISCUSSION POINTS:\n{format_points(summary[&"cm">#039;discussion'])}\n\n"
        f"NEXT MEETING: {meeting.get(&"cm">#039;next_meeting', 'TBD')}"
    )

    for attendee_email in meeting["attendee_emails"]:
        requests.post(
            f"{API}/send",
            headers=HEADERS,
            json={
                "from": meeting["organizer_email"],
                "to": attendee_email,
                "subject": f"Meeting notes: {meeting[&"cm">#039;title']} - {meeting['date']}",
                "text_body": body
            }
        )

    print(f"Notes sent to {len(meeting[&"cm">#039;attendee_emails'])} attendees")

Generate structured meeting notes from a transcript and send to all attendees.

Extract and Track Action Items
python
import requests

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

def send_action_item_reminder(action: dict):
    body = (
        f"Hi {action[&"cm">#039;owner_name']},\n\n"
        f"Reminder: You have an action item from the "
        f"{action[&"cm">#039;meeting_title']} meeting on {action['meeting_date']}:\n\n"
        f"Task: {action[&"cm">#039;description']}\n"
        f"Deadline: {action[&"cm">#039;deadline']}\n\n"
        f"Please reply with a status update."
    )

    response = requests.post(
        f"{API}/send",
        headers=HEADERS,
        json={
            "from": "[email protected]",
            "to": action["owner_email"],
            "subject": f"Action item reminder: {action[&"cm">#039;description'][:50]}...",
            "text_body": body
        }
    )
    return response.json()

Extract action items from meeting notes and track their completion via email follow-ups.

MCP Tool Integration
typescript
"cm">// Meeting notes distribution via MCP

"cm">// 1. Send meeting summary to all attendees
const attendees = meeting.attendeeEmails;

for (const email of attendees) {
  await mcp.send_email({
    from: meeting.organizerEmail,
    to: email,
    subject: `Meeting notes: ${meeting.title} - ${meeting.date}`,
    text_body: `Decisions:\n${decisions}\n\nAction Items:\n${actionItems}\n\nNext meeting: ${meeting.nextDate}`
  });
}

"cm">// 2. Tag contacts for action item tracking
for (const action of actionItems) {
  await mcp.add_contact({
    email: action.ownerEmail,
    tags: [`action-${meeting.id}`, "pending-action"]
  });
}

Use MultiMail MCP tools for meeting notes distribution.


What you get

Notes Sent Same Day, Every Time

AI generates and queues notes immediately after the meeting, eliminating the common delay of days or never.

Structured Action Items

Every action item includes an owner, deadline, and context — no more ambiguous "we should look into that" without follow-through.

Decisions on Record

Meeting decisions are documented and distributed, preventing the "I thought we agreed on X" debates in future meetings.

Organizer Accuracy Check

Gated send lets the organizer verify that the AI correctly captured decisions and assigned action items to the right people before distribution.


Recommended oversight mode

Recommended
gated_send
Meeting notes may contain sensitive discussions, incorrect action item assignments, or mischaracterized decisions. Gated send lets the organizer verify accuracy before the notes are distributed to all attendees and stakeholders.

Common questions

What input format does the AI need?
The AI can work with meeting transcripts, rough bullet-point notes, or audio recording summaries. The more detailed the input, the better the structured output. Even rough notes produce useful summaries with decisions and action items extracted.
How does the AI assign action item owners?
The AI identifies action item ownership from phrases like "John will..." or "Marketing team to..." in the notes or transcript. The organizer verifies assignments during the gated_send review step.
Can I send notes to people who didn't attend?
Yes. Add stakeholders to the distribution list alongside attendees. The AI can include a brief context section at the top for people who weren't in the meeting.
Can the AI follow up on overdue action items?
Yes. Track action items with tags and deadlines. When deadlines pass, the AI can send reminder emails to action item owners requesting status updates, keeping accountability without manual tracking.

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.