← Back to Enterprise Strategy
ENT-007 Enterprise Strategy 22 min read For: CTOs

Vendor Lock-In Risk: How Dependent Should You Be on Salesforce?

An honest assessment of Salesforce vendor lock-in — what the real dependencies are, which ones matter strategically, and how to manage platform risk without paralysing your programme.

VS

Vishal Sharma

Salesforce Architecture Specialist · Updated May 2026

What you will learn in this tutorial
  • What Salesforce lock-in actually consists of — broken down into four distinct types
  • Why technical lock-in is less dangerous than process and commercial lock-in
  • The realistic cost and timeline of migrating off Salesforce at enterprise scale
  • What is genuinely hard to replace in the Salesforce ecosystem
  • Practical architectural strategies for managing platform dependency
  • The difference between healthy and unhealthy Salesforce dependency
  • A decision framework for assessing and managing lock-in by layer

The Lock-In Conversation Nobody Has Until It's Too Late

The vendor lock-in question follows a predictable lifecycle in every large Salesforce programme. Procurement raises it during contract negotiations, usually in a vague form: "what are our exit options?" The architects and implementation partners, who have a financial and professional interest in the programme proceeding, offer reassurances: "our data is accessible via the API," "we can export everything," "it's all standard CRM concepts." Those reassurances are not false, exactly — but they are incomplete in ways that matter enormously three years later.

By year two or three of a mature Salesforce programme, the lock-in question stops being theoretical. The annual renewal arrives. Salesforce's pricing has increased. A competitor has launched a platform with capabilities your programme needs. The business is asking whether you're getting value. And suddenly the CTO is in a room with the CFO, and someone is asking: "what would it actually cost to leave?"

Most organisations discover at this point that they never had a real answer to that question. The architects who were reassuring during procurement have moved on. The implementation was designed for business outcomes, not for portability. The "we could always leave" assumption was never stress-tested against reality.

This tutorial is about giving you a real answer before you need it. Not to discourage investment in Salesforce — in most enterprise CRM contexts, it remains the right platform — but to give you the honest map of what the dependencies actually are, which ones are benign and which are strategic risks, and how to make architectural choices that give you genuine optionality over time.

💡
The Right Frame

The question is not "how do we avoid vendor lock-in?" — you can't use a platform deeply without becoming dependent on it. The question is "which dependencies are we comfortable with, which ones should we actively manage, and which ones represent unacceptable concentration risk?" That's a strategic question, not a technical one. It belongs in a boardroom, not just an architecture review.

What Salesforce Lock-In Actually Consists Of

Lock-in is not a single thing. In the Salesforce context, it has four distinct forms with very different risk profiles, mitigation strategies, and remediation costs. Treating them as one undifferentiated risk leads to either paralysis or false reassurance — both of which are common.

Technical Lock-In

Technical lock-in is the most visible and the most discussed. It consists of proprietary code, proprietary data access patterns, and proprietary UI frameworks. In Salesforce, this means:

  • Apex: Salesforce's Java-like language runs only on Salesforce's runtime. Custom business logic written in Apex cannot be ported to another platform without a full rewrite. It can be replicated, but not migrated.
  • SOQL: Salesforce Object Query Language is proprietary. It's similar to SQL but not interchangeable. Queries against Salesforce's EAV data model don't translate directly to standard relational queries.
  • Lightning Web Components (LWC): LWC is based on web standards, which makes it more portable than its predecessor (Aura). But the Salesforce-specific framework extensions — Lightning Data Service, wire adapters, platform events — are not portable.
  • Flow: Salesforce's declarative automation tool stores processes as metadata (XML). The logic is conceptually portable — you could reconstruct the same business process in another system — but the Flow definitions themselves cannot be imported into any other platform.

Technical lock-in sounds alarming when listed this way. In practice, it is the least dangerous form of lock-in in most enterprise contexts. The reason: technical assets can be inventoried. You can count your Apex classes. You can enumerate your Flows. You can estimate the rebuild cost. Technical lock-in is finite and quantifiable, even if the number is large.

Data Lock-In

