The complete guide · Salesforce implementation

How to implement and integrate Salesforce properly: the complete guide

Everything we actually do when we implement, configure, and connect a Salesforce org, written out in full. Platform architecture and objects, Sales Cloud and Service Cloud setup, custom development with Apex and Lightning, Flow automation, data migration, integrations with the rest of your stack, reporting, and driving real adoption. No generic best-practice platitudes. The actual method.

A working reference for teams planning or inheriting a Salesforce implementation. When you want it done, start with a free audit.

Salesforce is sold as a platform that does everything out of the box. It does not. The default configuration fits almost no real business, and the gap between what ships and what your team actually needs is exactly where implementations fail. This guide covers the gap in full: how the platform is structured, how we model data, how we automate without creating a maintenance nightmare, how we migrate cleanly, and how we connect the rest of your stack without creating a fragile spaghetti of API calls.

How Salesforce is structured

Salesforce is a multi-tenant cloud platform built on a metadata-driven architecture. Everything you configure, from objects and fields to Flows and page layouts, lives as metadata in your org. That is what makes deployments and version control possible: you are moving metadata between sandboxes and production, not code in the traditional sense.

The platform divides into clouds, each targeting a different part of the business. The two you will most commonly implement are Sales Cloud, which manages pipeline, accounts, contacts, opportunities, and leads, and Service Cloud, which adds Cases, Omni-Channel routing, a knowledge base, and contact-centre tooling. They share the same underlying platform and can be combined in one org.

Salesforce platform layers and the objects each one adds
INTEGRATION LAYER: REST API, Connected Apps, middleware, outbound messages SALES CLOUD Leads, Accounts, Contacts, Opportunities, Campaigns, Forecasting SERVICE CLOUD Cases, Entitlements, Knowledge, Omni-Channel, Live Agent SHARED PLATFORM CORE Custom Objects, Apex, Flow, LWC, Reports, Dashboards, Metadata API, Security model Salesforce multi-tenant cloud infrastructure
Sales Cloud and Service Cloud sit on a shared core. Custom objects, Apex, Flow, and Lightning Web Components are available in both. The integration layer exposes everything to external systems through a well-documented REST API, Connected Apps, and platform events.

Above the clouds sits your customisation: the custom objects and fields that model your specific business, the automation layer (Flow and Apex), the UI layer (Lightning page layouts and Lightning Web Components), and the integration layer that connects Salesforce to your other systems. Getting the sequence right matters because decisions made at the data model layer cascade upward through every other layer.

The free org audit and what it finds

Every engagement begins with an audit because the state of an existing org (or the requirements for a new one) determines everything downstream. For existing orgs we connect via a read-only Connected App and run a structured health check. For new implementations we run a requirements workshop before touching the platform.

The audit covers five areas:

  • Object and field usage. Which objects carry live data, which fields are actually populated, and which are cluttering every page layout unused. Most orgs have 30 to 60 percent of their fields empty across all records. That is noise on every screen.
  • Automation health. Every active Flow and Apex trigger, when it last fired successfully, what it does, and whether any are conflicting with each other. Orgs that have had multiple admins over the years typically have overlapping automations running in undefined order.
  • Integration status. Which external systems are connected, whether the sync is bidirectional, when each last transferred data, and whether there are error logs indicating silent failures.
  • Data quality. Duplicate accounts and contacts (run through a standard matching rule), records with missing required fields, and fields with values that no longer match current picklist entries.
  • User adoption. Login frequency by profile, which objects are accessed most, and whether the pipeline stages in the org reflect how the team actually works or what the original implementer assumed they would do.

The output is a prioritised roadmap. Every item has the business impact quantified, the effort to fix it, and whether it can be addressed declaratively or needs development. You receive this before any contract is signed.

Object model and data design

The object model is the foundation. If you get it wrong, you end up with workarounds layered on workarounds, reports that require complex SOQL to be useful, and automations that break whenever the data changes shape. This is where most underspecified implementations go wrong.

Salesforce provides standard objects for the most common entities: Account, Contact, Lead, Opportunity, Case. These are fine starting points. The question is when to extend them versus when to build a custom object. The rule of thumb is straightforward:

  • Extend a standard object with custom fields when the entity you are modelling is genuinely the same kind of thing (an Account is still a company; a Contact is still a person).
  • Build a custom object when the entity has its own lifecycle, its own relationships, and its own pipeline that does not map to any standard object.

Relationships between objects in Salesforce are either lookup (soft, the child can exist without the parent) or master-detail (hard, deleting the parent deletes the child, rollup summaries are possible). Choose incorrectly and you cannot run the rollup reports you need, or you lose data when parent records are merged or deleted. We document the relationship type and the cascade-delete behaviour for every relationship we create, because it affects how you can query and what happens at scale.

