Platform
Chatbot Builder Bulk Messaging Team Inbox Mini CRM API & Webhooks AI Integration WhatsApp Flows
Industries
E-commerce & D2C Real Estate Education Healthcare Finance & BFSI Logistics Hospitality Retail
Integrations
Learn
Learning Hub Help & Docs Connect Guides Automation Codex Blog Message Templates
Pricing Get Started →
HomeConnect › Connect Pipedrive to WhatsApp
Pipedrive Integration Guide · CRM / Sales

Connect Pipedrive to WhatsApp

Pull live person and deal data from Pipedrive into a WhatsApp chatbot. Search contacts by phone number, check open deals, and reply with sales context, using Pipedrive's straightforward personal API token, the simplest auth in this CRM series.

Published 22 June 2026  ·  7 min read  ·  CRM / Sales

Before following this guide, read the External API Request step foundation guide. It covers every field in the step interface so this guide can focus on Pipedrive-specific values.

Pipedrive calls contacts 'Persons'

Unlike HubSpot (Contacts), Zoho (Contacts), or Salesforce (Contacts), Pipedrive calls individual contacts 'Persons'. The search endpoint is /persons/search. Companies are called 'Organizations'. Deals link Persons and Organizations together.

Step 1: Copy your Pipedrive API token

Pipedrive uses a personal API token for authentication. No OAuth setup, no Connected App, no two-step flow. One token does it all.

1
In Pipedrive, click your avatar (top right) and go to Settings.
2
In the left sidebar, click Personal Preferences then API.
3
Your personal API token is shown. It is a 40-character hex string. Copy it.
Token is tied to your user account

The personal API token authenticates as you. All API calls made with it appear in Pipedrive's audit logs as your user. If you leave the company or your account is deleted, the token stops working. For team-shared integrations, use a dedicated Pipedrive service account.

Official docs

Pipedrive API reference: developers.pipedrive.com/docs/api/v1

Step 2: Fill in the External API Request step

Pipedrive accepts the API token as a URL query parameter, the simplest auth pattern in this CRM series. In your WA.Expert chatbot flow, store the customer's phone number as {{customer_phone}} and add an External API Request step:

External API Request Step — WA.Expert
Select Method
GET
Request URL
https://api.pipedrive.com/v1/persons/search?term={{{{customer_phone}}}}&fields=phone&api_token=YOUR_40_CHAR_TOKEN
Select Auth Type
No Auth (API token in URL; see URL above)
Header Parameters
Content-Typeapplication/json
Select Body Type
None (GET requests carry no body)
Choose Response Type
JSON

Field-by-field breakdown

FieldValueNotes
Select MethodGETSearching existing persons.
Request URLhttps://api.pipedrive.com/v1/persons/search?term={{{customer_phone}}}&fields=phone&api_token=YOUR_TOKENThe api_token goes in the URL, not in a header. ?term= is the search value. ?fields=phone tells Pipedrive to search only the phone field.
Select Auth TypeNo AuthAuthentication is handled by the api_token query parameter in the URL above.
Content-Typeapplication/jsonStandard header for Pipedrive API requests.
Select Body TypeNoneGET requests carry no body.
Choose Response TypeJSONPipedrive returns structured JSON.

Step 3: Map the response to WhatsApp variables

A successful Pipedrive person search response looks like this:

Pipedrive API v1 — GET /persons/search response
{
  "success": true,
  "data": {
    "items": [
      {
        "result_score": 0.5,
        "item": {
          "id": 1247,
          "type": "person",
          "name": "Priya Sharma",
          "phones": [
            { "value": "9820000001", "primary": true }
          ],
          "emails": [
            { "value": "priya@example.com", "primary": true }
          ],
          "visible_to": 3,
          "owner": {
            "id": 12,
            "name": "Ravi Kumar"
          },
          "organization": {
            "id": 45,
            "name": "Sharma Textiles"
          },
          "open_deals_count": 2,
          "closed_deals_count": 1
        }
      }
    ]
  },
  "additional_data": { "pagination": { "start": 0, "limit": 100, "more_items_in_collection": false } }
}
Results are nested: data.items[0].item

Pipedrive wraps person search results under data.items as an array of objects. Each object has a result_score and an item object. Your contact data is at data.items[0].item. If data.items is empty, no person was found with that phone number.

Map these response paths to variables in the External API Request step:

