CRM migration
Field-level mapping, validation, and rollback between Atomic CRM and Pipedrive. We move data and schema; workflows are rebuilt natively in Pipedrive.
Atomic CRM
Source
Pipedrive
Destination
Compatibility
6 of 10
objects map 1:1 between Atomic CRM and Pipedrive.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Atomic CRM is a self-hosted, MIT-licensed CRM built on Supabase with no commercial SLA, no admin UI for configuration, and no native export tooling. Migrating to Pipedrive requires a database-level extraction from the underlying Postgres instance, a schema audit to capture custom fields added through Supabase Studio, and an App.tsx code review to extract deal categories and task types that live as TypeScript enums rather than database values. We handle all three of these discovery steps, configure the corresponding Pipedrive pipelines and activity types before any data moves, and load records through the Pipedrive REST API with rate-limit handling and batch chunking. Pipedrive's 100 requests per second API limit governs the import pacing for Deals and Activities. We do not migrate Workflows, email sequences, or automations as these are not supported in Atomic CRM in the way Pipedrive models them, and we do not migrate binary attachment storage unless the customer provides explicit Supabase Storage bucket access.
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 Atomic 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.
Atomic CRM
Contact
Pipedrive
Person (Lead or Contact)
1:manyAtomic CRM Contacts map to Pipedrive Person records. We determine whether each Contact should be created as a Lead or a Person based on deal association: Contacts linked to at least one Deal in Atomic CRM become Pipedrive Persons attached to an Organization; Contacts with no deal history and no company association become Pipedrive Leads. We preserve the original email address as the primary key for deduplication.
Atomic CRM
Company
Pipedrive
Organization
1:1Atomic CRM Company records map directly to Pipedrive Organization. The company sector, website, and phone fields map to Pipedrive's standard fields. Organization is created before any Person import so that the Org ID is resolved at Person insert time. Multi-address support in Pipedrive accommodates any company addresses stored in Atomic CRM custom columns.
Atomic CRM
Deal
Pipedrive
Deal
1:1Atomic CRM Deals map to Pipedrive Deals. The deal category (e.g. eCommerce, SaaS, Consulting) maps to a Pipedrive Pipeline that we configure before migration using the category values extracted from App.tsx. Deal value, stage, expected close date, and custom fields migrate directly. We resolve the linked Organization ID at migration time using the company name match against the destination Organizations table.
Atomic CRM
Deal Stage
Pipedrive
Pipeline Stage
lossyEach deal category defined in App.tsx becomes a Pipedrive Pipeline. The stage labels and probability percentages (e.g. Qualified, Proposal Sent, Won, Lost) migrate as Pipeline stages with corresponding probability values. We extract the exact enum values from App.tsx and create matching Pipedrive stages in the same order so that deal progress reporting is preserved without rework.
Atomic CRM
Note
Pipedrive
Note
1:1Atomic CRM Notes link to either a Contact or a Deal via a polymorphic or foreign-key relationship. We migrate Notes as Pipedrive Notes attached to the corresponding Person or Deal using the resolved destination record IDs. Note timestamps are preserved as the Note's pinned timestamp in Pipedrive.
Atomic CRM
Task
Pipedrive
Activity
1:1Atomic CRM Tasks map to Pipedrive Activities. The task type (Call, Email, Meeting) is extracted from App.tsx as a TypeScript enum and recreated as Pipedrive Activity types from the Growth tier or as standard types on Lite. Task status (pending, completed) maps to Pipedrive done flag. Assignee is resolved by matching the Supabase Auth UUID to the Pipedrive User ID via email lookup.
Atomic CRM
Custom Fields (table columns)
Pipedrive
Custom Fields
lossyAny column added to the Contacts, Companies, or Deals tables in Supabase Studio (beyond the standard schema) becomes a Pipedrive custom field. We inspect the Postgres information_schema.columns output to enumerate every column, infer the Postgres data type (varchar, integer, boolean, timestamp, etc.), and map it to the corresponding Pipedrive field type (string, int, set, date). The customer approves the field mapping before any data is written to Pipedrive.
Atomic CRM
Supabase Auth User
Pipedrive
User
1:1Atomic CRM owner assignment on Deals and Tasks references Supabase Auth UUIDs. We extract all distinct owner UUIDs from the database, match them to Pipedrive Users by email address (the standard Supabase Auth identifier), and hold any unresolved owners in a reconciliation queue. The customer provisions Pipedrive User seats for any missing accounts before record import resumes.
Atomic CRM
Supabase Storage (Attachments)
Pipedrive
File Attachments
lossyAtomic CRM attachments stored in Supabase Storage buckets are not migratable through a native export API. If the customer provides bucket credentials and explicit write access to the destination, we export the bucket contents as binary files and attach them to the corresponding Pipedrive Deal or Person records. Files stored outside Supabase (e.g. a custom S3 configuration) require separate coordination and are outside standard scope.
Atomic CRM
Tag
Pipedrive
Label
1:1If Atomic CRM stores tag data as a text array or related table in Postgres, we migrate tags as Pipedrive Labels attached to the corresponding Person, Organization, or Deal. Label creation is idempotent — duplicate label names are deduplicated on the destination before assignment.
| Atomic CRM | Pipedrive | Compatibility | |
|---|---|---|---|
| Contact | Person (Lead or Contact)1:many | Fully supported | |
| Company | Organization1:1 | Fully supported | |
| Deal | Deal1:1 | Fully supported | |
| Deal Stage | Pipeline Stagelossy | Fully supported | |
| Note | Note1:1 | Fully supported | |
| Task | Activity1:1 | Fully supported | |
| Custom Fields (table columns) | Custom Fieldslossy | Mapping required | |
| Supabase Auth User | User1:1 | Fully supported | |
| Supabase Storage (Attachments) | File Attachmentslossy | Fully supported | |
| Tag | Label1: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.
Atomic CRM gotchas
No hosted SaaS version — migration target is a Postgres database
Custom fields are schema changes, not UI-configured properties
CRM component props define business logic that lives in code, not data
No native file attachment export — storage backend varies by deployment
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
Supabase schema discovery and credentials confirmation
We connect to the customer's Supabase project using a service role key and run a full schema audit against information_schema.columns and pg_catalog.pg_attribute for the contacts, companies, deals, notes, and tasks tables. We confirm RLS policy status and request the service role key if RLS is enabled. We also request the App.tsx configuration file to extract TypeScript enum values for deal categories and task types that will become Pipedrive Pipelines and Activity types.
Custom field enumeration and type mapping
We enumerate every Postgres column beyond the standard Atomic CRM schema, infer each column's Postgres data type, and map it to the corresponding Pipedrive field type. The customer reviews and approves the custom field mapping document before any data is written. We flag any columns with UUID, JSONB, or ARRAY types that require special handling or transformation.
Pipedrive sandbox configuration
We create a Pipedrive trial or sandbox account and configure Pipelines, Stages, Activity types, and custom fields matching the extracted App.tsx enums and the enumerated Postgres custom columns. The customer validates the Pipedrive configuration (pipeline order, stage labels, field names) and approves before production migration begins.
Owner and user reconciliation
We extract all distinct Supabase Auth UUIDs assigned as owners on Deals and Tasks, map them to Pipedrive User records by email address, and identify any owners without a corresponding Pipedrive User account. The customer provisions Pipedrive User seats for missing accounts. Migration cannot proceed past this step because all imported records require a valid OwnerId on Pipedrive.
Production migration in dependency order
We run the production migration in record-dependency order: Organizations (from Companies), Persons and Leads (with OrgId resolved), Deals (with Pipeline, Stage, and OrgId resolved), Notes (attached to Person or Deal), Activities (with OwnerId resolved and rate-limited to Pipedrive's 100 req/sec), and finally custom field values on each object. Each phase emits a row-count reconciliation report before the next phase begins.
File attachment export and attachment
If the customer has provided Supabase Storage credentials and confirmed that attachment files exist, we export the bucket contents and attach them to the corresponding Pipedrive records using the file attachment API. This step runs in parallel with the final migration phase or as a post-migration add-on depending on file volume.
Cutover, validation, and handoff
We freeze writes to the source Atomic CRM instance during the cutover window, run a final delta migration of any records modified during the migration period, and validate record counts and field completeness against the scoping report. We deliver a written inventory of Pipedrive Pipelines, Activity types, and custom fields as configured, with the App.tsx enum mapping documented for reference. We do not rebuild automations or workflows as none exist in Atomic CRM in the Pipedrive sense.
Platform deep dives
Atomic 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 Atomic 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
Atomic CRM: Per Supabase rate limits applicable to your project tier.
Data volume sensitivity
Atomic CRM exposes a bulk API — large-volume migrations stream efficiently.
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 Atomic CRM to Pipedrive migration scoping. Not seeing yours? Book a call.
Walk through your Atomic 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 Atomic 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.