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
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. } }
2 plans you can run today
Every one is a typed FML plan. Open it, read the source, and run it — nothing here is a mockup.
Meeting Notes Extractor
Post-meeting notes are inconsistent and rarely captured the same way twice, so follow-ups and decisions slip through the cracks.
Read the plan
Pre-Call Prep
Reps walk into calls without the history — past conversations, open action items, and CRM gaps live in three systems no one has time to reconcile beforehand.
Read the plan
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.