CRM migration
Field-level mapping, validation, and rollback between Opal CRM and Pipedrive. We move data and schema; workflows are rebuilt natively in Pipedrive.
Opal CRM
Source
Pipedrive
Destination
Compatibility
8 of 12
objects map 1:1 between Opal CRM and Pipedrive.
Complexity
BStandard
Timeline
2-3 weeks
Overview
Moving from Opal CRM to Pipedrive is a migration from a field-sales-specific platform built around leads, tour itineraries, and quotation approval workflows into a general-purpose sales CRM with a visual pipeline model. Opal CRM tracks leads from capture through quotation with role-based permissions for Sales Reps, Managers, and Admins, and stores Tour Plans as structured itinerary-and-expense records; Pipedrive uses Deals, Activities, and a visual pipeline with drag-and-drop stages. We map Opal Leads directly to Pipedrive Leads or Contacts, preserve quotation line items and approval state as custom deal fields, reconstruct Tour Plan expense entries as individual transaction records, and migrate engagement history (calls, emails, meetings, tasks) as typed Activities. Opal CRM has no publicly documented REST API or bulk export endpoint, so data extraction relies on whatever manual CSV or backup mechanism the platform exposes; we validate record counts against the Opal UI before proceeding. We do not migrate quotation approval workflows, Tour Plan itinerary logic, or Opal role-permission hierarchies as code; we deliver a written inventory of these for the customer's admin to rebuild in Pipedrive.
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 Opal CRM 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.
Opal CRM
Lead
Pipedrive
Lead or Contact
1:1Opal CRM Leads map to Pipedrive Leads by default. If the customer uses Opal's lead engagement tracking to qualify buyers into a sales-ready stage, those records can alternatively map to Pipedrive Contacts attached to an Organization. We determine the mapping strategy during discovery based on how the customer's sales process uses Opal's lifecycle stages. Source attribution (form, upload, campaign) from Opal preserves as a custom field on the Pipedrive record.
Opal CRM
Company
Pipedrive
Organization
1:1Opal CRM may store company records associated with leads. These map directly to Pipedrive Organizations. The company name becomes the Organization name field, and any address or industry data maps to standard Organization fields. If Opal does not have a separate Company object and stores company data as fields on the Lead, we extract and create Organization records during the transform phase.
Opal CRM
Sales Representative
Pipedrive
User
1:1Opal CRM team members (Sales Rep, Manager, Admin roles) map to Pipedrive Users. We resolve owners by email match against the destination Pipedrive account's User table. Any Opal user without a matching Pipedrive User goes to a reconciliation queue for the customer's admin to provision before record import resumes. Opal role hierarchies (Admin, Manager, Sales Rep) do not export as structured data; we document the role assignment per user in the handoff notes for manual reconfiguration in Pipedrive.
Opal CRM
Tour Plan
Pipedrive
Activity + Custom Transaction Records
1:manyOpal CRM Tour Plans store itinerary data (dates, locations, assigned rep) and individual expense line items. Pipedrive has no native Tour or Visit object, so Tour Plan itinerary data migrates as Activity records (Meeting or Task type) with location stored in a custom field. Each expense line item within a Tour Plan is reconstructed as a separate Note or as a custom field set on the linked Activity, preserving the expense type, amount, and date. If the expense data flattens during Opal export into a single notes field, we decompress it into individual structured rows during the transform phase.
Opal CRM
Quotation
Pipedrive
Deal + Product Lines
1:1Opal CRM Quotations with header fields (quotation number, date, total, status) and line items migrate to Pipedrive Deals. The quotation total maps to Deal value, quotation status becomes a custom field (quotation_status__c), and line items with product name, quantity, and price migrate as Deal Product entries. Pipedrive's Products feature (available from Essential plan) must be enabled and populated before line item import. If Opal Quotations use a multi-currency setup, currency codes preserve as a custom field on the Pipedrive Deal.
Opal CRM
Quotation Workflow State
Pipedrive
Custom Field on Deal
lossyOpal CRM's internal quotation approval workflow generates a workflow state value (e.g., Draft, Submitted, Under Review, Approved, Rejected) that does not map to any standard Pipedrive field. We capture the workflow state as a custom picklist field (quotation_workflow_state__c) on the Pipedrive Deal and document it in the handover notes so the customer's admin can decide whether to rebuild the workflow logic using Pipedrive's Workflow Automation feature (Professional plan and above). The workflow state is informational only after migration.
Opal CRM
Pipeline Stages
Pipedrive
Pipeline Stage
lossyOpal CRM tracks lead progress through implied pipeline stages via its lead engagement tools. Stage names and order extract as a configuration set during discovery. We create a Pipedrive Pipeline with matching stage names and probabilities. If Opal uses multiple lead pipelines (e.g., inbound vs outbound), we create multiple Pipedrive Pipelines and map the relevant stages per pipeline. Stage probability percentages round to Pipedrive's allowed integer values.
Opal CRM
Activity: Calls
Pipedrive
Activity (Call type)
1:1Opal CRM call logs attached to leads migrate to Pipedrive Activities with type Call. Call duration, disposition, and any notes transfer to the activity's subject, duration, and notes fields. Activity timestamps preserve from Opal to maintain the engagement timeline sequence.
Opal CRM
Activity: Emails
Pipedrive
Activity (Email type)
1:1Opal CRM email engagements linked to leads migrate to Pipedrive Activities with type Email. The email subject, body content, and timestamp transfer to the activity. If Opal stores email as a reference link rather than full content, we store the link in the activity notes field and flag for manual review.
Opal CRM
Activity: Meetings
Pipedrive
Activity (Meeting type)
1:1Opal CRM meeting records linked to leads migrate to Pipedrive Activities with type Meeting. Start time, end time, location, and attendee data transfer to the corresponding activity fields. Attendee email addresses create Person records or link to existing Leads or Contacts in Pipedrive via the Activity's person_id field.
Opal CRM
Custom Properties
Pipedrive
Custom Fields
lossyOpal CRM supports custom fields on Leads and possibly other objects, but the schema is not publicly documented. During discovery we extract all custom field definitions from the Opal export, identify their data types (text, number, date, picklist), and create matching custom fields in Pipedrive before data import. Any custom fields that cannot be typed definitively flag for manual review during the sandbox migration. Pipedrive custom fields are available from the Essential plan onward.
Opal CRM
Lead Source Attribution
Pipedrive
Custom Field on Lead
1:1Opal CRM captures lead source from forms, uploads, offline events, and marketing campaigns as a native field. We map this to Pipedrive's built-in label field or a custom field (lead_source__c) on the Lead record. If the customer's sales process requires UTM or campaign attribution data, we create additional custom fields for that context.
| Opal CRM | Pipedrive | Compatibility | |
|---|---|---|---|
| Lead | Lead or Contact1:1 | Fully supported | |
| Company | Organization1:1 | Fully supported | |
| Sales Representative | User1:1 | Fully supported | |
| Tour Plan | Activity + Custom Transaction Records1:many | Fully supported | |
| Quotation | Deal + Product Lines1:1 | Fully supported | |
| Quotation Workflow State | Custom Field on Deallossy | Fully supported | |
| Pipeline Stages | Pipeline Stagelossy | Mapping required | |
| Activity: Calls | Activity (Call type)1:1 | Fully supported | |
| Activity: Emails | Activity (Email type)1:1 | Fully supported | |
| Activity: Meetings | Activity (Meeting type)1:1 | Fully supported | |
| Custom Properties | Custom Fieldslossy | Mapping required | |
| Lead Source Attribution | Custom Field on Lead1: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.
Opal CRM gotchas
No publicly documented API for bulk data export
Tour Plan expense data may flatten during export
Quotation workflow state is not a standard CRM field
Free tier limits and trial expiry not visible in export
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
Discovery and export file request
We audit the Opal CRM account via the provided UI access or export file, capturing record counts for Leads, Companies, Quotations, Tour Plans, and Activities across all engagement types. We also identify the Opal account tier (Free, Basic, or Standard), the number of active users, any custom fields visible in the UI, and the pipeline stage configuration. Since Opal CRM has no API, we request a manual CSV or backup export from the customer and validate the record counts against the Opal UI before proceeding. The discovery output is a written migration scope with source record inventory and destination schema requirements.
Schema preparation in Pipedrive
We create the destination schema in the customer's Pipedrive account before any data import. This includes provisioning custom fields identified during discovery (lead_source__c, quotation_workflow_state__c, tour_plan_expenses__c), creating Pipedrive Pipelines with stages matched to Opal's lead pipeline configuration, enabling the Products feature if Quotation line items are in scope, and configuring Organization fields for any company data. If the customer has an active Pipedrive account, we work in the production org directly; if they are provisioning Pipedrive as part of the migration, we coordinate the initial account setup and plan creation first.
Export extraction and transform
We extract data from the Opal CRM export file (CSV or manual backup), decompressing any flattened Tour Plan expense rows into individual structured records and parsing quotation line items into a format compatible with Pipedrive Deal Products. We apply the object split logic: Leads map to Pipedrive Leads, company data maps to Organizations, Quotations map to Deals with workflow state as a custom field, and Tour Plans map to Activities with expense breakdowns as structured child records. Custom field values type-check against the Pipedrive schema created in Step 2. The transform output is a set of clean CSV files ready for Pipedrive import.
Owner reconciliation and User provisioning
We extract every distinct Opal CRM user referenced as an owner on Leads, Quotations, Tour Plans, and Activities and match by email against the destination Pipedrive account's User table. Users without a matching Pipedrive User go to a reconciliation queue for the customer's admin to provision before record import resumes. Role assignments (Admin, Manager, Sales Rep) document in the handoff notes for manual reconfiguration in Pipedrive's user permission settings.
Sandbox or pilot import and validation
We run a pilot import of the first batch of records (typically Leads and Organizations) into the customer's Pipedrive account to validate field mapping, custom field population, and activity linkage. The customer spot-checks 20-30 records against the Opal source data and confirms the mapping is correct before we proceed to full production migration. Any mapping corrections happen in the pilot phase, not in production. If the customer does not have a separate sandbox, we use a temporary Pipedrive trial account for pilot validation.
Production migration in dependency order
We run production migration in record-dependency order: Organizations (from company data), Products (from quotation line items), Leads (with owner resolution validated), Deals (with quotation workflow state, line items, and deal value mapped), Tour Plan Activities (with expense data as structured child records), and engagement Activities (Calls, Emails, Meetings as typed Pipedrive Activities). Each phase emits a row-count reconciliation report. We use Pipedrive's REST API with batch chunking and respect the 100 requests/30 seconds rate limit on standard plans. For large activity histories (over 50,000 records), we use Pipedrive's Bulk API if the customer's plan supports it.
Cutover, validation, and handoff documentation
We freeze Opal CRM write access during cutover, run a final delta migration of any records modified during the migration window, then mark Pipedrive as the system of record. We deliver a written inventory of quotation workflow states requiring rebuild in Pipedrive Workflow Automation, Tour Plan itinerary logic for manual reconfiguration, and role-permission mapping for Pipedrive user settings. We support a 48-hour hypercare window where we resolve reconciliation issues raised by the customer's team. Workflows, automations, and role hierarchies do not migrate as code; these are documented for the customer's admin to rebuild.
Platform deep dives
Opal CRM
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 Opal CRM 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
Opal CRM: Not publicly documented..
Data volume sensitivity
Opal CRM 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 Opal CRM to Pipedrive migration scoping. Not seeing yours? Book a call.
Walk through your Opal CRM 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 Opal CRM
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.