Pipedrive

Pipedrive is a CRM solution for salespeople in scaling companies built around activity-based selling.

Data integration: Skyvia supports importing data to and from Pipedrive, exporting Pipedrive data to CSV files, replicating Pipedrive data to relational databases, and synchronizing Pipedrive data with other cloud apps and relational databases.

Backup: Skyvia Backup supports Pipedrive backup.

Query: Skyvia Query supports Pipedrive.

Establishing Connection

You can create a connection with Pipedrive using API Token or OAuth 2.0 authentication.

Getting Credentials

To locate the API Token, perform the following actions:

  1. Log in to your Pipedrive account.
  2. Click the user icon and select Personal Preferences.
  3. Go to the API tab and copy the generated value.

    API token

Creating API Token Connection

  1. In the connection editor, select API Token in the authentication drop-down list.
  2. Paste the obtained value to the API Token box.

    API Auth

Creating OAuth 2.0 Connection

  1. In the connection editor, select OAuth 2.0 in the authentication drop-down list.
  2. Click Sign In with Pipedrive.

    OAuth

  3. Enter your Pipedrive credentials.

    SignIn

  4. Click Continue to the App to grant the requested permissions to Skyvia.

    Allow access

Additional Connection Parameters

Use Custom Fields

An optional parameter that allows working with Pipedrive custom fields when enabled.

Suppress Extended Requests

Pipedrive API returns only part of the fields when querying multiple records. In order to query the values of additional fields, Skyvia performs additional extended requests. Such API requests can be performed for each record of such an object. However, this can decrease performance and significantly increase the number of API calls used.

The additional fields obtained via extended requests are the following:

Object Field
Filters Conditions
PermissionSets Contents

To reduce the number of API calls, you can select the Suppress Extended Requests checkbox. However, please note that some of the fields in such objects are not available in Skyvia (return empty values) even if they have values in Pipedrive because its API does not return them without extended requests.

Connector Specifics

Object Peculiarities

Read-only Objects

Objects, storing Pipedrive metadata, such as ActivityFields, DealFields, NoteFields, OrganizationFields, PersonFields, and ProductFields, are read-only in Skyvia.

Products

Due to Pipedrive API specifics Skyvia Backup doesn’t undo adding a product price when restoring a modified Product record. For example, you backed up the Products object. Then you added new records to this object and backed it up again. If you try to restore the object to the state before adding new records, these records won’t be removed.

Subscriptions

Some of the Pipedrive objects can be accessed only via their parent objects. For example, to query Subscriptions, Pipedrive API requires the Id value of the corresponding Deals record.

Skyvia does not require filtering by the parent object record Id when querying data from a child object or importing data to these objects. Without filtering by parent record Id, Skyvia first queries all the parent object records, reading each record Id. Then Skyvia looks up child object records to each parent object record Id. This approach allows querying child objects without knowing their parents, but this method consumes time and API calls. It uses at least one API call for every parent object record. Thus, working with these tables may affect performance. We strongly recommend using filters on the parent object fields when querying data from child objects.

When updating the Subscriptions object, you must map the EffectiveDate field, additionally to the fields required by default.

Complex Structured Objects

The following fields in the Pipedrive objects store complex structured data in JSON format.

For the API v1:

Object Field
Persons Email, Phone
Products Prices

For the API v2:

Object Field
ProductVariations Prices
Products Prices

You can use our Nested Objects mapping feature in Import to insert or update the nested values in such fields. Select the Nested Objects checkbox in import to enable this feature. You can also replicate them into separate tables with our new replication runtime. Use the Unwind component to map them in data flows.

Sorting Specifics

Pipedrive API supports sorting for the following objects and fields:

Sorting for API V1

Object FieldS
Deals All except JsonObject and JsonArray fields
Organizations All except JsonObject and JsonArray fields
Persons All except JsonObject and JsonArray fields
Files ID, UserId, DealId, PersonId, OrganizationId, ProductId, CreatedDate, UpdatedDate, FileName, FileType, File size
Leads ID, Title, OwnerId, CreatorId, WasSeen, NextActivityId, CreatedDate, UpdatedDate, ExpectedCloseDate
Notes ID, UserId, DealId, PersonId, OrganizationId, Content, CreatedDate, UpdatedDate

Sorting for API V2

Object Field
Deals ID, CreatedDate, UpdatedDate
Products ID, Name, CreatedDate, UpdatedDate
Stages ID, OrderNumber, CreatedDate, UpdatedDate
Pipelines ID, CreatedDate, UpdatedDate

Custom Fields

The following Pipedrive objects may have custom fields: Activities, Deals, Notes, Organizations, Persons, and Products. Information about custom fields is stored in the corresponding objects with the -Fields suffix. For example, information about Activities custom field is stored in the ActivityFields object.

Custom Field Types

Pipedrive custom fields may have the following types: Varchar, Varchar_Auto, Text, Double, Monetary, Set, Enum, User, Org, People, Phone, Time, TimeRange, Date, DateRange, Address, Price_List, Lead, Int, Visible_To, Picture.

Fields of User, Organization and Person types contain a reference to the corresponding related object. Each field can refer to only one related object.

Custom fields of the User type can store a reference to the Id field from the Users object. Fields of the Organization type refer to the Id from the Organizations object. Fields with the Person type refer to the Id from the Persons object.

Querying Data from Custom Fields

When querying data from the custom fields of the User, Organization, and Person types, the result returns the JSON object storing the information about the related object. For example, the result of querying the custom field of the Person type looks like this:

