Skip to main content

Pipedrive

Two-way sync between Pipedrive persons and Pana leads — import from Pipedrive, push any lead back, and optional webhooks for live updates.

What you get​

  • Import Pipedrive persons as leads on a Pana event.
  • Update existing leads matched by email or Pipedrive person ID.
  • Push to Pipedrive from the Leads page — create, link, or update a person (requires email).
  • Bulk push selected leads to Pipedrive from the Leads toolbar.
  • Automatic push when you edit a linked lead (name, email, phone, company).
  • Register a webhook so changes in Pipedrive auto-sync to Pana.
  • Read deal metadata during contact sync (deals are not pushed back).

Pipedrive is one connection per workspace. Customers click Connect and approve your Pipedrive app — they do not paste API keys in the UI.


Before you start​

  • A Pipedrive account (for the user who connects).
  • A Pipedrive Marketplace app with OAuth enabled — Developer Hub.
  • Platform operator: PIPEDRIVE_CLIENT_ID and PIPEDRIVE_CLIENT_SECRET on the backend (Railway).
  • At least one event in Pana.
  • Workspace admin access.

Step 1 — Configure your Pipedrive app (platform operator)​

Callback URL​

In Pipedrive Developer Hub → your app → Callback URL, set:

Production:

https://events.pana.space/auth/oauth/callback?provider=pipedrive

Local development:

http://localhost:3000/auth/oauth/callback?provider=pipedrive

:::caution Exact match required Include the query string ?provider=pipedrive. Do not use legacy paths such as /auth/pipedrive/callback. :::

OAuth scopes​

Pipedrive scopes are configured on your Marketplace app in Developer Hub — they are not sent as a query parameter on the authorize URL. Enable at least:

ScopePurpose
baseCore API access (always on)
contacts:fullImport persons, and create or update persons and organizations when pushing leads
contact-fields:full (or admin)Create the Pana event fields on persons — see Fields Pana adds to Pipedrive
search:readFind an existing person or organization by email or name before creating one
deals:readDeal metadata during sync
webhooks:full (or admin)Auto-register inbound webhooks from Pana

Backend environment (Railway)​

PIPEDRIVE_CLIENT_ID=<Client ID from Pipedrive app>
PIPEDRIVE_CLIENT_SECRET=<Client secret from Pipedrive app>

You do not need PIPEDRIVE_REDIRECT_URI in production — the frontend sends the correct redirect_uri on each connect request. Remove any stale value pointing at localhost or legacy paths.

Redeploy the backend after changing credentials.


Step 2 — Connect in Pana​

  1. Go to Settings → Integrations.
  2. Find Pipedrive under CRM.
  3. Click Connect.
  4. Approve access in Pipedrive.
  5. Return to Pana; your company domain may appear under the card when connected.

Sync contacts manually​

  1. Click Sync contacts on the Pipedrive card.
  2. Select the Pana event to attach contacts to.
  3. Click Sync.

New Pipedrive persons become leads; existing leads with the same email are updated.


Fields Pana adds to Pipedrive​

When you connect, Pana sets up these fields on Pipedrive persons so you never have to create them by hand. Every push fills them with the lead's current values, alongside first name, last name, email, phone, job title and company.

Pipedrive fieldTypeWhat Pana writes
Lead SourceTextAlways Pana Events, so leads from Pana are easy to identify.
Event NameTextThe event the lead is mapped to.
Event Lead Interest LevelSingle option — Cold, Warm, HotThe lead's interest level from Pana.
Event Lead TagsMultiple options — Exhibitor, Sponsor, Investor, Partner, High Priority, Decision Maker, Urgent, VIPThe lead's tags. A lead marked as a decision maker always carries Decision Maker.
Event Conversation NotesLarge textThe latest note on the lead. Each push replaces it with the newest note.
Next Follow-up DateDateThe day the lead is due a follow-up. Pipedrive has no date-and-time field, so the time is not sent.
LinkedIn ProfileTextThe lead's LinkedIn profile URL.
Pana Lead URLTextA link back to the lead in Pana.
Job TitleTextUses Pipedrive's built-in Job title field when your account has it; otherwise Pana creates one.

If a field with one of these names already exists, Pana reuses it instead of creating a duplicate — so reconnecting is always safe. Empty values are never sent, so a push never clears something typed in Pipedrive.

