Pipedrive to Odoo migration

Shuttio moves persons, organizations, deals, products, projects, project tasks and leads from Pipedrive into Odoo, with notes, tasks, meetings, calls, emails and files (with an API key). A full migration is priced by record count, from $249 up to 50,000 records. It starts with a free sample of every object you tick (5% of your companies, contacts or deals, 10 to 1,000 records, picked at random, with their linked records), so you read the result in Odoo before the full run, and a rollback removes what it created.

Can I move Pipedrive to Odoo?
Yes.
What moves:
Persons, organizations, deals, products, projects, project tasks and leads, with notes, tasks, meetings, calls, emails and files (with an API key).
What doesn't:
Deal products; A deal's own currency; Source lists.
Price:
$249 up to 50,000 records, once per migration. The sample is free.
How long:
A free sample first, then the full run as one background job with live progress. The time depends on your record count and on Pipedrive's API request limits.
Moves
7 kinds of record, plus notes, tasks, meetings, calls, emails and files (with an API key)
Doesn’t move
3 things, each with the reason
Connect
Pipedrive: OAuth. Odoo: API key, import package or the Shuttio app
Price
From $249; the sample is free

Where each Pipedrive object lands

Read from the code that runs the migration. Source column names are shown as the source reports them.

Pipedrive objectLands inStandard fields
PersonsPartners (contacts)
  • name → Name
  • first_name → Name
  • last_name → Name
  • email → Email
  • phone → Phone
  • job_title → Job position
  • owner_id → Salesperson
  • org_id → Link to its company
OrganizationsPartners (companies)
  • name → Name
  • address → Street
  • owner_id → Salesperson
DealsCRM opportunities
  • title → Opportunity
  • value → Expected revenue
  • expected_close_date → Expected closing
  • lost_reason → Lost reason
  • probability → Probability
  • owner_id → Salesperson
  • user_id → Salesperson
  • person_id → Customer (the contact if it moved)
  • org_id → Customer (the company if no contact moved)
ProductsProducts
  • name → Name
  • code → Internal reference
  • price → Sales price
  • description → Sales description
  • active_flag → Active
ProjectsProjects (Odoo Project app)
  • title → Name
  • description → Description
  • phase_name → Stage (a tag in an Odoo without project stages)
  • status → Stage (when the source has no stage)
  • start_date → Start date
  • end_date → End date
  • owner_id → Project manager (when the email matches an Odoo user)
  • label_names → Tags
  • org_id → Customer (the company)
  • person_id → Customer (the contact, if no company moved)
Project tasksProject tasks (Odoo Project app)
  • title → Title
  • description → Description
  • status → Stage in its project (when the source has no stage)
  • due_date → Deadline
  • assignee_id → Assignee (when the email matches an Odoo user)
  • project_id → Project
LeadsCRM leads
  • title → Name
  • value → Expected revenue
  • expected_close_date → Expected closing
  • owner_id → Salesperson

Every other property goes to an x_ field you pick, or is skipped. A company matches by website domain and a contact by email before anything is created; a match is linked, never written and never removed.

Notes, tasks, meetings, calls, emails, files, owners and lists

KindHow it movesWhat happens
NotesYesInternal notes in the chatter of the record they belonged to.
TasksYesAn open task becomes a scheduled To-Do activity; a completed one becomes a Done entry in the chatter.
MeetingsYesA Calendar event when the Calendar app is installed, a chatter note when it is not.
CallsYesAn activity of the type call: a done one is a Done entry of Odoo's Call type in the record's chatter, an open one a scheduled Call activity.
EmailsYesMail threads the connected user can see, in the chatter of their record. Needs the mail:read permission; without it the run writes one Reconnect row.
FilesWith an API keyAttachments on the same record, only when you connect Odoo with an API key. The import package and the Odoo app do not carry files.
OwnersYesRecord owners, matched to the Odoo salesperson with the same email. An owner with no match goes to the fallback user you choose.
ListsNoOdoo has no place for a CRM list or saved filter, so none is written. The members stay in the source.

Deal pipelines and stages

Deals go to CRM opportunities and leads to CRM leads (when Odoo has leads switched on). Each source pipeline is recreated as a sales team with its stages in the source's order, and won and lost stages are kept. A lost deal is archived with its lost reason; a won deal goes to a won stage.

Your own fields

A source field with no Odoo counterpart goes to an existing writable x_ field that you pick, or to a new x_ field when your Odoo key may add fields (text, number, true/false, date, date and time, selection, or a link to a contact or company). A value that does not fit the field's type is left out and counted, never guessed.

3 things that don’t move

Each has a reason. You would find them on day two, so they are here on day zero.

Deal products

Doesn't move

Shuttio writes companies, contacts, deals, leads and products into Odoo, and projects with their tasks into its Project app. Pipedrive deal products have no Odoo object to land in, and their columns can go to x_ fields on those five.

