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.
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?
How quickly does the row appear in the sheet after a call ends?
Can I keep the Slack alerts to just missed calls and turn off the long-call pings?
What happens if the call had no recording?
Can I split calls across multiple sheets, like one tab per agent?
Related templates
Stop losing track of every phone call.
Get a searchable log of every Aircall conversation and a Slack ping only when it actually matters.