Variable nameResponse pathExample value
person_iddata.items[0].item.id1247
person_namedata.items[0].item.namePriya Sharma
person_emaildata.items[0].item.emails[0].valuepriya@example.com
owner_namedata.items[0].item.owner.nameRavi Kumar
company_namedata.items[0].item.organization.nameSharma Textiles
open_dealsdata.items[0].item.open_deals_count2

open_deals_count and closed_deals_count are included in the search response, useful for a quick deal status reply without a second API call.

Keep the WhatsApp reply in the free service window

If the contact messaged you first within the last 24 hours, your reply is a free service conversation. For proactive outbound follow-up from Pipedrive data, use an approved Utility or Marketing template.

Bonus: fetch open deals for a person

Once you have the person's ID, a second External API Request step can fetch their linked deals:

Pipedrive API — GET /persons/{id}/deals
GET https://api.pipedrive.com/v1/persons/1247/deals?status=open&api_token=YOUR_TOKEN

Response (abbreviated):
{
  "success": true,
  "data": [
    {
      "id": 88,
      "title": "Sharma Textiles - Annual Contract",
      "value": 250000,
      "currency": "INR",
      "status": "open",
      "stage_name": "Proposal Made",
      "close_time": "2026-07-30T00:00:00.000Z"
    }
  ]
}

Map: data[0].title, data[0].value, data[0].stage_name, data[0].close_time

Worked example: sales context bot

Chatbot flow — Pipedrive person lookup by WhatsApp number
Customer messages your WhatsApp number.
WA.Expert captures their phone as {{customer_phone}} = "9820000001".

External API Request step:
GET https://api.pipedrive.com/v1/persons/search
  ?term=9820000001&fields=phone&api_token=YOUR_TOKEN

Response mapped:
person_name  = "Priya Sharma"
owner_name   = "Ravi Kumar"
company_name = "Sharma Textiles"
open_deals   = "2"

Conditions: if data.items is empty → "We could not find your record."

Bot replies (if found):
"Hi Priya, great to hear from you.
Your account manager is Ravi Kumar.
Company: Sharma Textiles
Open deals: 2

Reply DEAL to get a status update on your latest proposal,
or reply SUPPORT for assistance."

Troubleshooting

SymptomLikely causeFix
401 UnauthorizedWrong API token or token not in URLCheck the api_token parameter is appended to the URL exactly as shown. The token is case-sensitive.
Empty items arrayPhone number format mismatchPipedrive searches exact match. Try different formats: 9820000001, +919820000001, 09820000001. Check how numbers are stored in your Pipedrive.
success: false with errorAPI request malformedCheck the URL for typos. Make sure the ?term= and &api_token= parameters are present and correctly separated.
data.items[0].item.organization is nullPerson has no linked organisationAdd a null check in your conditions step before mapping company_name. A person can exist without an organisation.
429 Too Many RequestsDaily token budget exceededPipedrive uses a token-budget system (30,000 base tokens × plan × seats). For a WhatsApp bot doing single lookups, this limit is very generous. If hit, wait for the daily reset.
Token no longer worksUser account deleted or token regeneratedRegenerate the token in Settings > Personal Preferences > API and update WA.Expert. Consider using a dedicated service account.

Common questions

Where do I find my Pipedrive API token?
+
Settings > Personal Preferences > API. It is a 40-character hex string. Generate a new one if not visible.
Should I put the API token in the URL or in a header?
+
Both work. Pipedrive accepts ?api_token=YOUR_TOKEN in the URL or Authorization: Bearer YOUR_TOKEN in a header. The URL approach is simpler for WA.Expert's External API Request step.
What does Pipedrive call contacts?
+
Pipedrive calls individual contacts 'Persons'. The search endpoint is /persons/search. Companies are 'Organizations'. Deals link Persons and Organizations.
Can I look up deals linked to a contact?
+
Yes. GET /persons/{id}/deals?api_token=YOUR_TOKEN returns all deals for that person. Use the person ID from the initial search in the next External API Request step.
What are Pipedrive's rate limits in 2026?
+
Pipedrive uses a token-budget system (30,000 base tokens × plan multiplier × seats per day). Single-record lookups are very cheap. For a WhatsApp bot, this budget is very generous on any paid plan.
Does this incur extra WA.Expert charges?
+
The External API Request step counts as one automation action per call. On the Complete plan this is included. On Starter, extra action packs apply from Rs. 49 per 1,000 actions.

Connect Pipedrive to WhatsApp today

Free trial, no credit card required. And if you ever get stuck, we are the only platform in India that answers you live on WhatsApp.

Start Free Trial → Book a Demo
1