Data lock-in is the risk that your records — accounts, contacts, opportunities, cases, custom objects — are trapped in Salesforce's data model in ways that are hard to extract and harder to reconstruct elsewhere. This is less severe than it sounds for most orgs. Salesforce offers the Bulk API for large-scale data export, the Data Export Service for scheduled full exports, and standard REST/SOAP APIs for record-by-record access. Your data is not technically trapped.

The harder problem is relational integrity. Salesforce records are related to each other through Salesforce IDs — 18-character strings that are meaningless outside of Salesforce. An exported Account has an ID that links to its Opportunities, which have IDs that link to their Opportunity Line Items, which have IDs that link to your Product catalogue. Reconstructing those relationships in a new system requires not just exporting the data, but rebuilding the referential structure in the target system's data model. That's an engineering project, not a data export task.

Process Lock-In

Process lock-in is, in our experience, the most underestimated form of dependency. It occurs when your business processes have been rebuilt around Salesforce's specific capabilities, constraints, and workflows — to the point where the processes cannot be easily described or reproduced outside of the Salesforce context.

The test is simple: could your sales operations team document their lead-to-close process without reference to Salesforce? Could your service team describe their case handling process in platform-neutral terms? In most organisations that have been on Salesforce for three or more years, the answer is no. The business process is the Salesforce configuration. Flow steps are process steps. Salesforce stages are the sales methodology. Record types are the case categories.

This is not necessarily bad — it's what platform adoption looks like when it's working. But it means that a migration isn't just a technical project. It's a business process redesign. And that is almost always the longest and most expensive part of any platform migration.

Commercial Lock-In

Commercial lock-in is the binding nature of enterprise SaaS contracts. Annual commitments, per-user pricing that scales with your workforce growth, multi-year agreements with early termination penalties, and data storage overages that create pricing inelasticity. Commercial lock-in is what makes the leverage conversation at renewal time structurally asymmetric: Salesforce knows your switching costs better than you do.

Commercial lock-in also has a compounding characteristic. Every additional Salesforce product you adopt — Service Cloud, Marketing Cloud, Experience Cloud, Revenue Cloud — increases your total spend but also increases your switching costs, because each product adds process and technical dependencies. The expansion of the Salesforce footprint within an enterprise is, commercially, a lock-in deepening strategy. That doesn't make it wrong — there are genuine capability reasons to expand — but it should be understood clearly.

🔑
Which Lock-In Is Most Dangerous?

Commercial and process lock-in. Not technical. Technical lock-in is large but finite and quantifiable. Process lock-in is large, poorly understood, and grows silently. Commercial lock-in is what converts process lock-in into pricing power for Salesforce. The combination of the two — processes rebuilt around the platform, plus multi-year contracts with expansion commitments — is where real strategic risk concentrates. Apex code, by comparison, is a manageable problem.

The Exit Cost Reality

Very few organisations that reach enterprise-scale Salesforce adoption have done a genuine exit cost analysis. The conversation is uncomfortable, implementation partners are not incentivised to lead it, and Salesforce account teams are actively incentivised to avoid it. As a result, most CTOs have an instinctive sense that leaving would be "very difficult" without a precise understanding of why or what it would actually take.

Let's be precise.

Data Export: The Starting Point, Not the Finish Line

Exporting your data from Salesforce is technically straightforward for most objects. The Bulk API handles large volumes efficiently — you can export millions of records. The Data Export Service provides weekly or monthly full org exports as CSV files. Data is not trapped.

The complications begin immediately after export. Your exported data is in Salesforce's object model — the field names, the relationship structures, the ID-based foreign keys. Importing it into another system requires field mapping, relationship reconstruction, and data transformation. For a large org with dozens of custom objects, hundreds of custom fields, and millions of records across related objects, this is a multi-month data engineering project.

Bulk API limits add practical constraints. The standard Bulk API allows 10,000 batches per 24 hours, each with a maximum of 10,000 records. For an org with 50 million records across all objects, a full export via Bulk API takes several weeks of sustained operation. This matters when the migration timeline is being planned — "we'll export everything over a weekend" is not a realistic scenario for any large enterprise.

