OutCallerAI LogoOutCallerAI

Webhook Settings

Send OutCallerAI workspace events to your CRM, automation service, or backend.

Overview

Workspace webhooks send real-time JSON events from OutCallerAI to an HTTPS endpoint you control. Use them to sync leads, calls, tasks, and agent changes into your CRM or internal systems.

Capabilities

  • Workspace events: Receive lead, call, task, and agent lifecycle events.
  • Custom authentication: Add your own JSON headers to every delivery.
  • Consistent envelope: Route events by event, resource, action, workspace, and timestamp.
  • Sanitized data: Receive operational fields without provider credentials or internal secrets.

Prerequisites

  • A publicly reachable HTTPS endpoint that accepts JSON POST requests.
  • A handler that returns a 2xx response within 10 seconds.
  • An idempotency strategy for retries or duplicate business events.
  • An authentication secret or routing header when the endpoint is not otherwise protected.

Setup

  1. Open Integrations.
  2. Click Webhook Settings.
  3. Enter your Webhook URL.
  4. Optionally enter Webhook Headers (JSON) for auth or routing.
  5. Save changes.

Headers must be a JSON object:

{
	"Authorization": "Bearer your-secret-token",
	"X-CRM-Source": "outcaller"
}

OutCallerAI sends these headers on every webhook:

HeaderValue
Content-Typeapplication/json
X-Outcaller-EventEvent name, for example lead.created
X-Outcaller-ResourceResource type: lead, call, task, or agent
X-Outcaller-ActionAction: created, updated, or deleted
X-Outcaller-Workspace-IdWorkspace id

Your configured custom headers are merged into the request.

How it works

Events

Common events include:

EventResourceWhen it sends
lead.createdleadA lead is created or imported.
lead.updatedleadLead data changes.
lead.deletedleadA lead is deleted.
lead.bulk_deletedleadLeads are deleted in bulk.
call.createdcallA call record is created.
call.<status>callCall status changes, for example call.initiated, call.completed, or call.failed.
task.createdtaskA follow-up task is created.
task.updatedtaskA task changes.
task.<status>taskTask status changes.
agent.createdagentAn agent is created.

Payload

Every webhook request is a POST with this envelope:

{
	"event": "lead.created",
	"resource": "lead",
	"action": "created",
	"workspaceId": "cmpxz43bl00032c6udndznzdg",
	"timestamp": "2026-06-04T05:49:10.221000+00:00",
	"data": {
		"id": "lead_123",
		"workspaceId": "cmpxz43bl00032c6udndznzdg",
		"campaignId": "campaign_123",
		"name": "Priya Sharma",
		"phone": "+919876543210",
		"email": "priya@example.com",
		"source": "google_sheet_webhook",
		"status": "new"
	},
	"metadata": {
		"source": "google_drive_sync"
	}
}

Update events may include previousData.

Data included

Webhook payloads are sanitized before delivery. OutCallerAI includes useful operational fields such as ids, workspace/campaign links, lead contact fields, call status, call summary, transcription, recording URL, task status, and timestamps. Internal secrets and provider-only fields are not sent.

Delivery behavior

  • OutCallerAI sends each webhook as an HTTPS POST.
  • The request timeout is 10 seconds.
  • Your endpoint should return any 2xx response.
  • Failed deliveries are logged by OutCallerAI.

Verify the integration

Save the endpoint, trigger a controlled event such as creating a test lead, and confirm the request headers, envelope, workspace ID, and event data in your receiver logs. Return 2xx only after the event is accepted.

Troubleshooting

  • Use HTTPS in production.
  • Keep responses fast; offload slow work to a queue.
  • Make handlers idempotent by storing processed event ids or deduplicating by event, resource, data.id, and timestamp.
  • Validate your own auth header if you configure one in Webhook Headers (JSON).
  • If no request arrives, confirm the saved URL is publicly reachable and trigger a new supported event.
  • If delivery fails, inspect receiver status codes and ensure processing completes within 10 seconds.
  • If JSON headers cannot be saved, confirm the value is a valid JSON object.

Disconnect

Open Webhook Settings, remove the webhook URL and custom headers, and save. OutCallerAI stops new workspace webhook deliveries; events already accepted by your endpoint are unaffected.

How is this guide?