Daily Vapi call coaching digest in Slack

Every weekday at 8am, get yesterday's Vapi call volume, outcomes, top objections, and coaching picks posted straight to your team's Slack channel.

Agentic Task
VapiSlackSalesOperationsDaily DigestsAI Reports
PromptCreate

Build me an agent workflow that runs every weekday at 8am in my local business time zone and posts a coaching-ready summary of yesterday's Vapi calls to a Slack channel.

Trigger: cron, Monday through Friday at 8:00am local time. When it fires, compute yesterday's business day window (start of yesterday to end of yesterday in the same local time zone) as ISO-8601 timestamps.

Step 1 — pull the calls. Use Vapi's List Calls action with createdAtGe set to the start of yesterday and createdAtLe set to the end of yesterday. Page through all results. If the list is empty, stop the workflow here without posting anything to Slack; zero-call days should be silent.

Step 2 — hydrate each call. For every call ID returned by List Calls, use Vapi's Get Call action to fetch the full detail: transcript, structured summary/analysis, duration, cost, outcome/endedReason, phone number, assistant name, and the recording URL if present.

Step 3 — aggregate the day. From the hydrated calls, compute: total calls; connected vs. voicemail split; average call duration; average cost per call and total spend; and an outcome breakdown covering qualified, not interested, callback requested, error/failed, and any other categories that show up. Then read across the transcripts and identify the top three recurring objections or questions the team heard. Finally, pick the two or three most review-worthy calls — either strong examples of good handling or clear coaching moments — and for each write one short sentence explaining why it made the list, plus the recording link.

Step 4 — post to Slack. Use Slack's Send a Message action to post to the channel the user configures (default: #call-coaching). Format the message so the headline numbers sit at the top (total calls, connected vs. voicemail, average duration, average cost, outcome breakdown), followed by the recurring objections section, followed by the two or three calls to review with their one-line reason and recording link. Use Slack mrkdwn (single asterisks for bold, angle-bracket links). Keep it scannable — a manager should be able to read it in under a minute.

Rules: never post an empty or near-empty digest. If the transcript analysis or coaching-pick logic fails for a specific call, degrade gracefully — still post the headline numbers and any sections that did work. Report the local business time zone, the channel, and the assistant filter (if any) as configurable inputs on the workflow.

Additional information

What does this prompt do?
  • Rolls up yesterday's Vapi calls into headline numbers: total calls, connected vs. voicemail, average duration, and average cost.
  • Breaks down outcomes like qualified, not interested, callback requested, and error so managers can see the shape of the day at a glance.
  • Reads the transcripts and surfaces the top three recurring objections or questions your team heard.
  • Picks two or three calls worth reviewing, either great examples or clear coaching moments, each with a one-line reason and a link to the recording.
  • Skips the digest entirely on zero-call days so your Slack channel stays quiet.
What do I need to use this?
  • A Vapi account with recent call activity.
  • A Slack workspace and a channel where the digest should land.
  • A rough sense of what outcomes your team cares about (qualified, callback, not interested, and so on). The prompt ships with sensible defaults.
How can I customize it?
  • Change the schedule to seven days a week, a different local time, or only certain days.
  • Point the digest at a different channel, or DM a specific manager instead of posting to a channel.
  • Adjust the outcome categories, the headline metrics, or the number of coaching picks per day.

Frequently asked questions

Does this work with any Vapi assistant, or only certain ones?
By default it reads every call in your Vapi account from yesterday. If you want to restrict it to one assistant or one phone number, say so when you set up the workflow and it will filter to just those calls.
What time zone does yesterday refer to?
The workflow uses your business time zone, which you set when you create it. That way the window matches your team's day rather than UTC.
Will it post if there were no calls yesterday?
No. On zero-call days it skips the message entirely so your Slack channel stays clean.
How does it decide which calls are coaching moments?
It looks at the outcome, the transcript, and how objections were handled, then flags two or three standouts with a one-line reason. You can override the criteria when you set up the workflow.
Can it post to more than one Slack channel?
Yes. You can send the same digest to multiple channels, or DM specific managers, by listing the destinations when you set the workflow up.

Stop scrolling call dashboards every morning.

Connect Vapi and Slack once, and Geni delivers yesterday's call story to your team at 8am every weekday.