CRM migration
Field-level mapping, validation, and rollback between CRM Runner and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
CRM Runner
Source
Salesforce Sales Cloud
Destination
Compatibility
9 of 12
objects map 1:1 between CRM Runner and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
4-8 weeks
Overview
Migrating from CRM Runner to Salesforce is a data model migration as much as a record migration. CRM Runner bundles field-service operations (Jobs, Team Members, GPS tracking, time-clock entries) with CRM primitives (Contacts, Companies, Pipelines, Tasks) under a single flat object model. Salesforce separates CRM and field service into distinct clouds, requires explicit relationship configuration between Account and Contact, and enforces a strict Lead-versus-Contact model for prospect records. We resolve the CRM Runner Job object (a hybrid work-order-and-opportunity record) into Salesforce Opportunities and, if Service Cloud is present, Work Orders. Communications history embedded within CRM Runner Jobs and Contacts flattens into Salesforce Task and Event records with proper WhoId and WhatId resolution. The absence of a CRM Runner API means we use UI-based scoping extraction, which adds time to discovery but is fully feasible. We do not migrate IFTTT automations, digital catalog entries, or QR codes; these require manual rebuild or are platform-specific assets with no Salesforce equivalent.
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 CRM Runner 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.
CRM Runner
Contact
Salesforce Sales Cloud
Contact
1:1CRM Runner Contact records map to Salesforce Contact. Name, email, phone, address, and custom fields transfer directly. We use email as the dedupe key during import. Any CRM Runner contact without an email address receives a placeholder email formatted as contact-{record_id}@crmrunner-migrated.local so that Salesforce's email deliverability rules do not block import. CRM Runner contacts without a linked Company map to a Salesforce Account named 'Unassigned - Migrated' for manual review post-migration.
CRM Runner
Company
Salesforce Sales Cloud
Account
1:1CRM Runner Company records map to Salesforce Account. Company name becomes Account Name, domain data becomes Website, and address fields map to BillingAddress. We extract any embedded contact count from CRM Runner to flag Accounts that should have multiple Contact children in Salesforce. Account is created before Contact import so that the AccountId Lookup is satisfied at insert time.
CRM Runner
Job
Salesforce Sales Cloud
Opportunity and optionally WorkOrder
1:manyCRM Runner's Job is a hybrid work-order-and-opportunity record containing status, assigned team members, location, time entries, and custom fields. We split this during migration: job name, amount (if present), stage, close date, and owner map to Salesforce Opportunity. If the destination org includes Service Cloud, the job's operational fields (location, technician assignment, service type, status) map to a Work Order custom object with a custom job_id__c field linking back to the originating CRM Runner record for audit. Time entries embedded within Jobs extract as a separate CSV package and do not map to standard CRM activity objects.
CRM Runner
Team Member
Salesforce Sales Cloud
User
1:1CRM Runner Team Member records (name, role, department, permission level) map to Salesforce User records. We resolve Team Members by email for matching against the destination org's User table. Active Team Members in CRM Runner map to active Salesforce Users; inactive Team Members map to inactive Salesforce Users. Any Team Member in CRM Runner without a corresponding Salesforce User goes to a reconciliation queue for the customer's admin to provision before record import resumes. Permission levels do not automatically map to Salesforce Profiles or Permission Sets; we document the gap as a manual configuration step.
CRM Runner
Communications (Calls, SMS, Chat)
Salesforce Sales Cloud
Task and Event
1:1CRM Runner embeds call logs, SMS threads, and in-app chat as discrete records attached to contacts or jobs. We flatten these into Salesforce Task records with TaskSubtype = Call for phone logs and TaskSubtype = Email for SMS threads, preserving the original timestamp as ActivityDate. For chat records we create Note records linked via ContentDocumentLink to the parent Contact or Opportunity. WhoId on the Task points to the migrated Contact; WhatId points to the related Opportunity if the communication is job-linked.
CRM Runner
Task
Salesforce Sales Cloud
Task
1:1CRM Runner task records with due date, assignee, status, and description map directly to Salesforce Task. Assignee resolution uses the Team Member-to-User mapping. Task status values map to Salesforce Task Status (Not Started, In Progress, Completed, Waiting on someone else, Deferred). Any CRM Runner task linked to a Job maps via WhatId to the migrated Opportunity.
CRM Runner
Custom Fields (Contacts, Companies, Jobs)
Salesforce Sales Cloud
Custom Fields (__c)
lossyCRM Runner custom fields on contacts, companies, and jobs extract during scoping and map to Salesforce custom fields on the equivalent object. We create the destination field schema in Salesforce (via metadata API into Sandbox) before data import. Text fields map to Text, numeric fields to Number, date fields to Date, and picklist values to Picklist. Any custom field with no clear Salesforce type equivalent goes to a text field with a naming convention crmrunner_original_type__c and is flagged for the customer's admin to re-type post-migration.
CRM Runner
Pipeline
Salesforce Sales Cloud
Opportunity Stage and Record Type
lossyCRM Runner pipeline stages map to Salesforce Opportunity Stage values within a Salesforce Record Type that we configure before migration. Stage names and ordering transfer directly. Any custom stage logic (conditional stage progression, automated stage-triggered notifications) is documented as a written specification for manual Flow rebuild because CRM Runner's pipeline configuration has no exportable automation component.
CRM Runner
Time Entries
Salesforce Sales Cloud
Separate CSV Export
1:1CRM Runner time-clock records (clock-in, clock-out, duration) are embedded within Jobs and Team Members rather than exposed as standalone objects. We extract them as a separate CSV package keyed on team_member_id and job_id with a crmrunner_migration_id column. These do not map to standard Salesforce CRM activity objects. We recommend pairing the CRM migration with a dedicated payroll tool migration for this data set.
CRM Runner
Payments / Transactions
Salesforce Sales Cloud
Separate CSV Export
1:1CRM Runner payment records embedded within Jobs are exported as a separate financial CSV package. Salesforce Sales Cloud is not an accounting system; payment data is best served by a dedicated accounting tool (NetSuite, QuickBooks, Stripe). We include a payment_history.csv in the migration artifact package keyed on job_id and contact_id for import into the customer's chosen accounting platform.
CRM Runner
Digital Catalog / QR Codes
Salesforce Sales Cloud
Not Migrated
1:1CRM Runner product catalog entries and QR code configurations are platform-specific display assets with no standard Salesforce CRM equivalent. We do not migrate these as they are tied to CRM Runner's native product and service presentation layer. The customer must rebuild product catalog entries as Salesforce Products (Product2) and configure QR code generation separately using a Salesforce-native or AppExchange solution.
CRM Runner
IFTTT Automations
Salesforce Sales Cloud
Written Specification for Manual Rebuild
1:1CRM Runner's trigger-action automations have no documented export or migration path. We document every automation identified during scoping as a written specification: trigger type, conditions, actions, and recommended Salesforce Flow equivalent. The customer's admin rebuilds them in Salesforce Flow post-migration. This is not included in the standard migration timeline and is a separate rebuild scope.
| CRM Runner | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Job | Opportunity and optionally WorkOrder1:many | Fully supported | |
| Team Member | User1:1 | Fully supported | |
| Communications (Calls, SMS, Chat) | Task and Event1:1 | Mapping required | |
| Task | Task1:1 | Fully supported | |
| Custom Fields (Contacts, Companies, Jobs) | Custom Fields (__c)lossy | Fully supported | |
| Pipeline | Opportunity Stage and Record Typelossy | Fully supported | |
| Time Entries | Separate CSV Export1:1 | Mapping required | |
| Payments / Transactions | Separate CSV Export1:1 | Fully supported | |
| Digital Catalog / QR Codes | Not Migrated1:1 | Not supported | |
| IFTTT Automations | Written Specification for Manual Rebuild1:1 | Not 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.
CRM Runner gotchas
No free trial and immediate billing on subscription
No publicly documented API or export endpoints
IFTTT automations must be manually rebuilt post-migration
Time entries and payment data require separate export treatment
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
Discovery and CRM Runner data extraction
We conduct a UI-based audit of the CRM Runner account across all modules: contact count, company count, job volume and historical depth, team member roster, custom field definitions, pipeline configuration, automation list, and embedded communications volume. Because CRM Runner has no API, we extract via scoped data pulls during discovery, validate the data shape, and confirm the extraction methodology covers all objects before proceeding. The discovery output is a written migration scope document and a CRM Runner data extraction plan that includes estimated extraction time based on record volume.
Salesforce schema design and Job split planning
We design the destination schema in Salesforce, including custom fields (mapped from CRM Runner custom fields), Record Types for Opportunity, and Work Order objects if Service Cloud is in scope. We define the Job-split mapping: which CRM Runner Job fields go to Salesforce Opportunity (stage, amount, close date, owner) and which go to Work Order (location, service type, technician assignment, job status). Schema deploys via metadata API into a Salesforce Sandbox first for validation. We also design the Activity flattening plan for communications history before any data moves.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox (Full Copy or Partial Copy) using production-like data volume from CRM Runner. The customer's RevOps lead reconciles record counts, spot-checks 25-50 random records against the CRM Runner source, and validates the Job-split output. Any mapping corrections, field-type adjustments, or pipeline stage name mismatches happen here. Sandbox sign-off is required before production migration begins.
Team Member-to-User reconciliation
We extract every distinct CRM Runner Team Member referenced on Job, Task, and Communication records and match by email against the destination Salesforce org's User table. Any Team Member without a matching Salesforce User goes to a reconciliation queue. The customer's Salesforce admin provisions missing Users. Migration cannot proceed past this step because OwnerId references on Opportunity and Task are required. Permission level mapping from CRM Runner roles to Salesforce Profiles and Permission Sets is documented as a separate configuration step outside the migration scope.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from CRM Runner Companies), Contacts (with AccountId resolved), Opportunities (with Job-split fields applied), Work Orders if Service Cloud is in scope (linked to Opportunities via WhatId), Team Members (as inactive or active Users per original status), Tasks (with WhoId and WhatId resolved), and Communications history (via Bulk API 2.0 with chunking and backoff). Each phase emits a row-count reconciliation report before the next phase begins. Time entry and payment CSVs export as separate artifacts alongside the CRM migration.
Cutover, validation, and automation rebuild handoff
We freeze CRM Runner writes during cutover, run a final delta migration of records modified during the migration window, then enable Salesforce as the system of record. We deliver the automation inventory document (written specifications for every CRM Runner automation with recommended Salesforce Flow equivalents) to the customer's admin team. We support a one-week hypercare window for reconciliation issues. Workflow and automation rebuild is a separate engagement; we do not rebuild CRM Runner automations as Salesforce Flow within the standard migration scope.
Platform deep dives
CRM Runner
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 CRM Runner and Salesforce Sales Cloud.
Object compatibility
2 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
CRM Runner: Not publicly documented.
Data volume sensitivity
CRM Runner 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 CRM Runner to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your CRM Runner 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 CRM Runner
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.