Skip to content

Sample assessment · No signup · Nothing connected

Acme Industrial

Salesforce assessment·Completed·Read-only·22 August 2026

Synthetic estateRun this on your estate

Recommendation

Right-size before you migrate.

Portablov found $825K a year of licence spend available without changing vendor, and 3 blockers that should be resolved before a switch. Fix the cost base first; it makes every other option cheaper to compare.

An evidence-based reading of the estate, not a decision Portablov makes for you. Every figure opens onto the working behind it.

A fabricated 2,840-login estate holding 4,327,906 records, read by the production Portablov engine and rendered by the product’s own screens. Your assessment looks like this, with your numbers in it.

What Portablov found

Four parts of the estate, each partitioned into what should be kept, rebuilt, reviewed or retired. Open any figure for the records behind it.

Keep
Evidence of use, and a destination that can hold it.
Modernize
A real capability with no equivalent to move it into. Rebuild it, do not recreate it.
Review
Portablov can see the signal. Your team decides whether the process still matters.
Retire
No evidence of use and nothing downstream requiring it.
Acme Industrial · estate decompositionOpen any figure for the evidence behind itSample data — synthetic estate
  • People

    2,840 paid logins

    Inferred

    528 paid logins show no evidence of needing a seat.

    1,933KeepLogged in recently, own records, or hold access the business depends on.

    Counted rather than itemised — this band is a property of the estate as a whole, not of a short list of records.

    Evidence · 528 of 2,840 source logins are inactive, dormant past the abandonment threshold, or hold a licence type with no destination equivalent. Each carries the signals behind the call.

    379ReviewEnough signal to flag, not enough to decide. Each one names the manager-level question behind it.
    • Emma Osei

      Salesforce licence

      Last login 856 days ago · Owns 5,203 records · Elevated permissions without an admin profile

    • James Tanaka

      Salesforce licence

      Last login 811 days ago · Owns 1,463 records

    • Diego Moreau

      Salesforce licence

      Last login 808 days ago · Owns 1,984 records

    Evidence · 528 of 2,840 source logins are inactive, dormant past the abandonment threshold, or hold a licence type with no destination equivalent. Each carries the signals behind the call.

    528RetireDeactivated, dormant past the abandonment threshold, or holding a licence type nobody uses. 89 have never logged in at all.
    • Raj Mwangi

      Salesforce licence

      Has never logged in · Owns 618 records · Deactivated in Salesforce

    • Liam Haddad

      Salesforce licence

      Has never logged in · Owns 579 records · Deactivated in Salesforce

    • Nadia Kowalski

      Salesforce licence

      Has never logged in · Owns 429 records · Deactivated in Salesforce

    Evidence · 528 of 2,840 source logins are inactive, dormant past the abandonment threshold, or hold a licence type with no destination equivalent. Each carries the signals behind the call.

  • Data model

    309 mapped fields

    Measured

    70 fields appear to carry no business requirement.

    158KeepPopulated on at least half your records, with somewhere to land.

    Counted rather than itemised — this band is a property of the estate as a whole, not of a short list of records.

    Evidence · Fill rate is measured per field across the discovered records; 122 of 309 fields are populated on fewer than 50% of them.

    65ModernizeNo destination equivalent. The capability may still be needed — the field is not the way to keep it.
    • Contract.Deprecated_Score_2017__c

      Custom field

      Populated on 0% of records · Contract has no destination object, so none of its fields can be migrated.

    • Contact.ReportsToId

      Standard field

      Populated on 12% of records · HubSpot has no contact-to-contact hierarchy. Reporting lines are lost.

    • Lead.Commission_Split_Json__c

      Custom field

      Populated on 12% of records · No destination property matches this field.

    Evidence · Fill rate is measured per field across the discovered records; 122 of 309 fields are populated on fewer than 50% of them.

    16ReviewPopulated on fewer than 50% of records, or excluded on a call somebody should confirm. Sparse is not the same as unused.
    • Account.ParentId

      Standard field

      Populated on 19% of records · Carried today, but nobody has confirmed the business still needs it

    • Contact.Description

      Standard field

      Populated on 28% of records · Salesforce allows 32,000 characters; long descriptions are preserved but the destination property is not a first-class notes field.

    Evidence · Fill rate is measured per field across the discovered records; 122 of 309 fields are populated on fewer than 50% of them.

    70RetireSparse, superseded or destination-managed, and recommended for exclusion.
    • Lead.Migration_Tier_2020__c

      Custom field

      Populated on 0% of records · Populated on only 0% of records — recommended for exclusion.

    • Opportunity.Legacy_Code_2016__c

      Custom field

      Populated on 0% of records · Populated on only 0% of records — recommended for exclusion.

    • Opportunity.Migration_Category_2021__c

      Custom field

      Populated on 0% of records · Populated on only 0% of records — recommended for exclusion.

    Evidence · Fill rate is measured per field across the discovered records; 122 of 309 fields are populated on fewer than 50% of them.

  • Automations

    96 flows, rules and triggers

    Measured

    45 automations should be redesigned, not migrated.

    38KeepPortable as-is or with a declared workflow equivalent.
    • Opportunity Stage Change Alert

      Workflow rule

      Active in the source · Portable under the destination’s declared capabilities · Emails the opportunity owner and their manager whenever StageName moves to Negotiation or later.

    • Lead Assignment & Round Robin

      Flow

      Active in the source · Portable under the destination’s declared capabilities · Record-triggered flow assigning new Leads by Territory_Code__c with a round-robin fallback queue.

    • Renewal Playbook Generator

      Flow

      Active in the source · Portable under the destination’s declared capabilities · Creates Renewal_Playbook__c records 120 days before Account.Renewal_Date__c and schedules tasks.

    Evidence · 45 of 96 automations have no destination equivalent under the destination connector's declared capabilities; 13 is already switched off in the source.

    45ModernizeApex, entitlement logic and multi-object orchestration with no destination equivalent.
    • Case Escalation Matrix

      Process builder

      Active in the source · No equivalent under the destination’s declared capabilities — redesign, do not recreate · Escalates Critical cases after 4 business hours using Entitlement milestones and business-hours calendars.

    • ARRRollupTrigger

      Apex trigger

      Active in the source · No equivalent under the destination’s declared capabilities — redesign, do not recreate · Apex trigger recalculating Account-level ARR from child Opportunities on insert, update and delete.

    • TerritoryAssignmentTrigger

      Apex trigger

      Active in the source · No equivalent under the destination’s declared capabilities — redesign, do not recreate · Syncs Territory_Code__c from an external ERP via a callout on Account upsert.

    Evidence · 45 of 96 automations have no destination equivalent under the destination connector's declared capabilities; 13 is already switched off in the source.

    13RetireAlready switched off in the source and kept for audit.
    • Dormant Lead Nurture Hand-off

      Workflow rule

      Switched off in the source · Retained for audit only; nothing downstream depends on it · Deactivated in 2024; retained for audit. Moved Leads untouched for 180 days to Nurturing.

    • Fax Confirmation Alert

      Workflow rule

      Switched off in the source · Retained for audit only; nothing downstream depends on it · Deactivated in 2019. Emailed a fax confirmation when Opportunity moved to Contract Sent.

    • Legacy Territory Notification

      Workflow rule

      Switched off in the source · Retained for audit only; nothing downstream depends on it · Deactivated in 2021 when territories moved to Enterprise Territory Management.

    Evidence · 45 of 96 automations have no destination equivalent under the destination connector's declared capabilities; 13 is already switched off in the source.

  • Permissions

    176 permission combinations

    Inferred

    80 permission shapes are held by exactly one person.

    96KeepShared by more than one person — a role the business actually has.

    Counted rather than itemised — this band is a property of the estate as a whole, not of a short list of records.

    Evidence · 176 distinct permission-set combinations are in use across 2,840 logins, built from 11 permission sets and 9 profiles.

    80ReviewA combination of one. Usually an exception granted once and never revisited.
    • Sales Rep + API_Enabled + Sales_Console + View_All_Data

      Permission combination

      Held by 1 of 2,840 logins · Profile Sales Rep, 3 permission sets · 41 records owned

    • Service Agent + CPQ_User + Sales_Console + Marketing_Cloud_Connector

      Permission combination

      Held by 1 of 2,840 logins · Profile Service Agent, 3 permission sets · 4,646 records owned

    • System Administrator + Report_Builder + CPQ_User + Territory_Admin + Marketing_Cloud_Connector + Forecasting_Access + Modify_All_Data + Manage_Users

      Permission combination

      Held by 1 of 2,840 logins · Profile System Administrator, 7 permission sets · Carries administrator rights

    Evidence · 176 distinct permission-set combinations are in use across 2,840 logins, built from 11 permission sets and 9 profiles.

Not measured. Portablov does not read Apex class inventories or outbound integrations yet. These two categories are illustrative — they show the shape of the finding, not a measurement of anything.

  • Custom code

    41 Apex classes and triggers

    Not yet measured

    15 Apex classes have no caller anywhere in the org.

    18KeepCalled by an active process and doing something the destination cannot.
    • ARRRollupService

      Apex class

      Called by 2 active triggers · Recalculates Account ARR nothing else derives

    Evidence · Illustrative. A real assessment would derive this from a code and dependency inventory Portablov does not collect today.

    8ModernizeBusiness rules hard-coded into Apex that belong in configuration.
    • DiscountApprovalRouter

      Apex class

      3 routing thresholds hard-coded in the class body · The rule is a business policy, not code — it belongs in configuration

    Evidence · Illustrative. A real assessment would derive this from a code and dependency inventory Portablov does not collect today.

    15RetireNo caller, no test coverage, or superseded by a later class.
    • LegacyQuoteSyncBatch

      Apex class

      No caller in the org · Last modified 4 years ago · References an object retired in 2022

    Evidence · Illustrative. A real assessment would derive this from a code and dependency inventory Portablov does not collect today.

  • Integrations

    12 connected systems

    Not yet measured

    5 integrations nobody can currently account for.

    5KeepNamed owner and observable traffic.
    • ERP territory sync

      Outbound callout

      Feeds Territory_Code__c on every Account upsert · A migration has to keep this working from day one

    Evidence · Illustrative. Outbound API consumers are named as an open question in a real assessment rather than counted.

    2ModernizePoint-to-point syncs that would need rebuilding against a new API.
    • Marketing automation two-way sync

      Managed package

      Field-level two-way sync built against the source API · Would be rebuilt rather than moved

    Evidence · Illustrative. Outbound API consumers are named as an open question in a real assessment rather than counted.

    5ReviewAuthenticated connections with no named owner. Only your team can say whether they still matter.
    • Unattributed API consumer

      Connected app

      Authenticated integration user with no named owner · Portablov can see the connection. Only your team can say whether it still matters.

    Evidence · Illustrative. Outbound API consumers are named as an open question in a real assessment rather than counted.

What needs your attention

Readiness is 79 of 100. These are the calls holding it there — 2 of them are blocking, and none of them is Portablov's to make.

79%Ready
Not ready
  • Connectivity100%
  • Users87%
  • Data72%
  • Permissions96%
  • Automations46%
  1. 379 users still need an access decision

    BlockingYour teamLicence scope

    Who moves, and who does not?

    Portablov could not decide these on evidence alone — they are dormant but privileged, hold unusual permissions, or own records that matter. Each one needs a human call before a seat is bought.

    Holds a blocker. Portablov will not provision or exclude a seat on evidence alone. Each of these people has signals pointing both ways — recent activity against a licence with no clean equivalent, or ownership that would be stranded by excluding them.

    Evidence · 1,933 recommended to migrate and 528 not recommended, out of 2,840 discovered users.

  2. 188,084 records need a new owner

    BlockingYour teamData load

    Who inherits this data?

    These records are owned by people who are not migrating. The destination requires an owner, so without a reassignment rule they would be rejected on load.

    Holds a blocker. The destination requires an owner on companies, contacts, deals, tickets and tasks. A record whose owner has no seat is rejected on load rather than arriving unowned.

    Evidence · Owned by the 528 users Portablov does not recommend migrating.

  3. 65 fields have nowhere to land

    JointData loss

    What do you accept losing?

    These fields cannot be expressed in the destination at all. Either the data is archived before cutover, recreated as a custom property, or knowingly dropped.

    Evidence · 309 source fields analysed; 72.2% have a usable destination target.

120 additional findings

4 more decisions · 42 validation failures · 74 warnings

Each names the exact object, field, user or automation involved.

What this means

The evidence creates decisions rather than settling them. Portablov recommends an order of work, never an outcome.

  1. 1

    Right-size now

    $824,940 a year is being spent on access nobody uses. That saving needs no vendor change and no migration.

  2. 2

    Resolve or validate 3 blockers

    Plus 379 people awaiting a decision. These are the same work whichever platform you land on.

  3. 3

    Then evaluate CRM options

    With this evidence in hand, a shortlist is a comparison rather than a guess — and staying put is on it.

  • Stay and right-size

    Nothing moves

    Keep the platform, stop paying for the parts of it nobody uses. Most of the licence reduction in an assessment is available without changing vendor at all.

    This assessment tells you · Which logins have no evidence of use, which fields are unfilled, and which records have no owner — the work that pays for itself before any migration is discussed.

  • Renew intentionally

    Lowest disruption

    Sign again, but for what the business actually needs rather than for what the estate happens to contain today.

    This assessment tells you · The seat count and edition mix the evidence supports, and the requirements you would be renewing to meet. It is the same specification a competing vendor would be measured against.

  • Move to a simpler CRM

    Meaningful redesign

    Where what survives is narrower than what you run, a lighter platform can meet the requirement for less — and the complexity you leave behind is the point, not a loss.

    This assessment tells you · Whether the surviving requirements fit inside a smaller operating envelope, and exactly which of them do not.

  • Re-platform

    Meaningful redesign

    A comparable or differently-shaped platform, where the move is a redesign rather than a copy. Transplanting the estate one-for-one is the failure mode here.

    This assessment tells you · Which parts of the model are essential and which are accumulated configuration — because a configurable destination will happily let you rebuild all of it.

The free assessment stops here on purpose. It establishes what you have, what matters, what appears unnecessary and what needs a human — not a target state, a shortlist or a migration plan.

What the free assessment answers

  • What is actually in your estate, counted
  • Who genuinely needs a seat, with the evidence per person
  • Which data and automations the business runs on
  • What you could stop paying for without changing vendor
  • How hard a move would be, where it can be measured
  • Which blockers and decisions are waiting for you

What it does not — and where Portablov helps

  • Right-sizing the licence base and holding the saving
  • Renewal preparation and negotiation evidence
  • Remediating blockers and cleaning up ownership
  • Detailed migration planning and sequencing
  • Vendor evaluation against your own requirements
  • Data cleanup, transformation and migration execution
See exactly how Portablov reached this answer

Nothing above is summarised beyond what you can open and check here — including the parts that make Portablov look worse.

The licence case — $825K a year, before you change vendor
Seat-for-seat — a licence for all 2,840 logins
$2,660,820/yr

2,840 seats at the tier each user's current licence implies.

Right-sized — seats for the 1,933 who need them
$1,835,880/yr

528 dormant or deactivated logins removed; 379 still awaiting a human call.

Potential annual reduction

$824,940/yr

List price, no negotiated discount. Substitute your own contracted rates for a firm figure — Portablov cannot see them.

Evidence · 528 of 2,840 source logins are inactive, dormant past the abandonment threshold, or hold a licence type with no destination equivalent. Each carries the signals behind the call.

Where each missing readiness point went

79% ready means 21 points are missing. Here is exactly where they went, and what wins them back.

  • −8.4

    Data 72% · weighted 30%

    Field coverage is 72.2%. Give the 71 exception fields a destination — a custom property, an agreed transform, or a decision to leave them behind.

  • −8.1

    Automations 46% · weighted 15%

    Decide the fate of 45 automations with no destination equivalent: rebuild, replace with an external service, or retire.

  • −3.3

    Users 87% · weighted 25%

    Decide the 379 users still marked "review". Every decision recorded moves this dimension towards 100.

  • −0.8

    Permissions 96% · weighted 20%

    94 migrating users have no clean destination role. Assign each the narrowest role that still works.

Connectivity

100%

Source and destination connected

Source
Acme Industrial — Production · connected
Destination
Acme Industrial — Portal · connected

Users

87%

1,933 of 2,840 recommended to migrate

Ready to migrate
1,933
Need review
379
Not recommended
528
Annual licence saving
$824,940

Data

72%

4,319,465 records mapped across 9 objects

Field coverage
72.2%
Exceptions
71
Records without a destination
8,441
Objects unsupported
1

Permissions

96%

96% of migrating users map cleanly to a destination role

Privilege changes
94
Elevated non-admins
43
Findings
1

Automations

46%

45 of 83 active automations cannot be migrated

Active in source
83
Unsupported
45
Rebuild required
14

3 blockers that would stop a move today

  • 379 users still need a migrate decisionYour call
    Why it breaks
    Portablov will not provision or exclude a seat on evidence alone. Each of these people has signals pointing both ways — recent activity against a licence with no clean equivalent, or ownership that would be stranded by excluding them.
    Who or what is affected
    aiden.rossi@acme-industrial.com, evelyn.vogel@acme-industrial.com and 377 more users
    How many
    379 users
    Can Portablov fix it automatically?
    No. It needs a business decision Portablov will not make for you.
    What you need to decide
    Open each user, read the evidence, and approve or override the recommendation. Licence savings recalculate as you go.
  • 188,084 records are owned by users who are not migratingYour call
    Why it breaks
    The destination requires an owner on companies, contacts, deals, tickets and tasks. A record whose owner has no seat is rejected on load rather than arriving unowned.
    Who or what is affected
    nadia.costa@acme-industrial.com, raj.mwangi@acme-industrial.com and 526 more excluded owners
    How many
    188,084 records
    Can Portablov fix it automatically?
    No. It needs a business decision Portablov will not make for you.
    What you need to decide
    Nominate who inherits each excluded owner’s records — a named person, a team fallback, or a holding seat you are willing to pay for.
  • 1,933 people will receive a HubSpot onboarding emailYour call
    Why it breaks
    The destination user-provisioning API sends an onboarding email and exposes no documented parameter to suppress it. If seats are created before you are ready to announce the change, your entire go-live communications plan is pre-empted by an automated email.
    Who or what is affected
    evelyn.kim@acme-industrial.com, elijah.dubois@acme-industrial.com and 1,931 more users
    How many
    1,933 users
    Can Portablov fix it automatically?
    No. It needs a business decision Portablov will not make for you.
    What you need to decide
    Agree the communications window, then approve provisioning inside it.
Every decision, with the evidence that produced it

379 users require review

Who moves, and who does not?

Portablov could not decide these on evidence alone — they are dormant but privileged, hold unusual permissions, or own records that matter. Each one needs a human call before a seat is bought.

Evidence · 1,933 recommended to migrate and 528 not recommended, out of 2,840 discovered users.

65 fields have no destination equivalent

What do you accept losing?

These fields cannot be expressed in the destination at all. Either the data is archived before cutover, recreated as a custom property, or knowingly dropped.

Evidence · 309 source fields analysed; 72.2% have a usable destination target.

45 automations need redesign

Who rebuilds the logic?

Apex triggers, validation rules and process builders have no direct destination equivalent. Each has to be rebuilt as a workflow, moved to an external service, or retired.

Evidence · Reported by validation against the destination connector’s declared capabilities.

188,084 records require ownership reassignment

Who inherits this data?

