HELIOS DOCS

Pipedrive

The Pipedrive integration lets Helios agents read and change your Pipedrive CRM through its REST API, and run agents automatically when records are created, updated, or deleted.

What your agents can do

Agents can call Pipedrive's v1 and v2 REST APIs. Helios authenticates requests with your API token or OAuth connection.

  • Look up a deal, person, or organization before a call, with its notes and activities
  • Create and update deals, leads, people, and organizations from a request
  • Move deals between stages and mark them won or lost
  • Add notes and schedule calls, meetings, and other activities
  • Report on a pipeline by stage, owner, or value

What an agent can reach depends on how you connect:

  • Pipedrive API Token: an agent can do what the token's user can do in Pipedrive.
  • Your own Pipedrive OAuth app: an agent can only call the endpoints that the app's scopes allow, within what the connected user can do. Turn on every scope in the list below for the endpoints you need. The endpoints under the admin scope only work when a Pipedrive admin connects.

Agents can only reach your company domain, such as https://acme.pipedrive.com. Every call uses your company's daily API token budget. See Limits.

Authentication

MethodTypeDescription
Pipedrive API TokenAPI KeyA personal API token from a Pipedrive user
Your own Pipedrive OAuth appOAuth 2.0A private app you create in Pipedrive's Developer Hub

See Integration authentication for how credentials are stored and injected.

Pipedrive API Token

You need a Pipedrive user whose permission set has use API turned on. The token has that user's rights, so an admin covers the whole company.

  1. In Pipedrive, open Settings → Personal preferences → API, and copy your personal API token. If API isn't there, ask an admin to open Manage users → Permission sets, choose your set, and turn on use API.
  2. In Helios, choose Pipedrive API Token and paste the token into API Token.
  3. Enter your Company Domain, the subdomain in your Pipedrive URL, such as acme in acme.pipedrive.com. The full URL, such as https://acme.pipedrive.com, also works.
  4. Save.

Pipedrive records every change made with the token as the user who owns it. A user has a different token for each company they belong to, and only one active token at a time. If you change the token in Pipedrive, the old one stops working. Enter the new one in API Token through Manage and save.

Pipedrive only sends events for the records the token's user can see. Use an admin's token, or a separate admin user for Helios, so triggers cover the whole company.

Your own Pipedrive OAuth app

Pipedrive apps are created in Developer Hub, which is only available on a developer sandbox account.

  1. Sign up for a developer sandbox account. In Pipedrive, click your profile name, find the sandbox company, and choose Developer Hub.

  2. Click Create an app, then Create private app.

  3. On the Basic info tab, enter an app name and this Callback URL, then click Save:

    https://api.heliosapp.com/integrations/pipedrive/oauth_callback
  4. On the OAuth & access scopes tab, turn on every scope below, choosing full access where Pipedrive offers read only or full access, and save:

    ScopeLabel in Developer HubWhat it's for
    baseAccess to basic informationThe connected user's settings and currencies. Always on
    deals:fullDeals: Full accessDeals, their products, installments, participants, followers, files, notes, and filters
    activities:fullActivities: Full accessCalls, meetings, and other activities
    contacts:fullContacts: Full accessPeople and organizations
    leads:fullLeads: Full accessLeads and lead labels
    products:fullProducts: Full accessProducts
    projects:fullProjects: Full accessProjects, boards, phases, and tasks
    goals:fullGoals: Full accessGoals
    mail:fullMail: Full accessMail threads and messages
    deal-fields:fullDeal fields: Full accessCustom deal fields
    contact-fields:fullContact fields: Full accessCustom person and organization fields
    product-fields:fullProduct fields: Full accessCustom product fields
    project-fields:fullProject fields: Full accessCustom project fields
    users:readRead users dataUsers, their permissions and roles, and the Owner filter
    recents:readSee recent account activityRecent changes and changelogs
    search:readSearch for all dataSearch
    phone-integrationCall logsCall logs and their recordings
    video-callsVideo calls integrationRegistering as a video call provider. Skip it if Developer Hub doesn't list it
    messengers-integrationMessaging integrationRegistering as a messaging provider
    webhooks:fullWebhooks: Full accessRegistering the webhook for triggers
    adminAdminister accountPipelines, stages, custom fields, activity types, users, roles, and permission sets
  5. Copy the Client ID and Client Secret from the same tab.

  6. Click Change to live. A draft app can only be installed by users of the sandbox company.

  7. In Helios, choose Your own Pipedrive OAuth app and enter Client ID and Client Secret.

  8. Save, then click Allow and install in Pipedrive.

