CRM migration

Migrate from erxes to Pipedrive

Field-level mapping, validation, and rollback between erxes and Pipedrive. We move data and schema; workflows are rebuilt natively in Pipedrive.

erxes logo

erxes

Source

Pipedrive

Destination

Pipedrive logo

Compatibility

64%

7 of 11

objects map 1:1 between erxes and Pipedrive.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

erxes logo

erxes

What's pushing teams away

  • Steep learning curve for non-technical teams who expect a point-and-click CRM without touching code or GraphQL
  • Limited enterprise-grade documentation and support outside the paid Enterprise tier leaves self-hosted teams troubleshooting alone
  • Plugin ecosystem lacks the third-party integrations available on established platforms, requiring custom development for niche tools
  • Mobile app has stability issues according to App Store reviews, with login failures reported by multiple users
  • Performance and stability can degrade with large datasets when running on underpowered self-hosted infrastructure

Choosing

Pipedrive logo

Pipedrive

What's pulling them in

  • Clean drag-and-drop pipeline interface with minimal learning curve, making it approachable for small sales teams without dedicated CRM admins.
  • Visual deal tracking keeps reps focused on next actions — activities, calls, and follow-up tasks surface directly in the pipeline view.
  • Strong integrations via Zapier and native marketplace apps let teams wire Pipedrive into Calendly, ActiveCampaign, and similar sales-stack tools.
  • Mobile apps for iOS and Android keep field reps connected to deals, contacts, and tasks without a desktop session.
  • Reputation and review volume — over 3,000 verified reviews across G2 and Capterra — signal reliability for teams evaluating CRM options.

Object mapping

How erxes objects map to Pipedrive

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

maps to

Pipedrive

Person

1:1
Fully supported

erxes 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

maps to

Pipedrive

Organization

1:1
Fully supported

erxes 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

maps to

Pipedrive

Person-Organization link

1:many
Fully supported

erxes 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

maps to

Pipedrive

Deal

1:1
Fully supported

erxes 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

maps to

Pipedrive

Pipeline

lossy
Fully supported

erxes 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

maps to

Pipedrive

Activity

1:1
Fully supported

erxes 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)

maps to

Pipedrive

Activity + Note

1:many
Fully supported

erxes 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

maps to

Pipedrive

Custom Fields on standard objects + Note

lossy
Fully supported

Pipedrive 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

maps to

Pipedrive

User

1:1
Fully supported

erxes 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

maps to

Pipedrive

Written inventory only

1:1
Fully supported

erxes 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

maps to

Pipedrive

Written inventory only

1:1
Fully supported

erxes 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.

Gotchas + challenges

What specifically takes care here

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 logo

erxes gotchas

High

No native bulk export in Community edition

Medium

Plugin activation state affects data visibility

Medium

Custom fields have no type enforcement during import

Low

Conversation message ordering depends on server timestamps

Pipedrive logo

Pipedrive gotchas

High

Custom field hash keys differ per account

High

Export access gated by visibility groups

Medium

Token-based API rate limits since December 2024

Medium

Sequences and Automations not exposed via REST API

Low

Cost escalates via workflow caps and add-ons

