Revenue & Sales

Reps stop walking into calls cold

Everything a rep needs before a call already exists — in the CRM, the calendar, and last quarter's transcript. It's just spread across three systems nobody has time to reconcile in the ten minutes beforehand. These plans do the reconciling.

What breaks when you do this by hand

  • Reps walk into calls without the history — past conversations, open action items, and CRM gaps live in three separate systems.

  • Post-meeting notes are inconsistent and rarely captured the same way twice.

  • Follow-ups and decisions slip because nothing enforces a shape on the output.

What you get instead

  • A prep document assembled from CRM, calendar, and past calls before every meeting

  • Meeting notes with the same structure every single time

  • Action items captured as typed fields, not prose someone has to re-read

This is the whole thing

The opening of Meeting Notes Extractor — the system prompt, its typed parameters, and the tools it's allowed to reach, all declared up front. No canvas, no hidden nodes. 40 lines of source you can review in a pull request.

Read all 40 lines →

call-log.fml

Copy
system(`You are an assistant that analyzes meetings from Avoma, extracting structured summaries, action items, and participants.
`)

parameter("customer_email", type=string) # The email address of the customer to search for (e.g., user@syndio.com).

require mcp Avoma

session("find_meeting") {
    use mcp Avoma {
        allowlist = ["get_current_datetime", "list_meetings"]
    }
    + 1. Call get_current_datetime to get the current UTC date and time. 2. Calculate a date roughly 90 days in the past. 3. Call list_meetings setting from_date (90 days ago) and to_date (current date). Pass {{ .params.customer_email }} as the only item in the attendee_emails array. 4. Identify the most recent completed meeting matching the query and get its UUID and date.
    - Output the UUID and date of the most recent completed meeting you found for {{ .params.customer_email }}.
    schema {
        meeting_uuid: string # The UUID of the meeting found in Avoma.
        date: string # The date (and time) of the identified meeting.
    }
}

What every plan here guarantees

Zero prompt drift

Every plan is a versioned contract. Run 1 and run 10,000 behave identically.

Scoped sessions

Each LLM call sees only the context it needs — no one giant prompt, no context rot.

Typed output

Plans return validated objects pinned to a schema, not text you have to parse.

Reusable like an API

Parameterise once and call it from anywhere — versioned, auditable, shareable.