CRM migration
Field-level mapping, validation, and rollback between OctopusPro and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
OctopusPro
Source
Salesforce Sales Cloud
Destination
Compatibility
10 of 14
objects map 1:1 between OctopusPro and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
4-8 weeks
Overview
Moving from OctopusPro to Salesforce Sales Cloud is a migration from a vertical-specific service-management platform to a general-purpose CRM that can be extended with Field Service Lightning for dispatch and job management. OctopusPro structures its data around the booking lifecycle — Customer, Booking, Job, Field Worker, Invoice, Quote — with tenant-specific custom fields for verticals like HVAC, plumbing, field sales, and mobile pet care. Salesforce has no direct Booking or Job object; instead, we map OctopusPro Bookings to Salesforce Cases or Opportunities depending on whether the destination org uses Sales Cloud alone or Field Service Lightning, and we map OctopusPro Jobs to Work Orders or custom Job objects. Field Worker records map to Salesforce Users or, for contractor-style workers, to Contacts with a Role field. Because OctopusPro has no documented public API, data extraction depends on support-assisted exports, which introduces latency into the scoping phase. We request the structured export, ingest the file, then write transformation logic to map OctopusPro's custom field schema against Salesforce's typed field architecture. We do not migrate Customer Portal settings, Automations, or Forms as code. We deliver a written inventory of OctopusPro Automations and Customer Portal configuration for the customer's admin to rebuild in Salesforce.
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 OctopusPro 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.
OctopusPro
Customer
Salesforce Sales Cloud
Contact (and Account)
1:manyOctopusPro Customers map to Salesforce Contact records with the customer's business name also created as an Account for proper Account-Contact hierarchy. Standard fields — Name, Email, Phone, Address — map directly. Custom fields on the customer profile (e.g., gate codes, pet health history, site-specific notes) map to custom Contact fields that we create in the destination org during schema design. The customer's primary address maps to the Contact MailingAddress and also to the Account BillingAddress. If the customer is a business entity, we create an Account first and link the Contact via AccountId; if the customer is a residential consumer, the Account name mirrors the Contact name per Salesforce's person-account pattern (if enabled) or we use a household Account model.
OctopusPro
Booking
Salesforce Sales Cloud
Case or Work Order
1:1OctopusPro Bookings are the scheduling anchor — they link a Customer, one or more Field Workers, a Service, a time slot, and a status. We map Bookings to Salesforce Case if the destination is Sales Cloud alone, or to Work Order (Field Service Lightning) if the org includes FSL. The Booking status (Pending, Confirmed, In Progress, Completed, Cancelled) maps to Case Status or Work Order Status with the corresponding Salesforce picklist values. The booked time slot migrates as a combination of the Case or Work Order's CreatedDate (for booking creation time) and a custom field booked_scheduled_datetime__c for the actual appointment time. Bookings that have generated an Invoice link to the Case or Work Order via WhatId.
OctopusPro
Job
Salesforce Sales Cloud
Work Order Line Item or Task
1:1OctopusPro Jobs capture the actual work performed — they are the operational record linked to a Booking. In Field Service Lightning, we map OctopusPro Jobs to Work Order Line Items (service appointments and line items) or to Tasks attached to the parent Work Order. Job status, description, and resolution notes migrate to Work Order Line Item fields. If the destination is Sales Cloud without FSL, Jobs map to Tasks attached to the parent Case with TaskSubtype indicating the work type. The field worker assignment on the Job maps to the assigned Salesforce User or Contact on the Work Order or Task.
OctopusPro
Field Worker
Salesforce Sales Cloud
User or Contact
1:1OctopusPro Field Workers include name, role, contact details, pay rates, and GPS tracking preferences. For full-time employees, we map to Salesforce User records by email match, enabling them to log in, own records, and access Field Service Lightning. For contractor or gig-style workers who do not need Salesforce login, we map to Contact records with a Role custom field set to Field Worker. GPS tracking preferences do not have a native Salesforce equivalent — we document the original field worker location tracking settings for the admin to configure in Salesforce Field Service Mobile setup or a third-party geolocation app post-migration.
OctopusPro
Invoice
Salesforce Sales Cloud
Invoice (Salesforce Billing) or Custom Invoice Object
1:1OctopusPro Invoices include line items, tax, totals, and payment status tied to Bookings. Salesforce Billing (Invoice object) is available only with Salesforce Revenue Cloud and requires additional setup. For most migrations, we map OctopusPro Invoices to a custom Invoice object (custom__c) with line items as a related list. Fields map as follows: Invoice Number to InvoiceNumber, Invoice Date to InvoiceDate, Subtotal to Subtotal, Tax Amount to TaxAmount, Total to Total, and Payment Status to a custom picklist field invoice_status__c (Paid, Unpaid, Partially Paid, Voided). Paid invoices carry the Payment Date; unpaid invoices retain their outstanding balance.
OctopusPro
Payment
Salesforce Sales Cloud
Payment (Revenue Cloud) or Custom Payment Record
1:1OctopusPro Payment records track amounts, methods, dates, and status against invoices. We map Payments to Salesforce Payment records (Revenue Cloud) or to a custom Payment object linked to the custom Invoice object. Fields map: Payment Amount to Amount, Payment Date to PaymentDate, Payment Method to PaymentMethod (Cash, Card, Bank Transfer, etc.), and Payment Status to Status. Partial payments and refunds migrate as their own records with the original Payment linked via a Parent Payment lookup for audit trails. Voided invoices in OctopusPro are flagged but do not generate payment records in the destination.
OctopusPro
Quote
Salesforce Sales Cloud
Quote or Opportunity
1:1OctopusPro Quotes are pre-booking documents with line items, validity dates, and accept/reject status. If the destination org has Salesforce Quotes enabled (Professional tier and above), we map Quotes to the standard Quote object linked to an Opportunity. The Quote validity date migrates to Quote ExpirationDate and the acceptance status maps to a custom field quote_status__c (Pending, Accepted, Rejected, Expired). If Salesforce Quotes are not in scope, Quotes migrate as custom objects attached to the relevant Account or Contact.
OctopusPro
Service
Salesforce Sales Cloud
Product2
1:1OctopusPro Services define what is offered — name, description, pricing rules, duration, and service-area constraints. We map Services to Salesforce Product2 records. Duration maps to a custom field service_duration_minutes__c; pricing rules map to Standard Price Book entries linked to the Product2. Service-area constraints (e.g., zip codes or zones served) map to a custom field service_area__c as a text field; more complex geographic constraints require post-migration geographic assignment configuration in Field Service Lightning.
OctopusPro
Custom Field (Tenant-Specific)
Salesforce Sales Cloud
Custom Field on Standard Object
lossyOctopusPro custom fields on Customer profiles and Bookings (e.g., pet breed for mobile vet, air filter size for HVAC, gate code for field service) have no standard equivalent in Salesforce. We request a full custom field inventory from OctopusPro support as part of the export process, then create matching custom fields on the appropriate Salesforce standard object (Contact, Case, Work Order) during schema design. Field type mapping is done per-field: text fields to Text(255), dates to Date, checkboxes to Checkbox, dropdowns to Picklist. Multi-select in OctopusPro maps to Multi-Select Picklist in Salesforce with a 255-character combined value.
OctopusPro
Forms and Checklists
Salesforce Sales Cloud
Custom Object or Note
1:1OctopusPro Forms and Checklists capture structured field data — job photos, intake tags, custom questions. Schema varies by service type. We map available form fields to a custom Intake Response object or, for simple key-value pairs, to a rich-text Note attached to the parent Case or Work Order. Photos migrate as ContentDocument records linked via ContentDocumentLink to the parent record. The customer confirms during scoping whether forms need a full custom object or can be handled as structured notes.
OctopusPro
GPS Location History
Salesforce Sales Cloud
Custom Field or Geolocation Object
1:1OctopusPro records field worker GPS tracks on bookings and jobs. Salesforce Field Service Lightning tracks worker location during active work orders via the Service Appointment relocation feature, but historical GPS traces from OctopusPro have no native equivalent. We map last-known GPS coordinates at the time of booking completion to a custom field last_known_location__c on the Work Order as a Latitude/Longitude geolocation type. Full route history requires a custom GPS tracking object or a post-migration third-party integration (Geotab, Samsara, or similar).
OctopusPro
FAQ
Salesforce Sales Cloud
Content Note or Knowledge Article
1:1OctopusPro FAQs are linked to specific services and appear in the customer portal and email templates. We extract FAQ content and service associations and migrate them as Salesforce Content Notes linked to the relevant Product2 record, or as Knowledge Articles if the destination org has Salesforce Knowledge enabled. Display configuration (portal placement, email template inclusion) is portal-specific and must be reconfigured in Salesforce Experience Cloud by the customer's admin.
OctopusPro
Automations
Salesforce Sales Cloud
Not Migrated (Written Inventory)
lossyOctopusPro Automations define trigger-action workflows for scheduling notifications, customer reminders, field worker alerts, and status changes. These are platform-specific and cannot be exported as code. We capture the automation rules during scoping — trigger type, conditions, actions, and intended outcome — and deliver a written inventory recommending Salesforce Flow equivalents (record-triggered Flow, scheduled Flow, or Platform Event-driven Flow) for each. The customer's Salesforce admin rebuilds the automations post-migration. This is outside standard migration scope.
OctopusPro
Customer Portal Settings
Salesforce Sales Cloud
Not Migrated (Rebuild in Experience Cloud)
lossyThe OctopusPro Customer Portal controls online booking display, invoice visibility, FAQ access, and payment links. Portal settings are a configuration layer, not data objects. We do not migrate them. The underlying data — Customers, Bookings, Invoices — that the portal surfaces migrates to Salesforce. The customer's admin rebuilds the customer-facing experience in Salesforce Experience Cloud (Community Cloud) using the migrated data as the foundation.
| OctopusPro | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Customer | Contact (and Account)1:many | Fully supported | |
| Booking | Case or Work Order1:1 | Fully supported | |
| Job | Work Order Line Item or Task1:1 | Fully supported | |
| Field Worker | User or Contact1:1 | Fully supported | |
| Invoice | Invoice (Salesforce Billing) or Custom Invoice Object1:1 | Fully supported | |
| Payment | Payment (Revenue Cloud) or Custom Payment Record1:1 | Fully supported | |
| Quote | Quote or Opportunity1:1 | Fully supported | |
| Service | Product21:1 | Fully supported | |
| Custom Field (Tenant-Specific) | Custom Field on Standard Objectlossy | Fully supported | |
| Forms and Checklists | Custom Object or Note1:1 | Fully supported | |
| GPS Location History | Custom Field or Geolocation Object1:1 | Fully supported | |
| FAQ | Content Note or Knowledge Article1:1 | Fully supported | |
| Automations | Not Migrated (Written Inventory)lossy | Mapping required | |
| Customer Portal Settings | Not Migrated (Rebuild in Experience Cloud)lossy | 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.
OctopusPro gotchas
Booking Fee vs Commission billing model affects migration cost estimates
Incorrect charges and billing disputes are documented in reviews
No documented public API or bulk export mechanism
Customer Portal settings do not migrate independently
Custom field schema is tenant-specific and must be discovered before mapping
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
Scoped export request and billing review
We open a structured data export request with OctopusPro support on the customer's behalf, requesting full exports of Customers, Bookings, Jobs, Field Workers, Invoices, Payments, Quotes, Services, Forms, Custom Fields, and FAQ content. Simultaneously, we review the customer's OctopusPro account for any open billing disputes, outstanding charges, or subscription commitments. We recommend resolving any billing issues before migration begins and keeping the OctopusPro account active until the export is confirmed complete. The export ticket and billing review run in parallel and typically take two to four weeks depending on OctopusPro support responsiveness.
Custom field discovery and schema design
Once the OctopusPro export files are received, we analyze the custom field structure across Customer profiles and Bookings. If OctopusPro support provides a field inventory, we cross-reference it against the export data. If not, we infer custom field names and types from a sample of 50-100 records. We then design the destination Salesforce schema: custom fields on Contact, Case, and Work Order objects; a custom Invoice object; a custom Payment object; custom fields for GPS location and quote status; and Product2 records from the Services list. If Field Service Lightning is in scope, we include Work Order and Service Appointment objects. Schema is deployed to a Salesforce Sandbox first for validation before production migration.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox using production-equivalent record volume. The customer reconciles record counts (Customers in vs Contacts in, Bookings in vs Cases or Work Orders in, Invoices in vs custom Invoice records in), spot-checks 25-50 records against the OctopusPro source, and validates that lookup relationships (Customer to Booking, Booking to Invoice, Field Worker to Booking) resolved correctly. Any mapping corrections — field type mismatches, missing picklist values, custom field label changes — happen in the Sandbox before production migration. The customer signs off on the Sandbox migration before we proceed to production.
Owner and Field Worker provisioning
We extract every distinct Field Worker and admin user from the OctopusPro export and match them against the Salesforce destination org's User table by email. Full-time employees who need Salesforce login are provisioned as active Salesforce Users before record migration. Contractors and field workers who do not need Salesforce login are mapped to Contact records with a Role field set to Field Worker. Any OctopusPro user who cannot be matched goes to a reconciliation queue for the customer's admin to provision or confirm as inactive. OwnerId references on Cases, Work Orders, and custom objects require a valid Salesforce User, so this step must complete before record import begins.
Production migration in dependency order
We run production migration in the following dependency order: (1) Account and Contact records from Customers; (2) Product2 and Pricebook entries from Services; (3) Cases or Work Orders from Bookings (with booked datetime and status); (4) Work Order Line Items or Tasks from Jobs; (5) custom Invoice records linked to Cases or Work Orders; (6) Payment records linked to Invoices; (7) Quote records; (8) GPS last-known location on Work Orders; (9) FAQ content as Content Notes or Knowledge Articles. Each phase emits a row-count reconciliation report. We use the Salesforce REST API for standard records and Bulk API 2.0 for invoice and payment batches exceeding 10,000 rows, with exponential backoff on rate-limit responses.
Cutover, validation, and automation rebuild handoff
We freeze OctopusPro write access during the cutover window, run a final delta migration of any records modified since the last sync, then mark Salesforce as the system of record. We deliver the Automation inventory document — each OctopusPro Automation with its trigger, conditions, actions, and a recommended Salesforce Flow equivalent — to the customer's admin team. We deliver the Customer Portal settings summary for rebuilding in Salesforce Experience Cloud. We support a one-week hypercare window for reconciliation issues. We do not rebuild OctopusPro Automations as Salesforce Flow inside the migration scope; that is a separate engagement. We do not provide post-migration admin training or workflow rebuild as standard scope.
Platform deep dives
OctopusPro
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 OctopusPro 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
OctopusPro: Not publicly documented.
Data volume sensitivity
OctopusPro 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 OctopusPro to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your OctopusPro 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 OctopusPro
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.