Process Rebuild: The Iceberg

Every Flow in your org represents a business process step. Every validation rule represents a data quality requirement. Every approval process represents a governance workflow. Every formula field represents a calculated business metric. Every report and dashboard represents an operational decision-support artefact.

None of these migrate. They all have to be rebuilt, in the target system, from scratch. And before they can be rebuilt, they have to be documented — because in most orgs, the Salesforce configuration is the documentation. The Flows haven't been described in platform-neutral terms since they were built.

A large enterprise Salesforce org might contain 200 active Flows, 500 validation rules, 150 approval processes, and 1,000 reports. Rebuilding that capability set in a competing platform — assuming the platform has comparable capabilities — is a two-to-three-year project, not a migration.

Integration Rewiring

Enterprise Salesforce orgs are never isolated systems. They connect to ERP (SAP, Oracle), to marketing platforms (Marketo, Pardot), to support tools (Zendesk, Jira), to finance systems, to identity providers. Every one of those integrations was built against Salesforce's APIs — REST, SOAP, Bulk, Streaming, Platform Events. Migrating to a new CRM requires rebuilding every integration against the new platform's API surface.

Integration complexity is non-linear. A ten-integration portfolio doesn't take ten times as long as a one-integration migration — it takes more, because integrations interact with each other through shared data, and because changing one integration's data model affects adjacent integrations. This is why integration rewiring is consistently the most expensive and most schedule-risky element of any CRM migration.

The Honest Timeline

For a large enterprise org — 2,000+ users, 5+ years of operation, multiple Salesforce products, 10+ integrations — a realistic migration timeline from the decision to leave to full cutover on a replacement platform is 18 to 36 months. That is not a failure of planning. It is the physics of moving a live business-critical system with this level of complexity.

During that 18 to 36 months, you are running Salesforce and paying for it, while simultaneously building and paying for the replacement. The total cost of ownership during a migration period is roughly double normal operating costs, plus the migration programme cost itself. For a large enterprise with a $5M annual Salesforce spend, a migration has a realistic all-in cost of $15M to $30M before you achieve any saving.

⚠️
The "We Could Always Leave" Fiction

When someone in your organisation says "we could always leave Salesforce if we needed to," ask them to walk through how. What's the data migration plan for 30 million records with complex relational integrity? What's the process documentation strategy for 200 Flows? What's the integration rewiring timeline? What's the staff retraining plan for 2,000 users? The moment that conversation becomes specific, "we could always leave" becomes "it would take three years and cost as much as the original implementation." That's still a viable option — but it's not an easy exit.

What's Genuinely Hard to Replace

Not everything in the Salesforce ecosystem is equally substitutable. Some capabilities have genuine alternatives. Others are deeply embedded in the Salesforce ecosystem in ways that have no clean equivalent elsewhere. As a CTO making strategic decisions about platform dependency, distinguishing between these categories is important.

The AppExchange Ecosystem

The Salesforce AppExchange contains over 7,000 applications from independent software vendors. Many of the most widely deployed are Salesforce-native: they run on Salesforce's infrastructure, use Salesforce's data model, and integrate natively with Salesforce's UI and APIs. DocuSign's Salesforce package, Conga's contract lifecycle management, Copado's DevOps toolchain, and hundreds of industry-specific solutions exist specifically in the Salesforce ecosystem.

When you migrate off Salesforce, you don't just migrate the core platform — you also lose the ISV solutions built on top of it. Finding equivalent products that work with your replacement platform, then rebuilding the integrations, adds another dimension of cost and complexity to an already challenging migration.

CRM Analytics and the Proprietary Data Model

Salesforce's CRM Analytics (formerly Tableau CRM and Einstein Analytics) is built on a proprietary data model and query language (SAQL). Dashboards and analytics built in CRM Analytics are not portable — they cannot be imported into Tableau, Power BI, or Looker. The datasets that power them are stored in Salesforce's analytics engine, which has its own ingestion model. Organisations that have invested significantly in CRM Analytics have a deep, additional layer of lock-in on top of the core CRM dependency.

