The Webhook node fires after every call ends. It POSTs a JSON payload containing the call summary, full transcript, recording URL, caller phone number, call duration, and any context variables you captured. Connect it to Zapier, n8n, Make, or a direct webhook endpoint. Your CRM, your inbox, your spreadsheet — anywhere that accepts HTTP POST.

The default payload

Every Webhook node receives the same base payload, regardless of your workflow:

{\n  "call_id": "run_abc123",\n  "workflow_id": 42,\n  "caller_phone": "+15551234567",\n  "caller_name": "Daniel",\n  "started_at": "2026-07-09T15:23:00Z",\n  "ended_at": "2026-07-09T15:25:14Z",\n  "duration_seconds": 134,\n  "transcript": "AI: Thanks for calling...",\n  "summary": {\n    "intent": "book_appointment",\n    "outcome": "booked",\n    "customer_name": "Daniel",\n    "customer_phone": "+15552017733",\n    "appointment_time": "2026-07-12T10:00:00Z"\n  },\n  "recording_url": "https://app.shopbell.ai/api/v1/runs/abc123/recording",\n  "context": { ...any custom context variables set during the call... }\n}

The summary field is filled by the LLM at end of call based on the system prompt in the End Call node. The LLM extracts structured fields (intent, outcome, key entities) from the conversation. Configure what to extract by editing the End Call node's prompt: 'At end of call, fill this summary: { intent, customer_name, appointment_time, urgency_level }'.

Pattern 1 — Google Sheets via Zapier

Create a Zapier zap with trigger 'Webhooks by Zapier' → 'Catch Hook'. Copy the webhook URL. In Shopbell, add a Webhook node at the end of your workflow. Paste the Zapier URL. Method: POST. Save. Now every call creates a new row in your Google Sheet with: timestamp, caller phone, caller name (if captured), duration, summary intent, summary outcome, recording link.

Limit: Zapier free tier allows 100 calls/month. For higher volume, use n8n (self-hosted, unlimited) or a direct Make.com webhook.

Pattern 2 — n8n for higher volume

Self-host n8n. Add a Webhook node. Copy its URL. In Shopbell, paste the n8n URL into your Webhook node config. n8n can fan out to multiple destinations: write to Google Sheets, post to Slack #calls channel, send a confirmation SMS to the caller via Twilio, push to your CRM. Unlimited volume, no per-call fees.

Pattern 3 — Send SMS confirmation via Twilio

The webhook payload has caller_phone and appointment_time. n8n catches the webhook, formats an SMS ('Hi Daniel, your tune-up is booked for Saturday at 10am. Reply C to confirm or R to reschedule.'), and sends it through Twilio Programmable SMS. Costs $0.0079 per SMS in the US. Fully automated, no manual steps.

Frequently Asked Questions

What if the Zapier webhook URL changes?

Update the Webhook node's URL in the workflow editor, save, test with a Web Call. The new URL takes effect immediately — no restart needed.

Is the webhook retry-safe?

Yes. Shopbell retries failed webhook POSTs 3 times with exponential backoff. If your endpoint is down, the data is not lost. There is also a manual 're-fire webhooks' button in the Recordings page.

Can the Webhook node trigger an outbound call?

Yes — combine with a Campaign or Trigger workflow. The webhook posts to your automation tool (Zapier / n8n), which then triggers a Shopbell outbound call via the Trigger endpoint. See the Outbound Calls guide for trigger workflows.