WEBHOOKS
Keep your tools in sync.
React when the work changes.
Send signed Pipeline events to your app, CRM, or agent runtime. Choose the events your endpoint needs and inspect each delivery.
Subscribe to the right events.
Create an endpoint with an explicit set of event types. Check whether an event is available before subscribing.
Process each event once.
Delivery is at least once, and ordering is not guaranteed. Deduplicate with the event ID or webhook-id header.
Choose the event your app needs.
Payload version 2026-08-17. Available and planned events come from Pipeline’s shared contract.
campaign.createdPlanned
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "campaign.created",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "campaign_123",
"name": "Founder outreach",
"status": "draft"
},
"context": {
"campaign_id": "campaign_123"
},
"actor": {
"type": "system"
}
}
}campaign.startedAvailable
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "campaign.started",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "campaign_123",
"name": "Founder outreach",
"status": "active"
},
"context": {
"campaign_id": "campaign_123"
},
"actor": {
"type": "system"
}
}
}campaign.pausedAvailable
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "campaign.paused",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "campaign_123",
"name": "Founder outreach",
"status": "paused"
},
"context": {
"campaign_id": "campaign_123"
},
"actor": {
"type": "system"
}
}
}campaign.resumedAvailable
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "campaign.resumed",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "campaign_123",
"name": "Founder outreach",
"status": "active"
},
"context": {
"campaign_id": "campaign_123"
},
"actor": {
"type": "system"
}
}
}campaign.completedAvailable
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "campaign.completed",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "campaign_123",
"name": "Founder outreach",
"status": "completed"
},
"context": {
"campaign_id": "campaign_123"
},
"actor": {
"type": "system"
}
}
}campaign.failedPlanned
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "campaign.failed",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "campaign_123",
"name": "Founder outreach",
"status": "failed",
"failure_code": "sender_unavailable"
},
"context": {
"campaign_id": "campaign_123"
},
"actor": {
"type": "system"
}
}
}prospect.enrolledPlanned
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "prospect.enrolled",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "prospect_123",
"campaign_id": "campaign_123",
"linkedin_url": "https://www.linkedin.com/in/example"
},
"context": {
"campaign_id": "campaign_123"
},
"actor": {
"type": "system"
}
}
}linkedin.connection_request.sentPlanned
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "linkedin.connection_request.sent",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "action_123",
"action": "connection_request",
"prospect_id": "prospect_123",
"campaign_id": "campaign_123"
},
"context": {
"campaign_id": "campaign_123"
},
"actor": {
"type": "system"
}
}
}linkedin.connection.acceptedPlanned
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "linkedin.connection.accepted",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "connection_123",
"prospect_id": "prospect_123",
"campaign_id": "campaign_123"
},
"context": {
"campaign_id": "campaign_123"
},
"actor": {
"type": "system"
}
}
}linkedin.message.sentPlanned
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "linkedin.message.sent",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "action_124",
"action": "message",
"prospect_id": "prospect_123",
"campaign_id": "campaign_123"
},
"context": {
"campaign_id": "campaign_123"
},
"actor": {
"type": "system"
}
}
}linkedin.inmail.sentPlanned
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "linkedin.inmail.sent",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "action_125",
"action": "inmail",
"prospect_id": "prospect_123",
"campaign_id": "campaign_123"
},
"context": {
"campaign_id": "campaign_123"
},
"actor": {
"type": "system"
}
}
}linkedin.reply.receivedAvailable
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "linkedin.reply.received",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "reply_123",
"prospect_id": "prospect_123",
"conversation_id": "conversation_123",
"body": "Interested. Can you send over times?",
"body_truncated": false,
"first_reply": true
},
"context": {
"campaign_id": "campaign_123"
},
"actor": {
"type": "system"
}
}
}linkedin.action.failedPlanned
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "linkedin.action.failed",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "action_126",
"action": "message",
"prospect_id": "prospect_123",
"campaign_id": "campaign_123",
"error_code": "provider_rejected"
},
"context": {
"campaign_id": "campaign_123"
},
"actor": {
"type": "system"
}
}
}linkedin.account.disconnectedPlanned
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "linkedin.account.disconnected",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "account_123",
"name": "Founder account",
"status": "disconnected",
"reason": "credentials_expired"
},
"actor": {
"type": "system"
}
}
}linkedin.account.reconnectedPlanned
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "linkedin.account.reconnected",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "account_123",
"name": "Founder account",
"status": "connected"
},
"actor": {
"type": "system"
}
}
}reply.classifiedAvailable
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "reply.classified",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "classification_123",
"conversation_id": "conversation_123",
"prospect_id": "prospect_123",
"classification": "interested"
},
"context": {
"campaign_id": "campaign_123"
},
"actor": {
"type": "system"
}
}
}prospect.stage.changedAvailable
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "prospect.stage.changed",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "prospect_123",
"stage": "meeting_booked"
},
"previous_attributes": {
"stage": "interested"
},
"actor": {
"type": "system"
}
}
}meeting.bookedAvailable
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "meeting.booked",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "meeting_123",
"prospect_id": "prospect_123",
"campaign_id": "campaign_123",
"starts_at": "2026-08-20T14:00:00.000Z"
},
"actor": {
"type": "system"
}
}
}workflow.run.startedAvailable
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "workflow.run.started",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "run_123",
"workflow_id": "workflow_123",
"name": "ICP outbound",
"status": "running"
},
"context": {
"workflow_run_id": "run_123"
},
"actor": {
"type": "system"
}
}
}workflow.run.completedAvailable
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "workflow.run.completed",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "run_123",
"workflow_id": "workflow_123",
"name": "ICP outbound",
"status": "completed"
},
"context": {
"workflow_run_id": "run_123"
},
"actor": {
"type": "system"
}
}
}workflow.run.failedAvailable
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "workflow.run.failed",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "run_123",
"workflow_id": "workflow_123",
"name": "ICP outbound",
"status": "failed"
},
"context": {
"workflow_run_id": "run_123"
},
"actor": {
"type": "system"
}
}
}workflow.run.awaiting_approvalAvailable
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "workflow.run.awaiting_approval",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "run_123",
"workflow_id": "workflow_123",
"name": "ICP outbound",
"status": "awaiting_approval"
},
"context": {
"workflow_run_id": "run_123"
},
"actor": {
"type": "system"
}
}
}approval.requiredAvailable
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "approval.required",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "approval_123",
"subject_type": "workflow_run",
"subject_id": "run_123",
"status": "required"
},
"context": {
"workflow_run_id": "run_123"
},
"actor": {
"type": "system"
}
}
}approval.resolvedAvailable
{
"id": "7b60d0cb-b735-4a8c-9c30-4180ab1c98d5",
"type": "approval.resolved",
"api_version": "2026-08-17",
"timestamp": "2026-08-17T15:04:05.000Z",
"workspace_id": "39dba13f-6246-4b14-a310-a6710aa53009",
"data": {
"object": {
"id": "approval_123",
"subject_type": "workflow_run",
"subject_id": "run_123",
"status": "approved"
},
"context": {
"workflow_run_id": "run_123"
},
"actor": {
"type": "system"
}
}
}Verify before you process.
Verify the signature with your endpoint secret and the raw request body. Reject stale timestamps. Compare signatures in constant time.
webhook-id: EVENT_ID
webhook-timestamp: UNIX_TIMESTAMP
webhook-signature: v1,SIGNATUREPipeline uses HMAC-SHA256 over id.timestamp.rawBody. Decode the endpoint secret after removing its whsec_ prefix. Accept a matching v1 signature within a five-minute timestamp window.
Make success clear.
Return a 2xx status to acknowledge a delivery. Requests time out after 15 seconds. Redirects count as failures. HTTP 410 pauses an endpoint.
Recover from a failed delivery.
Inspect deliveries before retrying. Manual redelivery requires an Idempotency-Key header so repeated requests do not queue the same work twice.
Inspect delivery history