Sales Cloud setup

A well configured Sales Cloud setup eliminates the friction between how your team sells and what the system expects of them. The biggest friction point in almost every default setup is the lead lifecycle: how a new name becomes a qualified contact and when it becomes an opportunity.

We approach Sales Cloud setup in four pieces:

Lead qualification and conversion

Lead routing assigns new leads to the right rep, territory, or queue. Lead scoring (via custom fields, scoring rules, or a connected marketing automation platform) surfaces the leads worth calling now. Conversion maps lead fields to the Contact, Account, and Opportunity that result from it, so none of the original context is lost. Most default setups lose data at conversion because the field mapping was never configured.

Opportunity pipeline and stages

Opportunity stages have to reflect how the team actually closes deals, not a generic sales methodology. We interview the team, map the real stages to the probability figures Salesforce uses for forecasting, and write entry and exit criteria for each stage so the forecast is meaningful. A pipeline with arbitrary stage labels produces forecasts nobody trusts.

Forecasting and quotas

Collaborative Forecasting in Sales Cloud can aggregate expected revenue by rep, manager, and product family in real time. Getting this right requires the stage probabilities to be calibrated, the hierarchy to match the real reporting structure, and quota records to be loaded. It is rarely set up correctly out of the box because it requires both configuration and data to be in place simultaneously.

Email and activity capture

Reps will not log calls and emails manually at scale. Einstein Activity Capture or a third-party tool like Ebsta or Groove can sync email and calendar from Gmail or Outlook automatically. The tradeoff is data volume and storage costs. We configure this with retention policies that keep the data useful without blowing up your storage bill.

Service Cloud setup

Service Cloud is built around Cases: the unit of work for a support request. The configuration questions are how cases arrive, how they are routed, how the team works them, and what the customer sees.

Case intake channels

Cases can originate from email-to-case, web-to-case forms, phone calls (via CTI integration), chat, social, and self-service portals. Each channel has different setup requirements and different data enrichment possibilities. We configure the channels your team actually uses first, then add complexity from there.

Omni-Channel routing

Omni-Channel routes work items (cases, chats, calls) to agents based on availability, capacity, and skill. The routing model needs to reflect how your team is actually staffed. A routing configuration written for an idealised team structure that does not match reality will queue cases in the wrong buckets from day one.

Entitlements and SLAs

Entitlements define what support a customer is owed and by when. Milestones define the actions that must happen within those SLAs. This is one of the most underused features in Service Cloud, because setting it up correctly requires your support contracts to be mapped and your escalation logic to be agreed. When it is configured, Salesforce surfaces which cases are at risk of breaching SLA in real time, which is the only way to manage a support team proactively rather than reactively.

Automation: Flow and Apex

Automation is where the real productivity gains come from. It is also where most of the technical debt accumulates, because automation added over time without a governing design pattern becomes impossible to understand or maintain.

Automation decision tree: when to use Flow versus Apex
Automation requirement Can Flow handle the logic? Yes Use Flow Easier to maintain; no No Bulk or real-time API callout? Yes Use Apex trigger or @future / Queueable class No Flow with Apex action (invocable method)
Salesforce's own guidance is Flow-first. Apex is more powerful but harder to maintain and requires a developer for future changes. The right answer is usually: push as much as possible into Flow, and use Apex only where Flow hits a hard limit or where bulk processing at scale requires it.

Flow design principles

The most common mistake we see in Flow is a single Flow that tries to do everything triggered by a record change. It starts with two decision nodes and grows over three years into something nobody understands. We separate concerns: one Flow per process, each Flow doing one job, each documented with a description field that says what it does and when it was last reviewed. Flow versions accumulate quickly; we activate only one version per Flow and clean up inactive versions during the engagement.

Governor limits and bulkification

Salesforce enforces governor limits to protect the shared infrastructure from runaway processes. The most commonly hit limit is the SOQL query limit (100 queries per transaction) and the DML limit (150 statements per transaction). Apex that queries inside a loop hits the SOQL limit almost immediately at any real data volume. We write all Apex with bulkification in mind from the start: queries outside loops, collections processed as sets. Flow is also subject to limits, though the limits are different and the platform handles more of the bulkification automatically in recent releases.

Data migration and deduplication

Data migration is the step most implementations underestimate. The work is not moving records; it is deciding what to move, cleaning it before it arrives, and verifying it after. Bad data migrated into a fresh org corrupts every report, every automation, and every integration downstream.

