See llms.txt for all machine-readable content.

Back to Templates

Triage AI receptionist calls with OpenAI, Google Sheets, Calendar and Gmail

Quick Overview

This workflow receives post-call transcripts via webhook from a voice AI phone agent, uses OpenAI to triage and extract structured details, logs every call to Google Sheets, optionally books requested appointments in Google Calendar with duplicate checks, and notifies the owner by Gmail with optional urgent Telegram alerts.

How it works

  1. Receives an end-of-call report via a webhook, immediately returns HTTP 200, and optionally validates a shared secret and ignores non-finished call events.
  2. Looks up the caller number in a Google Sheets “Calls” log to skip duplicate deliveries for the same call_id and to count previous calls from the same number.
  3. Uses OpenAI to extract intent, urgency, caller details, open questions, and any appointment request from the transcript, falling back to a manual-review note if extraction fails.
  4. Routes the call based on intent and urgency, silently treating spam/wrong numbers as log-only and optionally sending an instant Telegram alert for high/emergency calls.
  5. If an appointment time is provided, checks Google Calendar for same-day duplicates and creates a new event when no duplicate is found.
  6. Appends a flat call record to Google Sheets and, for non-spam calls, sends a concise Gmail summary to the owner with required follow-ups (and booking status/link when applicable).

Setup

  1. Configure the business settings in the workflow (business name, timezone, owner email, calendar ID, appointment length, and optional webhook secret and Telegram chat ID).
  2. Add credentials for OpenAI, Google Sheets, Google Calendar, and Gmail, plus a Telegram bot credential if you want urgent alerts.
  3. Create a Google Sheets tab named “Calls” with the headers listed in the workflow notes and paste the sheet URL into both Google Sheets nodes.
  4. Copy the production webhook URL and configure your voice AI provider (for example Vapi or Retell) to POST end-of-call reports to it, including the shared secret header if enabled.
  5. Set the recipient address in the failure-alert Gmail step and configure this workflow as its own Error Workflow in n8n so errors email the owner.