Agentforce and Einstein: The AI Dependency

Salesforce's AI capabilities — Agentforce autonomous agents, Einstein Copilot, Einstein Predictions, Einstein Next Best Action — are tightly integrated with Salesforce's data model, metadata, and UI. Agentforce agents are defined in terms of Salesforce objects, actions, and flows. They have no meaningful existence outside of the Salesforce platform. As organisations invest in these AI-native capabilities, they add a layer of dependency that is particularly hard to quantify and particularly hard to replace, because the equivalent capability in another platform would need to be rebuilt to understand the new platform's data model and process context from scratch.

The Release Cadence Advantage

Three times a year, Salesforce releases new features to all tenants simultaneously, automatically, without requiring a migration. This is a capability that is genuinely difficult to replicate on a competing platform. For an organisation that is current on its Salesforce adoption — actively using new features as they release — the opportunity cost of leaving includes giving up this release cadence. Every feature you'd want from a competing platform would need to be implemented by your own team or by a system integrator, on a schedule you control, at a cost you pay.

The Network Effects: Talent, Partners, CoE

Perhaps the least-discussed but most practically significant lock-in is the ecosystem of people. Your Salesforce Centre of Excellence has Salesforce-certified staff. Your system integrators have Salesforce practices. Your internal knowledge base is written in Salesforce terms. Your job descriptions hire for Salesforce skills. Migrating off Salesforce means retraining or replacing the human capital that your organisation has accumulated over years — and in a talent market where Salesforce skills are well-established and widely available, moving to a competing platform with shallower talent pools represents genuine organisational risk.

💡
The Hardest Thing to Replace

It is not the Apex code. It is not even the data. The hardest thing to replace is the institutional knowledge that your team has built about how Salesforce works — the governor limits, the sharing model, the deployment patterns, the integration idioms. That knowledge took years to accumulate. It lives in people, not in documentation. A migration doesn't transfer it — it discards it and requires building a new body of equivalent knowledge about the replacement platform. That human capital cost is almost never included in migration cost estimates.

Risk Mitigation: The Practical Approach

Accepting that some level of Salesforce dependency is inevitable and probably appropriate does not mean accepting unlimited dependency. There are specific architectural choices — made during design and enforced through governance — that meaningfully reduce lock-in without reducing the value you extract from the platform.

API-First Architecture: Salesforce as One Node

The most important architectural principle for managing lock-in is to treat Salesforce as one node in your integration ecosystem, not as the hub. This means:

  • Business logic that matters to your enterprise belongs in systems you own — your own services, your ERP, your microservices layer — not exclusively in Salesforce Apex and Flow.
  • Salesforce calls your external services via REST or Platform Events; your services are not exclusively called by Salesforce.
  • Data flows bidirectionally, and Salesforce is not the authoritative system of record for everything — only for the CRM domain it was purchased to manage.

In practice, this means designing integrations with clean API boundaries. Salesforce communicates with external systems through documented interfaces. An external system calls Salesforce's REST API to create a record; Salesforce calls an external service to execute a process. Neither system is buried inside the other's proprietary layer. This pattern means that replacing Salesforce in the future is a matter of building a new adapter — not rebuilding the business logic that the integration serves.

// API-FIRST INTEGRATION PATTERN
// Business logic lives in an external service.
// Salesforce invokes it via a named credential — clean boundary.
// When Salesforce is replaced, the external service keeps running.
// Only the calling code (this Apex class) needs to change.

public class OrderFulfillmentService {

    private static final String NAMED_CREDENTIAL = 'callout:OrderService';

