Automation · Playbook 03

Extract action items from call transcripts.

When a call recording finishes, hand the meeting off to an agent that pulls the transcript, extracts only concrete action items, links each task to the right company/person record, assigns it to the right teammate, and sets a due date — written straight back into the CRM. Executive is never assigned; their tasks attach to the company record unassigned.

Pure Operations

Prompts used

The exact LLM prompts this automation calls — system instructions and user messages, in execution order, with the model each step uses.

  • Post-Call Task Extraction
    1 prompts

    Agent routine that fires whenever a new call recording lands in the CRM. Pulls the transcript, extracts only concrete action items, links each task to the right company/person record, assigns it to the right teammate, and sets a realistic due date. Tool-agnostic by design — point it at any CRM, project tracker, or task app via the same routine.

Reference build

When a call recording finishes, hand the meeting off to an agent that pulls the transcript, extracts only concrete action items, links each task to the right company / person record, assigns it to the right teammate, and sets a due date — all written back directly into the CRM.

The orchestrator is a deliberately thin 3-step Zap. The actual work — transcript reading, task drafting, owner resolution, CRM writes — happens inside the Post-Call Task Extraction agent routine, which holds the CRM tools and the system prompt that defines what counts as a valid task.

Flow
01 · Trigger
Recording-ready webhook (Zapier catch-hook)
Fires with meeting_id from the notetaker / CRM
02 · Fetch meeting
GET /v2/meetings/{meeting_id}
Hydrates title, recorded_at, participants — so the agent gets a clean payload, not a bare id
03 · Fire agent routine
POST → Claude routine (fire-and-forget)
Body: call_id, title, recorded_at, participants. Zap completes; agent runs async.
04 · Agent: look up call
Agent searches the CRM for the meeting; ends gracefully if missing
Inside the routine — not Zapier. Codified in the system prompt.
05 · Agent: walk transcript
Agent fetches the full transcript via CRM tools
Same MCP / tool layer the agent uses for everything else
06 · Agent: extract candidate tasks
Only concrete, executable items with a verb + named subject
Rejects 'evaluate fit', 'decide whether to invest', vague follow-ups
07 · Agent: resolve company + people
Searches CRM for company and person records before writing
No record match → no task. Tasks must be linked.
08 · Agent: assign owner + due date
Owner from transcript context; due date from urgency
Executive is never assigned — those tasks go to the company record unassigned.
09 · Agent: create CRM tasks
Writes each task back to the CRM, linked to the right records
No return value to Zapier — agent owns the run log and any retries

Fields produced along the way

FieldWhat it holds
meeting_idFrom the recording-ready webhook — the only identifier the trigger ships
meeting.titlePulled from /v2/meetings/{id} — passed to the agent so it has human context before it goes hunting in the CRM
meeting.recorded_atTimestamp used by the agent to set realistic due dates relative to the call
meeting.participantsInternal + external attendees — the agent uses these to resolve company/person records and decide owners
routine_inputSingle JSON payload POSTed to the Claude routine — call id, title, recorded_at, participants
extracted_tasks (agent output)Each task has: action sentence, owner, linked company + person, due date. The agent writes these directly into the CRM via tools — no return to Zapier.

Gotchas

  • 01Zapier's job is plumbing, not intelligence: the orchestrator just normalizes the webhook into a clean payload and hands it to the agent. All transcript walking, task drafting, owner resolution, and CRM writes happen inside the Claude routine via tools. Don't try to do task extraction in Zapier code steps — you'll rebuild the agent badly.
  • 02Trigger fires before metadata settles: the recording-ready webhook lands before participants/title are fully written to the meeting record. The fetch step in Zapier resolves this race because by the time the agent fires, the meeting record is hydrated.
  • 03Fire the routine — don't await it: the third step is a fire-and-forget POST to the routine endpoint. The agent runs asynchronously for minutes; Zapier should not block on the result. If the agent fails, it logs to its own run history, not the Zap.
  • 04Graceful no-op on missing call: if the agent can't find the meeting (deleted before it runs), the routine ends cleanly with no tasks created. Codified in the system prompt — do not retry from the orchestrator.
  • 05Never assign tasks to the executive: hard rule in the prompt. Tasks the partner would have owned get attached to the company record with no assignee. Stops the founder from quietly inheriting a task list every Monday.
  • 06Only concrete, executable tasks: the prompt rejects high-level judgment items like 'evaluate fit' or 'decide whether to invest.' Every task must have a verb, a named subject, and an owner — otherwise the agent creates nothing.
  • 07Link every task to the right CRM record: tasks float and get ignored. The agent is required to find the company (and person, when relevant) and attach the task before writing it. No record match → no task.
  • 08Auth lives with the agent, not the Zap: Zapier holds only the routine bearer token. The Attio tools are configured inside the agent's MCP, so rotating CRM credentials doesn't require touching the Zap.

Swap matrix