Data migration pipeline: three passes before production
SOURCE EXTRACT PROFILE + DEDUPLICATE SANDBOX LOAD VALIDATE CLEANSE + RE-PROFILE PRODUCTION LOAD Export + field map Match rules, merge candidates Check counts, spot issues Fix what sandbox revealed With rollback plan ready
We never load source data directly into production. The sandbox pass reveals problems that only appear when data lands in the real org structure: field type mismatches, picklist values that no longer exist, lookups that cannot resolve. Fix those before the production load, not after.

Deduplication strategy

Salesforce's Duplicate Management uses matching rules to identify near-duplicates before they are created and duplicate rules to block or alert on them at save time. This prevents future duplicates but does nothing about existing ones. We run the Data Quality Analysis Dashboards or a dedicated tool (DemandTools, CRMFusion) to surface the existing duplicate set, then work through a merge strategy: automated merges for high-confidence pairs, manual review queue for ambiguous cases, and a survivor rule that defines which fields from which record win when merging.

Field mapping and transformation

Source data fields rarely map cleanly to Salesforce fields. Picklist values differ, phone numbers are in different formats, addresses need splitting, and related records need to be resolved to Salesforce IDs. We document every transformation in a migration spec before writing a single line of code, and we validate the spec against a sample load before running it at full volume.

Integrations with your stack

Salesforce rarely lives in isolation. The question is not whether to integrate but how, and the answer is different depending on the volume, latency, and criticality of the data flowing across the connection.

Integration topology: Salesforce as the record-of-truth at the centre of the stack
Salesforce CRM / Service ERP / Finance accounts, invoices, products Marketing Automation leads, campaigns, scores Telephony / CTI calls, recordings, notes Payments orders, subscriptions Analytics / BI reporting, data warehouse E-commerce / Portal orders, customers, tickets
Salesforce works best as the operational record of truth for customer relationships, with adjacent systems feeding it context (marketing signals, payment status, telephony notes) and reading from it for their own workflows. The integration pattern for each spoke depends on the data volume, latency requirement, and whether the flow needs to be bidirectional.

Choosing the right integration method

The options, in order of increasing complexity and maintenance cost:

  • Native connectors. Salesforce ships with connectors for common marketing automation platforms (Pardot/Marketing Cloud), Google Workspace, Slack, and others. Use these first if they cover the use case. They are maintained by Salesforce and survive releases without breaking.
  • Middleware platforms. MuleSoft (Salesforce-owned, enterprise grade), Make, Zapier, Boomi, and similar tools handle the mapping, transformation, and error handling between systems without requiring custom code. The right choice depends on the volume and the complexity of the transformations needed.
  • Direct API integration. Salesforce's REST and SOAP APIs are well documented and reliable. Direct API integrations give the most control and the lowest per-call cost, but carry the highest maintenance cost. Use them when middleware cannot model the logic, when you need extremely fine control over error handling, or when volume and latency requirements rule out a third-party service.

Platform events and change data capture

For real-time integrations where latency matters, Salesforce Platform Events let external systems subscribe to changes in the org without polling. Change Data Capture publishes changes to Salesforce records as events, which downstream systems can consume reliably without querying the API on a schedule. We use these patterns for high-frequency, low-latency scenarios like order status updates or case escalation notifications.

Reporting and dashboards

The default Salesforce reports are a starting point, not a finished product. The reports your team actually uses have to be built from the data your team actually tracks, displayed at the access level of the person reading them, and embedded in the workflows they are already in.

We approach reporting in three tiers:

  • Operational reports. What does a rep need to see every morning? What does a team lead need to run a weekly pipeline call? These are embedded directly in the home page or in Lightning app pages. They are simple, fast, and wrong only when the underlying data is wrong, which is why clean data migration comes first.
  • Management dashboards. Pipeline by stage, conversion rates by source, case resolution time by agent, SLA compliance by tier. These refresh on a schedule and are the source of truth for the weekly leadership review. We build them once we have validated that the underlying data model is correct, because a dashboard built on a broken object model produces confident-looking wrong numbers.
  • Executive summary. Revenue at risk, forecast vs target, support volume and sentiment trend. These typically pull from multiple objects and may require a joined report or a CRM Analytics (formerly Tableau CRM) dashboard if the data complexity exceeds what the standard report builder can handle.

Adoption and training

The most complete implementation fails if the team does not use it. Adoption is not a training problem; it is a design problem. If the system is harder to use than the spreadsheet it replaced, people will use the spreadsheet.

The decisions that drive adoption are made in the design phase, not the training phase:

  • Page layouts tuned to role. A rep does not need to see all 60 fields on an Account record. They need the 8 that matter on the call. We build page layouts for each profile that surface the right information and hide the rest.
  • Required fields set deliberately. Every required field is a speed bump at save time. We only make a field required when the data is genuinely needed to move to the next stage, not because it would be nice to have.
  • Quick actions and compact layouts. Logging a call should take under 30 seconds. Quick actions on the mobile app and compact layouts on the record header are the difference between a system people update in the moment and one people update at the end of Friday from memory.
  • Metrics the team controls. If the only data in the reports is data only management sees, reps have no incentive to keep it current. Build at least one report they use for their own performance tracking.

Training covers the mechanics, but what actually lifts adoption is the combination of a well-designed system, a go-live moment with clear messaging about what changed and why, and a named person to call when something looks wrong. We schedule a go-live call, a two-week check-in, and a four-week retrospective as part of every engagement.

The engagement model

Every engagement is fixed scope and fixed price. The scope is written before any work starts, based on the free audit findings, and nothing expands without a signed change order.

We run implementations in three phases with clear handover points:

  • Phase 1, foundations (weeks 1 to 3). Object model design and review, sandbox setup, permission sets and profiles, core page layouts, and the first round of automation (the critical flows your team depends on most). At the end of Phase 1 the team can start using the sandbox for UAT.
  • Phase 2, build (weeks 4 to 8). Remaining automations, custom development if in scope, integration connections, and the data migration sandbox pass. At the end of Phase 2 the sandbox looks like the production system and is ready for user acceptance testing.
  • Phase 3, go-live and handover (weeks 9 to 10). Production data migration, go-live support, admin training, and documentation handover. The deliverable is a system your admin can maintain without us.

One point of contact. You get one person who owns the relationship, the delivery schedule, and every escalation. Specifications arrive with acceptance criteria your team can check against. All source documents, data maps, and migration scripts are yours to keep at handover.

What does not work

A short, honest list of the things we will not do, because they waste money:

  • Building the data model on assumptions. Object design done without interviewing the actual users produces a system that maps to a theoretical sales process, not the real one. The requirements workshop is not optional.
  • Migrating without a deduplication pass. Duplicate data in a new system does not get better with time. It gets worse as more records accumulate. The deduplication pass is non-negotiable before production load.
  • Open-ended retainers for implementation work. Time and materials engagements for implementation give you an incentive misalignment. We scope it, price it, and deliver it fixed. Ongoing support after go-live is a separate, smaller arrangement.
  • Automations without a one-flow-one-job rule. The mega-Flow that handles every case is unmaintainable within a year. Every automation has a documented purpose and owns one job.
  • Integrations built without an error strategy. An integration that silently fails is worse than one that was never built, because you do not know you have dirty data until someone makes a decision on it. Every integration we build has an alerting mechanism for failures.
  • Training without a role-appropriate system design. Training is the last step, not the fix for a bad design. If the system is hard to use, training makes it slightly less hard to use. Good design makes training almost unnecessary for day-to-day tasks.

Frequently asked questions

How long does a Salesforce implementation take? +
A focused Sales Cloud setup for a team of 10 to 30 reps typically takes six to ten weeks from kickoff to go-live. Larger orgs with Service Cloud, complex automations, and data migrations from legacy systems can run three to five months. We scope the work before any engagement starts so you see the timeline and the price before you commit.
Do you resell Salesforce licences? +
No. We are an implementation and integration consultancy. You hold your own Salesforce contract directly with Salesforce. We configure, build, migrate, and connect the platform on your behalf, then hand you a system your team can actually run.
When should we use Flow versus Apex? +
Salesforce recommends Flow-first: declarative automation is easier to maintain and does not require a developer for future edits. Use Apex when logic is genuinely too complex for Flow, when you need bulk processing at large scale, or when you need to call external APIs mid-process in a way Flow cannot handle.
How do you handle data migration? +
We run in three passes: extract and profile the source data, deduplicate and cleanse against your matching rules in a sandbox, then load into production with a rollback plan. We never migrate directly from source to production without a validated sandbox pass.
What is the safest way to integrate an external system with Salesforce? +
Start with Salesforce's native connectors if the external system supports them. If not, evaluate middleware (MuleSoft, Make, Boomi) before building direct API code. Direct REST or SOAP integrations give the most control but carry the highest maintenance cost; use them when middleware cannot model the logic you need.
What does it cost? +
Implementations are fixed scope and fixed price. The number depends on which clouds you are on, the volume of custom development, whether you need a data migration, and how many integrations are in scope. We share a specific figure after the free audit, because the right scope depends on where you are starting from.

That is the full method. When you want it applied to your org, the next step is a free audit: a real health check against your live org, with a prioritised roadmap, in about a week, with no obligation.

Get a free Salesforce audit

Ready to put this to work on your org?

A free health check on your real Salesforce data, the findings quantified, and a fixed scope to fix what matters. Findings in a week.

Get a free Salesforce audit
No credit card · You keep the roadmap · 24h reply

Related reading

Related reading

Related reading

Related reading

Get a free Salesforce audit