CRM migration
Field-level mapping, validation, and rollback between Monica CRM and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Monica CRM
Source
Salesforce Sales Cloud
Destination
Compatibility
11 of 14
objects map 1:1 between Monica CRM and Salesforce Sales Cloud.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Moving from Monica CRM to Salesforce is a migration from a personal relationship manager into a full enterprise CRM. Monica's data model is flat and contact-centric — it has no Accounts, no Opportunities, and no native pipeline — while Salesforce separates Contacts (attached to Accounts) from Leads, uses Opportunities to track deals, and supports custom objects from Professional tier. We resolve the schema gap by mapping Monica Contacts to Salesforce Contacts attached to auto-generated Account records (with the option to split to Lead for unqualified records), converting Journal entries to Activity Tasks, Reminders to dated Tasks with follow-up scheduling, and Gifts and Debts to custom Salesforce objects provisioned before import. The absence of a bulk export endpoint in Monica means we paginate across multiple REST endpoints in dependency order, with 60-request-per-minute throttling for self-hosted deployments. Private notes carry over as shared Notes records and we flag this distinction during scoping so the customer can exclude them if required. Workflows, Reminders configured as Monica Automations, and any self-hosted CardDAV scripts do not migrate; we deliver a written inventory for the customer's admin to rebuild in Salesforce Flow.
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 Monica CRM object lands in Salesforce Sales Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Monica CRM
Contact
Salesforce Sales Cloud
Contact (attached to auto-generated Account)
1:1Monica Contacts map directly to Salesforce Contact. Because Monica has no Account object, we auto-generate a Salesforce Account for each Monica Contact during import, using the Contact's first and last name as the Account name. The AccountId lookup is resolved at migration time before Contact insert. If the customer prefers Monica Contacts representing unqualified prospects to land as Salesforce Leads instead, we apply a Lead-Contact split rule based on a Monica tag or relationship type flag during scoping.
Monica CRM
Contact Details (emails, phones, social profiles)
Salesforce Sales Cloud
Contact Email, Phone, MobilePhone, and custom social fields
1:1Each Monica contact avenue (email, phone, WhatsApp, Twitter, LinkedIn, etc.) with its label normalizes into a Salesforce Contact field or custom field. Primary email maps to Email, primary phone to Phone, and additional avenues map to labeled custom fields. The channel type label is preserved as a suffix in the custom field name for clarity.
Monica CRM
Relationship (spouse, child, parent, friend, colleague, pet)
Salesforce Sales Cloud
Custom Contact_Relationship__c object or custom Contact fields
lossyMonica stores named relationship types per Contact with related Contact references. Salesforce has no native relationship object, so we provision a Contact_Relationship__c custom object during migration with Contact_a__c (lookup to Contact), Relationship_Type__c (picklist: spouse, child, parent, friend, colleague, pet), and Related_Contact__c (lookup to related Contact). Pet relationships map to a Pet__c custom object attached to Contact if the customer maintains pet data as a distinct entity.
Monica CRM
Relationship: Significant Other / Spouse
Salesforce Sales Cloud
Contact Spouse field or custom relationship record
1:1Monica's significant other relationship is the highest-priority relationship type. We map it to a custom Spouse__c field on Contact or a Contact_Relationship__c record with Relationship_Type__c = 'Spouse'. The related Contact reference is resolved via Monica's partner relationship during export before insert.
Monica CRM
Relationship: Children
Salesforce Sales Cloud
Contact_Child__c relationship records
1:manyMonica supports multiple child entries per Contact. Each child record maps to a Contact_Relationship__c record with Relationship_Type__c = 'Child', storing child name, birthdate (if provided), and an optional related Contact record. If the child also exists as a separate Monica Contact, the related Contact reference is resolved via lookup.
Monica CRM
Journal Entry
Salesforce Sales Cloud
Task
1:1Monica Journal entries are timestamped free-text activity logs with optional titles. We convert them to Salesforce Task records with Subject set to the Journal title (or 'Journal Entry' as default), Description set to the Journal body, and ActivityDate set to the original Monica creation timestamp. The WhoId points to the migrated Contact. Journal entries preserve the original author where Monica's API exposes it.
Monica CRM
Reminder (birthday, event, ad-hoc follow-up)
Salesforce Sales Cloud
Task
1:1Monica Reminders include auto-populated birthday reminders, event reminders, and ad-hoc follow-ups tied to Contacts. We convert them to Salesforce Task records with the original reminder date as ActivityDate, IsRecurrence = true for birthday reminders, and Status = 'Not Started' for pending items. Completed reminders set Status = 'Completed' and preserve the completion date. Ad-hoc follow-ups map with Priority = 'Normal' and the reminder body as Subject.
Monica CRM
Gift (given, wanted, offered)
Salesforce Sales Cloud
Gift__c custom object
1:1Monica Gift records with value, date, and status (given, wanted, offered) map to a Salesforce Gift__c custom object provisioned on the destination org before migration. Fields include Gift_Name__c (text), Value__c (currency), Date__c (date), Status__c (picklist: Given, Wanted, Offered), and Contact__c (lookup to Contact). The customer chooses whether to provision Gift__c as a custom object or map to a custom Notes-with-label structure during scoping.
Monica CRM
Debt (owed to, owed by)
Salesforce Sales Cloud
Debt__c custom object
1:1Monica Debt records with amount, currency, and direction (owed to or owed by a contact) map to a Salesforce Debt__c custom object provisioned before migration. Fields include Amount__c (currency), Currency__c (text), Direction__c (picklist: Owed_To, Owed_By), Contact__c (lookup to Contact), and Notes__c (text). If the customer's Salesforce edition does not support custom objects, debts map as labeled Notes records instead.
Monica CRM
Tag
Salesforce Sales Cloud
Multi-select picklist or Topic
lossyMonica tags are arbitrary string labels per Contact. We map them to a Salesforce multi-select picklist field on Contact (up to 255 characters total) or to Salesforce Topics with TopicAssignment records if the customer prefers a taxonomy approach. The customer chooses tag strategy during scoping.
Monica CRM
Stay-in-Touch tracking
Salesforce Sales Cloud
LastActivityDate and Task
1:1Monica tracks when the user last contacted someone and prompts follow-ups based on a configurable frequency. We convert the last contact date to LastActivityDate on the Salesforce Contact record and create a pending Task with the next recommended follow-up date based on Monica's stay-in-touch frequency setting. The stay-in-touch frequency value migrates as a custom field stay_in_touch_frequency__c on Contact.
Monica CRM
Private Note
Salesforce Sales Cloud
Note
1:1Monica private notes per Contact map to Salesforce Note records attached via ContentDocumentLink to the parent Contact. Monica's privacy flag (visible only to the owner) does not have a Salesforce equivalent in standard orgs. We flag this distinction during scoping: the customer chooses whether to migrate private notes as shared Notes (recommended for team visibility), migrate them as internal-only custom fields, or exclude them from migration entirely. Private notes are not masked or encrypted during migration.
Monica CRM
User / Owner
Salesforce Sales Cloud
User
1:1Monica self-hosted single-user setups have no multi-user concept. Cloud-hosted Monica supports multiple users with role assignment per Contact (owner). We map Monica owner references to Salesforce User records by email match. Self-hosted Monica exports without owner data map to the admin User on the destination Salesforce org. Owner reconciliation happens before record import so that OwnerId references are satisfied on insert.
Monica CRM
Contact Avatar URL
Salesforce Sales Cloud
Contact PhotoUrl or custom photo field
1:1Monica stores an avatar blob URL per Contact. We map the URL to a custom Photo_Url__c field on Contact. Salesforce does not natively host external avatar images on the Contact object, so the photo URL is stored as a reference. If the customer's org uses Salesforce Files, we can attach the downloaded avatar as a ContentDocument linked to the Contact as an alternative.
| Monica CRM | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Contact | Contact (attached to auto-generated Account)1:1 | Fully supported | |
| Contact Details (emails, phones, social profiles) | Contact Email, Phone, MobilePhone, and custom social fields1:1 | Fully supported | |
| Relationship (spouse, child, parent, friend, colleague, pet) | Custom Contact_Relationship__c object or custom Contact fieldslossy | Fully supported | |
| Relationship: Significant Other / Spouse | Contact Spouse field or custom relationship record1:1 | Fully supported | |
| Relationship: Children | Contact_Child__c relationship records1:many | Fully supported | |
| Journal Entry | Task1:1 | Fully supported | |
| Reminder (birthday, event, ad-hoc follow-up) | Task1:1 | Fully supported | |
| Gift (given, wanted, offered) | Gift__c custom object1:1 | Fully supported | |
| Debt (owed to, owed by) | Debt__c custom object1:1 | Fully supported | |
| Tag | Multi-select picklist or Topiclossy | Fully supported | |
| Stay-in-Touch tracking | LastActivityDate and Task1:1 | Fully supported | |
| Private Note | Note1:1 | Fully supported | |
| User / Owner | User1:1 | Fully supported | |
| Contact Avatar URL | Contact PhotoUrl or custom photo field1: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.
Monica CRM gotchas
No v4 to v5 migration path exists
Self-hosted rate limits are hardcoded
Side project sustainability risk
No official bulk export or backup endpoint
Privacy note fields do not enforce access control in most destinations
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Scoping, version detection, and Salesforce edition assessment
We audit the source Monica installation via API across all object types, detect the Monica version (v4 or v5) and deployment type (self-hosted or cloud-hosted with tier), and inventory record volumes for Contacts, Relationships, Journal entries, Reminders, Gifts, Debts, and Tags. We pair this with a Salesforce edition assessment: Professional ($75/user) covers migrations with standard Contact, Task, and Event objects; custom objects for Gifts and Debts require Professional with custom object entitlement. We confirm custom object limits per edition during scoping. The discovery output is a written migration scope with source record counts, destination schema plan, and a custom object provisioning checklist.
Schema design and custom object provisioning
We design the destination Salesforce schema to receive Monica data. This includes provisioning the Gift__c and Debt__c custom objects with all required fields and picklists, the Contact_Relationship__c custom object with Relationship_Type__c picklist values matching Monica's supported relationship types, and any custom fields for stay-in-touch frequency, private note migration strategy, and original Monica IDs for audit. Schema is deployed into a Salesforce Sandbox first for validation. We coordinate with the customer's Salesforce admin to grant the migration user field-level access to all target objects and Customization licenses for custom object creation.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox (Full Copy or Partial Copy) using production-equivalent data volumes. The customer reconciles record counts against Monica's UI, spot-checks 25-50 random Contacts with relationships, Journal entries, and Reminders against the source, and validates that Gift and Debt custom object records display correctly in Salesforce. Any field mapping corrections, picklist value mismatches, or relationship resolution failures are documented and corrected before production migration begins.
Owner reconciliation and User provisioning
We extract all Monica owner references and match by email against the Salesforce destination org's User table. For self-hosted Monica single-user deployments, there is no owner data to reconcile; we assign migrated records to the customer's Salesforce admin User. For multi-user cloud Monica, owners without a matching Salesforce User go to a reconciliation queue for the customer's admin to provision before record import resumes. Owner resolution is required for all Tasks and Events before insertion.
Production migration in dependency order
We run production migration in record-dependency order: custom objects (Gift__c and Debt__c) first so they are available for lookup resolution, then Accounts (auto-generated from Monica Contacts), then Contacts with AccountId resolved, then Contact_Relationship__c records with both Contact lookups resolved, then Journal entries as Tasks, then Reminders as Tasks, then Notes, then Tags. Each phase emits a row-count reconciliation report. For self-hosted Monica, we enforce 60-request-per-minute throttling with exponential backoff across all API calls. Salesforce loads use Bulk API 2.0 for Tasks with batches of 10,000 records and REST API for custom object inserts.
Cutover, validation, and custom object handoff
We freeze Monica write access during cutover (typically a weekend window), run a final delta migration of any records modified during the migration window, then enable Salesforce as the system of record. We deliver a written inventory of Monica Reminder Automations (if any were configured), Stay-in-Touch settings, and Gift/Debt workflows for the customer's admin to rebuild in Salesforce Flow. We support a one-week hypercare window where we resolve any record count discrepancies or mapping issues reported by the customer's team.
Platform deep dives
Monica CRM
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Moderate CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Monica CRM and Salesforce Sales Cloud.
Object compatibility
1 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
Monica CRM: Documented via response headers (X-RateLimit-Limit and X-RateLimit-Remaining). Self-hosted instances also have hardcoded throttles in RouteServiceProvider.php (60 req/min for CardDAV) noted in existing gotchas..
Data volume sensitivity
Monica 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 Monica CRM to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Monica CRM to Salesforce Sales Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Monica CRM
Other ways to arrive at Salesforce Sales Cloud
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.