Pipedrive sets scopes on the app, not on each request, so Helios asks for no scopes of its own and has no Admin access option for Pipedrive. A user who isn't a Pipedrive admin can still install an app with admin. The endpoints under it then fail for that user. Helios uses the company domain that Pipedrive returns when you connect.

If you add scopes to the app later, connect again so the token gets them. Access tokens last 60 minutes, and Helios renews them with the refresh token. A refresh token expires after 60 days without use, so Helios also renews the token once a week. If you change the client secret, enter the new one in Client Secret through Manage and connect again. If the app is uninstalled, connect again.

Triggers

Pipedrive can start a Workflow when something happens in your company account. Helios registers one webhook named Helios in Pipedrive when you save the connection. It covers every object and action in the table below, so there is nothing to set up in Pipedrive. With an API token, the user registers it under their own permission level. With an OAuth app, the app needs webhooks:full. Deleting the connection removes the webhook.

EventDescriptionFilters
activity.createdAn activity was createdowner, activity type
activity.updatedAn activity was updatedowner, activity type, done changed to
activity.deletedAn activity was deletedowner, activity type
board.createdA project board was creatednone
board.updatedA project board was updatednone
board.deletedA project board was deletednone
deal.createdA deal was createdpipeline, owner
deal.updatedA deal was updatedpipeline, owner, moved to stage, status changed to
deal.deletedA deal was deletedpipeline, owner
deal_field.createdA deal field definition was creatednone
deal_field.updatedA deal field definition was updatednone
deal_field.deletedA deal field definition was deletednone
deal_installment.createdA deal installment was creatednone
deal_installment.updatedA deal installment was updatednone
deal_installment.deletedA deal installment was deletednone
deal_product.createdA product on a deal was creatednone
deal_product.updatedA product on a deal was updatednone
deal_product.deletedA product on a deal was deletednone
lead.createdA lead was createdowner
lead.updatedA lead was updatedowner
lead.deletedA lead was deletedowner
lead_field.createdA lead field definition was creatednone
lead_field.updatedA lead field definition was updatednone
lead_field.deletedA lead field definition was deletednone
note.createdA note was creatednone
note.updatedA note was updatednone
note.deletedA note was deletednone
organization.createdAn organization was createdowner
organization.updatedAn organization was updatedowner
organization.deletedAn organization was deletedowner
organization_field.createdAn organization field definition was creatednone
organization_field.updatedAn organization field definition was updatednone
organization_field.deletedAn organization field definition was deletednone
person.createdA person was createdowner
person.updatedA person was updatedowner
person.deletedA person was deletedowner
person_field.createdA person field definition was creatednone
person_field.updatedA person field definition was updatednone
person_field.deletedA person field definition was deletednone
phase.createdA project phase was creatednone
phase.updatedA project phase was updatednone
phase.deletedA project phase was deletednone
pipeline.createdA pipeline was creatednone
pipeline.updatedA pipeline was updatednone
pipeline.deletedA pipeline was deletednone
product.createdA product was createdowner
product.updatedA product was updatedowner
product.deletedA product was deletedowner
product_field.createdA product field definition was creatednone
product_field.updatedA product field definition was updatednone
product_field.deletedA product field definition was deletednone
project.createdA project was createdowner
project.updatedA project was updatedowner
project.deletedA project was deletedowner
project_field.createdA project field definition was creatednone
project_field.updatedA project field definition was updatednone
project_field.deletedA project field definition was deletednone
stage.createdA pipeline stage was createdpipeline
stage.updatedA pipeline stage was updatedpipeline
stage.deletedA pipeline stage was deletedpipeline
task.createdA project task was creatednone
task.updatedA project task was updateddone changed to
task.deletedA project task was deletednone
user.createdA user was creatednone
user.updatedA user was updatednone
user.deletedA user was deletednone
  • Pipeline matches deals and stages in the pipelines you pick from a list.
  • Owner matches records owned by the users you pick from a list.
  • Activity type matches activities of the types you pick from a list, such as Call or Meeting.
  • Moved to stage matches only updates that changed the deal's stage, when the new stage is one you pick from a list.
  • Status changed to matches only updates that changed the deal's status to one you pick: Open, Won, or Lost.
  • Done changed to matches only updates that marked an activity or task as Done or Not done.
  • Every filter is optional. Without filters, every event matches. A deleted event matches Pipeline, Owner, and Activity type against the record as it was before it was deleted.