A deal's own currency

Doesn't move

Shuttio writes the deal amount into Expected revenue and sets no currency per deal.

Source lists

Doesn't move

The Odoo writer has no place for a CRM list or saved filter, so none is written. The members stay in the source.

How the move runs

  1. 1

    Pick the pair

    Choose Pipedrive as the source and Odoo as the destination.

  2. 2

    Connect both ends

    Pipedrive: OAuth. Company-scoped, so the migration reads only the company you picked. Odoo: one of three ways: an API key, an import package that you load yourself, or the Shuttio app installed in your Odoo.

  3. 3

    Choose the objects

    Tick what to move. Each row shows where the object lands in Odoo. Nothing is written yet.

  4. 4

    Review every field

    Rename a field, skip it, or point it at a field that exists. When a field goes into an existing field, the step warns you that values on matched records are overwritten, and counts the fields concerned.

  5. 5

    Start the free sample

    Shuttio picks the sample at random: 5% of your companies, contacts or deals, 10 to 1,000 records, picked at random, with their linked records. A deal in the sample still finds its company, because every object takes the records linked to the ones already picked. Lists and files move with the full migration. You open the result in Odoo.

  6. 6

    Run the full migration

    The run page shows your band and price; you pay at Checkout, and the rest moves. Pause, resume and cancel work while it runs.

  7. 7

    Check the report, then move new records

    The Records tab lists every source record as moved, updated, skipped or failed, with the reason, and downloads as a CSV. Move new records brings over the records created in Pipedrive after the migration started. It is not offered for an Odoo import package or the Odoo app.

Price

A full migration into Odoo costs $249 up to 50,000 records and $4,749 up to 5,000,000. You pay once per migration, and the sample is free.

Records in your sourceOne-time price
Up to 50,000$249
Up to 100,000$499
Up to 200,000$749
Up to 500,000$999
Up to 1,000,000$1,499
Up to 5,000,000$4,749
Over 5,000,000Email help@shuttio.com
  • Each record of an object you tick counts once: a contact, company, deal, note, task or meeting. List memberships and attachments do not count. The count is shown before you pay.
  • Filters do not lower the price: it counts everything in your source. You see your band before the full run starts and pay at Stripe Checkout; nothing is charged before that.
  • Move new records after the full run costs nothing more while the total stays within the band you paid for; past it, Checkout opens for the next band.
  • A CSV import into Odoo is free, at any size.

Pipedrive to Odoo with Shuttio or by hand

Against a manual CSV export: a CSV is one object per file and a record export has no notes, tasks or meetings in it, so a deal's company is a column you match by hand and its notes, tasks and meetings are not in the file. Shuttio reads Pipedrive through its API, creates records first and links them second, matches records already in Odoo instead of duplicating them, and lists every record's outcome. If you only need one object's fields and no history, a CSV import is enough, and Shuttio runs those free into Odoo too.

Questions

How much does a Pipedrive to Odoo migration cost?

A full migration into Odoo costs $249 up to 50,000 records and $4,749 up to 5,000,000. You pay once per migration, and the sample is free. Filters do not lower the price: it counts everything in your source. You see your band before the full run starts and pay at Stripe Checkout; nothing is charged before that.

What does the free sample move?

5% of your companies, contacts or deals, 10 to 1,000 records, picked at random, with their linked records. Lists and files move with the full migration. It is a real write into Odoo, so it can be rolled back.

What does not move from Pipedrive to Odoo?

Deal products; A deal's own currency; Source lists. Each has a reason on this page.

Can I undo the migration?

Yes. Rollback deletes the records, notes, tasks, meetings, files and list entries that the sample or the full run created, in reverse order, from a ledger. A record that already existed in Odoo and was updated in place stays, and the values it overwrote are not restored; the Fields step warns you before the run. Runs through an API key or the Shuttio app roll back with Shuttio; an import package is loaded by you, so you remove it in Odoo by its tag.

Does it change anything in Pipedrive, and what about records created while I migrate?

Shuttio only reads from Pipedrive. It never writes to it. After the full run, Move new records moves the records created in Pipedrive after the migration started. Edits to records already moved are not copied. It is not offered for an Odoo import package or the Odoo app.

How does Pipedrive data get into Odoo?

Shuttio writes through an Odoo API key, builds an import package you load yourself, or writes through the Shuttio app installed in your Odoo. The API key needs an administrator's key on Odoo 17 or later, and on Odoo Online the external API is part of the Custom plan only. The import package is for a plan without API access. Import2 does not support Clarify or Odoo as a destination.

Move Pipedrive to Odoo in a free sample first.

Nothing is written to your new CRM until you have reviewed the objects and fields, and every CRM migration starts as a free sample: 5% of your companies, contacts or deals, 10 to 1,000 records, picked at random, with their linked records.