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
campaign.created payload
{
  "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
campaign.started payload
{
  "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
campaign.paused payload
{
  "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
campaign.resumed payload
{
  "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
campaign.completed payload
{
  "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
campaign.failed payload
{
  "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
prospect.enrolled payload
{
  "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
linkedin.connection_request.sent payload
{
  "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
linkedin.connection.accepted payload
{
  "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
linkedin.message.sent payload
{
  "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
linkedin.inmail.sent payload
{
  "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
linkedin.reply.received payload
{
  "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
linkedin.action.failed payload
{
  "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
linkedin.account.disconnected payload
{
  "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
linkedin.account.reconnected payload
{
  "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
reply.classified payload
{
  "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
prospect.stage.changed payload
{
  "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
meeting.booked payload
{
  "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
workflow.run.started payload
{
  "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
workflow.run.completed payload
{
  "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
workflow.run.failed payload
{
  "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
workflow.run.awaiting_approval payload
{
  "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
approval.required payload
{
  "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
approval.resolved payload
{
  "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.

Signed delivery headers
webhook-id: EVENT_ID
webhook-timestamp: UNIX_TIMESTAMP
webhook-signature: v1,SIGNATURE

Pipeline 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
Webhooks | Pipeline v2 preview