CRM migration
Field-level mapping, validation, and rollback between ZeyOS and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
ZeyOS
Source
Salesforce Sales Cloud
Destination
Compatibility
12 of 18
objects map 1:1 between ZeyOS and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from ZeyOS to Salesforce is a structural migration that requires resolving several platform-level differences before any records move. ZeyOS stores date columns as Unix int8 epoch values; we convert each one to an ISO 8601 string and validate the range against Salesforce's supported date window before import. ZeyOS marks invoices, orders, and quotes as immutable post-booking; we sequence them in strict chronological order and flag any out-of-sequence financial records for customer review before insertion. ZeyOS has no bulk API — we paginate through the REST endpoint at cloud.zeyos.com/{INSTANCE}/api/v1/ and insert records individually with parallelization and exponential backoff. We map ZeyOS Activities (calls, emails, meetings, notes) to Salesforce Task, Event, and EmailMessage objects with WhoId and WhatId resolved to the migrated Contact and Account IDs. Projects and time-tracking data require a custom object strategy in Salesforce since no standard Project object exists. Workflows, iXML scripts, and custom automation logic do not migrate as code; we deliver a written inventory of every active workflow for the customer's admin to rebuild in Salesforce Flow. File attachments stored as binary blobs in the ZeyOS files table require individual REST retrieval and ContentVersion re-upload to 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 ZeyOS 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.
ZeyOS
Accounts
Salesforce Sales Cloud
Account
1:1ZeyOS Accounts map directly to Salesforce Account as the primary company-level record. The account name, address fields, phone, and website transfer to the corresponding Account fields. Account is the parent of all Contact records in the destination, so we create Account before any Contact import to satisfy the AccountId Lookup foreign key at insert time. We use the Account name as the dedupe key during import.
ZeyOS
Contacts
Salesforce Sales Cloud
Contact
1:1ZeyOS Contacts map to Salesforce Contact with the parent AccountId resolved at migration time via email-domain or name matching against the migrated Accounts. The extdata fields (nickname, additional address fields) transfer to custom Contact fields created during schema design. Any ZeyOS Contact without a matching Account is held in a reconciliation queue for the customer to resolve before import resumes.
ZeyOS
Leads
Salesforce Sales Cloud
Lead
1:1ZeyOS Leads map directly to Salesforce Lead. Lead status, source, and rating migrate to the corresponding Salesforce Lead fields. Any custom lead-scoring or lead-source fields stored in ZeyOS extdata transfer to custom Lead fields. We flag any ZeyOS Lead with no email address for customer review because Salesforce requires an email format for standard Lead creation.
ZeyOS
Items
Salesforce Sales Cloud
Product2
1:1ZeyOS Items (product catalog with barcode, model, and custom fields) map to Salesforce Product2. The Item name becomes Product Name, the item code becomes Product Code, and a Standard Price Book entry is created during import. Inventory quantities from ZeyOS's automated stock transactions do not map to a native Salesforce field and require a custom field or a separate inventory management AppExchange package post-migration.
ZeyOS
Projects
Salesforce Sales Cloud
Custom Project object (__c)
1:manyZeyOS Projects have no native Salesforce equivalent — Salesforce Sales Cloud has no standard Project object. We create a custom Project__c object during schema design with fields for name, description, status, start date, and end date. Child ZeyOS Tasks and time entries reference the migrated Project__c ID as their WhatId. The customer may alternatively assign Projects to a third-party project management AppExchange package installed post-migration.
ZeyOS
Tasks
Salesforce Sales Cloud
Task
1:1ZeyOS Tasks belonging to Projects map to Salesforce Task with the WhatId resolved to the migrated Project__c ID. Assignee, due date, priority, and status transfer directly. Tasks without a parent Project map with WhatId set to the related Account or Contact. The original ZeyOS creationdate Unix timestamp is converted to ActivityDate on the Salesforce Task.
ZeyOS
Tickets
Salesforce Sales Cloud
Case
1:1ZeyOS Tickets (helpdesk module with email integration and subject-line ticket numbering) map to Salesforce Case if the destination org includes Service Cloud. Ticket subject, description, status, priority, and origin migrate to the corresponding Case fields. Email thread history migrates as EmailMessage records linked to the Case via ParentId. Ticket custom fields from extdata transfer to custom Case fields.
ZeyOS
Activities
Salesforce Sales Cloud
Task, Event, EmailMessage
1:manyZeyOS Activities (calls, emails, meetings, and notes) split by type across Salesforce Task, Event, and EmailMessage. Calls map to Task with TaskSubtype = Call and call duration preserved. Emails map to Salesforce EmailMessage records linked to a parent Task record on the activity timeline. Meetings map to Event with StartDateTime, EndDateTime, and Location preserved. All activities resolve WhoId to the migrated Contact or Lead and WhatId to the related Account or Opportunity.
ZeyOS
Users
Salesforce Sales Cloud
User
1:1ZeyOS Users map to Salesforce User records by email match. We extract all distinct ZeyOS owner IDs referenced on Contacts, Accounts, Projects, and Tickets and match them against the destination org's User table by email. Users without a matching Salesforce User go to a reconciliation queue for the customer's admin to provision before record import continues, because OwnerId is required on most standard object inserts.
ZeyOS
Quotes
Salesforce Sales Cloud
Quote
1:1ZeyOS Quotes map to Salesforce Quote when the destination org includes Sales Cloud with the Quote object enabled. Quote status, expiration date, and line items map to the QuoteLineItems table with the Pricebook2 reference resolved at migration time. Quote PDFs are not stored as binary attachments in ZeyOS and do not migrate; the customer retains quote records as data-only.
ZeyOS
Orders
Salesforce Sales Cloud
Order
1:1ZeyOS Orders map to Salesforce Order linked to the parent Account. Order status, order date, and total amount transfer directly. Order line items map to OrderProduct records. We resolve the Pricebook2 reference before inserting line items. Note that ZeyOS marks orders as locked once the linked delivery is posted; we check the order status and flag any booked order for chronological review before import.
ZeyOS
Deliveries
Salesforce Sales Cloud
Custom Delivery__c object
lossyZeyOS Deliveries (automated stock transactions linked to orders) have no direct Salesforce standard object equivalent. We create a custom Delivery__c object with fields for delivery date, status, linked order reference, and stock impact. Stock quantity changes from ZeyOS's automated inventory transactions do not map to Salesforce native fields and require a custom field or a separate inventory management AppExchange package post-migration.
ZeyOS
Invoices
Salesforce Sales Cloud
Custom Invoice__c object
lossyZeyOS Invoices are audit-proof — once booked, they cannot be edited or deleted via the ZeyOS API. We create a custom Invoice__c object to preserve the read-only state. The invoice date, amount, status, and line items migrate as custom fields. We sequence invoice imports in strict chronological order by invoice date and flag any out-of-sequence records for manual review before insertion to avoid locked-record conflicts. The customer confirms invoice chronology during scoping before migration begins.
ZeyOS
Time Entries
Salesforce Sales Cloud
Custom TimeEntry__c object
1:1ZeyOS Time Entries (billable or non-billable hours linked to Projects, Tasks, or Tickets) map to a custom TimeEntry__c object with fields for hours, date, description, billable flag, and a lookup to the parent Project__c or Case. OwnerId resolves to the migrated Salesforce User. ZeyOS's creationdate Unix epoch timestamp converts to the EntryDate custom field.
ZeyOS
Contracts
Salesforce Sales Cloud
Contract
1:1ZeyOS Contracts (subscription or service agreements tied to Accounts) map to Salesforce Contract with the AccountId resolved to the migrated Account. Contract start date, end date, and status transfer directly. Renewal terms and contract-specific custom clauses from extdata transfer to custom Contract fields. We flag contracts with missing Account references for customer review before import.
ZeyOS
Documents
Salesforce Sales Cloud
ContentDocument
1:1ZeyOS Documents are binary blobs stored in the binfile column of the files table, retrieved individually via the ZeyOS REST API. We download each file, determine its MIME type, and re-upload as a Salesforce ContentVersion record linked via ContentDocumentLink to the parent record (Account, Contact, Opportunity, Case, or Project__c). Files exceeding 25MB are flagged for customer review before import because Salesforce has a 25MB ContentVersion limit per file.
ZeyOS
Custom Fields
Salesforce Sales Cloud
Custom Fields
lossyZeyOS custom fields exposed via the fields table and extdata JSON pattern migrate to Salesforce custom fields on the corresponding object. We read the ZeyOS field definitions during discovery, create matching Salesforce custom fields (with __c suffix) of the appropriate data type during schema design, and then import extdata values as Salesforce field values. Picklist-style extdata values map to Salesforce picklist or multi-select picklist fields.
ZeyOS
iXML Scripts
Salesforce Sales Cloud
None (documentation only)
lossyZeyOS iXML scripting logic (custom process automation written in ZeyOS's proprietary scripting language) does not migrate. We deliver a written inventory of every active iXML script during scoping, documenting its trigger, conditions, actions, and the recommended Salesforce Flow equivalent. The customer's admin or a Salesforce implementation partner rebuilds the automation logic post-migration. This is outside standard migration scope.
| ZeyOS | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Accounts | Account1:1 | Fully supported | |
| Contacts | Contact1:1 | Fully supported | |
| Leads | Lead1:1 | Mapping required | |
| Items | Product21:1 | Fully supported | |
| Projects | Custom Project object (__c)1:many | Fully supported | |
| Tasks | Task1:1 | Fully supported | |
| Tickets | Case1:1 | Fully supported | |
| Activities | Task, Event, EmailMessage1:many | Fully supported | |
| Users | User1:1 | Fully supported | |
| Quotes | Quote1:1 | Fully supported | |
| Orders | Order1:1 | Fully supported | |
| Deliveries | Custom Delivery__c objectlossy | Fully supported | |
| Invoices | Custom Invoice__c objectlossy | Fully supported | |
| Time Entries | Custom TimeEntry__c object1:1 | Fully supported | |
| Contracts | Contract1:1 | Mapping required | |
| Documents | ContentDocument1:1 | Mapping required | |
| Custom Fields | Custom Fieldslossy | Mapping required | |
| iXML Scripts | None (documentation only)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.
ZeyOS gotchas
Audit-locked invoices block post-import edits
No documented bulk API forces iterative record-by-record migration
Unix epoch timestamps require explicit conversion
File attachments require binary blob download from REST API
Token auth without OAuth limits automation scope
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 scoping
We audit the ZeyOS REST API schema across all objects, enumerating record counts for Accounts, Contacts, Leads, Items, Projects, Tasks, Tickets, Contracts, Quotes, Orders, Deliveries, Invoices, Time Entries, Activities, Documents, and custom fields. We identify the active iXML scripts for the automation inventory. We review any existing Salesforce destination org (or confirm that a new org is being provisioned) and determine which Salesforce edition and optional Service Cloud license applies. The discovery output is a written migration scope with object counts, a preliminary field mapping, and a fixed price quote.
Schema design and Salesforce customization
We create the destination Salesforce schema in a Sandbox org. This includes provisioning the custom Project__c, TimeEntry__c, Delivery__c, and Invoice__c objects; creating custom fields for ZeyOS extdata properties and financial metadata; configuring Record Types and Sales Processes if the customer uses multiple opportunity pipelines; and setting up the Quote object and Pricebook. We document the field-level mapping from every ZeyOS column to every Salesforce field, including type conversions for dates, numbers, and picklist values. Custom fields and custom objects are deployed via metadata API or change set into Sandbox for customer validation before production.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox using production-like data volumes. The customer's admin reviews 25-50 randomly selected records for each major object, cross-checking values against the ZeyOS source. We verify that Activities land in the correct Contact timeline, that parent-child relationships (Account-Contact, Project-Task) resolve correctly, and that binary files attach to the right records. The customer signs off the Sandbox validation before production migration begins. Any field mapping corrections happen here.
User provisioning and owner reconciliation
We extract every distinct ZeyOS owner ID referenced across all migrating objects and match by email against the destination Salesforce org's User table. Owners without a matching User go to a reconciliation queue. The customer's Salesforce admin provisions any missing Users and sets them active or inactive based on whether the ZeyOS user account is still active. Migration cannot proceed past record imports until the OwnerId foreign key is resolved because most standard Salesforce objects require a valid OwnerId at insert.
Production migration in dependency order
We execute production migration in strict record-dependency order. Accounts (from ZeyOS Accounts) are inserted first. Contacts and Leads follow with AccountId resolved to the migrated Account. Opportunities, Quotes, and Orders insert next with AccountId and OwnerId resolved. Products (from ZeyOS Items) and Pricebook entries insert before line items. Projects__c, then Tasks and TimeEntry__c with Project__c and Case__c lookups resolved. Cases (from ZeyOS Tickets) with Activity history via Bulk API. Custom Invoice__c records insert last, in strict chronological order by invoice date, with any out-of-sequence records flagged and held for customer review before insertion. Documents attach via ContentVersion uploads with files over 25MB flagged. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, delta sync, and handoff
We freeze ZeyOS writes during the cutover window, run a final delta migration of any records created or modified during the migration run, then hand the Salesforce org to the customer as the system of record. We deliver the iXML script inventory document listing every active ZeyOS automation with its trigger, conditions, actions, and a recommended Salesforce Flow equivalent. We support a one-week hypercare window for reconciliation issues raised by the customer's team. Workflow rebuild, Flow configuration, and admin training are outside standard migration scope and are separate engagements.
Platform deep dives
ZeyOS
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 ZeyOS and Salesforce Sales Cloud.
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
ZeyOS: Not publicly documented — we apply exponential backoff on 429/5xx responses and confirm tenant-specific limits during scoping.
Data volume sensitivity
ZeyOS 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 ZeyOS to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your ZeyOS 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 ZeyOS
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.