Sample assessment · No signup · Nothing connected
Acme Industrial
Salesforce assessment·Completed·Read-only·22 August 2026
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.
People
2,840 paid logins
Inferred528 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
Measured70 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
Measured45 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
Inferred80 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 measured15 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 measured5 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.
- ConnectivitySource and destination connected100%
- Users1,933 of 2,840 recommended to migrate87%
- Data4,319,465 records mapped across 9 objects72%
- Permissions96% of migrating users map cleanly to a destination role96%
- Automations45 of 83 active automations cannot be migrated46%
379 users still need an access decision
BlockingYour teamLicence scopeWho 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.
188,084 records need a new owner
BlockingYour teamData loadWho 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.
65 fields have nowhere to land
JointData lossWhat 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
Right-size now
$824,940 a year is being spent on access nobody uses. That saving needs no vendor change and no migration.
- 2
Resolve or validate 3 blockers
Plus 379 people awaiting a decision. These are the same work whichever platform you land on.
- 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 movesKeep 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 disruptionSign 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 redesignWhere 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 redesignA 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
- Right-sized — seats for the 1,933 who need them
- $1,835,880/yr
2,840 seats at the tier each user's current licence implies.
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
Line weight is record volume. Select an object to expand its field-level mappings.
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.