Creating fields needs the contact-fields:full (or admin) scope on the Pipedrive app. Without it, pushes still create and update persons with the standard fields; reconnect after adding the scope and the event fields are created.

Edits made in Pipedrive​

Event Lead Interest Level, Event Lead Tags, Event Conversation Notes, Next Follow-up Date and LinkedIn Profile come back with the person, so edits made in Pipedrive show up on the Pana lead — on every contact sync, and live through the Pipedrive webhook. This works for leads that came from Pipedrive and for leads captured in Pana and pushed to Pipedrive.

  • A note changed in Pipedrive joins the lead's notes thread as the newest note.
  • Job title comes back too, from Pipedrive's own Job title field (or the one Pana created).
  • Tags Pana does not provision are left on the lead untouched; Decision Maker keeps the lead's decision-maker flag in step.
  • An empty field in Pipedrive never clears the lead.
  • Lead Source, Event Name and Pana Lead URL are set by Pana and are not read back.

Re-create the fields​

Connecting creates the fields, and a push quietly re-creates a missing one (at most once an hour). To re-run it right away — after someone deleted a field, or after you add the contact-fields:full scope — call:

POST /api/v1/integrations/pipedrive/provision-fields/
{ "workspace_id": "<workspace id>" }

The response lists the fields created and reused, and any errors Pipedrive returned. Existing fields are reused, never duplicated.


Push leads to Pipedrive​

Use this when leads were captured in Pana (QR, manual entry, import) and you want them in Pipedrive.

Single lead​

  1. Open Leads.
  2. On a lead row, click Push to Pipedrive (cloud icon).
  3. Pana searches Pipedrive by email, links an existing person, or creates a new one.

The lead must have an email address. Company name is synced when present (Pana finds or creates the organization in Pipedrive).

Bulk push​

  1. Select one or more leads in Leads.
  2. Click Push to Pipedrive (N) in the toolbar.

Leads already linked to HubSpot or Salesforce are skipped.

Automatic push​

When Pipedrive is connected, saving a lead that is linked to Pipedrive (or pushing it once) keeps the person updated on later edits — without using the push button again.


Webhooks​

Click Copy webhook on the connected card to copy the inbound webhook URL:

https://eventsapi.pana.space/api/v1/integrations/webhooks/pipedrive/{workspace_id}/

Pana registers this webhook with Pipedrive for you when you connect, so changes in Pipedrive (new or updated persons) sync into Pana without a manual sync. Every call must carry the webhook's password, and anything else is ignored. If it could not be registered at connect (for example, without a public https API_BASE_URL), click Register webhook on the Pipedrive card. Registering again replaces the existing Pana webhook in Pipedrive rather than adding a second one.

You can also paste the webhook URL manually in Pipedrive’s webhook settings, or call POST …/connections/{connection_id}/actions/register-webhook/ — see Integrations API.


Disconnect​

In Pana​

Turn off the toggle on the Pipedrive card. Synced leads stay in Pana; the live connection is removed.

In Pipedrive (full uninstall)​

  1. Open Settings → Installed apps.
  2. Click Pana Events.
  3. Click Uninstall application on the right.

After uninstall, manual sync, push to Pipedrive, automatic push, and inbound webhooks stop working.


Troubleshooting​

IssueWhat to try
redirect_uri_mismatchCallback URL in Pipedrive must be https://events.pana.space/auth/oauth/callback?provider=pipedrive exactly.
OAuth fails mid-flowComplete authorization in the same browser session; check workspace membership.
Wrong client in OAuth URLRailway PIPEDRIVE_CLIENT_ID must match the Pipedrive app where the callback URL is registered.
Stale PIPEDRIVE_REDIRECT_URI on RailwayDelete or update — frontend sends the production URL; an old localhost value can confuse debugging.
Webhook not registeringCopy the webhook URL manually into Pipedrive; confirm webhooks:write scope.
Missing contactsRun Sync contacts; confirm persons have email addresses in Pipedrive.
Push failed / no person createdLead needs an email; confirm persons:write / contacts:write on your Pipedrive app.
Bulk push skipped some leadsLeads linked to HubSpot or Salesforce are not pushed to Pipedrive.

Callback URL checklist​

  • https://events.pana.space/auth/oauth/callback?provider=pipedrive
  • Query string ?provider=pipedrive included
  • Same app as PIPEDRIVE_CLIENT_ID on Railway

API reference​

Integrations API — Pipedrive