The field definition events, such as deal_field.updated, report a custom field being added, renamed, or removed, or its options changing. To start a run when a field's value changes on a record, use that record's updated event, such as deal.updated.

Some events need a Pipedrive feature:

When you save the connection, Helios checks whether your company has these features. The trigger picker shows the events of a missing feature as unavailable, with the reason. If you change your Pipedrive plan, save the connection again to check again.

Pipedrive only sends an event when the connected user can see the record. When a record is merged into another, Pipedrive sends a deleted event for the merged record and an updated event for the record it was merged into.

Pipedrive doesn't sign webhook deliveries. The webhook carries HTTP Basic credentials that Helios generates, and Helios rejects deliveries without them.

Pipedrive waits 10 seconds for each delivery, and retries a failed one 3 times, after 3, 30, and 150 seconds. After 10 failed first attempts, Pipedrive pauses the webhook for 30 minutes, and events in that time are lost. If the webhook has no successful delivery for 3 days in a row, Pipedrive deletes it. Save the connection again to register it again. See Pipedrive's webhooks guide.

An agent that edits a record can start another .updated run for it. An agent that adds a note or schedules an activity starts note.created or activity.created. An agent that moves a deal or marks it won or lost can also match a stage or status filter. Pick filters that match only the change you care about, and say in the prompt which changes to ignore. Changes made through the API, including the agent's, have meta.change_source set to api in the payload. See Guarding against events you don't want.

Check that it works

  • The connection: after you save, the connection's status shows Connected. Error means Pipedrive rejected the token. See Common errors.
  • A trigger:
    1. Add deal.created to a workflow with no filters.
    2. Create a test deal in Pipedrive.
    3. Check that a run starts. Then open the connection in Helios and click Webhook events to see the event.
  • Pipedrive's side: with an API token, open Settings → Tools and apps → Webhooks. The Helios webhook is listed with the status of its last delivery. Webhooks that an OAuth app creates don't show in Pipedrive's web app.

Common errors

What you seeCauseFix
Set the company domain to the subdomain in your Pipedrive URL, such as acme or https://acme.pipedrive.comCompany Domain is empty or isn't a Pipedrive domainEnter the subdomain from your Pipedrive URL, such as acme
Set the base URL to your Pipedrive company domain, such as https://your-company.pipedrive.com, or leave it emptyBase URL under Advanced Configuration isn't a Pipedrive company domainClear Base URL, or set it to your company domain
Access token not found. Please complete the OAuth flow first.The install in Pipedrive wasn't finishedOpen the connection and connect again
The connection's status shows Error after it workedThe API token was changed, the user lost use API, or the OAuth app was uninstalled or unused for 60 daysEnter the current token through Manage, or connect the OAuth app again
403 Forbidden in a run with an OAuth appThe app doesn't have the scope for that endpoint, or the user isn't allowed to do itTurn on the scope in Developer Hub and connect again, or connect as a user with the right permissions
No run starts after an eventThe webhook wasn't registered, Pipedrive paused or deleted it, the user can't see the record, the plan doesn't include the feature, or the filters don't matchSave the connection again, check the user's visibility and the plan, and remove filters to test
429 Too Many Requests in a runThe company used up its daily API token budgetWait for the budget to reset, or raise it in Pipedrive

Limits

  • Daily API token budget: each company gets 30,000 tokens × the plan multiplier × the number of seats, shared by every API token and OAuth app. The multiplier is 1 on Lite, 2 on Growth, 5 on Premium, and 7 on Ultimate. Token costs vary by endpoint and API version. Check the endpoint's Cost in Pipedrive's API reference. Over the budget, Pipedrive answers 429 until the next day. See Pipedrive's rate limiting.
  • Burst limits: an API token can make 20 to 120 requests per 2 seconds, and an OAuth app 80 to 480, depending on the plan. Search is limited to 10 requests per 2 seconds.
  • Webhooks: Pipedrive allows 40 webhooks per user, and each Helios connection uses one.

Last updated on