Log Aircall calls to Google Sheets, alert Slack on misses

By General Input

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.

Integrations

  • Aircall
  • Google Sheets
  • Slack Bot

Type

Deterministic Code

Categories

  • Operations
  • Sales

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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensStop cold emails to anyone with a live deal in PipedriveLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery board