CRM migration

Migrate from Metis CRM to Salesforce Sales Cloud

Field-level mapping, validation, and rollback between Metis CRM and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.

Metis CRM logo

Metis CRM

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

58%

7 of 12

objects map 1:1 between Metis CRM and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Metis CRM to Salesforce Sales Cloud is a migration from a client-centric professional services platform to an enterprise CRM with a full data model. Metis organizes its data around Clients, Opportunities, Jobs, People, Timesheets, and Expenses with no public API — all extraction runs through per-zone CSV exports. We sequence the export starting with parent objects (Clients, People) before child records (Opportunities, Jobs, Timesheets) to preserve relationships, handle receipt images as a separate file transfer, and flag orphan time entries that have no linked Job for customer resolution before final import. Salesforce's Account, Contact, Opportunity, and custom object model accommodates Metis's client-centric schema with configuration work on pipeline stages and opportunity record types. We do not migrate Workflows, automations, or reports as code; we deliver a written inventory for the customer's admin to rebuild in Salesforce Flow.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Metis CRM logo

Metis CRM

What's pushing teams away

  • Teams outgrow the platform when they need deeper marketing automation, advanced multi-pipeline reporting, or CRM features beyond basic sales pipeline management.
  • Lack of a documented public API limits integration options, forcing teams to manual exports or workarounds that become unsustainable at scale.
  • Project-heavy teams report that job costing and resourcing features are functional but lack the depth of dedicated project management tools.
  • Small teams report that pricing for multiple users adds up, especially when the feature set overlaps with cheaper standalone tools for specific use cases like time tracking.

Choosing

Salesforce Sales Cloud logo

Salesforce Sales Cloud

What's pulling them in

  • The AppExchange marketplace with 5,000+ prebuilt apps gives enterprises integrations for nearly every business workflow without custom development.
  • Native Einstein AI for lead scoring, opportunity insights, and predictive forecasting adds intelligence without a separate platform purchase.
  • Territory management, multi-currency support, and advanced forecasting satisfy the needs of complex B2B sales organizations with structured revenue teams.
  • Slack, Tableau, and CPQ are deeply integrated into the core platform, keeping the sales stack unified for teams already in the Salesforce ecosystem.
  • Organizations with a large, established Salesforce implementation choose it because switching costs — integrations, custom code, trained admins — are prohibitive.

Object mapping

How Metis CRM objects map to Salesforce Sales Cloud

Each row shows how a Metis 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.

Metis CRM

Clients

maps to

Salesforce Sales Cloud

Account

1:1
Fully supported

Metis Client records map directly to Salesforce Account. The client name becomes Account Name, primary contact details map to the Account's standard contact fields, and client status maps to an Account Status custom picklist. We extract the Clients zone CSV as the first migration step because Account is the parent of Contact and the lookup target for Opportunity (WhatId) and any custom Job object. Clients with multiple primary contacts generate an Account with multiple Contact records via the People zone mapping.

Metis CRM

People

maps to

Salesforce Sales Cloud

Contact

1:1
Fully supported

Metis People records map to Salesforce Contact. First name, last name, email, phone, role, and address fields transfer directly. The parent Client ID from Metis resolves to an Account ID in Salesforce during import so that every Contact has an Account lookup. People records are extracted from the People zone CSV as the second migration step after Accounts are confirmed in Salesforce.

Metis CRM

Opportunities

maps to

Salesforce Sales Cloud

Opportunity

1:1
Fully supported

Metis Opportunity records map to Salesforce Opportunity. The pipeline stage value, estimated value, probability, and close date transfer to Opportunity StageName, Amount, Probability, and CloseDate. The parent Client lookup resolves to the Account ID. We configure a Salesforce Record Type and Sales Process that matches the Metis pipeline structure before migration begins so that stage values are whitelisted at import time.

Metis CRM

Jobs

maps to

Salesforce Sales Cloud

Opportunity or Custom Project Object

lossy
Fully supported

Metis Jobs are project records with client association, status, dates, and costing fields. Salesforce has no native project object in Sales Cloud, so we configure this mapping in one of two ways during scoping: Jobs become Opportunities with a Project record type (preferred for sales-cycle-adjacent project tracking), or Jobs become a custom Project__c object with an Account lookup and Opportunity lookup (preferred for agency and professional services teams that need job costing separate from pipeline forecasting). The customer selects the strategy before migration. Job costing fields map to custom numeric fields on the destination object.

Metis CRM

Timesheets

maps to

Salesforce Sales Cloud

Task or Custom Time Entry Object

lossy
Mapping required

Metis Timesheets export from the Manage zone as a structured grid with person association, date, hours, billable/non-billable flags, and optional Job linkage. For billable time tied to a Job, we map to a custom Time_Entry__c object linked to the Project (Job) and Contact (Person). Non-billable or general logged time maps to Salesforce Task with ActivityDate set to the timesheet entry date. Orphan time entries — timesheet rows with no Job association — are flagged in the pre-migration audit and presented to the customer with three options: assign to a default project, skip, or create placeholder Jobs for them.

Metis CRM

People Expenses

maps to

Salesforce Sales Cloud

ContentNote + Attachment or Custom Expense Object

1:1
Mapping required

Metis People Expenses export from the Manage zone with expense category, amount, date, and person association. The receipt image is stored as a separate file outside the CSV. We map expense records to a custom Expense__c object with Amount, Date, Category, and Contact lookup. Receipt images transfer via parallel file transfer and re-attach as ContentDocumentLink records linked to the corresponding Expense__c record. Each expense record is flagged in the migration log with an image-reattachment confirmation note for the customer's post-migration review.

Metis CRM

Central Expenses

maps to

Salesforce Sales Cloud

Custom Expense Object

1:1
Mapping required

Metis Central Expenses are agency-level overhead costs exported from the Manage zone separately from People Expenses. Receipt images are also stored as separate files. We map Central Expenses to a second custom Expense__c variant (expense_type = 'Central') with no Contact lookup, linked to the Account or a custom Agency_Overhead__c object. Receipt re-attachment follows the same parallel file transfer and ContentDocumentLink pattern as People Expenses.

Metis CRM

Resourcing Report

maps to

Salesforce Sales Cloud

Custom Resource Allocation Object

1:1
Mapping required

Metis Resourcing reports are filtered views combining People availability with Job assignments — they are not transactional objects. We extract the underlying source data (People zone for availability, Jobs zone for assignments) and construct a custom Resource_Allocation__c object in Salesforce with fields for Person (Contact), Project (Job), start date, end date, and utilization percentage. Utilization percentage is computed from the source data and stored as a custom field.

Metis CRM

Owner (Person role)

maps to

Salesforce Sales Cloud

User

1:1
Fully supported

Metis People with a user-facing role map to Salesforce User by email match. We extract all distinct Metis users referenced on Opportunities, Jobs, and Timesheets and match them against the Salesforce User table by email address. Any Metis user without a matching Salesforce User goes to a reconciliation queue for the customer's admin to provision before record import resumes.

Metis CRM

Client Contacts

maps to

Salesforce Sales Cloud

AccountContactRelation

1:many
Fully supported

Metis allows multiple People records linked to a single Client. After mapping People to Contacts and Clients to Accounts, we create AccountContactRelation records for each Person-Client link to represent the full contact hierarchy in Salesforce. The primary contact flag from Metis maps to the IsPrimary field on AccountContactRelation.

Metis CRM

Job Status

maps to

Salesforce Sales Cloud

Opportunity Stage or Custom Status Picklist

lossy
Fully supported

Metis Job status values (Active, On Hold, Completed, Cancelled) map to a custom status picklist on the Project record type or Opportunity stage if Jobs are mapped to Opportunities. We configure the picklist values before migration so that imported Jobs land in the correct status without triggering validation rule rejections.

Metis CRM

Opportunity Stage

maps to

Salesforce Sales Cloud

Opportunity Stage

lossy
Fully supported

Each Metis pipeline and its stages map to a Salesforce Sales Process and corresponding StageName values on Opportunity. Stage probabilities transfer from Metis to Salesforce StageProbability, rounded to the nearest integer. We deploy the stage configuration to a Sandbox org first for validation before production migration.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Metis CRM logo

Metis CRM gotchas

High

No public API forces CSV-only migration paths

Medium

Receipt images exported as separate files outside the main CSV

Medium

Orphan time entries without a linked Job

Low

Xero-friendly export is a destination format, not a source object

Salesforce Sales Cloud logo

Salesforce Sales Cloud gotchas

High

Workflow Rules and Process Builder are retired

High

Bulk API batch quota exhaustion during large imports

Medium

Storage overage billing is non-obvious

Medium

Account-Contact many-to-many relationship mapping

Low

Territory and team member import ordering dependencies

Pair-specific challenges

  • No public API forces CSV-only migration with chunking constraints

    Metis CRM does not publish a REST API. All data extraction runs through per-zone CSV exports from the Clients, Opportunities, Jobs, People, Timesheets, and Expenses zones. This means migration speed is bounded by export chunk sizes and we cannot run real-time sync jobs against the platform. We handle the file-based export as our primary ingestion method and manage the CSV file size constraints through batch chunking. Customers should export all zones before the migration window to avoid data drift if users continue entering records in Metis during extraction.

  • Orphan time entries without a linked Job require pre-migration resolution

    Timesheet exports from Metis may contain entries logged against a Person but without a Job association. These orphan entries cannot be automatically mapped to a project record in Salesforce without a parent reference. We flag every unlinked time entry in the pre-migration audit and present the customer with a mapping choice: assign to a default project, skip, or create placeholder Jobs for them. Skipping this step before migration means orphan time entries either fail import (required lookup constraint) or land with no project association, breaking utilization reporting.

  • Receipt images export as separate files outside the main CSV

    Both People Expenses and Central Expenses store receipt images as linked files rather than embedded data. The CSV export captures the expense record but not the image. We run a parallel file transfer for receipt attachments and flag each expense record in the migration log with an image-reattachment note. Customers must manually verify receipt images in Salesforce post-migration. This is especially relevant for expense records subject to audit or compliance review, where image availability must be confirmed before go-live.

  • Jobs have no native Salesforce equivalent and require schema design

    Metis Jobs are project records with client association, costing, and status that have no direct Salesforce Sales Cloud equivalent. We resolve this during scoping by designing either a custom Project__c object or mapping Jobs to Opportunities with a Project record type. Either approach requires schema deployment to the destination org before data import, which adds a design and configuration step not present in migrations between two platforms with aligned object models.

  • Resourcing reports are view exports, not source transactional records

    Metis Resourcing reports are filtered views combining People availability with Job assignments. The underlying transactional data (People availability, Job allocations) must be reconstructed from the Jobs and People zone exports. We extract the raw source data and build a custom Resource_Allocation__c object, but the availability percentages and allocation views from Metis are not directly portable — they are regenerated in Salesforce from the migrated underlying records.

Migration approach

Six steps for a successful Metis CRM to Salesforce Sales Cloud data migration

  1. Discovery and zone export audit

    We audit the source Metis CRM account across all zones: Clients, Opportunities, Jobs, People, Timesheets, People Expenses, Central Expenses, and Resourcing Reports. We assess record counts per zone, identify any custom fields or zone-specific columns, locate receipt image file storage, and flag orphan time entries (timesheet rows with no Job association). We pair this with a Salesforce destination review: which edition is the customer targeting, what existing custom objects or Record Types are present, and are there active validation rules or field-level security that will block import. The discovery output is a written migration scope with zone-by-zone record counts and a Salesforce edition recommendation.

  2. Schema design and Project object strategy

    We design the destination schema in Salesforce based on the scoping decision for Jobs: custom Project__c object with Account and Opportunity lookups, or Opportunity with a Project record type. We create all custom fields (job costing fields, expense fields, utilization fields, hs_original_lifecycle__c analog fields), configure Record Types and Sales Processes for pipeline alignment, and deploy to a Salesforce Sandbox for validation. This step resolves the Jobs mapping before any data moves and ensures that the parent lookup references exist at migration time.

  3. Sandbox migration and reconciliation

    We run a full migration into a Salesforce Sandbox (Full Copy or Partial Copy) using production-like data volume extracted from the Metis CSV zones. The customer's RevOps or admin lead reconciles record counts (Accounts in, Contacts in, Opportunities in, custom Project records in, Time Entries in, Expenses in), spot-checks 25-50 random records against the Metis source, and signs off the schema and mapping before production migration begins. Orphan time entry decisions are made and documented at this stage. Any mapping corrections happen here, not in production.

  4. Owner and User reconciliation

    We extract every distinct Metis user referenced on Opportunity, Job, and Timesheet records and match by email against the Salesforce destination org's User table. Metis users without a matching Salesforce User go to a reconciliation queue. The customer's Salesforce admin provisions any missing Users (active or inactive depending on whether the original Metis user is still active). Migration cannot proceed past this step because OwnerId references are required on most standard objects and custom Project records.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Accounts (from Metis Clients), Contacts (from Metis People with AccountId resolved via Client ID), custom Project records or Opportunities from Jobs (with AccountId and OwnerId resolved), Opportunities from Metis (with AccountId, OwnerId, and RecordTypeId resolved), custom Time Entry records and Tasks from Timesheets (with Contact and Project resolved; orphan entries held per customer decision), custom Expense records from People Expenses and Central Expenses, and receipt images via parallel file transfer with ContentDocumentLink attachment. Each phase emits a row-count reconciliation report before the next phase begins.

  6. Cutover, validation, and Workflow rebuild handoff

    We freeze Metis access 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 a written inventory of any automations, reports, or dashboards that require rebuild in Salesforce Flow or Reports — noting that Metis automations do not migrate as code and must be reconstructed by the customer's admin or a Salesforce partner. We support a one-week hypercare window where we resolve reconciliation issues raised by the customer's team. We do not rebuild Metis automations as Salesforce Flow inside the migration scope; that is a separate engagement.

