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:
- Log in to your Pipedrive account.
- Click the user icon and select Personal Preferences.
-
Go to the API tab and copy the generated value.
Creating API Token Connection
- In the connection editor, select API Token in the authentication drop-down list.
-
Paste the obtained value to the API Token box.
Creating OAuth 2.0 Connection
- In the connection editor, select OAuth 2.0 in the authentication drop-down list.
-
Click Sign In with Pipedrive.
-
Enter your Pipedrive credentials.
-
Click Continue to the App to grant the requested permissions to Skyvia.
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 the Import integrations to insert or update the nested values in such fields. Select the Nested Objects checkbox in Import integration 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 Flow integrations.
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.