These records are owned by people who are not migrating. The destination requires an owner, so without a reassignment rule they would be rejected on load.

Evidence · Owned by the 528 users Portablov does not recommend migrating.

6 fields map lossily

Which reporting are you willing to lose?

These fields will carry across, but with less precision than they have today — collapsed picklists, narrowed types, or dropped granularity. Reporting built on them changes.

Evidence · 42 fields need a named transformation; 6 of those lose information.

1 object has nowhere to go

What happens to these records?

The destination has no comparable object. The records stay behind, move to a custom object, or are exported to a warehouse before the source is switched off.

Evidence · 8,441 records sit in objects with no destination target.

84 mapping issues are unresolved

What still needs a decision?

Every issue Portablov raised that nobody has acknowledged, resolved or waived yet. Each one names the object, field or person responsible.

Evidence · 19,633,364 records, fields or people affected across 84 open issues.

5 things Portablov will not guess at

“This flow has not run in months” is observed. “It is probably safe to retire” is inferred. “This process no longer matters” is a business decision, and Portablov will not make it for you.

  • Someone has to decide — Dormant but privileged, holding unusual permissions, or owning records that matter. Evidence alone does not settle these.

  • Business rules behind them — Portablov reads what each automation does, not why it exists. Which of these are still policy — and which are scar tissue — is a conversation with the people who own the process.

  • Connected systems and integrations — Billing, data warehouse, marketing automation, support desk, embedded reports, and anything holding an API key against your CRM. These usually decide a migration timeline more than the data does.

  • Reports and dashboards built on these fields — Every report built on a field that changes shape is a report that changes with it. Portablov names the fields; you name the reports.

  • Your actual contracted rate — Portablov prices from public list rates. Your real numbers move with whatever you negotiated, and with what a new vendor offers to win the deal.

Every user, and the evidence behind their recommendation

Filter, search and open any person to read the signals behind their recommendation. Overriding one — and watching the savings recalculate — needs an account.

Recommended to migrate

1,933

68% of 2,840

Need a decision

379

Portablov will not decide these for you

Not recommended

528

188,084 owned records to reassign

Annual licence avoided

$824,940

vs $2,660,820 lift-and-shift

Showing 40 of 2,840

Field-level mappings, object by object

The deepest layer of the assessment, for the one direction Portablov measures field by field. Click any object to open its mappings: green moves as-is, blue is transformed, yellow loses fidelity, red has nowhere to go.

What crosses, and what does not

  • Moves as-is118
  • Transformed45
  • Loses fidelity6
  • No destination65
  • Left behind75
SalesforceHubSpot
Task1.1M records · 20 fieldsCase989k records · 34 fieldsLead704k records · 31 fieldsContact613k records · 61 fieldsOpportunityLineItem511k records · 8 fieldsOpportunity204k records · 57 fieldsAccount148k records · 60 fieldsContract8k records · 16 fieldsRenewal_Playbook__c4k records · 8 fieldsCampaign1k records · 14 fieldstasks1.1M recordstickets989k recordscontacts1.3M records · 2 sources mergeline_items511k recordsdeals204k recordscompanies148k recordsNowhere to go8,441 records stay behindp_renewal_playbook4k recordsmarketing_events1k records

Line weight is record volume. Select an object to expand its field-level mappings.

Read the same mappings object by object, field by field →

How this assessment was produced
Where the figures come from
A read-only snapshot of the estate — objects, fields, records, users, permissions and automations — passed through five engines: user intelligence, mapping, validation, readiness and scope. Every projection on this page is a count over that output, so no two panels can disagree.
How pricing is derived
Published list seat tiers, matched to each user’s current licence type and observed usage. No negotiated discount is known to Portablov, and none is assumed.
What it cannot see
Integrations, outbound API consumers, reports and dashboards, contracted rates, and the business intent behind an automation. Those are named as open questions rather than estimated — 5 of them in this assessment.
This particular estate
Synthetic. Acme Industrial does not exist, and the 4,327,906 records behind these figures were generated for the demo. The engine reading them is the production one.