    // Salesforce triggers this when an Opportunity is Closed Won
    // The actual fulfillment logic lives in an external order service
    // Salesforce is passing data, not executing the business logic
    public static void initiateOrderFulfillment(Opportunity opp) {
        // Build a platform-neutral payload — no Salesforce IDs in the interface
        Map<String, Object> payload = new Map<String, Object>{
            'externalAccountId' => opp.Account.External_Account_ID__c, // your ID, not SF ID
            'contractValue'     => opp.Amount,
            'closeDate'         => opp.CloseDate,
            'productLines'      => buildProductLines(opp.OpportunityLineItems)
        };

        HttpRequest req = new HttpRequest();
        req.setEndpoint(NAMED_CREDENTIAL + '/v2/orders');
        req.setMethod('POST');
        req.setHeader('Content-Type', 'application/json');
        req.setBody(JSON.serialize(payload));
        req.setTimeout(10000);

        Http http = new Http();
        HttpResponse res = http.send(req);

        if (res.getStatusCode() == 201) {
            // Store the external system's order ID, not a Salesforce-internal reference
            opp.External_Order_ID__c = (String) ((Map<String, Object>)
                JSON.deserializeUntyped(res.getBody())).get('orderId');
            update opp;
        } else {
            // Log failure to a monitoring system — don't silently swallow it
            throw new CalloutException('Order service returned: ' + res.getStatusCode());
        }
    }

    private static List<Map<String, Object>> buildProductLines(
            List<OpportunityLineItem> lineItems) {
        List<Map<String, Object>> lines = new List<Map<String, Object>>();
        for (OpportunityLineItem li : lineItems) {
            lines.add(new Map<String, Object>{
                'productSku'  => li.Product2.ProductCode, // external code, not SF ID
                'quantity'    => li.Quantity,
                'unitPrice'   => li.UnitPrice
            });
        }
        return lines;
    }
}

Data Strategy: Never Make Salesforce the Only Copy

Real-time or near-real-time data replication to a data warehouse — Snowflake, BigQuery, Databricks — means that your CRM data exists in a platform-neutral format outside of Salesforce. This serves two purposes: operational analytics can run against the data warehouse rather than against Salesforce's API (removing query volume pressure), and in a migration scenario, the data warehouse becomes the source of truth for the migration rather than Salesforce itself.

Tools like Fivetran, Airbyte, and Salesforce's own CRM Analytics data pipelines make this replication operationally straightforward. The architectural commitment is to treat the data warehouse as the analytical system of record, with Salesforce as the operational system of record for CRM data. This separation is good practice regardless of any migration consideration — it also means that Salesforce API limits don't constrain your reporting capability.

Process Documentation: Independent of the Platform

Business processes should be documented in platform-neutral terms. Not "the Flow starts when an Opportunity is created" — but "the sales qualification process begins when a potential deal is identified, proceeds through these stages, requires these approvals at these thresholds, and concludes with these outcomes." That documentation describes what the business does. The Flow is one implementation of it.

This practice is rarely followed, because it creates work and the immediate value is not obvious. Its value becomes clear when a project wants to change a process and discovers that the only documentation is the Salesforce configuration itself. Or when a migration is being planned and nobody can describe the processes in target-platform terms. Process documentation is a governance discipline that pays dividends at renewal time, at migration time, and every time a new team member needs to understand how the business operates.

Contract Management: What to Negotiate at Renewal

Enterprise Salesforce agreements are negotiable, particularly at renewal time and even more so if you have a significant annual spend. The specific items worth negotiating from a lock-in perspective:

  • Data portability commitments: An explicit contractual commitment that Salesforce will provide full data export in a documented format within a defined timeframe, including in a termination scenario. This is standard in well-drafted enterprise agreements and should not require significant negotiation — but it should be explicit, not implied.
  • Extended export access post-termination: How long does API access remain available after a contract terminates? For a migration that takes 18–24 months, you need data export access for the duration of the migration, not just until contract end.
  • Licence flexibility: Can you reduce licence count if headcount reduces? Many standard agreements have minimum commitment floors that prevent downward adjustments. Negotiating floor flexibility protects against overpayment during periods of contraction.
  • Pricing visibility: Understanding what triggers price increases — and negotiating caps on annual increases — matters for long-term cost modelling. Enterprise agreements without price caps expose you to increases that erode the business case that justified the initial investment.

Healthy vs Unhealthy Dependency

Not all dependency on Salesforce is strategically problematic. The goal is not to minimise dependency — a platform delivers value proportional to how deeply you use it — but to distinguish between dependencies that are appropriate given the platform's purpose and dependencies that represent an organisational or strategic risk.