{"active_flag":true,"name":"Ray Kazm", "email":[\{"label":"work","value":"ray@raycorp-pipedrive.com","primary":true}], "phone":[\{"label":"work","value":"12345678","primary":true}, \{"label":"mobile","value":"9876541","primary":false}], "owner_id":5219346,"value":149}

For user convenience, we added extra read-only fields which store only the Id value of the related object. You can recognize such fields by the -Id suffix in their names. For example, a custom field RelatedPerson of type Person contains a JSON object. The extra field that only includes the person Id is called RelatedPersonId. It has the value 149 from the example above.

Importing Data to Custom Fields

Though the Pipedrive custom fields store the JSON objects, it is enough to map only the related object field Id value for custom fields with User, Organization, and Person types when importing data into such fields.

Incremental Replication and Synchronization API v1

Skyvia supports Replication with Incremental Updates for the following Pipedrive objects for the v1 Pipedrive API version: Activities, ActivityFields, ActivityTypes, DealFields, DealFollowers, DealMailMessages, DealParticipants, DealPersons, DealProducts, Deals, Files, Filters, LeadLabels, Leads, MailMessagesDrafts, MailMessagesArchive, MailMessagesInbox, MailMessagesSent, MailThreadsArchive, MailThreadsDrafts, MailThreadsInbox, MailThreadsSent, NoteComments(only new records are detected), NoteFields, Notes, OrganizationFields, OrganizationFollowers, OrganizationMailMessages, OrganizationPersons, OrganizationRelationships, Organizations, PersonFields, PersonFollowers, PersonMailMessages, Persons, Pipelines, ProductFields, ProductFollowers, Products, Stages, SubscriptionPayments, Subscriptions, Users, UserSettings, Webhooks.

Due to Pipedrive API specifics, replication of the DealFields, OrganizationFields, ProductFields objects may return error «Cannot insert the value NULL into column ‘ID’, table ‘dbo.DealFields’; column does not allow nulls. INSERT fails. The statement has been terminated.» The mentioned objects do not have primary keys, thus may cause errors during replication.

Skyvia supports Synchronization for the following Pipedrive objects for the v1 Pipedrive API version: Activities, ActivityTypes, DealFields, DealProducts, Deals, Filters, LeadLabels, Leads, NoteComments(only new records are detected), Notes, OrganizationFields, OrganizationRelationships, Organizations, PersonFields, Persons, Pipelines, ProductFields, Products, Stages, Subscriptions, Users.

Incremental Replication and Synchronization API v2

Skyvia supports Replication with Incremental Updates and Synchronization for the following Pipedrive objects for the v2 Pipedrive API version: DealProducts, Deals, Pipelines, Products, Stages.

DML Operations Support API v1

Operation Object
INSERT, UPDATE, DELETE Activities, ActivityTypes, DealFields, DealProducts, Deals, Filters, Goals, LeadLabels, Leads, NoteComments, Notes, OrganizationFields, OrganizationRelationships, Organizations, PersonFields, Persons, Pipelines, ProductFields, Products, Roles, Stages, Subscriptions
INSERT, DELETE CallLogs, DealFollowers, DealParticipants, OrganizationFollowers, PersonFollowers, ProductFollowers, Webhooks
INSERT, UPDATE Users
UPDATE, DELETE MailThreadsSent, MailThreadsArchive, MailThreadsInbox, MailThreadsDrafts

DML Operations Support API v2

Operation Object
INSERT, UPDATE, DELETE DealProducts, Deals, Pipelines, Products, ProductVariations, Stages

Stored Procedures

Skyvia represents part of the supported Pipedrive features as stored procedures. You can call a stored procedure, for example, as a text of the command in the ExecuteCommand action in a Target component of a Data Flow or in Query.

AddRoleAssignments

To assign a user to a role, use the following command.

call AddRoleAssignments (role_id, user_id)

DeleteRoleAssignments

The following command removes the assigned user from a role and adds to the default role.

call DeleteRoleAssignments (role_id, user_id)

AddInstallmentSubscription

The following command adds a new installment subscription.

call AddInstallmentSubscription (:deal_id, :currency, :payments, :update_deal_value)

PARAMETER NAME DESCRIPTION
Deal_id The ID of the deal this installment subscription is associated with.
Currency The currency of the installment subscription. Accepts a 3-character currency code.
Payments Array of payments. It requires a minimum structure as follows: [{ amount:SUM, description:DESCRIPTION, due_at:PAYMENT_DATE }]. Replace SUM with a payment amount, DESCRIPTION with an explanation string, PAYMENT_DATE with a date (format YYYY-MM-DD).
Update_deal_value Boolean. Indicates that the deal value must be set to the installment subscription’s total value.

UpdateInstallmentSubscription

To update an installment subscription, use the following command.

call UpdateInstallmentSubscription (:subscription_id, :payments, :update_deal_value)

PARAMETER NAME DESCRIPTION
Subscription_id The ID of the subscription.
Payments Array of payments. It requires a minimum structure as follows: [{ amount:SUM, description:DESCRIPTION, due_at:PAYMENT_DATE }]. Replace SUM with a payment amount, DESCRIPTION with a explanation string, PAYMENT_DATE with a date (format YYYY-MM-DD).
Update_deal_value Boolean. Indicates that the deal value must be set to installment subscription’s total value.

CancelRecurringSubscription

To cancel the recurring subscription, use the following command.

call CancelRecurringSubscription (:subscription_id, :end_date)

Supported Actions

Skyvia supports all the common actions for Pipedrive.