Pair-specific challenges

  • erxes has no native bulk export; extraction requires GraphQL pagination

    erxes Community edition and self-hosted installations do not ship a bulk export UI or REST endpoint. All data extraction happens through GraphQL queries against the API, paginating through results to collect records. For datasets over 50,000 records, this requires chunking strategies (cursor-based pagination with a maximum page size to avoid timeouts) and careful rate-limit handling. We implement exponential backoff on 429 responses and schedule extraction runs outside business hours to avoid competing with active API users. The extraction phase adds two to five days to the project timeline compared to CRMs with native bulk export.

  • Pipedrive has no custom objects; erxes custom objects require remapping

    Pipedrive supports only four standard objects: People, Organizations, Deals, and Activities. Any erxes custom object must be remapped: fields become Pipedrive custom fields on the closest standard object, and lookup relationships between custom objects are stored in structured Notes. Teams with complex erxes custom object schemas (tracking Properties, Vehicles, Subscriptions, or Projects) will find that Pipedrive cannot natively represent the same data model. We document the full remapping strategy during scoping and flag any relationships that become denormalized in the Note-based approach. Third-party tools like Airtable or a custom database may be needed alongside Pipedrive to preserve full custom object semantics.

  • erxes custom field type enforcement is absent; Pipedrive enforces types strictly

    erxes custom fields are schema-less on ingest: any value can be written to any field regardless of the field type shown in the UI. A date field can contain the string 'Q4 2024' and a number field can contain 'approximately 50'. Pipedrive enforces field types during API insert and will reject records with type mismatches (e.g., text in a date field). We validate all erxes custom field values against the declared field type before mapping to Pipedrive fields, flag mismatches in a data quality report, and either coerce values to the correct type (stripping non-numeric characters from number fields, parsing text dates to ISO format) or move them to a text custom field if coercion is not possible. This validation pass is the most common source of migration timeline extensions for erxes sources.

  • erxes plugin activation state determines data visibility

    erxes modules (Sales, Marketing, Operations, etc.) must be activated in the plugin configuration for their data objects to be accessible via the API. If a customer has deactivated a plugin before migration, related Deals, Tasks, or Conversations become inaccessible even if records exist in the database. We confirm all relevant plugins are active during the pre-migration audit phase and document which plugin each object type belongs to. If plugins are deactivated, we request the customer reactivate them before extraction begins or flag the inaccessible objects as write-only (extracted from database backup if available) in the migration scope.

  • Pipedrive's per-plan custom field limits constrain field-heavy migrations

    Pipedrive limits the number of custom fields per object based on the pricing plan: Essential allows a subset, Advanced and above allow more. erxes installations with many custom fields per object (particularly on Deals and Contacts) may exceed Pipedrive's plan limits. We count custom fields per object during scoping and flag any that exceed the target Pipedrive plan's allowance. The customer either upgrades the Pipedrive plan or we consolidate non-critical custom fields into a single JSON or text custom field with structured content.

Migration approach

Six steps for a successful erxes to Pipedrive data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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

Context on both ends of the pair

erxes logo

erxes

Source

Strengths

  • True open-source with MIT license gives full code access and modification rights without vendor lock-in
  • Self-hosting option on DigitalOcean, AWS, or on-premise infrastructure provides complete data residency control
  • All-in-one platform consolidating marketing, sales, operations, and customer service modules
  • Plugin-based architecture allows activating only needed functionality without paying for unused features
  • Free Community edition offers generous feature set comparable to paid SaaS CRM tiers

Weaknesses

  • Steep technical learning curve requiring GraphQL knowledge and React familiarity for deep customization
  • Limited third-party integration marketplace compared to established CRM platforms
  • Documentation gaps make self-service troubleshooting difficult outside of paid support tiers
  • Mobile application stability issues reported in user reviews with authentication failures
  • Performance can degrade with large data volumes on underpowered self-hosted deployments
Pipedrive logo

Pipedrive

Destination

Strengths

  • Intuitive drag-and-drop pipeline that sales reps actually use without resistance or training overhead.
  • Per-seat unlimited-deals model on all tiers — reps cannot be blocked from logging activity.
  • Active marketplace with 400+ integrations and a documented REST API with OpenAPI 3 specs.
  • Mobile apps with offline access, call logging, and calendar sync keep field teams operational.
  • Strong focus on sales activity tracking — next-action reminders and follow-up scheduling are first-class features.

Weaknesses

  • No custom objects — teams needing non-standard data structures must work around the four standard entity types.
  • Workflow automation limits by tier (30, 60, 90 active workflows) force upgrades as processes grow.
  • No free permanent plan — teams evaluating fit must commit to a trial without a freemium option.
  • Limited advanced reporting and custom dashboard capabilities compared to HubSpot or Salesforce.
  • Export permissions are gated by visibility groups, meaning data scoping must account for who can see what before migration.

Complexity grading

How hard is this migration?

Standard CRM migration. 3 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across erxes and Pipedrive.

  • Object compatibility

    B

    3 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    erxes: Not publicly documented.

  • Data volume sensitivity

    B

    erxes doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your erxes to Pipedrive migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about erxes to Pipedrive data migrations

Answers to the questions buyers ask most during erxes to Pipedrive migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your erxes to Pipedrive migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 15,000 Contacts, 5,000 Deals, and 10,000 Activity records with clean data and no custom objects. Migrations with large conversation histories (over 100,000 messages), multiple erxes plugin modules, custom objects requiring remapping, or dirty data requiring transformation pass extend to six to ten weeks. The erxes GraphQL extraction phase adds two to five days compared to CRMs with native bulk export, which is the primary timeline variable for this pair.

Adjacent paths

Related migrations to explore

Ready when you are

Move from erxes.
Land in Pipedrive, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day