Pipedrive
What Shuttio reads from Pipedrive, where it lands in Attio, Clarify, Odoo, HubSpot, Breakcold, Twenty, which permissions it needs and why, and what does not move.
Last updated: 28 October 2026
OAuth. Company-scoped, so the migration reads only the company you picked.
Object by object: What objects are supported for Pipedrive migrations.
What Shuttio reads and moves
The list below describes the move into Attio. Where Clarify or Odoo differ, the destination's own article says so.
- Persons, organizations and deals: Persons land as people, organizations as companies, including every custom field on them.
- Products, deal products, projects and leads: Products and projects become their own Attio objects, a deal's products become line items linked to the deal and the product, and leads go where you choose: people, deals at the stage Lead, or their own object.
- Notes, and activities split two ways: Pipedrive files meetings and to-dos through one activities endpoint. Meetings become Attio meetings and everything else becomes tasks, and the completion view names which rows went where.
- Saved filters as lists: A filter is a saved query, so it crosses as a snapshot of the records matching it at the time of the run, with its conditions written out in plain text alongside.
- Phone numbers Attio will accept: Attio requires country codes. Numbers are normalized toward E.164 against the country you pick; anything genuinely ambiguous passes through and fails visibly rather than being guessed at.
Where each thing lands
| Pipedrive object | In Attio | In Clarify | In Odoo | In HubSpot | In Breakcold | In Twenty |
|---|---|---|---|---|---|---|
| Persons | People | People | Partners (contacts) | Contacts | People | People |
| Organizations | Companies | Companies | Partners (companies) | Companies | Companies | Companies |
| Deals | Deals | Deals | CRM opportunities | Deals | Deals | Opportunities |
| Products | Its own object, or the one you already have with that name | Its own object, created in Clarify when it has none | Products | Products | Not moved | A custom object, created in Twenty when it has none, or the one you already have with that name |
| Deal products | Its own object, or the one you already have with that name | Its own object, created in Clarify when it has none | Not moved | Line items | Not moved | A custom object, created in Twenty when it has none, or the one you already have with that name |
| Projects | Its own object, or the one you already have with that name | Its own object, created in Clarify when it has none | Projects (Odoo Project app) | A custom object (HubSpot Enterprise), or the one you already have with that name | Not moved | A custom object, created in Twenty when it has none, or the one you already have with that name |
| Leads | People, deals at the stage Lead, or their own object (you choose) | Its own object, created in Clarify when it has none | CRM leads | A custom object (HubSpot Enterprise), or the one you already have with that name | Not moved | A custom object, created in Twenty when it has none, or the one you already have with that name |
| Project tasks | Not moved | Not moved | Project tasks (Odoo Project app) | Not moved | Not moved | Not moved |
Notes, tasks, meetings, calls, files, owners and lists depend on the destination. This is the row for Pipedrive, generated from the same tables the runner uses:
Into Attio
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|---|---|---|---|---|---|---|---|---|
| Pipedrive | Persons, Organizations, Deals, Products, Deal products, Projects, Leads | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Into Clarify
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|---|---|---|---|---|---|---|---|---|
| Pipedrive | Persons, Organizations, Deals, Products, Deal products, Projects, Leads | Yes | Yes | As comments | As comments | As comments | Yes | Yes | As fields |
Into Odoo
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|---|---|---|---|---|---|---|---|---|
| Pipedrive | Persons, Organizations, Deals, Products, Projects, Project tasks, Leads | Yes | Yes | Yes | Yes | Yes | With an API key | Yes | No |
Into HubSpot
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|---|---|---|---|---|---|---|---|---|
| Pipedrive | Persons, Organizations, Deals, Products, Deal products, Projects, Leads | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Into Breakcold
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|---|---|---|---|---|---|---|---|---|
| Pipedrive | Persons, Organizations, Deals | Yes | Yes | Yes | Yes | As notes | No | No | No |
Into Twenty
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|---|---|---|---|---|---|---|---|---|
| Pipedrive | Persons, Organizations, Deals, Products, Deal products, Projects, Leads | Yes | Yes | As notes | As notes | As notes | Yes | Yes | No |
Each destination's own article says how its data is written: Attio, Clarify, Odoo, HubSpot, Breakcold, Twenty.
Permissions and why
| Scope | Why Shuttio needs it |
|---|---|
| base | Reads who connected (your user and company), to label the connection and handle uninstalls. |
| contacts:read | Reads persons and organizations, their custom fields and their notes. |
| deals:read | Reads deals, their custom fields and notes, and your saved filters. |
| activities:read | Reads activities, so meetings and tasks can move. |
| mail:read | Reads mail threads and messages, for a move into Clarify or Odoo. Without it on the connection, the emails step writes one "Reconnect Pipedrive to include emails" row and moves nothing. |
Every scope is read-only. Pipedrive scopes are set on the Shuttio app in Pipedrive's Developer Hub, so the consent screen is the final list. The connection is company-scoped: Shuttio reads only the company you picked.
Known limits
- Custom objects: Pipedrive does not have them. It has custom fields on its fixed entities, and those all migrate. This is a ceiling in Pipedrive, not a gap here.
- Field history: Pipedrive's changelog is per-record rather than per-field, so there is no bulk read that could reconstruct a field's timeline honestly.
- A record count before the run starts: Pipedrive charges a full page read for a total, so progress counts up from zero and settles on the true figure once the first pass finishes.
- Emails: mail threads in the inbox, sent and archive folders that the connected user can see move into Clarify and Odoo; reading mail needs the mail:read permission, and without it the emails step writes one "Reconnect Pipedrive" row. Into Attio they land as a Logged emails activity, unticked by default because Attio's mailbox sync may already show them.
- Large and linked files: a file over 50 MB, and an entry that is only a link, is listed as a failed row and not copied.
Not answered here? Email help@shuttio.com.