Platform deep dives

Context on both ends of the pair

Metis CRM logo

Metis CRM

Source

Strengths

  • Unified CRM, project management, and time tracking for professional services workflows
  • Per-zone CSV export capability gives clean data extraction points for migration
  • Client-centric data model with Opportunities, Jobs, People, and Timesheets as first-class objects
  • Resource management and resourcing reports for tracking team utilization across jobs
  • Affordable positioning for freelancers, agencies, and SMBs without enterprise overhead

Weaknesses

  • No documented public REST API — all migrations rely on CSV zone exports
  • No clear pricing page or published tier structure in available sources
  • Receipt images and attachments stored as separate files outside the primary data export
  • Resourcing reports are view exports, not transactional objects — underlying data must be reconstructed
  • Limited integrations compared to established CRM platforms
Salesforce Sales Cloud logo

Salesforce Sales Cloud

Destination

Strengths

  • Largest enterprise app ecosystem in CRM with 5,000+ AppExchange integrations covering nearly every vertical workflow.
  • Native Einstein AI delivers lead scoring, opportunity insights, and predictive forecasting without a third-party layer.
  • Advanced territory management, multi-currency, and flexible forecasting satisfy complex B2B revenue structures.
  • Deep platform extensibility: Custom Objects, Apex, Flow, and the Metadata API allow full schema customization.
  • Well-documented REST API, Bulk API, and Composite API with published rate limits for programmatic migration.

Weaknesses

  • Pricing model is layered and opaque in practice: per-seat fees plus storage overages, add-on subscriptions, and annual uplifts compound to 30–40% above sticker price.
  • Workflow Rules and Process Builder are deprecated, forcing all orgs onto Salesforce Flow — a migration task that catches many teams by surprise.
  • Steep administrative complexity: meaningful configuration requires a dedicated Salesforce admin or consultant.
  • API rate limits are edition-gated (100k/day base for Enterprise) and easily exhausted by large historical imports without throttling.
  • Data export is exportable via Data Loader but preserving relationship integrity across 30+ objects requires careful ETL sequencing.

Complexity grading

How hard is this migration?

Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Metis CRM and Salesforce Sales Cloud.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Metis CRM: Not publicly documented.

  • Data volume sensitivity

    B

    Metis CRM doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Metis CRM to Salesforce Sales Cloud migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Metis CRM to Salesforce Sales Cloud data migrations

Answers to the questions buyers ask most during Metis CRM to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Metis CRM to Salesforce Sales Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between four and eight weeks for accounts under 10,000 Clients, 5,000 Opportunities, and 2,000 People with no custom object configuration. Migrations with large Jobs histories, orphan time-entry reconciliation work, custom Project__c object configuration, multi-currency handling, or receipt image re-attachment at scale move to ten to sixteen weeks. Discovery and sandbox validation are fixed time investments regardless of size, typically two to four weeks.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Metis CRM.
Land in Salesforce Sales Cloud, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day