Log Aircall calls to Google Sheets, alert Slack on misses

When an Aircall call wraps, Geni appends the full record to a Google Sheets log and pings a Slack channel only if the call was missed or ran long.

Deterministic Code
AircallGoogle SheetsSlack BotOperationsSalesData SyncNotifications & Alerts
PromptCreate

Every time an Aircall call finishes, log the full call record to a Google Sheets tab and, only if the call was missed or ran long, send a compact Slack message to a call-log channel. The sheet is exhaustive; the Slack channel is deliberately quiet.

Trigger: Aircall webhook on the call.ended event. Use call.ended, not call.hungup, so the recording URL and final duration are populated by the time the workflow runs (Aircall fires call.ended roughly thirty seconds after hang-up once these fields are finalized).

For each call.ended event, do exactly this:

1. Call Aircall's Retrieve a Call operation with the call id from the webhook payload so I have the full, up-to-date record.

2. Extract these fixed fields from the call: id, direction (inbound or outbound), started_at, ended_at, duration in seconds, agent name, agent email, caller number, callee number, tags joined with commas, answered (true or false), missed_call_reason, recording url, and cost.

3. Append exactly one row to Google Sheets using the Append Values operation, in that exact column order, targeting the spreadsheet id and tab name I configure.

4. If the call was missed OR the duration exceeded my configured threshold (default: 180 seconds), post one compact message to Slack using the bot Send a Message operation, targeting the call-log channel I configure. Keep the message short: direction, agent name, caller and callee numbers, duration, missed reason if any, and a link to the recording when there is one. If the call was answered and under the threshold, do nothing on Slack.

Expose these customization knobs at setup: spreadsheet id and tab name, Slack channel, long-call threshold in seconds, and whether alerts should fire on missed calls only, long calls only, or both.

This is deterministic code, not an agent: every field is a fixed extraction, the row shape is static, the alert rule is a threshold check, and at most one row and one message are produced per event.

Additional information

What does this prompt do?
  • Turns every finished Aircall call into a tidy row in a Google Sheets call log so your team has one searchable record of every conversation.
  • Captures the fields that matter for reporting: direction, duration, agent, caller and callee numbers, tags, missed reason, recording link, and cost.
  • Pings a Slack channel only when a call was missed or ran longer than your threshold, so the sheet stays exhaustive and the channel stays quiet.
  • Fires within seconds of hang-up, using Aircall's end-of-call event so the recording link and final duration are already populated.
What do I need to use this?
  • An Aircall account with permission to create webhooks and use the API
  • A Google account with access to the Google Sheets file and tab you want to write to
  • A Slack workspace and the name of a channel for the missed and long call alerts
How can I customize it?
  • Change the duration threshold that triggers a Slack alert (default: over three minutes)
  • Pick which Slack channel receives alerts and reword the message body
  • Add or remove columns in the sheet, or point the workflow at a different spreadsheet entirely

Frequently asked questions

Will this catch calls made from the Aircall mobile app?
Yes. Aircall fires the end-of-call event for calls made from any Aircall client, whether that's the desktop app, the mobile app, or a connected softphone, so anything that hangs up through Aircall gets logged.
How quickly does the row appear in the sheet after a call ends?
Aircall waits roughly thirty seconds after hang-up to fire the end-of-call event so the recording and final duration are ready. Your row lands in the sheet within a few seconds after that.
Can I keep the Slack alerts to just missed calls and turn off the long-call pings?
Yes. Either set the long-call threshold high enough that no real call would ever hit it, or ask Geni to adapt the alert rule to whatever mix of missed, long, unanswered, or tag-based criteria you want.
What happens if the call had no recording?
It still logs the call. When there is no recording, the recording link column stays blank and every other field fills in normally.
Can I split calls across multiple sheets, like one tab per agent?
Yes. You can route rows to different tabs based on any field the workflow already extracts, such as agent name or call direction. Ask Geni to add the branching rule when you set it up.

Stop losing track of every phone call.

Get a searchable log of every Aircall conversation and a Slack ping only when it actually matters.