CRM migration
Field-level mapping, validation, and rollback between YetiForce CRM and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
YetiForce CRM
Source
Salesforce Sales Cloud
Destination
Compatibility
11 of 14
objects map 1:1 between YetiForce CRM and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
4-8 weeks
Overview
Moving from YetiForce CRM to Salesforce is a platform-class migration: self-hosted PHP/MySQL to cloud-native multi-tenant SaaS, ERP-scope module set to CRM-focused Sales Cloud, and community-supported open-source to enterprise-backed commercial platform. YetiForce's core objects (Contacts, Organizations, Potentials) map to Salesforce equivalents (Contacts, Accounts, Opportunities) but require a dynamic field schema map because YetiForce assigns instance-specific field IDs (cf_123) that differ across installations. We build this schema map during the audit phase by querying YetiForce's field metadata, then apply it before any CSV import into Salesforce. The Reports module removal in YetiForce v4.4 means any saved reports must be exported manually before cutover and rebuilt in Salesforce Reports or Tableau. The August 2025 GitHub archival is a long-term maintenance flag we surface during scoping so the customer understands the urgency of completing migration before any further community fork divergence. We do not migrate YetiForce workflows, field-level configurations, or the Webservice Premium portal as code; we deliver a written inventory of these for the customer's admin to rebuild in Salesforce Flow and Experience Cloud.
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 YetiForce 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.
YetiForce CRM
Organizations
Salesforce Sales Cloud
Account
1:1YetiForce Organizations map to Salesforce Account records. Organization name maps to Account Name; address fields map to BillingAddress composite; industry maps to Industry picklist; type maps to Account Type picklist. Account is created first in migration order so that the AccountId lookup is satisfied at Contact import time. The organization ID from YetiForce is preserved in a custom field yetiforce_id__c for cross-system reconciliation.
YetiForce CRM
Contacts
Salesforce Sales Cloud
Contact
1:1YetiForce Contacts map to Salesforce Contact records attached to the migrated Account. First name, last name, email, phone, and address fields map to standard Contact fields. The YetiForce assigned owner resolves to a Salesforce User by email match. Any Contact without a matching Account in the destination org is held in a reconciliation queue because Contact requires an AccountId on standard page layouts.
YetiForce CRM
Leads
Salesforce Sales Cloud
Lead
1:1YetiForce Leads (pre-conversion prospect records) map directly to Salesforce Lead. Lead_Source and Lead_Status custom fields preserve the original YetiForce values and are mapped to Salesforce LeadSource and Status picklists via a configuration table. Unconverted Leads in YetiForce (those that never went through an Organization attachment) map to Salesforce Lead rather than Contact to maintain the qualification funnel.
YetiForce CRM
Potentials
Salesforce Sales Cloud
Opportunity
1:1YetiForce Potentials map to Salesforce Opportunity. The related Organization becomes AccountId; the Potential name becomes Opportunity Name; amount and closing date map directly. YetiForce stage names ( Prospecting, Proposal, Negotiation, Closed Won, Closed Lost) map to Salesforce StageName via a configuration table built during the audit phase. Stage probability percentages migrate from YetiForce to Salesforce StageProbability.
YetiForce CRM
Potential Stage
Salesforce Sales Cloud
Opportunity Stage + Sales Process
lossyEach YetiForce Potential pipeline becomes a Salesforce Record Type on Opportunity with a corresponding Sales Process that whitelists the relevant stage values. We build the stage mapping during scoping and deploy it to the Salesforce sandbox before any Opportunity data loads. Probability percentages round to the nearest integer allowed by Salesforce.
YetiForce CRM
Projects
Salesforce Sales Cloud
Custom Project Object
lossyYetiForce Projects (name, status, start/end dates, assigned owner) do not have a direct Salesforce standard object equivalent. We pre-create a custom Project object (Project__c) in Salesforce with fields for Project Name, Status, Start Date, End Date, and Description. For organizations with Salesforce Field Service licenses, Project maps to ServiceAppointment or a custom WorkOrder extension depending on scope. YetiForce-specific picklist values (tree picklists, reference fields) require type-aware transformation during import.
YetiForce CRM
Project Tasks
Salesforce Sales Cloud
Custom Project Task Object
1:1YetiForce Project Tasks link to a parent Project record and include subject, status, priority, and assigned user. We create a custom Project_Task__c object with a lookup to Project__c (the custom Project object above). Parent record ID mapping requires that the YetiForce Project ID is preserved in yetiforce_id__c so that we can cross-reference and update the Salesforce lookup after Project records are created. Status and priority picklist values map via the configuration table built during audit.
YetiForce CRM
Tickets
Salesforce Sales Cloud
Case
1:1YetiForce Tickets map to Salesforce Case if the destination org includes Service Cloud or Field Service. Ticket title becomes Case Subject; ticket status maps to Case Status via configuration table; priority maps to Case Priority; category maps to a custom Case Category field. Related Contact and Organization references from YetiForce become Case ContactId and AccountId lookups after those records are migrated.
YetiForce CRM
Products
Salesforce Sales Cloud
Product2
1:1YetiForce Products (name, unit price, vendor link, description, stock levels) map to Salesforce Product2. The vendor reference resolves to a migrated Vendor record by matching on vendor name. Unit price becomes the Standard Price Book entry. Product code maps from YetiForce's product code field. Stock levels migrate to a custom field since Salesforce standard Product2 does not include inventory tracking.
YetiForce CRM
Services
Salesforce Sales Cloud
Product2 (Service type)
1:1YetiForce Services (recurring offerings with price per unit and description) share the same data shape as Products. They migrate to Salesforce Product2 with the Product Type field set to Service. We create a separate Pricebook entry for each Service so that Opportunity Line Items can reference both Products and Services from the same pricebook.
YetiForce CRM
Vendors
Salesforce Sales Cloud
Account (Vendor type)
1:1YetiForce Vendors map to Salesforce Account records with the Account Type field set to Vendor. Company name maps to Account Name; website and address map to standard fields. Vendors are migrated before Products so that the foreign-key relationship between Product and Vendor is satisfied at Product import time. A custom field account_vendor_type__c flags vendor accounts for segmentation.
YetiForce CRM
Users
Salesforce Sales Cloud
User
1:1YetiForce User records (login, name, role, preferences) are mapped to Salesforce User by email address match. Direct user-to-user migration is not performed because Salesforce User provisioning requires admin action and license assignment. We produce a reconciliation report listing every YetiForce owner email and its matched Salesforce User Id. Any YetiForce owner without a Salesforce User match goes to the customer's admin for provisioning before record migration resumes.
YetiForce CRM
Attachments
Salesforce Sales Cloud
ContentDocument + ContentVersion
lossyYetiForce file attachments are stored in the file system and linked via record ID. The standard API does not expose binary download endpoints, so we use YetiForce's built-in Export action per record type to generate downloadable file sets. Files are then attached to the corresponding Salesforce records via ContentVersion upload and ContentDocumentLink association. Large attachment sets (>5,000 files) are chunked by parent record type to avoid Salesforce storage limits during migration.
YetiForce CRM
Activity: Calls, Emails, Meetings, Tasks
Salesforce Sales Cloud
Task + Event + EmailMessage
1:1YetiForce engagement records (calls, emails, meetings, tasks) map to Salesforce Task, Event, and EmailMessage objects. Call engagements map to Task with TaskSubtype=Call and disposition preserved in a custom field. Email engagements map to EmailMessage records (the content) linked to a Task record (the activity timeline entry). Meeting engagements map to Event with StartDateTime and EndDateTime preserved. Activity timestamps migrate as ActivityDate to maintain timeline ordering. The parent record WhoId and WhatId are resolved via the YetiForce record ID preserved in yetiforce_id__c on the migrated Lead, Contact, Account, or Opportunity.
| YetiForce CRM | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Organizations | Account1:1 | Fully supported | |
| Contacts | Contact1:1 | Fully supported | |
| Leads | Lead1:1 | Fully supported | |
| Potentials | Opportunity1:1 | Mapping required | |
| Potential Stage | Opportunity Stage + Sales Processlossy | Fully supported | |
| Projects | Custom Project Objectlossy | Mapping required | |
| Project Tasks | Custom Project Task Object1:1 | Mapping required | |
| Tickets | Case1:1 | Mapping required | |
| Products | Product21:1 | Fully supported | |
| Services | Product2 (Service type)1:1 | Fully supported | |
| Vendors | Account (Vendor type)1:1 | Fully supported | |
| Users | User1:1 | Mapping required | |
| Attachments | ContentDocument + ContentVersionlossy | Mapping required | |
| Activity: Calls, Emails, Meetings, Tasks | Task + Event + EmailMessage1: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.
YetiForce CRM gotchas
YetiForce GitHub archived as read-only since August 2025
Reports module removed in version 4.4 and never restored
Webservice Standard API lacks bulk endpoints
Webservice Premium required for portal and OpenAPI access
Heavy per-instance customization complicates field 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
Discovery and source audit
We audit the YetiForce installation across version, active modules, custom field count, Webservice Premium status, and attachment volume. We query the field metadata endpoint to build the dynamic field schema map (YetiForce field name to cf_XXX ID mapping) for this specific instance. We extract record counts per object (Organizations, Contacts, Leads, Potentials, Projects, Project Tasks, Tickets, Products, Services, Vendors) and engagement volume (calls, emails, meetings, tasks). We identify any saved Reports from pre-v4.4 versions and flag them for manual export. We also confirm the GitHub archival context and whether the customer's installation has community fork modifications.
Destination schema design
We design the Salesforce destination schema in a Sandbox org. This includes provisioning custom objects (Project__c, Project_Task__c), custom fields with type-mapped Salesforce field types, Record Types on Opportunity for each YetiForce pipeline, Sales Processes with stage whitelists, and the yetiforce_id__c custom field on every migrated standard object for cross-system reconciliation. We configure the field-level security profile for the migration user and coordinate with the customer's Salesforce admin to grant Bulk API and REST API permissions. We deploy the schema via Salesforce metadata API or change set to the Sandbox for validation before production migration.
Sandbox migration and reconciliation
We run a full migration into the Salesforce Sandbox using production-like data volume. The customer's admin reviews record counts per object, spot-checks 25-50 records per object against the YetiForce source for field accuracy, and validates that cross-object relationships (Contact to Account, Opportunity to Account, Project Task to Project) resolved correctly. We also validate the stage mapping configuration table against the customer's pipeline expectations. The customer signs off on the Sandbox results before we proceed to production migration.
Owner reconciliation and User provisioning
We extract every distinct YetiForce owner email referenced on Organizations, Contacts, Potentials, Projects, and Tickets and match by email against the Salesforce destination org's User table. Owners without a matching User go to a reconciliation queue for the customer's Salesforce admin to provision. Migration cannot proceed past the data phase because OwnerId is a required reference on most standard objects. We also confirm whether inactive YetiForce users should map to inactive or active Salesforce Users based on the customer's retention policy.
Production migration in dependency order
We run production migration in record-dependency order: Vendors (to Account with Type=Vendor), Organizations (to Account), Contacts (with AccountId resolved), Leads, Potentials (with AccountId, OwnerId, and RecordTypeId resolved), Products and Services (with Pricebook entries), Project custom object, Project Tasks (with parent lookup resolved), Tickets (as Case), Attachments (as ContentVersion and ContentDocumentLink), and Activity history (Tasks, Events, EmailMessages via Bulk API 2.0). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and configuration rebuild handoff
We freeze YetiForce writes during cutover, run a final delta migration of any records modified during the migration window, then enable Salesforce as the system of record. We deliver the Reports inventory document, Workflow and automation handoff (YetiForce workflows and field configurations do not migrate as code), and the User reconciliation report. We support a one-week hypercare window for reconciliation issues. We do not rebuild YetiForce workflows as Salesforce Flow or configure the Experience Cloud portal inside the migration scope; these are separate engagements.
Platform deep dives
YetiForce CRM
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 YetiForce 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
YetiForce CRM: Not publicly documented by YetiForce; rate limits may be enforced per-IP or per-session on self-hosted instances.
Data volume sensitivity
YetiForce 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 YetiForce CRM to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your YetiForce 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 YetiForce 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.