What Healthy Dependency Looks Like

Healthy Salesforce dependency has the following characteristics:

  • Salesforce is the CRM of record. Customer data, sales pipeline, service cases, and customer interactions are managed in Salesforce. This is what it was purchased to do. Deep dependency here is appropriate.
  • Clean API boundaries exist between Salesforce and other systems. Each integration has a documented interface that is understood on both sides. Neither system has knowledge of the other's internal implementation.
  • Business logic is distributed, not concentrated in Salesforce alone. Processes that belong to your business — pricing logic, order management, financial reconciliation — live in systems you control, not exclusively in Salesforce Flows and Apex.
  • Your team can describe your processes in platform-neutral terms. Sales qualification, case handling, contract approval — these processes are documented outside of Salesforce and would be recognisable to someone who had never seen your Salesforce configuration.
  • The exit cost is understood. Not because an exit is planned, but because understanding the cost is part of responsible platform governance. If you know it would take 24 months and cost £15M to migrate, you can have an informed conversation about whether your current contract terms, pricing, and relationship with Salesforce are appropriate.

What Unhealthy Dependency Looks Like

Unhealthy Salesforce dependency has a different signature:

  • All meaningful business logic lives in Apex and Flow. Every business rule, every calculation, every process step is implemented in Salesforce-proprietary technology, with no external documentation and no external equivalent.
  • Every department depends on a single org. Sales, service, marketing, operations, finance, HR — all running on a single Salesforce org with tightly coupled processes and no clear domain boundaries. The org has become the enterprise operating system, not a purpose-specific CRM tool.
  • No data exists outside of Salesforce. Reports are built in Salesforce, analytics run in CRM Analytics, exports don't happen because "everything's in Salesforce." Salesforce is both the operational system and the analytical system for the whole business.
  • The renewal negotiation is conducted under duress. Because the switching cost is understood to be prohibitive, the renewal conversation happens from a position of zero leverage. Salesforce increases prices by 15%; you accept, because the alternative is unthinkable.
  • Platform failures are business failures. A Salesforce outage means your business cannot operate at all — not because the platform is critical infrastructure (which it may legitimately be) but because no fallback process or system exists.

The Test

The clearest test for process lock-in is this: could you describe your core business processes — lead management, opportunity qualification, case handling, contract approval — to a team who would implement them in a different system, without referencing Salesforce's specific capabilities or UI at all? If the answer is no — if "the process" is "fill in this Salesforce screen and click Submit" rather than "gather these data points, apply these criteria, route for approval when this threshold is met" — you have process lock-in. The Salesforce implementation has become the process, rather than an implementation of it.

The Strategic Verdict

The honest conclusion from a careful analysis of Salesforce lock-in is this: some lock-in is the price of using a mature platform with deep capabilities. You do not get the AppExchange ecosystem, the three-releases-a-year cadence, the established talent pool, or the twenty-five years of enterprise CRM development without accepting that leaving would be difficult and expensive. That is a reasonable trade-off for most organisations.

The strategic error is not accepting that trade-off. The strategic error is not knowing you've made it. Organisations that go into Salesforce with a clear-eyed assessment of the dependency profile — that understand which types of lock-in they're accepting, that have made architectural choices to limit the categories they're most exposed to, and that have contract terms that reflect their negotiating position — are in a fundamentally different position at renewal time than organisations that simply implemented and assumed optionality.

The Decision Framework: Assess and Manage by Layer

The practical approach to managing Salesforce vendor risk is to apply the four-layer framework to your own org and assess your exposure in each dimension:

  • Technical lock-in: Inventory your Apex classes, Flows, and LWC components. Estimate the rebuild effort. Is this an acceptable sunk cost given the platform value you receive? Are you growing this dependency faster than the value justifies?
  • Data lock-in: Do you have a data warehouse with real-time replication? Can you export all your critical objects today? Have you tested a full data export within the last 12 months? If not, schedule one.
  • Process lock-in: Can your team document your five most critical business processes in platform-neutral terms? If not, that documentation project is more valuable than you think — not just for migration scenarios, but for onboarding, for change management, for regulatory compliance.
  • Commercial lock-in: What is your total annual Salesforce spend, including licences, Premier Support, and AppExchange products? What are your exit clauses? What is your next renewal date and what is your negotiating position? These are questions you should be able to answer at any point in the contract cycle, not only in the 90 days before renewal.

