Event
Registers one Pipedrive webhook per watched object at publish and starts one run per delivery, authenticated with the HTTP Basic credentials Pipedrive was told to send.
Start a run when a Pipedrive record is created, changed or deleted — a deal, person, organization, activity, lead and more.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- API key
- Providers
- Pipedrive
- Secret shape
- the Pipedrive API token, or {"api_token": "…"}
- Config it needs
- company_domain
- Resolved by
- config.connection_id, else node.connection_id
- Note
- The token's user must be an admin: creating a webhook is an admin action in Pipedrive, and a regular user's token can read deals and still fail to publish. Publishing also needs MANTLE_APP_PUBLIC_BASE_URL set to a URL Pipedrive can reach.
Configuration
2 fields, none required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
objects Which records to watch. One Pipedrive webhook is registered per object and deleted again when the workflow is unpublished or disabled; "*" watches every object (noisy — each event starts a run). | array | No | ["deal"] | 1–11 characters; array of string | — |
action Which change to watch for. '*' is Pipedrive's own wildcard and covers create, change and delete in a single subscription. | string | No | * | one of "*", "create", "change", "delete" | — |
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"action": "*",
"objects": [
"deal"
]
}Output
One shape.
pipedrive event
The flattened Pipedrive 2.0 envelope. `data` and `previous` carry the record's own keys, which depend on entity, so the shape is open below the declared fields.
Extra keys beyond the ones listed can appear.
| Field | Type | Example |
|---|---|---|
event_id Pipedrive's own id for the event (meta.id), and the idempotency key: Pipedrive retries a failed delivery after 3, 30 and 150 seconds and reuses this id every time, so a retry joins the run it already started. Empty on a legacy 1.0 payload, which carries no event id. | string | 6f1c4f0e-2c9a-4c1b-9c0e-2f1a3b4c5d6e |
action What happened: create, change or delete. Branch on this when the trigger subscribes to '*'. | string | change |
entity Which kind of record it happened to — deal, person, organization, activity, lead, note, product, pipeline, stage or user. | string | deal |
entity_id Id of the record, as a string so a large id survives a JSON number. | string | 1234 |
timestamp When Pipedrive raised the event, as an ISO-8601 timestamp. | string | 2026-01-01T00:00:00.000Z |
company_id The Pipedrive company the record belongs to. | string | — |
user_id The user whose action caused the event, where Pipedrive attributes one. | string | — |
attempt Which delivery attempt this is, 1 on the first. Anything above 1 means an earlier attempt failed — the run is the same one either way. | number | 1 |
version The payload version the subscription was registered at. Mantle registers 2.0; 1.0 only appears on a subscription adopted from elsewhere. | string | 2.0 |
data The record as it is *after* the change. Its keys depend on entity, which is why this shape is open. Empty on a delete. | object | — |
previous Only the fields that moved, with their OLD values. Empty on a create. | object | — |
meta Pipedrive's meta block verbatim, for anything the fields above do not lift out (correlation_id, host, permitted_user_ids…). | object | — |
{
"action": "change",
"attempt": 1,
"company_id": "77777",
"data": {
"currency": "USD",
"id": 1234,
"stage_id": 3,
"status": "open",
"title": "Acme — annual licence",
"value": 42000
},
"entity": "deal",
"entity_id": "1234",
"event_id": "6f1c4f0e-2c9a-4c1b-9c0e-2f1a3b4c5d6e",
"meta": {
"action": "change",
"entity": "deal",
"entity_id": "1234",
"id": "6f1c4f0e-2c9a-4c1b-9c0e-2f1a3b4c5d6e",
"version": "2.0"
},
"previous": {
"stage_id": 2
},
"timestamp": "2026-01-01T00:00:00.000Z",
"user_id": "12345",
"version": "2.0"
}Notes
- Publishing creates the webhooks in Pipedrive; unpublishing, disabling or archiving deletes them. A workflow that is off is off at Pipedrive too.
- Pipedrive signs nothing. The only authentication it offers is the HTTP Basic credentials it is told to send, so that is what every delivery is checked against — a shared secret on a header, not a signature over the body.
- One run per delivery, idempotent on Pipedrive's meta.id — it retries a failed delivery after 3, 30 and 150 seconds and a retry cannot start a second run.
- Subscriptions are registered at payload version 2.0, whose envelope is {meta, data, previous}.
See Event run in a workflow.
In a technical demo we add the Pipedrive connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.