CRM migration
Field-level mapping, validation, and rollback between erxes and Pipedrive. We move data and schema; workflows are rebuilt natively in Pipedrive.
erxes
Source
Pipedrive
Destination
Compatibility
7 of 11
objects map 1:1 between erxes and Pipedrive.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from erxes to Pipedrive is a structural migration from an open-source, plugin-based CRM to a purpose-built sales pipeline tool. erxes stores Contacts, Companies, and Deals across plugin modules accessible only through its GraphQL API with no native bulk export; Pipedrive's four-object model (People, Organizations, Deals, Activities) is more constrained but more opinionated. We extract data from erxes via paginated GraphQL queries, validate and transform custom field types (erxes accepts any value in any custom field regardless of type), map erxes Companies to Pipedrive Organizations and erxes Contacts to Pipedrive People with the Organization lookup resolved, and land Deals with their pipeline and stage assignments intact. Pipedrive does not have custom objects, so any erxes custom objects require mapping to custom fields on the four standard objects or to Notes with a structured label prefix. Automation workflows, Channels, and plugin-specific configurations do not migrate as code; we deliver a written inventory of every active automation and channel with its trigger and action sequence for the customer's admin to rebuild in Pipedrive's workflow builder.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a erxes object lands in Pipedrive, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
erxes
Contact
Pipedrive
Person
1:1erxes Contacts map directly to Pipedrive People. The firstName and lastName fields split from erxes combined name field. Email, phone, and custom property values migrate as custom fields on Person. The erxes contactId becomes a custom field pipedrive_migration_id__c on the destination record for deduplication if the migration is re-run or supplemented. We validate email format before insert since Pipedrive enforces email syntax on the Person object.
erxes
Company
Pipedrive
Organization
1:1erxes Companies map to Pipedrive Organizations. Company domainName becomes the Organization's Website field. name becomes the Organization name. erxes companyId maps to pipedrive_migration_id__c on Organization. We create Organizations before People so that the Organization lookup on Person (visible in Pipedrive's Person detail view as a link to Organization) is satisfied at insert time.
erxes
Contact-Company association
Pipedrive
Person-Organization link
1:manyerxes allows a Contact to be linked to multiple Companies via companyIds. Pipedrive People link to one primary Organization. We map the primary companyId (first in the list or flagged as primary) to the Organization link and store any secondary company associations in a custom field secondary_orgs__c as a comma-separated list for manual reconciliation in Pipedrive.
erxes
Deal
Pipedrive
Deal
1:1erxes Deals map to Pipedrive Deals with stage, amount, currency, owner, and custom fields preserved. The erxes pipelineId maps to a Pipedrive Pipeline we create or use based on the customer's pipeline configuration. Stage name maps from erxes stageName to Pipedrive stage. We set deal_value as the Pipedrive amount field and preserve any erxes custom field values as Pipedrive custom fields.
erxes
Pipeline
Pipedrive
Pipeline
lossyerxes Pipelines define the deal workflow stages. Each erxes pipeline becomes a Pipedrive Pipeline with stages ordered to match the erxes stage sequence. Stage probabilities migrate from erxes (probability field on each stage) to Pipedrive's stage probability. We configure Pipedrive Pipelines before Deals migrate so that stage assignments are valid at insert time.
erxes
Task
Pipedrive
Activity
1:1erxes Tasks assigned to Users map to Pipedrive Activities. Task title becomes the Activity subject, description becomes the body, status maps to done (boolean) in Pipedrive, and due_date maps to due_date. Owner assignment resolves by matching erxes assignedBy to Pipedrive User via email lookup. Tasks with no due date migrate with no due date set.
erxes
Conversation (email, SMS, chat, WhatsApp)
Pipedrive
Activity + Note
1:manyerxes multi-channel Conversations cannot map to a single Pipedrive object because Pipedrive Activities do not store the full message content and channel metadata natively. We create a Pipedrive Activity (type determined by channel: email, call, meeting) as the timeline entry and attach a Note containing the conversation body, customer name, channel type, and timestamp. The conversation subject becomes the Activity subject. Message ordering is preserved by the original createdAt timestamp.
erxes
Custom Object
Pipedrive
Custom Fields on standard objects + Note
lossyPipedrive does not have custom objects. erxes custom objects require remapping: we identify the parent object (Contact, Company, Deal, or Task), create custom fields on that object in Pipedrive for each custom object field, and insert the values. If a custom object has lookup relationships to other objects, those associations are stored in a Note on the parent record with a structured prefix (CUSTOMOBJ:) for identification. The customer reviews the Note contents post-migration to determine if a relationship management tool or third-party integration is needed.
erxes
User / Team Member
Pipedrive
User
1:1erxes Users map to Pipedrive Users by email address. We extract all distinct ownerIds and assignedBy values from Deals, Tasks, and Conversations and match against the destination Pipedrive User list by email. Any erxes user without a matching Pipedrive User goes to a reconciliation queue. The customer provisions missing Pipedrive Users before record migration continues because OwnerId is required on Deal and Activity insert.
erxes
Channel configuration
Pipedrive
Written inventory only
1:1erxes Channels define the connected communication mediums (email, SMS, chat, WhatsApp) with their API keys and webhook URLs. Channel credentials do not migrate because they are sensitive and platform-specific. We deliver a written inventory of every active Channel with its type, connected inbox or phone number, and a note that the customer must re-authenticate each channel in Pipedrive's settings or reinstall the relevant integration app from Pipedrive's marketplace.
erxes
Automation Workflow
Pipedrive
Written inventory only
1:1erxes Automations define trigger-action sequences across Contacts, Companies, Deals, and Tasks. We extract the automation structure including trigger type, conditions, and actions from erxes but do not migrate them as code. Pipedrive's workflow builder (available on Advanced and above) uses a different trigger-action model. We deliver a written inventory of every active automation with its trigger, conditions, and actions, and a recommended Pipedrive workflow equivalent. The customer's admin rebuilds automations in Pipedrive post-migration.
| erxes | Pipedrive | Compatibility | |
|---|---|---|---|
| Contact | Person1:1 | Fully supported | |
| Company | Organization1:1 | Fully supported | |
| Contact-Company association | Person-Organization link1:many | Fully supported | |
| Deal | Deal1:1 | Fully supported | |
| Pipeline | Pipelinelossy | Fully supported | |
| Task | Activity1:1 | Fully supported | |
| Conversation (email, SMS, chat, WhatsApp) | Activity + Note1:many | Fully supported | |
| Custom Object | Custom Fields on standard objects + Notelossy | Fully supported | |
| User / Team Member | User1:1 | Fully supported | |
| Channel configuration | Written inventory only1:1 | Fully supported | |
| Automation Workflow | Written inventory only1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
erxes gotchas
No native bulk export in Community edition
Plugin activation state affects data visibility
Custom fields have no type enforcement during import
Conversation message ordering depends on server timestamps
Pipedrive gotchas
Custom field hash keys differ per account
Export access gated by visibility groups
Token-based API rate limits since December 2024
Sequences and Automations not exposed via REST API
Cost escalates via workflow caps and add-ons
Pair-specific challenges
Migration approach
Pre-migration audit and plugin activation check
We audit the erxes instance to identify all active plugins, object types, and data volumes. We verify that all plugins relevant to the migration scope (Sales, at minimum) are activated so that Deals, Tasks, and Conversations are accessible via the GraphQL API. We extract record counts per object, list all custom field definitions with their declared types, and identify any custom objects. We also confirm the Pipedrive target account exists, the plan tier, and whether custom fields need to be pre-created or will be auto-created during import. The audit output is a written scope document and a pre-migration checklist for the customer to action before extraction begins.
Custom field validation and transformation mapping
We run the erxes custom field validation pass before any extraction begins. Each erxes custom field is evaluated against its declared type, and any values that violate the type are flagged in a data quality report. We define transformation rules: text values in date fields are parsed to ISO date strings where possible; invalid values are mapped to a parallel text custom field; picklist values that do not match the Pipedrive allowed set are either expanded in Pipedrive or moved to a text field. The transformation mapping workbook is the source of truth for all field-level logic during extraction and import.
GraphQL extraction with pagination and deduplication key capture
We extract data from erxes via paginated GraphQL queries. Contacts, Companies, Deals, Tasks, and Conversations are extracted in separate queries with cursor-based pagination and a maximum page size of 200 records per request to avoid timeouts. During extraction, we capture the original erxes record ID as a custom field pipedrive_migration_id__c to use as a deduplication key if the migration is re-run or supplemented. Conversation messages are extracted with their parent conversation ID and ordered by createdAt timestamp to preserve message sequence. Owner IDs are collected for User reconciliation.
Owner reconciliation and Pipedrive User provisioning
We extract all distinct erxes userIds and ownerIds referenced on Deals, Tasks, and Conversations and match them by email against the Pipedrive destination User table. Any erxes user without a matching Pipedrive User goes to a reconciliation queue. The customer provisions missing Pipedrive Users and confirms Active/Inactive status. Migration cannot proceed past this step because Pipedrive requires a valid OwnerId on Deal and Activity insert. We do not create Pipedrive Users programmatically as that requires admin credentials the migration service does not hold.
Pipedrive Pipeline and schema pre-configuration
We create Pipedrive Pipelines and Stages before record migration so that stage assignments are valid at insert time. Each erxes pipeline becomes a Pipedrive Pipeline with stages ordered to match the source sequence and probabilities migrated. Custom fields are pre-created on People, Organizations, Deals, and Activities based on the transformation mapping workbook. Schema is configured in a Pipedrive Sandbox or verified in the production account before records are inserted. Import2 does not support erxes as a source, so all import goes through the Pipedrive REST API directly.
Production migration in dependency order
We run production migration in record-dependency order: Organizations (from erxes Companies), People (from erxes Contacts with OrganizationId resolved), Deals (with PipelineId, StageId, and OwnerId resolved), Activities (Tasks and Conversation-Notes with OwnerId resolved). Each phase emits a row-count reconciliation report. We use the Pipedrive REST API with batch endpoints where available and single-record insert for custom field payloads. Custom objects are migrated last after standard object records are confirmed in Pipedrive. We run a final delta migration of any records modified during the migration window before cutover.
Cutover, validation, and automation handoff
We freeze erxes writes during cutover, run a final delta migration, and enable Pipedrive as the system of record. We deliver the Automation and Channel inventory document to the customer's admin team for rebuild in Pipedrive's workflow builder. We support a 48-hour hypercare window where we resolve any record discrepancies or broken associations reported by the sales team. We do not rebuild erxes automations as Pipedrive workflows inside the migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
erxes
Source
Strengths
Weaknesses
Pipedrive
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across erxes and Pipedrive.
Object compatibility
3 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
erxes: Not publicly documented.
Data volume sensitivity
erxes doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during erxes to Pipedrive migration scoping. Not seeing yours? Book a call.
Walk through your erxes to Pipedrive migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave erxes
Other ways to arrive at Pipedrive
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.