---
title: Pipedrive
description: "Log the person or organization you're viewing to Pipedrive CRM — create or update records and attach the page as a note."
---

Turn the profile or company page you are viewing into a Pipedrive contact, and log the page as a note on it.

Pick a saved connection in the **Credential** field, or create one from there. It signs in with a Bearer Token.

## What it does

The Pipedrive node works on three kinds of things (**Resource**):

* **Person**: create or update a contact, or search contacts.
* **Organization**: create or update a company, or search companies.
* **Note**: add a note, linked to a person, an organization, or both.

**Create or update** never makes a duplicate on purpose. It first looks for an exact match: by **Email** for a person, by **Name** for an organization. If it finds one, it updates that record; if not, it creates a new one. The result tells you which happened (`created: true` or `false`). Fields you leave empty are not sent, so an update never wipes a value you did not fill.

**Note → Create** builds the note from **Note**, then the **Selection** in quotes, then a `Source:` line with the **Source URL**.

**Search** returns 10 matches unless you set **Limit**.

## When to use it

* Log the LinkedIn-style profile you are viewing as a person, with the page attached as a note.
* Add a company you found on the web as an organization, with its address.
* Check whether someone is already in your CRM before reaching out.
* Keep a trail of the pages and quotes that led to a deal.

For HubSpot or Attio, use [HubSpot](/nodes/builtin/integration/hubspot/) or [Attio](/nodes/builtin/integration/attio/).

## Inputs and settings

Call the Pipedrive API yourself with the HTTP Request node, and pick the same connection in its **Credential** field.

* When a person is new, fill **Name** as well: Pipedrive needs a name to create a person.
* On an update, **Phone** replaces the person's phone list with the one number you give.
* **Person ID** and **Organization ID** are numbers. Take them from the `id` of a **Create or update** result, for example `{{ $('Pipedrive').id }}`, or from `items[0].item.id` of a **Search**.
* Link each note to at least one record (**Person ID** or **Organization ID**); Pipedrive refuses notes that are linked to nothing.

## Outputs

* **Create or update** returns the person or organization as Pipedrive stores it, including its `id` and `name`, plus `created` (`true` for a new record, `false` for an update).
* **Search** returns one item with an `items` list. Each entry has a `result_score` and the matching record under `item` (with its `id` and `name`).
* **Note → Create** returns the new note, including its `id` and `content`.

## Dependencies and credentials

* **Credential** (connection, Bearer Token): required. See [Connect Pipedrive](/app/connections/pipedrive/).

Use your Pipedrive API token, saved as a Bearer Token credential. In Pipedrive, open **Settings → Personal preferences → API** and copy the token. See [Create a credential](/app/connections/create/).

The token is account-wide: it can do anything your Pipedrive user can, and it has no per-record limits. Keep it like a password.

## Example workflow

1. A [Context Menu](/nodes/builtin/trigger/contextmenu/) trigger with **Menu Contexts** `Selection`: highlight the contact details on a profile page and pick "Save to Pipedrive". It passes on `selectionText` and `pageUrl`.
2. [Information Extractor](/nodes/builtin/ai/aiagents/informationextractornode/) with **Text** `{{ $input.selectionText }}`, an [OpenAI](/nodes/builtin/ai/aidependencies/llm/openai/) model and a [Structured Output Parser](/nodes/builtin/ai/aidependencies/outputparser/structuredoutputparser/) whose **JSON Output Example** is `{ "name": "Jane Doe", "email": "jane@example.com", "phone": "+33 6 12 34 56 78" }`.
3. Pipedrive, **Person → Create or update**, **Email** `{{ $input.extracted.email }}`, **Name** `{{ $input.extracted.name }}`, **Phone** `{{ $input.extracted.phone }}`.
4. Pipedrive, **Note → Create**, **Note** `Found while browsing`, **Person ID** `{{ $input.id }}`, **Source URL** `{{ $('Context Menu').pageUrl }}`.

## Common issues

* **"Pipedrive API Error: 401 … the API token is missing or invalid".** Copy the token again from **Settings → Personal preferences → API** and update the credential. A regenerated token makes the old one stop working.
* **"Pipedrive API Error: …" when creating a person.** Often the **Name** is empty for a new person. Fill it.
* **A duplicate record appeared.** Two runs created the same email or name a moment apart, before Pipedrive's search caught up. Run them one after another, or search first.
* **The run is blocked in the web app.** Pipedrive runs through the browser extension. Install the extension and allow Pipedrive for this workflow when asked, or run the workflow from the extension. See [Running extension-only integrations in the web app](/app/troubleshooting/extension-only-integrations-in-the-web-app/).

## Related nodes

* [Information Extractor](/nodes/builtin/ai/aiagents/informationextractornode/): pull name, email and company out of a page.
* [HubSpot](/nodes/builtin/integration/hubspot/) and [Attio](/nodes/builtin/integration/attio/): other CRMs.
* [Http Request](/nodes/builtin/core/http-request/): deals, activities and other Pipedrive objects this node does not cover.