Pipedrive CRM v2

Provides integration with Pipedrive CRM to query and manage persons, organizations, leads, notes, and related records in your Workflows. The Node uses OAuth authentication and is available on Cloud Runtime Clusters.

Revision History

0.0.0.9 - Initial release.

Connection

Use this Connection to store your Pipedrive OAuth app credentials and the tokens generated when you authorize your account.

Property Type Description
Client ID String Client identifier issued for your Pipedrive OAuth app. Required.
Client Secret Masked Client secret issued for your Pipedrive OAuth app. Required.
Scopes String Space-separated OAuth scopes requested during authorization. Defaults to base. Include the scopes needed by your selected operations.
Access Token Masked Access token generated when you connect your Pipedrive account. Flowgear renews rejected or missing access tokens using the refresh token.
Refresh Token Masked Token used to renew access. Reconnect your account if this token expires or is revoked.
API Domain String Account API origin returned by OAuth. Defaults to https://api.pipedrive.com. Must be an HTTPS host ending in .pipedrive.com, optionally followed by /api. Do not append /v1 or /v2; the Node selects the API version.
Timeout (seconds) Integer Timeout for individual API and OAuth requests. Defaults to 30 and must be greater than zero.

Setup Notes

  1. Create a Pipedrive OAuth app and obtain its Client ID and Client Secret. See Pipedrive's app credential guide.
  2. Set the app's OAuth callback URL to your Console's origin followed by /r/auth. For example, use https://appnew.flowgear.net/r/auth when connecting from https://appnew.flowgear.net. Pipedrive allows one callback URL per app.
  3. Configure the app's access scopes for the operations you intend to use. Person and Organization queries require contacts:read or contacts:full; their create, update, and delete operations require contacts:full. Lead queries require leads:read or leads:full, and Lead mutations require leads:full. Refer to Pipedrive's scope and endpoint mapping for other operations.
  4. Create a Pipedrive CRM Connection in Flowgear and enter the app credentials and the required space-separated Scopes, including base.
  5. Authorize the Connection with your target Pipedrive account. Flowgear stores the returned access token, refresh token, API domain, and granted scopes.
  6. Test the Connection. The test reads the current user through users/me without changing any records.

The default base scope supports the Connection test but does not grant access to all CRM operations. A successful test does not confirm permissions for every template. If you need additional scopes, update the app permissions and authorize the Connection again; refreshing a token does not grant new permissions.

Methods

Select a template for the Method you want to use. The template supplies OperationId and describes the available Options, request fields, and response fields. OperationId is the template's GUID, rather than a Pipedrive endpoint name or URL.

The supported operations are:

Records Methods
Persons and organizations Query for lists and single records; Create, Update, and Delete.
Leads Query for active lists, archived lists, and single records; Create, Update, and Delete.
Lead labels Query, Create, Update, and Delete.
Lead sources Query.
Notes and note comments Query, Create, Update, and Delete.
Organization relationships Query, Create, Update, and Delete.
Users Query for lists, single users, the current user, and lookup by name.
Currencies and activity types Query.
Deal, Person, and Organization changelogs Query.

Person and Organization operations use the Pipedrive API v2. The other supported operations use the Pipedrive API v1. These API versions are independent of the Flowgear Runtime version.

Query

Reads records using the selected operation and automatically follows pagination for supported list queries.

Parameter Type Description
Connection Connection Pipedrive CRM Connection used to authenticate the request.
OperationId String GUID supplied by the selected query template.
Options Object Route and query values declared by the selected template, such as a record ID or supported filter. Required route values must be supplied.
Return Type Description
Response Array One row per returned record, using the selected template's fields. Query rows do not contain Flowgear mutation metadata. A successful empty collection returns zero rows; failed reads raise a Node error.

Create

Creates one record for each JSON object supplied through Items.

Parameter Type Description
Connection Connection Pipedrive CRM Connection used to authenticate the request.
OperationId String GUID supplied by the selected create template.
Options Object Declared route and query values. The same values apply to every input item.
Items Array Required stream of single-record request objects. Map the selected template's body fields directly onto each item. An empty stream creates no records.
Return Type Description
Response Array One result per processed item, containing returned record fields and Flowgear.IsSuccess, Flowgear.Message, and Flowgear.Request. Handled record failures return a failed row.