The goal is not to be locked in or to be free of lock-in. The goal is to make a deliberate, informed decision about the trade-off — and to have the architectural posture and governance practices to keep that decision under review as the platform, your business, and the competitive landscape evolve.

Salesforce has been the dominant enterprise CRM platform for twenty years. It will almost certainly remain relevant for the next decade. The organisations that extract the most value from it are not the ones that minimise their dependency — they are the ones who manage it intelligently, use it for what it's good at, and maintain the institutional clarity to know what they've committed to and why.

Key Takeaways

  • Salesforce lock-in has four distinct types — technical, data, process, and commercial — with very different risk profiles. Technical lock-in is finite and quantifiable; process and commercial lock-in are the real strategic risks.
  • A realistic migration timeline for a large enterprise Salesforce org is 18 to 36 months, with a total cost that typically exceeds the original implementation investment. "We could always leave" is a statement that should be grounded in this reality.
  • The AppExchange ecosystem, Agentforce/Einstein AI capabilities, and the CRM Analytics data model represent the hardest-to-replace elements of the Salesforce platform — harder than Apex code, which can be inventoried and estimated.
  • API-first architecture — treating Salesforce as one node with clean integration boundaries, not as the hub of all business logic — is the most important architectural choice for managing long-term platform dependency.
  • Real-time data replication to a data warehouse means Salesforce is never the only copy of your data. This serves analytics performance and migration optionality simultaneously.
  • Healthy dependency means Salesforce is the CRM of record with clear domain boundaries; unhealthy dependency means all business logic, all data, and all processes live exclusively in Salesforce with no external documentation or equivalent.
  • Contract management is a strategic activity, not a procurement task. Data portability commitments, post-termination export access, and price cap negotiation should be explicitly addressed in every enterprise agreement renewal.

Checkpoint: Test Your Understanding

1. A CTO argues that their organisation has minimal Salesforce lock-in because "all our data is accessible via the Bulk API and all our code is documented." Which form of lock-in are they most likely underestimating?

A. Technical lock-in — Apex code cannot be ported to any other platform without a complete rewrite
B. Data lock-in — Bulk API export doesn't preserve relational integrity between objects
C. Process lock-in — business processes rebuilt inside Salesforce Flows, validation rules, and approval workflows cannot be described or reproduced in platform-neutral terms without a separate documentation effort, and this is typically the most expensive element of a migration
D. Commercial lock-in — multi-year contracts with early termination penalties are the binding constraint

2. An architecture team is designing integrations between Salesforce and an external ERP system. Which pattern best reduces long-term platform lock-in?

A. Build all integration logic in Apex so it can be managed within the Salesforce release cycle and deployment toolchain
B. Design clean API boundaries where each system communicates through documented interfaces, with business logic residing in the system that owns the relevant domain — ensuring that replacing either system requires only rebuilding the adapter, not rebuilding the logic
C. Use Salesforce Platform Events for all integration traffic, as this is the most scalable pattern for Salesforce-to-external communication
D. Avoid real-time integration and use batch data exports to minimise API dependencies

3. An enterprise org is approaching Salesforce contract renewal with a large multi-year spend. What is the single most important contractual item to negotiate from a platform risk perspective?

A. Salesforce Premier Support inclusion — faster support SLAs reduce the operational risk of platform issues
B. Unlimited storage included in the base licence — data storage overages are a common source of unexpected cost
C. Data portability commitments and extended API access post-termination — these ensure that a migration remains feasible throughout and after the contract period, preserving genuine optionality rather than nominal optionality
D. A clause permitting the use of third-party deployment tools — this reduces dependency on Salesforce's native change management tooling

Discussion & Feedback