Recently, our Add-ons team had the opportunity to integrate with Pipedrive, a prominent sales CRM platform. This integration experience allowed us to enhance Aurinko API with a new connector and also provided us with valuable insights into Pipedrive API. Join us as we share our discoveries in this technical review.

What We Learned about Pipedrive API:

  1. Authentication and Authorization: The Pipedrive API supports OAuth 2.0 as well as API token authorizations.

    Developers can generate a client ID and secret within their Pipedrive developer sandbox for a public or a private app. Note that you won’t be able to share your app with other users (from other Pipedrive accounts) if you registered a public app as it needs to be reviewed by Pipedrive before going live. If you don’t need to have your app in the Pipedrive marketplace go with the ‘private’ app registration, OAuth flow will be available for all users then.

  2. Comprehensive API: The API seems to cover all aspects of data management in the platform, i.e. managing leads, contacts, organizations, deals, pipelines, tasks. Meetings, calls, notes are there too for activity logging.

    Yet, the devil is in the details. Let’s delve deeper.

    Inconsistencies in the API payloads

    • Parent references like “organization”, “person”, “user” are of the record(object) type for all objects except Activity and Note where they’re simply integer. Also, it’s not intuitive that the fields shave the _id prefix:

      Person:

      Note:

    • The reference fields are represented differently for reading and writing. For example, org_id or owner_id are sub-objects when a Person is read but are expected to be integer ids when a new Person is created.

    • date fields have different format in different situations, i.e. “2023-10-17 11:44:06" or “2023-11-21”.

    • The PUT HTTP method is used to update all objects except Lead, which expects PATCH.

    Issues with the metadata descriptions

    • Activity and Note metadata description (ActitvtyFields, NoteFields) is missing important reference/parent fields such as org_name or organization and participants.

    • There is no readOnly flag in the metadata, not possible to know which fields can be edited. API Refs documentation also contains fields that are not in metadata.

    • pinned_to_deal_flag, pinned_to_organization_flag and other flags have the enum type with the following options:

        "options": [
            {
                "id": 1,
                "label": "Yes"
            },
            {
                "id": 0,
                "label": "No"
            }
        ]
      
        But in fact their values are true/false
      
    • Data type time is used to describe both the time (o’clock) and duration.

      Metadata descriptions are very important for building dynamic UIs that could adapt to any CRM customizations!

  3. Search and Query Capabilities: The API provides the ItemSearch endpoint for textual search allowing you to search multiple different objects at once. It is quite flexible but does not search activities or notes.

    Individual list methods like ‘Get all persons’ support filtering using saved filters but in my opinion it’s not always convenient to save a filter before using it. I wish the list methods provided more filtering like their ‘beta’ versions. The ‘beta’ methods seem to be limited to global admins only at the moment.

    The API does not seem to support searching logged emails, i.e. by rfc822 message-id. It makes it difficult to build Inbox integrations if you can’t find an already logged/synced activity or email.

  4. Sync/Deltas API: The API provides the Recents endpoint which seems to be designed specifically for syncing. This is great!

  5. Metadata API: Metadata API is available as {Item}Fields endpoints: PersonFields, DealFields, OrganizationFields,… This is also great news for developers building universal/dynamic UIs that can adapt to various customizations!

    But, Pipedrive seems to have done an incomplete job here:

    • There is no metadata endpoint for Leads, like LeadFields.
    • The metadata is also inadequate for pipeline-dependent layout definitions. Pipedrive’s Professional and higher plans support Pipeline-specific custom fields, but a 3rd party app won’t be able to know this from the DealFields endpoint.
  6. Real-time Notifications with Webhooks: Pipedrive API support Webhooks which is pretty flexible.

  7. Documentation and Resources: The Online API documentation is very comprehensive and covers many useful topics, like ‘getting started’, ‘authorization’, ‘responses’ pages.

Conclusion

Pipedrive CRM is a popular CRM platform that is used by businesses of all sizes in a variety of industries, and integrating with Pipedrive CRM presents a compelling opportunity for app developers to expand their market reach, enhance their applications, streamline workflows, deliver data-driven insights, and stand out from the competition.

We have extended Aurinko to support Pipedrive API. Now, developers can map Pipedrive data through our Virtualized API to build unified integrations.