Creating a Person or Organization requires name. Creating a Lead requires title and either person_id or organization_id. Creating a Note requires content and a linked entity ID exposed by its template.

Update

Updates the record identified by the selected operation's route values using one request per input item. Person and Organization updates use PATCH requests.

Parameter Type Description
Connection Connection Pipedrive CRM Connection used to authenticate the request.
OperationId String GUID supplied by the selected update template.
Options Object Declared route and query values, including the required record ID. The same route applies to every input item.
Items Array Required stream of single-record update objects. Map body fields directly onto each item. An empty stream updates no records.
Return Type Description
Response Array One result per processed item, containing returned record fields and Flowgear.IsSuccess, Flowgear.Message, and Flowgear.Request. Handled record failures return a failed row.

Delete

Deletes the record identified by Options. The Node sends no request body.

Parameter Type Description
Connection Connection Pipedrive CRM Connection used to authenticate the request.
OperationId String GUID supplied by the selected delete template.
Options Object Required route values identifying the record to delete. The same route applies to every input item.
Items Array Optional correlation records copied into Flowgear.Request. These records do not override route IDs and are never sent as a body. Without Items, the operation runs once. An empty connected stream performs no deletion.
Return Type Description
Response Array Delete results with Flowgear.IsSuccess, Flowgear.Message, and Flowgear.Request, plus the selected operation's returned data. Without Items, Flowgear.Request contains the supplied Options.

To update or delete different records, invoke the Node separately with each record's route ID in Options. Supplying different IDs in Items does not change the route.

Usage Notes

  • Use only the route and query fields exposed by the selected template. Unknown options and operations from a different Method are rejected. The Node manages start, limit, and cursor. Do not add these pagination controls to Options.
  • Templates describe the supported operations without reading your account's records. Template availability does not prove that your account has permission to execute an operation.
  • Map arrays of strings or integers as CSV strings. For example, Lead label_ids contains comma-separated UUIDs, while Person and Organization label_ids contains comma-separated integer IDs. Contact query options such as ids and include_fields also use CSV. The Node converts these values to the provider's required format and rejects invalid UUIDs or integers.
  • Keep object arrays structured, including Person emails and phone numbers. Organization addresses also retain their structured form.
  • Account-specific custom_fields objects are preserved in requests and responses, but their child fields are absent from fixed templates. Define the child metadata in your Workflow when mapping these fields. The Node does not discover your account's custom field definitions.
  • Lead query, create, and update responses include nullable archive_time and archive_reason fields. archive_time is a date-time string. Regenerate existing templates when you need these response fields.
  • The first query page or mutation request executes when the Node starts. Later pages and input items are processed as the response stream is consumed.
  • Check Flowgear.IsSuccess for each mutation result. Handled provider record errors and body-validation errors on later items produce failed rows and allow subsequent items to continue. Invalid first-item input, authentication or permission failures, transport failures, and server errors stop the Node.
  • The Node makes bounded retries for token renewal and rate limiting. It does not automatically replay writes after an ambiguous timeout or server failure. Check Pipedrive before retrying a write that may already have succeeded.
  • Deal, product, activity, pipeline, and stage CRUD operations are outside this Node's supported surface. Generic search, files, mail, projects, tasks, administration, webhooks, and API-key authentication are also unsupported.

Examples

Create a Person, then create a linked Lead

  1. Select the Create template for adding a Person and supply the following object through Items:
{
  "name": "Example Contact"
}
  1. Check the Person result's Flowgear.IsSuccess and retain its returned id.
  2. Select the Create template for adding a Lead and map the returned Person ID into person_id. For example, if the Person ID is 123, supply:
{
  "title": "Example integration enquiry",
  "person_id": 123
}
  1. You can check the Lead result's Flowgear.IsSuccess before using its returned ID in later steps.

You can use the same pattern with an Organization and the Lead's organization_id. To associate a new Person with an existing Organization, map the Organization ID into the Person's org_id field.

See also