Daily LiveKit voice AI activity digest in Slack

Every weekday at 9am ET, post a plain summary of active rooms, recordings, and agent workers to Slack and log the row in Google Sheets.

Deterministic Code
LiveKitGoogle SheetsSlackOperationsEngineeringDaily DigestsNotifications & Alerts
PromptCreate

Build a deterministic code workflow that runs on a cron every weekday at 9am America/New_York to publish a daily voice AI activity digest for our LiveKit project. It should not run on Saturday or Sunday and should skip a configurable list of holiday dates. This is a fixed sequence of list-then-format-then-write steps against known APIs, so it belongs as a code workflow and not an agent.

Data collection. On each run: (1) Call LiveKit List Rooms and count both the number of active rooms and the total number of participants across them right now. (2) Call LiveKit List Egress with a 24 hour window (i.e. filter the results to those created in the last 24 hours based on created_at) and bucket them by status into egress_complete_24h, egress_failed_24h, and egress_active. Also sum the recorded duration across the complete egresses into total_recorded_minutes. (3) For each currently active room, call LiveKit List Agent Dispatches for that room and sum the results into a single agent_dispatches_24h count, filtering to dispatches created in the last 24 hours.

Sheet write. Use Google Sheets Append Values to append one row to a configurable spreadsheet id and tab name. The row columns, in order, are: date (YYYY-MM-DD in America/New_York), active_rooms, active_participants, egress_complete_24h, egress_failed_24h, egress_active, agent_dispatches_24h, total_recorded_minutes. After the append, keep the link to the appended row so we can include it in the Slack message.

Slack summary. Use Slack Send a Message to post to a configurable leadership channel. Render the same eight numbers as a compact summary that stays under 15 lines total, plus a link to the Google Sheets tracker. If egress_failed_24h is greater than zero, list the top three failed egresses with their room name and error message so on-call can jump in. If there are no failures, omit the failure block entirely.

Configuration inputs the workflow should expose: LiveKit credential (project url, api key, api secret), Google Sheets credential, target spreadsheet id and tab name, Slack credential, target channel, timezone (default America/New_York), and a list of holiday dates to skip.

Operations to use: livekit.list_rooms, livekit.list_egress, livekit.list_agent_dispatches, google-sheets.append_values, slack.send_message.

What does this prompt do?

  • Counts active voice or video rooms and participants happening in your LiveKit project right now.
  • Rolls up the last 24 hours of recordings by status: finished, failed, and still running.
  • Adds one row per weekday to a Google Sheets tracker so you can see trends over time.
  • Posts a short summary to a leadership Slack channel, and calls out the top failed recordings so on-call can investigate.
  • Runs itself on a weekday schedule and skips weekends plus any holidays you list.

What do I need to use this?

  • A LiveKit Cloud project you can read rooms, recordings, and agent workers from.
  • A Google Sheets file with a tab set aside for the daily numbers.
  • A Slack workspace and the channel you want the summary posted to.

How can I customize it?

  • Change the schedule or timezone, or add company holidays the digest should skip.
  • Point it at a different Google Sheets tab, or add extra columns like week number or notes.
  • Swap the Slack channel, tune the message length, or change how many failed recordings get called out.

FAQs

Do I have to log in to LiveKit Cloud every morning to see this?
No. The whole point is that the numbers show up in Slack and Google Sheets on their own, so leadership and on-call never need to open the LiveKit dashboard just to check activity.
What happens on weekends and holidays?
The workflow checks the day before it runs. Saturdays and Sundays are skipped automatically, and you can list company holidays you also want to skip.
What if there were no failed recordings yesterday?
The Slack message just shows the counts and a link to the Google Sheets row. The failure callout only appears when there is something worth investigating.
Can I send this to more than one Slack channel?
Yes. Duplicate the send step or add a second channel to the workflow after you generate it, and the same summary will post to both places.
Does this cost extra LiveKit usage?
The workflow only reads status information, it does not create rooms or start recordings. Reads against your LiveKit project are not billed as participant or recording minutes.

Related templates

Call overdue Xero customers with an AI collections agent

Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.

LiveKit
Xero
Deepgram
+2
Agentic Task
Local listing health board for every location you manage

See every Google Maps listing you manage on one screen, ranked worst first, with an audit button that writes the fix list for you.

Local Business Data
Google Sheets
App
Win back LiveChat visitors whose chats went unanswered

Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.

LiveChat
Gmail
Slack
Agentic Task
Let support send one-off Loops emails without an engineer

Your team picks a template, finds the customer, checks they are safe to email, then sends it, with every send logged where the whole team can see it.

Loops.so
Stripe
Google Sheets
App
Stop cold emails to anyone with a live deal in Pipedrive

Every night at 2am, pull the contacts on your open and won deals and block them from your cold outreach before the next send goes out.

Mailshake
Pipedrive
Google Sheets
Deterministic Code
LiveKit live operations console for room moderation

Watch every live room on one screen, remove disruptive guests, start recordings and end stuck sessions without anyone opening a terminal.

LiveKit
Slack Bot
General Input Database
App

Stop logging in to LiveKit Cloud just to check the numbers.

Connect LiveKit, Google Sheets, and Slack once, and Geni posts the daily voice AI digest every weekday at 9am ET.