# Pipedrive Integration for Email Validation

URL: https://email-validation.org/integrations/pipedrive/
Updated: 2026-11-06

> Documentation index: https://email-validation.org/llms.txt

Check a Pipedrive person’s email when it is added or its primary address changes, and save the status in a custom person field your filters and automations can use. A webhook relay you deploy as a Cloudflare Worker checks within seconds, and a Node clean-up command works through any person filter.

[Read the full setup guide](https://email-validation.org/docs/guides/pipedrive/) [Get an API key](https://email-validation.org/signin/)

- Status: Setup guide
- A webhook relay and a clean-up command

**Clean a filter** Clean-up command

Terminal

```bash
export EV_API_KEY=…  PIPEDRIVE_API_TOKEN=…  PIPEDRIVE_DOMAIN=acme
node clean.mjs --setup                  # creates the result fields
node clean.mjs --filter 12 --dry-run    # counts what it would check
node clean.mjs --filter 12              # checks and writes the results
```

## At a glance.

- **Status**: **Setup guide.** Not listed on a marketplace yet: you set it up yourself in a few steps, below and in the full guide.
- **For**: Sales teams on Pipedrive who want each new person’s address checked before outreach, and existing contacts cleaned one filter at a time.
- **You need**: Your Pipedrive API token, which acts as you, and your company domain; a Cloudflare account for the relay; Node 22.18 or later for the clean-up command; and an [API key](https://email-validation.org/app/api-keys/) made for it, with a [daily credit cap](https://email-validation.org/docs/authentication/#limits). To clean a filter of more than 50 persons, the key also needs the permission Bulk lists.
- **Costs**: 1 credit = 1 validated address, as with any API request. Free: unknown results, API errors, malformed addresses and test addresses on sandbox.email-validation.org.
- **Full guide**: [Read the full setup guide](https://email-validation.org/docs/guides/pipedrive/)

## Typical uses.

- **Check new persons**: Pipedrive’s person webhook sends each new or changed person to the relay, which checks only when the primary address is new, and writes the Email status, reason and checked-at fields.
- **Clean a filter**: The clean-up command checks every person of a filter that has no result yet: up to 50 one by one, more as one bulk job it uploads, waits for and writes back.
- **Filter and automate**: Build Pipedrive filters and automations on the Email status field, which holds one of valid, invalid, catch\_all, unknown or disposable.

## Set it up. 5 steps.

The short version of the [full setup guide](https://email-validation.org/docs/guides/pipedrive/), which stays the reference when a step does not match what you see.

1. **Create the fields**: With `PIPEDRIVE_API_TOKEN` and `PIPEDRIVE_DOMAIN` set, run `node clean.mjs --setup`: it creates the Text fields Email status, Email status reason and Email checked at, where missing. Or point both pieces at fields of your own.
2. **Deploy the relay**: Deploy `relay.js` to your Cloudflare account with `wrangler` and your company domain, and set the secrets `EV_API_KEY`, `PIPEDRIVE_API_TOKEN`, `WEBHOOK_USER` and a `WEBHOOK_PASSWORD` of at least 32 random letters and digits.
3. **Create the webhook**: In Pipedrive, open Settings, Tools and apps, Webhooks, Create new webhook: event action \*, event object person, the relay’s address as the endpoint URL, and your webhook user and password as HTTP Auth.
4. **Check it once**: Add a test person with `no_mailbox@sandbox.email-validation.org`: within a few seconds its Email status is `invalid`. Then delete the test person.
5. **Clean existing persons**: Create a person filter, take its id from the address while it is open, and run `node clean.mjs --filter` with that id, first with `--dry-run`.

## Good to know.

- The relay ignores every change except a new primary address, including its own writes to the result fields, so a result never starts a second check; a repeated delivery of an event it already checked is skipped.
- It answers within Pipedrive’s 10-second limit and asks for a new delivery only when trying again can work. A refused key or no credits answers 200 not\_checked and nothing is charged: fix the cause, then clean the filter to catch up.
- If a clean-up run stops, run the same command again: it resumes the same bulk job from a small state file of ids, so a list is never paid for twice.
- Each read and write uses Pipedrive API tokens from your company’s daily budget; the command spaces its requests and waits when Pipedrive asks it to.
- For [EU data residency](https://email-validation.org/docs/eu-data-residency/), add `--var EV_REGION:eu` to the relay’s deploy command, or run the clean-up command with `--region eu`.

## Related

- [The full Pipedrive setup guide](https://email-validation.org/docs/guides/pipedrive/)
- [The result fields, or fields of your own](https://email-validation.org/docs/guides/pipedrive/#fields)
- [How the relay answers Pipedrive](https://email-validation.org/docs/guides/pipedrive/#errors)
- [Bulk lists](https://email-validation.org/docs/bulk/)
- [Statuses and reasons](https://email-validation.org/docs/statuses/)
- [All integrations](https://email-validation.org/integrations/)
