Solutions
Implementation Org Review Org Monitoring Managed Services
Agents
Discovery Agent Metadata Agent Design Agent Build Agent Test Agent Governance Agent Support Agent
Industry Solutions
Financial Services
Healthcare & Life Sciences
NDIS & Disability Services
Nonprofit
Not-for-Profit
Other Industries
Recruitment & Staffing Real Estate Cosmetic Procedures
Agentforce Claudeforce Blogs Pricing

Salesforce Documentation with AI: Design Docs and Release Notes That Stay Current

Documentation does not rot at random. It rots on a schedule, and the schedule belongs to Salesforce.

Three major releases land each year. Admins change configuration continuously between them. Agents now change configuration too. Against that, a Confluence page edited by hand whenever somebody remembers has no chance, and the usual response is to write more of them.

A better response starts from an awkward fact: most of what teams write by hand is already recorded somewhere machine-readable. Not all of it, and the part that is missing is the part worth paying a human to write. Separating those two is the entire discipline.

Your org logs every setup change and names the AI agent that made it

Start with what already exists, because teams routinely document around it.

Setup Audit Trail tracks setup changes made by admins. Salesforce’s Help page is specific about what it gives you. On screen, history shows the 20 most recent setup changes made to your org, listing the date of the change, who made it, and what the change was. To get more, you download the complete setup history for the past 180 days, and after 180 days, setup entity records are deleted.

Two columns in that log matter more than the dates. When a delegate such as an admin or support representative makes a change on behalf of an end user, the Delegate User column shows the delegate’s username while the User column shows the person who granted access. And in a line worth reading twice: if an admin makes a change using an AI agent via Setup with Agentforce, which Salesforce marks Beta, the agent’s name and ID are listed in the AI Agent column, with the admin listed in the User column.

Configuration changes now carry agent attribution at the platform level. Any documentation standard written before that column existed has no field for it.

Salesforce also points at an agentic way to query the log rather than scroll it, suggesting you ask the Setup agent something like showing changes made by a named user during the last 100 days. Reading the audit trail is no longer a manual task, which removes the most common excuse for not reading it.

Setup Audit Trail proves a change happened and discards why

Here is where the log stops, and where documentation has to start.

An entry telling you that a validation rule was modified does not tell you what inside the rule changed, which requirement drove it, or which alternative was rejected. The log is an attendance register, not an explanation. Add the 180-day deletion and a change made nineteen months ago has no surviving record at all beyond its effect on the org.

So the durable content of Salesforce documentation is reasoning, constraints and intent. Configuration state is a renewable resource, retrievable from the org whenever you want it. Decision rationale is not renewable, and once the people who hold it leave, it is gone. Design decisions and their rejected options belong in the document that records them before build, and what the org currently contains belongs in a read of the metadata itself.

Teams get this backwards with impressive consistency. They hand-maintain field inventories that a metadata query regenerates in seconds, and they leave the Description field on those same fields empty.

Salesforce sorts every release feature into four activation classes

Release notes are the second half of this problem, and most teams summarize them wrongly because they summarize the wrong axis.

Salesforce publishes a matrix called How and When Do Features Become Available, and its columns are the useful part. Every feature in a release is marked against four of them: Enabled for users, Enabled for administrators and developers, Requires administrator setup, and Contact Salesforce to enable.

Activation classWhat it means for your usersWhat your release note should say
Enabled for usersBehavior changes at release with no action from youWarn people before the date
Enabled for administrators and developersAvailable to privileged users onlyNote who can see it and who cannot
Requires administrator setupNothing happens until somebody configures itName an owner and a decision
Contact Salesforce to enableNothing happens without a support requestRecord whether you want it at all

Only the first class changes anything on its own. Salesforce’s own framing of that column is a communications instruction: some features affect all users immediately after the release goes live, so consider communicating these changes to your users beforehand, while other features require direct action by an administrator before users benefit.

A release summary listing twenty interesting features is noise. A release summary listing the three that are enabled for users in your edition, and the two requiring setup that someone has now been assigned, is documentation.

Release Updates carry a Complete Steps By date that can move

One category inside the notes behaves differently from the rest and deserves its own treatment.

Salesforce describes release updates as improvements to the performance, logic, security and usability of its products, notes that some affect existing customizations, and states the mechanism plainly: every time a release update is created, it gets scheduled to be enforced in a future release. Schedules are announced as soon as they are known, and here is the part documentation has to respect, occasionally updates are postponed or canceled.

So the date to record is not the release that introduced the update. Salesforce calls it the Complete Steps By date, and many updates offer a Test Run option letting you enable the update and examine the changes to your org, customizations included, before that date arrives.

Documentation treating a release as the unit of change misses all of this. An update can appear in one release, sit unenforced through the next, and become mandatory in a third, so three sets of release notes mention it and only the date on the Release Updates page in Setup decides anything. Because that date can shift, a document stating it needs a last-checked stamp beside it rather than a copied value. The approval rhythm that should own those dates sits in the venue where a dated change gets accepted.

Release scope spans close to thirty sections, so filtering beats reading

Nobody reads a Salesforce release note end to end, and pretending otherwise is why release documentation gets skipped.

The Winter ’27 availability matrix is organized into section after section: Salesforce Overall, Release Updates, Agentforce and Generative AI, AIforce, Analytics, Automation, Commerce, Customization, Data 360, Deployment, Development, Experience Cloud, Field Service, Hyperforce, Industries, Marketing, MuleSoft, Mobile, Partner Cloud, Platform, Public Sector, Revenue Management, Sales, Salesforce CMS, Salesforce Suites, Security Identity and Privacy, Service, Slack Integrations, and more.

Close to thirty sections, of which a given org runs perhaps four. This is the single best use of a language model in Salesforce documentation, and it is not drafting prose. It is filtering a large structured document against a known inventory of what your org actually uses, then producing a short list with activation classes attached. The source is public, the output is checkable against it, and a wrong answer is visible immediately.

Preview and non-preview instances put your documentation on two clocks

A detail that quietly breaks release documentation: not every environment gets the release at the same time.

Preview instances are upgraded roughly six weeks ahead of production during every major release, and non-preview sandboxes see new features only when they are generally available, which puts a gap of roughly six weeks between the two. Which environments sit on which clock is covered in how you plan environments and their upgrade timing.

Documentation written against a preview sandbox describes behavior that production does not have yet, and documentation written against production misses what testers are already seeing. Stating which instance and which release a document describes costs one line and prevents a recurring class of confusion.

Three documentation classes, and only one of them should be written by hand

This is the operating model the rest of the page has been building toward.

Generated. Anything derivable from metadata: object and field inventories, automation lists, permission set contents, integration endpoints, dependency maps. Never maintain these by hand. Regenerate them, and treat any hand-written copy as a liability, because a stale inventory is worse than no inventory. Someone trusts it.

Subscribed. Anything Salesforce publishes on a cadence: release features filtered to your stack, Release Update Complete Steps By dates, retirements. You do not write these, you subscribe to them and filter them.

Hand-written. Decision rationale, rejected alternatives, business context, constraints you accepted, and the reasoning behind every deliberate departure from a standard pattern. This is the irreplaceable class, it is small, and it is what the other two exist to protect.

Most documentation effort is spent in the first class, where it has the least value and the shortest shelf life. Moving that effort to the third is the whole return.

One practical move is worth more than a documentation portal: use the platform’s own description fields. Descriptions on fields, objects, flows and permission sets travel with the metadata, survive deployment, appear to the next person in the place they are already looking, and can be retrieved programmatically. Documentation stored inside the thing it describes cannot drift away from it.

Agent documentation has no settled convention, which is a reason to write it now

Agentic scope introduces a documentation gap the ecosystem has not closed.

With deterministic automation you can read a flow and know what it does. With an agent you can read its instructions and still not know how it behaves, because behavior emerges from instructions, available actions, grounded data and a reasoning engine interacting. Salesforce’s own lifecycle guidance for agents treats testing and monitoring as continuing phases rather than one-time gates for exactly this reason.

Three things are worth recording for every deployed agent, and none has a standard home yet. What the agent is allowed to do, expressed as scope boundaries rather than a list of actions. What it should escalate, and to whom. What it was observed doing, taken from production traces rather than from the design intent. That third item is new in kind. Deterministic systems do not need a record of observed behavior because behavior equals specification; agents need it because behavior is evidence. How that evidence gets produced before release is covered in the evaluation cycle that proves agent behavior.

Write these while the build is fresh. There is no convention to copy, which means there is also nothing stopping you from setting one.

Current documentation reduces support cost by removing the question, not the ticket

Worth being precise about the mechanism, because the usual claim is vague.

Documentation does not reduce support cost by helping people resolve tickets faster. It reduces cost by preventing the investigation that precedes the ticket. An admin who can see why a validation rule exists does not open an inquiry about it. A developer who can see which integration owns a field does not spend an afternoon finding out. A new joiner who can read the rejected alternatives does not propose one of them in week three.

Each of those is an hour that never gets logged anywhere, which is why documentation value resists measurement and gets cut first. What you can measure is narrower and still useful: how often a change request arrives with the wrong assumption attached, and how long the discovery phase of a BAU request takes. Both move when the written record is current. Dead configuration that documentation keeps describing is a separate cost, addressed in retiring the configuration nobody uses.

GetGenerative.ai keeps the written record attached to the work that produced it

Documentation fails for a boring reason. Writing it is a separate task from doing the work, it happens after the decision is cold, and it competes with the next deadline.

GetGenerative.ai removes the separation. Its Discovery Agent captures scope, schedule and resourcing as discovery happens; its Design Agent produces the solution design from that same material; its Metadata and Build Agents work against the design; and its Testing and Support Agents carry it into run. Because one project context runs through all six, the written record is a byproduct of delivery rather than a chore scheduled after it. The alternatives an architect ruled out in week two are still attached to the design in week nine.

For an org already live, the same logic applies to business-as-usual change, where the Support Agent holds the thread between what was asked, what changed and what the documentation now says. You can see what ongoing org support covers if that is the half of the problem you have.

Where AI helps, and the one place it should not be trusted

A clear division, based on whether output can be checked against a source.

Use it for filtering release notes against your inventory, generating first-pass descriptions from metadata for human approval, summarizing audit trail exports into change narratives, translating technical designs for business readers, and detecting drift by comparing a document against current metadata. Each has a verifiable source, so an error is catchable.

Do not use it to reconstruct rationale after the fact. A model asked why a design decision was made will produce a fluent, plausible, invented reason, and because it reads exactly like the real thing nobody will question it later. That is the one documentation failure worse than a blank page, since a blank page tells the truth about what is known.

Record reasoning at the moment of decision or accept that it is gone. No tool recovers it afterwards.

Common questions on keeping Salesforce documentation current

How do you keep Salesforce documentation up to date?

Split it by source. Regenerate anything derivable from metadata rather than maintaining it, subscribe to anything Salesforce publishes on a cadence such as release features and Release Update Complete Steps By dates, and hand-write only decision rationale and constraints. Store descriptions in the platform’s own description fields where they travel with the metadata and survive deployment.

What does Setup Audit Trail actually record?

Setup changes with the date, who made the change, and what the change was. The screen shows the 20 most recent entries and a download gives the complete setup history for the past 180 days, after which setup entity records are deleted. A Delegate User column names anyone acting on another user’s behalf, and an AI Agent column names the agent and its ID when a change is made through Setup with Agentforce, which is in Beta.

How long does Salesforce keep setup change history?

180 days. After that, setup entity records are deleted, so anything you need beyond six months has to be exported and stored outside the org before the window closes.

What should a Salesforce release note summary include?

Each relevant feature with its activation class from Salesforce’s availability matrix, which marks features as enabled for users, enabled for administrators and developers, requiring administrator setup, or needing you to contact Salesforce. Features enabled for users need advance communication because they change behavior on their own. Release Updates need their Complete Steps By date recorded, and rechecked, since Salesforce can postpone or cancel a scheduled update.

Can AI write Salesforce documentation?

For anything with a checkable source, yes: filtering release notes against your org inventory, drafting descriptions from metadata, summarizing audit exports, and flagging where a document and the current metadata disagree. It should not be asked to reconstruct why a past decision was made, because it will produce a plausible invented rationale that reads like a record and is not one.

What needs documenting for an Agentforce agent?

Scope boundaries describing what the agent may and may not do, escalation conditions naming what gets handed to a human, and observed behavior drawn from production traces. The third has no equivalent in deterministic automation, where behavior matches specification, and it matters for agents because behavior is evidence rather than a given.

The Salesforce Presales Process: From First Call to Signed SOW

Presales gets judged on whether the deal closed. That is the wrong test, and it is why the function keeps getting measured a quarter too late.

A better test is whether the work done before signature holds up during delivery. A deal that closes on a scope nobody can build at the price quoted is a presales failure that arrives dressed as a win, and the person who finds out is the delivery lead three weeks in.

What follows treats presales as a sequence of decisions with evidence attached, because that is the only version of it that predicts margin.

PMI measured what separates high performers, and it happens before execution

Start with evidence, since this topic usually runs on assertion.

The Project Management Institute published the 16th edition of its Pulse of the Profession on 12 May 2026, titled Driving Success in Complex Projects. Its headline numbers describe an environment most Salesforce practitioners will recognize: 97 percent of project professionals managed at least one complex project in the past year, more than half of all projects now qualify as complex, and 81 percent say projects have become more complex in recent years, with 37 percent describing a significant increase.

Three findings in that report bear directly on presales.

One is the gap itself. Nearly one third, 31 percent, of complex projects fail to achieve the full scope of their intended benefits, which PMI notes is more than twice the rate reported for projects overall. Complexity does more than slow delivery. It erodes what the project was bought for.

Another is where high performers act differently. Among the practices PMI associates with effective complexity management, the first listed is sponsor alignment at initiation, which it defines as establishing shared understanding of what success looks like before execution begins. That practice is used by 39 percent of high performers against 30 percent of low performers. Both numbers are low, and the first one is the ceiling.

Third is the payoff. Projects that navigate complexity effectively are five times more likely to succeed, with PMI putting the success rate at 88 percent against 14 percent for teams only slightly effective or ineffective at managing it.

Read those together and presales stops looking like a sales support function. Shared understanding of success, established before execution, is a presales deliverable. Nobody else is in the room early enough to produce it.

Qualification decides whether the rest of the process is worth running

Every stage below produces something. This one produces a decision about whether to continue, and it gets skipped more than any other under pipeline pressure.

Four things need establishing on or shortly after the first call, and none requires a solution.

A named problem with a cost attached. Not an interest in Salesforce. A consequence somebody is already paying for, expressed in money, hours or risk. Without it there is no business case to build later, because there is nothing to compare the investment against.

An owner who can say yes. Named, with their approval threshold known. A sponsor who has to escalate your number is a sponsor whose timeline you cannot forecast.

A reason this is happening now. A compliance date, a contract expiry, a system being switched off, a funding window. Deals without a forcing event do not close, they age.

A budget range somebody has acknowledged. Not a precise figure. A range that neither party flinches at, established before you spend a week scoping.

PMI’s framework finding applies here with unusual force: projects using frameworks succeed at a rate of 72 percent against 61 percent without them, yet 35 percent of professionals used no framework at all on their most recent complex project. A written qualification standard is the cheapest framework a presales team can adopt, and most do not have one.

Discovery earns its name by changing what you would have proposed

Discovery that confirms your initial assumption was not discovery, it was a demo with questions.

Three layers need covering, and skipping the third is the usual cause of post-signature argument.

Process first. How the work runs today, including the parts that live in spreadsheets and the exception paths people have stopped mentioning because they are normal. Then data. What exists, where, in what state, and who owns it, because data condition determines more of your effort than feature count does. Then constraints. Integration dependencies, compliance obligations, release windows, the internal politics of a team that does not want this, and whatever the previous failed attempt taught the organization.

Constraints are where deals get mispriced. A requirement list is roughly the same length whoever writes it. What varies by an order of magnitude is the environment the requirements have to be met in.

Discovery output then routes forward: requirements get classified into what the platform does, what gets configured, what gets built and what gets dropped, which is handled in how each requirement is dispositioned before design, and the numbers attach through the method that makes an estimate defensible.

Einstein Conversation Insights turns recorded calls into searchable entities

Here is the stage where language processing does real work rather than decorative work, and Salesforce ships the mechanism.

Discovery produces conversation, and conversation is where requirements first get stated, usually imprecisely and rarely written down the same day. Einstein Conversation Insights records and analyzes calls for mentions of specific keywords, phrases and points of interest, in Salesforce’s own description, giving managers and reps visibility into mentions of competitors, products, custom keywords, pricing discussions and next steps.

Its limits are worth knowing, because they force a choice. An org can hold up to 100 custom insights, each insight can carry a maximum of 25 keywords, and each keyword is limited to 255 characters. Twenty-five keywords per insight is not many, which means you are selecting the entities that matter rather than cataloging everything: the integration names that signal scope, the compliance terms that signal effort, the competitor names that signal deal shape, the words that appear when a prospect is describing a workaround rather than a requirement.

What changes a presales team’s behavior is the aggregate view rather than the single call. Salesforce describes sales leaders extracting conversation trends and visualizing insights across voice and video calls, which turns a quarter of discovery conversations into evidence about which objections recur and which scope signals keep appearing.

Two considerations belong in your plan before anyone switches this on. Salesforce states that Einstein Conversation Insights stores some data using a public cloud provider located in the United States, and that data from European orgs is stored in Europe while processing occurs in the United States, which is a conversation to have with a prospect’s legal team rather than after it. And it is not available everywhere: Salesforce lists it for Starter, Pro, Enterprise, Performance, Unlimited and Agentforce 1 Sales editions, and states it is not supported in Experience Cloud sites or Government Cloud.

GetGenerative.ai runs discovery as a producing stage rather than a meeting

Presales work is mostly reformatting. One set of facts gets written into a discovery summary, a requirement list, an estimate, a proposal and then a statement of work, each time by hand, each time with a chance to drift from the version before it.

GetGenerative.ai collapses that. Its Discovery Agent takes discovery inputs and produces scope, schedule and resourcing together, so the estimate and the scope derive from one record rather than being reconciled later. Its Design Agent carries the same material into solution design, and because the Build, Testing and Support Agents work from that design, the reasoning captured during presales is still attached when delivery starts. That makes the handoff problem above structural rather than cultural, and one shared project context is what removes it.

Judgment stays human. Qualification, the read on a sponsor, and the decision to walk away are not agent work. Drafting, structuring and keeping five documents consistent are. You can see what the agents cost to run before putting a pipeline through them.

Solution shape precedes solution detail, and the shape is what you price

After discovery, resist designing. What the deal needs at this point is shape, not specification.

Shape means the decisions that move the number by multiples: single org or multiple, which clouds are in the first phase and which wait, what integrates in release one, whether data migration carries full history or a cutoff, and how much of the requirement list is being met by configuration against build. Detail means field names, and field names have never changed a price.

StageWhat it must produceWhat disqualifies
First callA named problem, an owner, a forcing event, a budget rangeNo consequence anyone is paying for
DiscoveryProcess, data condition, constraintsAccess to the people who know the process is refused
Solution shapePhase boundaries and the config-versus-build splitNo agreement on what waits until phase two
ProofEvidence the risky assumption holdsThe risky assumption cannot be tested before signature
CommercialsA pricing model matched to scope certaintyFixed price demanded on undefined scope
SOWObligations, acceptance, change controlNobody will own the client-side obligations

Which pricing model fits what you have learned is its own decision, covered in choosing between fixed, time and materials and outcome-based. Demos belong here too, after shape and before commercials, because a demo given before you know the shape is a product tour, and a demo structured to win the room depends on knowing which three decisions the room is actually weighing.

Proof exists to test the assumption that would hurt most

Not every deal needs a proof stage. Those that do carry most of their risk in a single assumption.

Name it explicitly and the proof designs itself. If the risk is that legacy data is too poor to migrate, the proof is a sample load with a reconciliation result. If the risk is that an integration endpoint cannot deliver the volume, the proof is a timed call against the real endpoint. If the risk is user adoption, the proof involves actual users, not stakeholders.

Scope the proof to that assumption and nothing else. Proofs expand to fill the time available, and a proof that demonstrates eleven capabilities while leaving the risky assumption untested has cost you weeks and bought you nothing. Whether the right instrument is a short technical proof or a production pilot with real users is a separate choice, set out in which one proves value faster.

Commercials convert what you learned into the right contractual shape

Pricing is a conversation the previous stages have already decided, if they were run properly.

Scope certainty, not deal size, selects the model. Where discovery produced a bounded scope with known data condition, fixed price is defensible and the client gets the certainty they want. Where it did not, a fixed price is a bet whose odds you have not calculated, and your own estimate uncertainty is the thing being wagered. Time and materials with a good-faith estimate is the honest instrument there, and saying so out loud is a stronger position than most presales teams expect.

A business case runs alongside this rather than after it, since a sponsor needs a number they can defend internally before they can approve one externally. That artifact is built in the business case a CFO will approve.

Everything above exists to make one document signable

The SOW is where presales output becomes enforceable, and its quality is a direct readout of the process that produced it.

A vague scope section means discovery did not finish. Missing client obligations means nobody established who would provide access, data or decisions. No change control means the forcing event was never understood, so nobody considered what happens when priorities move. Acceptance criteria absent means success was never defined, which is precisely the sponsor alignment PMI found separates high performers from everyone else.

Which clauses carry the commercial risk, and how the supplier side gets drafted, is the subject of the clauses a Salesforce SOW has to carry. What matters here is the direction of causation: you cannot write a tight SOW to compensate for loose presales. That document exposes the process behind it.

Handoff is a stage, and skipping it is where margin leaks

Presales usually ends at signature. Margin does not.

Three things have to travel into delivery, and only the first normally does. Scope always transfers, because it is in the contract. Reasoning, meaning why the phase boundary fell where it did and which alternatives were rejected, usually transfers as a conversation and then evaporates. And the assumptions, every one of which is a commercial risk that somebody in delivery now owns without having agreed to it.

Run the handoff as a stage with an output. A delivery lead who can state the three riskiest assumptions in the deal has been handed over to. One reading the SOW for the first time in week one has not. Where that reasoning gets recorded so it survives the transfer is covered in the document that holds design decisions and rejected options.

Questions that come up when the process gets written down

What are the stages of a Salesforce presales process?

Qualification, discovery, solution shape, proof where the risk warrants it, commercials, SOW, and handoff into delivery. Each stage produces something specific and each has conditions that should stop the deal rather than advance it. Qualification establishes a named problem with a cost, an owner who can approve, a forcing event and an acknowledged budget range.

What is the difference between presales and sales engineering?

They describe the same function, with sales engineer and solution engineer being the more common job titles. Search demand reflects this: Google Trends for the twelve months to October 2026 shows sales engineer attracting substantially more interest than presales process, which registers almost no measurable volume. Both titles describe identical work: qualifying, discovering, shaping a solution and defending the commercials behind it.

How long should Salesforce presales take?

Long enough that discovery changed what you would have proposed, and no longer. A useful constraint is the forcing event established during qualification, since that date sets the schedule. A deal with no forcing event has no natural length, which is one reason those deals age rather than close.

Does presales quality really affect delivery margin?

PMI’s 2026 Pulse of the Profession found that 31 percent of complex projects fail to achieve the full scope of their intended benefits, more than twice the rate for projects overall, and that establishing shared understanding of success before execution begins is a practice used by 39 percent of high performers against 30 percent of low performers. That shared understanding is produced during presales or not at all.

How can AI help in Salesforce presales?

Two uses hold up. Einstein Conversation Insights records and analyzes calls for mentions of specific keywords, phrases and points of interest, capped at 100 custom insights of 25 keywords each, and lets leaders extract conversation trends across voice and video calls. And generative drafting keeps the discovery summary, requirement list, estimate, proposal and SOW consistent, since those documents restate the same facts. Qualification judgment and the decision to disqualify stay with people.

What should transfer from presales into delivery?

Scope transfers automatically, because it is contractual. Reasoning behind the solution shape, including which alternatives were rejected and why. And the assumptions, each of which is a commercial risk that delivery inherits. A handoff is complete when the delivery lead can state the three riskiest assumptions without reading the contract.

Salesforce Security Review: Profiles, Permission Sets and Sharing Done Right

One disambiguation before anything else, because two different things carry this name.

If you arrived looking for the AppExchange Security Review, the assessment an ISV passes before listing a managed package, this is not that page. This covers reviewing permissions inside your own org: who can see which records, which fields, and through what mechanism. Both get called a Salesforce security review, and the second one is the review nobody schedules until something goes wrong.

It also became more interesting in June 2026, because Salesforce changed its position on the thing most permission roadmaps were built around.

Salesforce cancelled the retirement of permissions in profiles

Anyone planning permission work from guidance written before mid-2026 is working to a deadline Salesforce has since withdrawn.

Salesforce’s help article Permissions in Profiles Retirement Cancelled, published 6 June 2026, is direct about it. Profile permissions had been scheduled for retirement from Spring ’26. Salesforce now states that the enforcement is cancelled, and gives two reasons for the reversal: what customers told it, and feature gaps that remain unclosed.

Note the word. Cancelled, not postponed. This followed an earlier retreat from enforcing the Spring ’26 end-of-life date, so the pattern is two steps back from a stated deadline.

That same article keeps the recommendation while removing the compulsion. Profiles will continue to support permissions for now, and Salesforce recommends transitioning to a permission set-led security model for improved flexibility and scalability. It also names where the investment is going: improved user management in Setup, permission sets and permission set groups, and summary views with admin usability improvements.

What changes for you is the argument, not the direction. Migration was a compliance project with a date attached. Now it is an architecture decision you justify on merit, which is harder to fund and easier to postpone indefinitely.

GetGenerative.ai enumerates the permission model before anyone argues about it

Permission reviews stall at the first step, which is finding out what you currently have.

Nobody can review what they cannot enumerate, and a mature org holds permissions across profiles, permission sets, permission set groups, muting sets, sharing rules, role hierarchy, territory assignments, manual shares and whatever Apex sharing somebody wrote in 2019. Assembling that picture by clicking through Setup is why these reviews get scheduled and then quietly dropped.

GetGenerative.ai’s Metadata Agent reads the org’s permission metadata directly, which turns the inventory step from weeks of manual collation into something you can put in front of stakeholders on day one. The Design Agent then holds the target model, so the gap between current and intended state is a document rather than an argument. Where that fits a wider review of org condition is covered in the assessment that reads an org through its metadata.

Judgment stays with people. Deciding that finance should not see deal margins is a business decision, and no agent should make it. Finding every place that permission is currently granted is clerical work that should never have consumed a consultant’s week. If the ongoing version of that is your problem, what BAU org support covers sets out the running model.

Salesforce now assigns profiles six responsibilities and permission sets ten

Cancellation came alongside the clearest division of labor Salesforce has published, which makes it the right basis for a review standard.

Belongs in profilesBelongs in permission sets and groups
Default assigned appsObject permissions
Default record types and page layoutsField-level security
Login hoursUser permissions, system and app
Login IP rangesCustom permissions
Password policiesTab settings
Session settingsRecord types, non-default
Visualforce page access
Apex class access
Connected app access
Assigned apps, non-default

Two instructions accompany that table and both are quotable in a review document. Assign users the Minimum Access – Salesforce profile, or a clone of it, as the stated best practice. And avoid adding permissions directly to profiles where possible.

Read the right-hand column as your review scope. Every item there is something that should be grantable and revocable without touching a profile, and in most orgs several of them are not.

Permission set groups align to job function, not to person

Groups are the mechanism that makes a permission set model manageable rather than merely correct.

Salesforce’s guidance is to combine multiple permission sets into permission set groups, align those groups with user roles or job functions, and use them to simplify assignment and management. Design discipline here is simple: a group represents a job, a permission set represents a capability. One capability can appear in several jobs, which is the whole point and the reason this scales where profile cloning does not.

A review catches the failure mode quickly. Count your permission sets and your users. If the ratio is close to one to one, you have rebuilt profiles with a different object name and inherited none of the benefit.

User Access Policies automate assignment, which is where migrations actually fail

Designing the target model is the part teams enjoy. Moving thousands of users onto it is the part that stalls.

Salesforce’s migration recommendation runs in five steps: plan and document your current permissions model, design permission sets and groups based on user roles, use User Access Policies to automate assignments, test thoroughly in a sandbox environment, then roll out to production.

Step three is the one that makes the rest survivable. Manual reassignment across a large user base is slow, error-prone and impossible to repeat, so the policy mechanism is what converts a one-off project into a rule that keeps applying to new joiners. Step four deserves its own emphasis too, because permission changes behave differently against real data volumes and real role hierarchies, and the environment where that gets proven is a planning decision rather than an afterthought.

Field-level security is the fastest-rising question in this area

Worth knowing what people are actually asking, because it tells you where a review gets challenged.

Google Trends over the twelve months to late October 2026 puts average interest in permission sets slightly ahead of salesforce security review, with salesforce sharing rules far behind both. More useful than the ranking is the movement: the fastest-rising related query attached to salesforce security review is field level security in salesforce, up around 120 percent.

That matches where reviews find problems. Object-level access is visible and gets audited. Field-level security hides inside page layouts and permission sets, and a field that should be invisible to a role is usually invisible on the layout rather than restricted by permission, which means it remains available through reports, the API and now through agents.

Agents lose user identity by default, which breaks least privilege silently

Here is the part of a permissions review that did not exist two years ago, and it is the one with the sharpest consequences.

Salesforce’s architecture guidance on end-user identity propagation in agents states the problem plainly. User identity is lost by default. When an agent calls an MCP server or downstream API using client credentials, the request carries the agent’s service identity rather than the end user’s, and the downstream service has no way to know which user initiated the action, which makes per-user authorization and audit trails impossible.

Salesforce also names the trap on the other side. Passing the original user token through every hop violates the principle of least privilege, while using a service account loses the user’s identity. Neither default is acceptable, and the guidance is equally clear that propagating user tokens where they are not needed expands the attack surface.

Three patterns resolve it, and a review should establish which one applies to each agent action.

On-Behalf-Of, where user identity is preserved through a token exchange scoped to each downstream service, with no user interaction. Correct for user-specific data inside one trust domain, such as an agent retrieving a customer’s own records.

Server-to-Server, where user identity is deliberately not propagated and the calling service’s own credentials are used. Correct for public or system-level data, where propagating a user token would add exposure for no gain.

In-Task Authorization Code, where the user authenticates inline with an external provider during the conversation. Correct for cross-domain and higher-risk operations, where a token from your identity provider means nothing to the target system.

One architectural principle underneath is worth carrying into your standards: identity propagation is enforced at the gateway layer rather than inside agents or services, so agents hold no authentication logic. Salesforce’s own summary of the stakes is the line to quote in a governance paper. Without trusted identity propagation, governance is incomplete, because you can catalog and orchestrate agents and still not ensure they act within the boundaries of the user’s authorization.

An agent inherits a permission model it did not design

Follow that through to the practical review question, because it reframes old findings as new risks.

An agent answers in natural language from whatever its user context can retrieve. Over-granted field access that survived five years because nobody built a report on it becomes a sentence in a chat window. A sharing rule written broadly for convenience becomes an answer about an account the asker was never meant to see. Your permission model did not change. The number of ways to interrogate it did, which is the whole shift.

Two review items follow. Every agent needs a named user context with its permissions documented, rather than inheriting an administrator’s. And the checks you run before switching an agent on should include a read of what that context can reach, which is part of the readiness checks that precede turning agents on.

Sharing grants record access, and only one mechanism takes it back

Permissions answer what a user can do with an object. Sharing answers which records, and the two get conflated in most review conversations.

Sharing starts restrictive and opens up. Organization-wide defaults set the floor, then role hierarchy, sharing rules, teams, manual shares and Apex sharing grant access above it. Everything in that stack grants, which is why an org whose defaults were set to Public Read Write in year one cannot be tightened later without discovering which business processes quietly depended on the gap.

One mechanism does subtract, and a review should know its limits before relying on it. Restriction rules filter the records a user already has access to, so they reach only the ones matching criteria you specify, applying on top of organization-wide defaults and sharing rules. Four constraints matter. They cover a limited object set, named by Salesforce as custom objects, external objects, contracts, events, tasks, time sheets and time sheet entries, so Account, Opportunity, Contact and Case are not among them. They support only the EQUALS operator, with no AND or OR. Enterprise and Developer editions allow up to two active rules per object, Performance and Unlimited up to five. And they are bypassed entirely by View All Records or View All Data for reading, and by Modify All Records or Modify All Data for reading, editing and deleting.

Scoping rules are the mechanism most often mistaken for this one. Salesforce is explicit that a scoping rule does not restrict access to other records a user sometimes needs. It filters what appears by default in list views, reports and SOQL, and the user can still reach anything their sharing allows. Treating a scoping rule as a control is a review finding, not a mitigation.

A review should state the organization-wide default per object and the justification for every mechanism layered on top. Mechanisms without a stated reason are the ones to question, because each one is a standing grant that outlives whoever requested it. Who approves changes to any of this belongs in the forum where access decisions get signed off, and the data-side policies that sit beside it are covered in the rules governing what agents may ground on.

What a review should produce, in order

Findings, not observations. Each item needs a current state, an intended state and an owner.

Start with an enumeration: every profile with permissions attached, every permission set and group, the organization-wide default per object, and every sharing mechanism in force. Then compare against Salesforce’s own split, treating anything in the permission-set column that currently lives on a profile as a finding. Record each one the way a design decision and its rejected alternative get written down, since a permission granted without a recorded reason is the thing you will be unable to revoke later.

Next, test field-level security against the API rather than the page layout, since that is where the gap hides, and check whether any control you are relying on is a scoping rule rather than a restriction rule. Then document each agent’s user context and what it can retrieve, and assign each agent action one of the three identity patterns.

Schedule the re-run before you close the first one, because permissions drift with every release and every joiner, and the cutover checks that precede go-live are the wrong place to discover a sharing default nobody reviewed.

Finish with the two questions that decide whether the review was worth running. Can a permission now be granted and revoked without editing a profile? And can you name, for any sensitive field, every path by which a user could reach it, reports and agents included?

Questions that come up during a permissions review

Did Salesforce retire permissions in profiles?

No. Salesforce announced the retirement starting in Spring ’26 and then cancelled the enforcement, confirmed in a help article published 6 June 2026, citing customer feedback and remaining feature gaps. Profiles continue to support permissions, while Salesforce still recommends moving to a permission set-led model for flexibility and scalability.

What belongs in a profile versus a permission set?

Salesforce assigns profiles the default settings: default assigned apps, default record types and page layouts, login hours, login IP ranges, password policies and session settings. Permission sets and groups take object permissions, field-level security, user permissions, custom permissions, tab settings, non-default record types, Visualforce page access, Apex class access, connected app access and non-default assigned apps. The stated best practice is to assign the Minimum Access – Salesforce profile or a clone, and to avoid adding permissions directly to profiles.

How do you migrate from profiles to permission sets?

Salesforce’s recommended sequence is to plan and document the current permissions model, design permission sets and groups around user roles, use User Access Policies to automate the assignments, test thoroughly in a sandbox, then roll out to production. The automation step is what makes the migration repeatable for new joiners rather than a one-time exercise.

Is the Salesforce Security Review the same as reviewing permissions?

No, and the name collides. The AppExchange Security Review is the assessment an ISV passes before listing a managed package, run by Salesforce’s product security team. Reviewing profiles, permission sets and sharing is internal org work on who can reach which records and fields. Search results for the phrase return mostly the AppExchange process.

What does least privilege mean for Agentforce agents?

That each agent acts within the authorization of the user it is serving rather than with broad service credentials. Salesforce’s architecture guidance notes that user identity is lost by default when an agent calls a downstream service with client credentials, which makes per-user authorization and audit trails impossible, while forwarding the original user token everywhere violates least privilege. Three patterns cover the cases: On-Behalf-Of preserves identity within a trust domain, Server-to-Server deliberately omits it for public data, and In-Task Authorization Code asks the user to authenticate inline with an external provider.

Why does field-level security matter more now?

Because agents add retrieval paths. A field hidden on a page layout but not restricted by permission remains reachable through reports, the API and agent responses, so a layout-based control that passed audits for years can surface the value in a sentence. Field level security in salesforce is also the fastest-rising related search attached to this topic, up around 120 percent over the year to October 2026.

Salesforce Data Migration Plan: Steps, Tools and Validation with AI

Most migration plans are a mapping spreadsheet with a date on it. Source field, target field, transformation rule, owner. Useful, and not the part that fails.

Migrations fail on sequence. Some operations in Salesforce can be repeated until they are right, and a few can be done exactly once, with the only remedy being to delete what you loaded and load it again. A plan that does not distinguish between those two categories is a schedule, not a plan.

What follows is organized by that distinction rather than by phase, because phases are where this topic usually gets written and phases are not what hurts you.

Audit fields accept values once, and a mistake means export, delete and reload

Start here, because this is the hardest door in a Salesforce migration to walk back through.

Salesforce lets you write normally read-only system fields during a migration, so that records appear to have been created at the time they were originally created on your old system. Four fields are in scope: CreatedByID, CreatedDate, LastModifiedByID and LastModifiedDate.

Two scoping details get missed, and both change a plan. The feature applies to an enumerated list of objects, which Salesforce gives as Account, CampaignMember, CareService, Case, CaseComment, CodeSet, Contact, ContentNote, ContentVersion, Contracts, EmailMessage, FeedComment, FeedItem, FinancialGoal, FinancialPlan, HealthCondition, Idea, IdeaComment, Lead, Opportunity, Quote, Vote, Work Order, Task, Event, Attachment, and all custom objects. Check your object list against that one before promising historical dates on anything, because several standard objects that turn up in migrations, Opportunity line items and Orders among them, are absent from it.

The second detail is a gift rather than a constraint. On Lead, five conversion fields can also be set on insert: IsConverted, ConvertedDate, ConvertedAccountId, ConvertedContactId and ConvertedOpportunityId. Lead conversion history is normally the first casualty of a migration, and this is how it survives, provided the Accounts, Contacts and Opportunities those fields point at already exist when the Leads load, since a lookup cannot reference a record that is not there yet. Converted Leads therefore land later in the load sequence than their place in the business story suggests, which is worth stating in the plan rather than discovering mid-load.

The constraint is in Salesforce’s own words on the Create Audit Fields article. Since these fields are intended to be audit fields, they can only be set on create, not on update, and if the records already exist in Salesforce, they must be exported to a CSV file, deleted in Salesforce, and then imported with the updated information as new records.

Read what that implies for your plan. There is no corrective update. A load that goes in with today’s date on five years of history is not fixed by a second pass, it is fixed by deleting the records and starting over, which means re-pointing every child record and every relationship you had already loaded on top of them.

Three practical consequences belong in the plan document:

  • Salesforce states these fields can be set on INSERT and not on UPDATE or UPSERT, so an upsert-based load and historical audit dates cannot coexist on the same pass.
  • Setting audit fields requires the Modify All Data permission, and a System Administrator has to enable the feature.
  • Salesforce recommends enabling it only during data migration, which makes switching it off a named step in your cutover runbook rather than an afterthought.

Activity history loses its original dates in two documented cases

Here is the detail that separates a plan written by someone who has done this from one assembled out of best-practice articles.

Even with Create Audit Fields enabled, Salesforce documents two situations where the dates you supply do not survive. When a Task is inserted with an association to a Contact or Lead through WhoID, or to records such as Account, Opportunity or Campaign through WhatID, the LastModifiedDate and LastModifiedBy fields will not reflect the inserted value. And when Enhanced Email is enabled and EmailMessages are inserted, the Task records auto-created alongside them do not take the CreatedDate of the EmailMessage, they get the date of insertion.

Activity history is usually the largest object set in a CRM migration and the one business users check first. Discovering this after cutover produces the worst version of the conversation, because the data is correct, the configuration is correct, and the dates are still wrong.

Decide in advance which of these you accept. Options are to carry the original timestamp into a custom field that you control, to exclude auto-created Task records from reconciliation on date fidelity, or to tell users plainly which objects carry true historical dates and which do not. Any of the three is defensible. Silence is not.

Bulk loading manufactures ownership skew, which is a role hierarchy decision

Migrations load records as a service account or a single admin, and that is where this problem originates.

Salesforce’s platform sharing guidance defines ownership skew as a single user, role or group owning many records for an object, notes it can cause long running transactions and performance degradation when change occurs, and puts the recommended ratio of owner to records at 1:10,000.

The remedy is specific and it is a configuration decision, not a data decision. Where a single user owns more than 10,000 records, Salesforce’s stated best practice is that the owner’s user record should not hold a role in the role hierarchy, and if it must hold a role, that role goes at the top of the hierarchy in its own branch.

Two things follow for the plan. Your load user needs deciding before the first row goes in, with its role position set deliberately. And if records are meant to end up owned by real users, reassignment is a separate planned operation with its own duration, not a tidy-up task someone runs on the Monday after go-live.

DecisionMade before loadingCost of making it late
Audit field strategyYes, insert-onlyExport, delete and reload
Load user and its role positionYesSharing recalculation across the loaded volume
Owner assignment approachYesA second bulk operation with its own window
External ID on every objectYesReruns create duplicates instead of updating
Validation and automation bypassYesPartial loads with inconsistent state

Sharing recalculation decides your cutover window, and Support controls the switch

Volume turns a correct load into a long one, and sharing is usually the reason.

Salesforce is direct about the thresholds. Above two million accounts, with Teams or Enterprise Territory Management implemented, performance needs particular attention, because these are complex sharing model components that can produce a very large volume of share records and therefore long running transactions.

For bulk changes at that scale there is a feature called Defer Sharing Calculations, which lets you make the change and then have sharing calculations happen all at once, an approach Salesforce describes as typically more efficient and better performing for bulk changes. The part that belongs in your project plan rather than your technical design: it is a feature that Salesforce Customer Support enables. You cannot turn it on yourself at 2am on cutover weekend, so if your volumes warrant it, the request is a lead-time dependency with an owner and a date.

Load order follows the object graph, and external IDs make a rerun safe

With the one-way doors identified, ordering is mechanical.

Parents load before children, because a child row needs its parent’s identifier. Users and record types exist before anything that references them. Accounts precede Contacts and Opportunities, Opportunities precede their line items, and anything with a lookup waits for its target. Self-referencing hierarchies load in two passes, the records first and the parent references second.

The piece teams skip is making every pass repeatable, and it needs stating carefully because of the audit field rule above. Put an external ID field on every migrated object holding the source system’s primary key, populated on the way in.

On passes where you are not setting audit dates, that field lets you upsert, so a rerun updates the row it loaded last time instead of creating a second one. On the historical pass you cannot upsert, so the external ID earns its place differently: it identifies exactly the set you just inserted, which makes the rollback a targeted delete of known keys rather than a guess at which records were yours. Either way the failed-load path is a retry rather than an investigation, and without the field your only rollback is a broad delete, which carries its own consequences for related records.

Automation needs an explicit position too. Validation rules, record-triggered flows, duplicate rules, assignment rules and triggers will all fire against migrated rows unless something stops them. Decide which are suspended, which stay on because they are doing work you want, and how you prove the suspended ones came back. Where the design recorded those automation choices is covered in the document that fixes the data model before loading.

Rehearsal in a sandbox produces the only honest duration estimate

Every migration plan contains a duration. Most are guesses dressed as estimates.

Salesforce’s own advice on sharing volumes makes the point for the whole exercise: test the change in a sandbox before production, because that testing gives you a baseline for how long the change will take. Nothing else does. Row counts do not predict load time, because the variables are sharing recalculation, automation, indexes and your own transformation step.

Rehearse at production-representative volume, not at a sample. Timings taken from a few thousand rows do not scale linearly to millions, because the costs that dominate at volume, sharing recalculation and automation among them, barely register on a small set. Which sandbox type can actually hold that volume is a planning constraint in itself, covered in how environments and their data get planned, and the rehearsal result is what makes the cutover timings in the go-live sequence it feeds defensible rather than optimistic.

Record two numbers from the rehearsal: elapsed time per object, and error rate per object. The second predicts your cutover more accurately than the first, because errors are what turn a timed sequence into an unplanned debugging session. Keeping both numbers against the objects named in the design, rather than in a separate tracker, is part of why GetGenerative.ai holds the migration sequence in the same project context as the data model.

Validation operates at three levels, and only one of them is a row count

Validation is where migration plans are thinnest, usually offering a single reconciliation count per object. Counts are necessary and they are the weakest of the three checks.

Counts. Source rows in, target rows created, rejects accounted for. A migration where rows in and rows out agree and nothing is explained is not reconciled, it is coincidental.

Relationships. Child records attached to the correct parent, lookups resolving to the intended target, orphan counts at zero or at a documented number. This catches the most damaging class of failure, because records that exist but hang off the wrong parent pass a count check and produce wrong reports forever.

Fidelity. A sampled field-level comparison on the fields the business actually uses, including the date fields above. Pick the sample deliberately: the oldest records, the largest accounts, anything with unusual characters, anything that went through a transformation rule.

Business sign-off attaches to the third level, because that is the only one users can judge. How that acceptance gets run and evidenced sits in the cycle that produces the sign-off evidence.

Agents read migrated records, which changes what a data defect costs

Worth adding to any plan written now, because it was not true a few years ago.

Migrated data no longer just populates reports and list views. It grounds agent responses. An agent retrieving customer history answers from whatever rows the migration produced, and it answers with the same confident phrasing whether those rows are right or wrong. A duplicate account that a human would notice and work around becomes, through an agent, two different confident answers to the same question.

This raises the value of the relationship and fidelity checks specifically. Duplicates, mis-parented children and empty fields that used to be mild annoyances now surface in natural language to someone outside your organization. Migration quality has become a customer-facing property, which is an argument for loading deliberately rather than loading everything. Legacy rows nobody will ever read are now legacy rows an agent might. The policies that govern what agents may ground on are covered in the rules that keep agent answers honest.

Where AI earns its place in a migration, and where it does not

Two tasks in this process suit a language model well, and one commonly proposed use does not.

Field mapping proposals. Given a source schema and a target object, a model produces a first-pass mapping with transformation suggestions far faster than a human, and every line is checkable against both schemas. Treat the output as a draft for review, which is also how you get mapping documentation written as a byproduct rather than afterwards.

Fuzzy matching and duplicate detection. This is the strongest fit, because it is a language problem. Deciding whether Acme Corp, ACME Corporation and Acme Corp. are one company is exactly the judgment that deterministic matching rules handle badly and natural language processing handles well, and the same applies to addresses, person names with varying transliteration, and free-text fields that need classifying into picklist values. Run it before the load, not after, since merging in Salesforce is more expensive than not creating the duplicate.

Worth naming where this sits in a delivery model rather than a toolchain. Migration planning suffers from a handoff problem, because the people who set the data model are rarely the people writing the load sequence, and the model usually reaches them as a diagram with its constraints stripped off. GetGenerative.ai removes that gap by holding one project context across its agents, so the Design Agent’s data model carries the relationships that dictate load order, the Metadata and Build Agents work against that same model, and the Testing Agent generates the reconciliation checks from it. Load order stops being reconstructed from a schema export. You can see how a migration gets scoped and staffed if that is the shape of help you need.

Not reconciliation. Do not ask a model whether the migration succeeded. Reconciliation is arithmetic against two systems of record, and it needs a query returning a number you can check, not an assessment. A model that summarizes a reconciliation report is useful; a model that produces the verdict has introduced a judgment where a count belongs.

A note on who is searching for this, since it shapes what the page owes them. Google Trends data for the year ending October 2026 puts the term salesforce data migration at its yearly high in early May. Its leading related queries are prepositional variants, data migration to salesforce and data migration in salesforce, and migration services draws more interest than migration tools. Readers arriving here are closer to needing the work done than to comparing utilities.

What a validated migration lets you sign

A plan that handles the above produces something a sponsor can approve rather than hope about.

Audit field strategy decided and exercised before the real load. Load user and ownership model set deliberately, with reassignment planned as its own operation. Sharing deferral requested early if volumes need it. Load order derived from the object graph, every object carrying an external ID so any pass can run twice. A rehearsal at representative volume giving real durations and real error rates. Three levels of validation with the fidelity sample chosen by someone who knows the business. Automation suspended and provably restored.

That package is what makes a migration a precondition for go-live rather than a risk to it, and it is the evidence set GetGenerative.ai’s Testing Agent is built to produce rather than assemble by hand afterwards. The sequencing of the wider cutover around it sits in the plan that carries the whole phase.

Questions worth settling before the first load

What are the steps in a Salesforce data migration plan?

Decide the audit field strategy, set the load user and its role position, request sharing deferral if volumes need it, derive load order from the object graph with parents before children, put an external ID on every object so passes are repeatable, suspend and later restore automation, rehearse at representative volume, load, then validate on counts, relationships and sampled field fidelity before sign-off.

Can you change CreatedDate in Salesforce after loading records?

No. Create Audit Fields allows CreatedById, CreatedDate, LastModifiedById and LastModifiedDate to be set on create only, not on update. Salesforce states that where records already exist, they have to be exported to CSV, deleted, and imported again as new records. The feature also works for insert rather than upsert, and setting these fields requires Modify All Data.

Why do migrated Salesforce activities show the wrong dates?

Two documented cases survive even with Create Audit Fields enabled. Tasks inserted with a WhoID association to a Contact or Lead, or a WhatID association to records such as Account, Opportunity or Campaign, do not reflect the supplied LastModifiedDate and LastModifiedBy. And with Enhanced Email enabled, Task records auto-created when EmailMessages are inserted carry the date of insertion rather than the EmailMessage CreatedDate.

How do you avoid ownership skew during a data migration?

Ownership skew is one user, role or group owning many records on an object, and Salesforce recommends an owner-to-record ratio of 1:10,000. Above 10,000 records for a single owner, the guidance is that the owner’s user record should not hold a role in the role hierarchy, or if it must, that the role sits at the top of the hierarchy in its own branch. Decide the load user before loading and plan owner reassignment as a separate operation.

How long does a Salesforce data migration take?

The only defensible answer comes from rehearsing at production-representative volume in a sandbox, which Salesforce recommends specifically because it gives a baseline for how long the change will take. Row counts alone do not predict duration, since sharing recalculation, automation and transformation dominate it. Record elapsed time and error rate per object from the rehearsal.

How do you validate a Salesforce data migration?

At three levels. Counts, with rows in, rows created and rejects all accounted for. Relationships, confirming children attach to the right parents and lookups resolve, since mis-parented records pass a count check. And sampled field-level fidelity on the fields the business uses, which is the level business sign-off should attach to.

Salesforce SOW Template: Scope, Assumptions and Pricing Models

Most Salesforce statements of work are assembled from a template somebody downloaded, adjusted once, and has reused since. They are usually weaker than they need to be, and the quickest way to see where is to read the contract Salesforce itself signs.

Salesforce publishes its Professional Services Agreement. It is the terms under which Salesforce sells implementation and advisory work to its own customers, and it is specific in exactly the places partner SOWs are vague.

Salesforce publishes the contract it uses, and it protects the supplier carefully

The Professional Services Agreement is linked from Salesforce’s own customer agreements page and was last updated on March 8, 2024. It governs the purchase and receipt of Salesforce professional services, and it binds a customer on either a click-through acceptance or the execution of a statement of work or order form that references it.

Read it as a benchmark rather than as a template to copy. Salesforce is the supplier in that document, so every clause is drafted from the supplier’s side, which is the side a partner SOW is written from too.

Five of its provisions are worth comparing against whatever SOW you are currently sending out. Each one closes a gap that costs partners money, and in every case Salesforce has written the protective version while most partner templates have the loose version.

Client delay is a billable event in Salesforce’s own agreement

Start with the clause that recovers the most margin, because it is the one almost no partner SOW contains.

Section 3.2 of the agreement, headed Delays, reads: if SFDC is unable to perform the Professional Services due to a Customer delay, including failure to comply with Section 3.1, Customer may be responsible for additional resource fees.

That sentence does two things at once. It establishes that a client-caused delay has a cost, and it ties that cost to a specific list of client obligations rather than to a judgment call about whose fault something was.

Compare the usual partner equivalent, which is a line in the assumptions saying the client will provide timely access to stakeholders. That is a hope. It has no consequence attached, so when the client takes three weeks to approve a sharing model, the partner absorbs three weeks and reports it as project slippage. The approval delay that caused it never appears in a commercial conversation.

What makes the Salesforce version work is that the obligations it refers back to are enumerated. Which brings us to the next clause.

Customer obligations are enumerated, not assumed

Section 3.1 lists what the customer must do, in three named groups, and the specificity is the point.

On resources, the customer assigns an internal project manager as primary point of contact for each project and allocates sufficient resources to meet its obligations under each SOW.

On actions, the customer promptly responds to inquiries, provides accurate information, data and feedback as necessary, actively participates in scheduled meetings, and where the project requires it, provides appropriate administrative access to the customer’s Salesforce account.

On facilities, the customer provides at no charge office workspace, access to other facilities where needed, and suitably configured computer equipment with Internet access.

Three details in that list reward attention. A named internal project manager is a single point of contact, which removes the commonest cause of stalled decisions. Administrative access is called out explicitly, because a project cannot proceed without it and asking later turns into a security conversation. And at no charge forecloses an argument nobody wants to have about who pays for a desk.

So the obligations section is not boilerplate. It is the thing the delay clause points at, and a delay clause with nothing specific behind it cannot be invoked. Where these obligations come from in the first place is the planning question, and they belong in the plan as dated commitments as well as in the contract, which is covered in the plan that carries them.

A time-and-materials number is an estimate, and the contract says so

This is the clause partners most often get wrong, and Salesforce’s wording is worth reading twice.

Under Section 5.1, professional services are provided on either a time-and-materials or fixed fee basis. Then the qualification: any amount set forth in a time-and-materials SOW is solely a good-faith estimate for the customer’s budgeting and Salesforce’s resource-scheduling purposes, and is not a guarantee that the work will be completed for that amount. The actual amount may be higher or lower. If the estimated amount is expended, Salesforce will continue to provide the services under the same rates and terms.

Three things are happening in that passage.

That number gets labeled. Calling it a good-faith estimate, and saying what it is for, removes the ambiguity that lets a client treat a T&M figure as a cap.

Direction is left open. “Higher or lower” is a fairer framing than a one-way warning, and it is harder to argue with.

And the overrun behavior is pre-agreed. Work continues at the same rates rather than stopping for a renegotiation, which is the clause that prevents a project pausing at the worst possible moment.

A partner SOW that states a T&M figure without this qualification has effectively written a fixed-price contract and called it time and materials. Which pricing model to choose in the first place is a separate decision with its own risk trade-offs, set out in choosing between fixed price, time and materials and outcome-based, and the estimate feeding either one comes from the method that makes a number defensible.

GetGenerative.ai supplies the scope the clauses attach to

Clause quality has a prerequisite that gets skipped, and it is not legal.

A change control clause can only be invoked against a baseline. An acceptance clause can only be tested against stated criteria. A delay clause can only be triggered against enumerated obligations. Every protective provision above depends on a scope statement precise enough to be compared with something, and that scope is usually written last, by whoever is assembling the document, from material that has not been structured.

GetGenerative.ai addresses that upstream half. Discovery output arrives structured rather than as notes, then carries into stories and acceptance criteria in one format. That gives a scope section built from recorded decisions instead of recollection. Reading the org directly matters here too, because a scope statement that names objects and fields which actually exist is harder to dispute than one describing a design assumption.

What it does not do is decide the commercial posture. How hard to press on a delay clause with a client you want a second project from, whether to cap expenses, what acceptance period to offer: those are relationship judgments, and they belong to whoever owns the account. Teams structuring presales this way can see what the platform costs to run.

Change orders require a signature before the work, not after

Section 4.2 is short and the sequencing is the whole clause: changes to an SOW require a written change order signed by the parties prior to implementation of the changes. It names what such changes may cover, including scope of work and any corresponding changes to estimated fees and schedule.

Prior to implementation is the operative phrase. A failure mode it prevents is familiar on every project that has ever run hot. Somebody agrees verbally that a small addition is fine, the team builds it, and the paperwork follows weeks later into a conversation where the client has already received the thing they are being asked to pay for.

Two additions make the clause usable rather than decorative.

Name who may sign. A change order clause that does not identify the authorized signatory on each side produces change orders signed by people whose authority is later questioned.

State what happens to the schedule. Salesforce’s version ties scope changes to corresponding changes in fees and schedule in the same sentence, which stops a client accepting the cost of a change while treating the original date as unaffected. How the date actually moves is a separate calculation, covered in what changes a go-live date.

Expenses need an estimate that only the client can raise

A small clause that resolves an annoying argument.

Section 5.2 has the customer reimburse reasonable travel and out-of-pocket expenses, and then adds the symmetry: if an estimate of incidental expenses is provided in the SOW, Salesforce will not exceed that estimate without the written consent of the customer.

That construction is better than either alternative. Expenses with no estimate invite dispute over every invoice. Expenses with a hard cap mean the supplier eats overruns caused by client-requested travel. An estimate that cannot be exceeded without written consent keeps the client in control of their own costs while leaving the supplier a route to raise them legitimately.

Payment terms sit alongside it. Invoiced amounts fall due net 30 days from the invoice date, which is worth stating explicitly in any SOW rather than leaving to a purchase order someone raises later.

The template holds twelve sections and four carry the commercial risk

With those clauses understood, the structure follows. Twelve sections, conventionally named, and unevenly weighted.

SectionHoldsCommercial weight
Parties and termWho, from when, until when
Background and objectivesWhy this project exists
Scope of servicesWhat is being delivered, in detailHigh
Out of scopeWhat is explicitly excludedHigh
DeliverablesNamed outputs, defined as deliverablesHigh
AssumptionsWhat must hold for the scope to be valid
Client obligationsWhat the client must supply, with datesHigh
Pricing and paymentModel, rates, estimate basis, invoicing, net terms
Change controlWritten, signed, before implementation
AcceptanceHow a deliverable is accepted, and the deemed period
ExpensesReimbursable categories and the estimate
Term, termination and liabilityExit routes and the cap

That deliverables row carries more weight than it looks. Salesforce’s agreement defines a deliverable as any output of the professional services identified as a deliverable under an SOW, which means something only becomes a contractual deliverable if the SOW says so. Listing a document in a project plan does not make it one.

Out of scope and client obligations do the work that the assumptions section is usually asked to do and cannot. An assumption is a statement about the world. A client obligation is a commitment by a party. Where the scope itself comes from is covered in the document that fixes it before design.

Salesforce-specific clauses a generic SOW leaves out

A general-purpose services SOW has no field for the things that most often cause disputes on this platform.

Sandbox and environment provision. Which environments the client provides, at which tier, and who pays if an extra one is needed. Entitlement varies by edition and an unplanned sandbox is a purchase.

Data migration scope expressed in objects and passes. “Migrate legacy data” is unpriceable. Named objects, a record volume range, and a stated number of load cycles is a scope. Anything beyond that count is a change order.

Integration endpoints and failure handling. Each interface named, with direction, frequency and what happens on failure. That last one gets omitted most often, and its absence is what turns a failed sync into an argument about whose job it was.

Release window acknowledgement. Salesforce ships three major releases a year and sandboxes move ahead of production. A project spanning a release should say so, and say who absorbs any remediation it causes.

Agent consumption assumptions. Where the scope includes Agentforce, the SOW needs a stated interaction volume and a repricing trigger. Agent work carries a run cost that moves with usage after the build is finished, so a fixed-price agent engagement with no volume assumption transfers an open-ended cost to the supplier. The configure-or-build-or-agent decision behind that scope is covered in the disposition behind that scope line.

Acceptance is the clause that decides when you get paid

Acceptance language is where SOWs are weakest, because it is the clause nobody expects to need.

Salesforce’s agreement does not supply one. Section 4.1 commits only to providing the services and any deliverables in accordance with the agreement and the applicable SOW, which pushes the whole question of when something counts as accepted into the SOW itself. On this clause the benchmark offers no wording to borrow, only the instruction that you have to write it.

Three elements make it function.

A test against stated criteria, not a judgment of satisfaction. Acceptance measured against the criteria in the deliverable is testable; acceptance measured against whether the client is happy is not. Where those criteria are produced and signed off is covered in the cycle that generates the evidence.

A review period with a defined length. Five business days, ten, whatever suits the deliverable. Without one, a deliverable sits unaccepted indefinitely and the payment attached to it sits with it.

Deemed acceptance on silence. If no written rejection with reasons arrives within the review period, the deliverable is accepted. This is the single most valuable sentence in a partner SOW and the one most often missing, because without it a client who simply does not respond has an unlimited free option.

Rejection should require reasons tied to the criteria. A rejection that says it is not what we wanted, with no reference to the stated criteria, is a change request wearing a rejection’s clothes, and the SOW should say which one it is.

Where a Salesforce SOW leaks money

Five patterns, each traceable to a clause that was present but weak rather than absent.

PatternThe weak clauseWhat it costs
Scope stated as outcomes, not itemsScope of servicesEvery interpretation dispute resolves against the supplier
Assumptions used instead of obligationsClient obligationsClient-caused delay becomes supplier slippage
T&M figure with no estimate languagePricingA cap you never agreed to
No deemed acceptanceAcceptanceDeliverables and payments stall on silence
Verbal change agreementsChange controlWork delivered before it is paid for

Row two is the most expensive over a year of projects, and it is also the cheapest to fix. Moving three sentences from the assumptions section into a client obligations section, and adding the consequence clause Salesforce uses, changes what happens in every subsequent delay conversation. Where this document sits in the wider sales motion is covered in the presales sequence that produces it.

Questions that come up when the SOW is drafted

What should a Salesforce SOW include?

Twelve sections: parties and term, background and objectives, scope of services, out of scope, deliverables, assumptions, client obligations, pricing and payment, change control, acceptance, expenses, and termination with liability. Four carry the commercial risk: scope, out of scope, deliverables and client obligations.

Does Salesforce publish a statement of work template?

Not a template, but something more useful. Salesforce publishes the Professional Services Agreement under which it sells its own implementation and advisory work, and that agreement is triggered by executing an SOW referencing it. Reading it shows how the supplier side is drafted when the supplier is Salesforce.

What is the difference between assumptions and client obligations in an SOW?

An assumption is a statement about conditions you believe to be true. A client obligation is a commitment by the client, which can be relied on and enforced. Salesforce enumerates obligations including a named internal project manager, prompt responses, participation in scheduled meetings, administrative access, and facilities at no charge, then states separately that customer delay may make the customer responsible for additional resource fees.

How should a time-and-materials SOW describe its value?

As an estimate, explicitly. Salesforce’s agreement calls the amount in a time-and-materials SOW solely a good-faith estimate for budgeting and resource scheduling, states that it is not a guarantee the work will be completed for that amount and that the actual amount may be higher or lower, and provides that if the estimate is expended the services continue at the same rates and terms. A figure without that language functions as a cap.

What does deemed acceptance mean in an SOW?

That a deliverable is treated as accepted if the client does not issue a written rejection with reasons within a stated review period. Without it, an unresponsive client holds an unlimited free option over both the deliverable and any payment linked to it. Rejections should be required to reference the stated acceptance criteria.

What Salesforce-specific clauses does a generic SOW template miss?

Environment provision and who pays for additional sandboxes, data migration scoped by named objects and a number of load passes, integration endpoints with direction and failure handling, acknowledgement that a project spanning a Salesforce release may need remediation, and for Agentforce scope, a stated interaction volume with a repricing trigger because agent run cost moves with usage.

Salesforce Business Requirements Document: Template and AI-Assisted Drafting

Search for a Salesforce business requirements document template and the results are a document-automation vendor, a work-management vendor, a spreadsheet vendor, a collaboration vendor, and a Medium post. Those templates are competent, and not one of them has ever seen a sharing model.

That matters more than it sounds, because a BRD’s failure mode is not a missing section. It is a document full of material that cannot fix scope, written in a format nobody can query, handed to a build team who then rediscover the requirements by asking.

Salesforce asks for a version-controlled repository, not a document

Look at what Salesforce actually requires of the people who write these things. The Certified Business Analyst exam outline devotes 18 percent to Requirements, and the objective is phrased precisely: document requirements in a version controlled repository to manage scope.

That construction is not a one-off. The same phrase appears three times across the outline, covering business processes, requirements and user stories, in sections accounting for 48 percent of the exam. Not document, not template, not deliverable. Repository, three times.

That phrasing is doing real work. A repository can be queried, versioned, diffed and linked to the thing that implemented each item. A Word file emailed on a Friday can do none of those, which is why the question “has this requirement changed since sign-off?” is usually answered from memory.

A consistent phrase repeated across three sections is a position, not an accident. So treat BRD as the name of a set of content rather than the name of a file. The sections below are what the content must cover. Where it lives should be somewhere with version history, whether that is a wiki, a work-tracking tool, or a document under source control. The practical test is whether you can answer, in under a minute, which requirements changed last month and who approved them.

Scope, requirement and story sit at three different altitudes

The same exam outline contains an objective that explains most bad BRDs: understand the differences between scope, requirements and user stories. Salesforce tests it because practitioners conflate them, and a BRD built on the conflation cannot do its job.

These three are not synonyms at different lengths. They answer different questions and they have different negotiability.

ArtifactAnswersChanges how
ScopeWhat is in and what is outThrough formal change control
RequirementWhat the business needs to be trueRarely, and visibly, once agreed
StoryHow a user experiences one slice of itFreely, within the requirement

Read the right-hand column, because that is the whole point. Stories are meant to change during delivery. If your BRD is a list of stories, then your scope baseline changes every time a story does, which means you have no baseline. That is how a project arrives at week ten with everyone certain that scope was agreed and nobody able to say what it was.

A requirement sits above the story. “Sales managers must be able to see pipeline for their whole team without being able to edit forecasts” is a requirement: durable, business-stated, independent of the screen that satisfies it. The stories underneath it can be rewritten five times without touching it. How those stories should then be constructed is a separate craft, set out in how a story gets written below a requirement.

A standard already defines what makes a requirement well-formed

Requirements engineering has an international standard, and almost nothing written about Salesforce BRDs mentions it.

IEEE/ISO/IEC 29148-2018 is an active standard covering requirements engineering across the system and software life cycle. In its own words, it defines the construct of a good requirement and provides attributes and characteristics of requirements. That is precisely the gap a template cannot fill: a template tells you which boxes exist, not whether what you put in them is any good.

Its characteristics split into two groups, one for an individual requirement and one for a requirement set. Individual ones are commonly enumerated as necessary, appropriate, unambiguous, complete, singular, feasible, verifiable, correct and conforming. The full text sits behind a subscription, so treat that list as the widely reported summary rather than a quotation.

Four of those nine do the most work on a Salesforce project.

Singular. One requirement, one need. “Sales reps must log calls and managers must approve discounts” is two requirements wearing one number, and it will be half-implemented.

Verifiable. If nobody can design a test that fails, it is a preference. “The system should be user-friendly” is unverifiable and therefore unbuildable.

Appropriate. Stated at the right altitude, without implementation detail. “We need a custom object for site visits” has already chosen a solution, which forecloses the configure-or-build decision that belongs in the disposition each requirement receives.

Unambiguous. One reasonable reading. The word “automatically” is the most common offender in Salesforce requirements, because it can mean a flow, a scheduled job, an integration or an agent.

The template holds eleven sections, and four of them fix scope

Here is the structure. The sections are conventional; which ones carry weight is not.

SectionWhat it holdsLoad-bearing
Business contextWhy this project exists now
Objectives and success measuresWhat outcome, measured howYes
Stakeholders and decision rightsWho is consulted, who decidesYes
Current stateHow the process runs today
Future stateHow it should run
Functional requirementsWhat the business needs to be trueYes
Non-functional requirementsPerformance, retention, compliance
Data and integration requirementsWhat moves, which direction, how often
Assumptions and constraintsWhat must hold for the above to be true
Out of scopeWhat this project will not doYes
GlossaryTerms that mean different things to different readers

Four rows marked yes are the ones that fix scope. Everything else is context that helps a reader understand the four.

Objectives with success measures matter because an objective with no measure cannot be satisfied, only discussed. Stakeholders with decision rights matter because the commonest BRD failure is not a missing requirement but an unnamed decider, which turns every ambiguity into a meeting. Functional requirements are the baseline itself. And out of scope is the section discussed below, because it is the one most often left empty and the one that most often decides whether a project ends in a change-order argument.

Glossaries deserve a word even though they are not load-bearing. Terms that feel obvious to the business rarely survive contact with a build team. “Account”, “customer”, “active” and “closed” all mean something specific in a Salesforce org and something different in a sales conversation, and writing the business meaning down costs ten minutes.

Salesforce-specific sections that general templates leave out

A generic BRD assumes a system you configure. Salesforce has decisions a generic template has no field for, and omitting them does not remove the decision, it just moves it to whoever builds.

Access and visibility. Not a security appendix. A business requirement. Who may see whose records, and who may change them, resolves into profiles, permission sets, roles and sharing rules, and a requirement silent on access produces a build silent on access. The defect then appears in testing and looks like a bug.

Reporting questions, not report lists. “A pipeline dashboard” is a deliverable. “The VP of Sales needs to answer, each Monday, which deals slipped out of this quarter and why” is a requirement, and it tells the builder which fields must exist and which relationships must be reportable.

Record ownership and lifecycle. Who owns a record at each stage, and what happens when that person leaves. This is routinely omitted and routinely expensive.

Integration direction and failure behavior. Each interface needs the direction of flow, the frequency, and what happens when it fails. That last one gets skipped most, and silent failure is the worst available answer.

Agent scope, where agents are in play. If part of the solution is an Agentforce agent, the BRD should state what the agent is expected to handle, what it must escalate, and what it may never do unaided. Those are business decisions, not configuration, and they belong in the document that fixes scope rather than in an instruction field edited later.

Non-functional requirements decide whether the build survives contact

Non-functional requirements are the section most teams fill with one line about performance and move past. On Salesforce they carry specific, knowable risk.

Data volume and growth belong here, because the design that works at fifty thousand records behaves differently at five million, and the difference shows up in reports and list views rather than in a unit test.

Retention and deletion belong here, because what the business must keep and must destroy drives archiving decisions nobody wants to retrofit.

Compliance belongs here, named rather than gestured at. A requirement reading “must be GDPR compliant” is unverifiable. One reading “a customer’s request for erasure must be actionable within thirty days across all objects holding their personal data” is a design input.

Availability and acceptable degradation belong here too, which is where a project discovers that the business expects an integration to be real-time while the budget assumes nightly batch.

None of this is exotic, and all of it is cheaper to write than to discover. The effort figures that flow from these requirements, and how to defend them, sit in turning requirements into a defensible number.

Out of scope is the section that earns the document

Most BRDs have an out-of-scope heading with nothing under it, or with three obvious exclusions nobody was going to ask for.

Out-of-scope is the only part of the document that prevents an argument. Scope is defined by its boundary, and a boundary written only from the inside is not a boundary. Everything the business raised and the project is not doing belongs here, in the business’s own words, with the reason.

Three categories are worth hunting for deliberately.

Things discussed in workshops and quietly dropped. Someone remembers asking for it and nobody remembers the answer, which in month four becomes a claim that it was always in scope.

Things an adjacent team assumes they are getting. Reporting is the classic case: finance hears that a sales project is building dashboards and assumes theirs is included.

Things deferred rather than rejected. “Not in phase one” and “not happening” are different commitments, and recording them identically creates a promise nobody made.

Each entry should carry a disposition, a reason, and whoever agreed it. Then a change request is a conversation about a documented decision rather than about whose memory is better.

GetGenerative.ai drafts the document and leaves the deciding

Everything above is a writing task with a decision task hidden inside it, and the writing crowds out the deciding.

This pattern is familiar on any delivery team. Workshops run, notes accumulate, and the BRD gets assembled late by whoever has a clear afternoon. Sections get filled because the template demands it, and the four that fix scope get the same attention as the glossary. Nobody chose that; it is what happens when the document is a chore rather than a deliverable with a named owner.

GetGenerative.ai changes which half of that is expensive. Workshop sessions come back as structured requirements instead of a recording nobody replays, and those carry forward into stories and acceptance criteria in one consistent format. Separately, the org itself gets read, which is what lets a current-state section describe deployed configuration rather than what the business believes is deployed. Those two descriptions diverge more often than anyone expects, and the gap is usually where the first change request comes from.

What it cannot do is decide. Whether an objective’s success measure is the right one, who holds decision rights, which requirement is actually necessary, and above all what goes in out-of-scope: those are calls about a specific business and a specific commercial relationship. A drafted BRD is a strong first version that still needs someone to argue with it. Teams restructuring this stage can compare what each plan tier includes.

AI drafting moves the bottleneck from writing to reviewing

Worth being precise about what changes when requirements are generated, because the honest answer is narrower than the marketing and more useful.

Generation is fast and plausible, which is exactly the risk. A generated requirement set reads well and fails the standard’s characteristics in predictable ways: it bundles two needs into one statement, it states implementation rather than need, and it writes acceptance that any working build would pass.

So the review has to be deliberate rather than a read-through. Four questions catch most of it. Is this one requirement or two? Could a test of this fail? Has a solution already been chosen inside the wording? And does the business accept this as what they said?

That final question is the one tooling cannot answer, and it is the reason a drafted BRD still needs a workshop to confirm it. Where the requirement set then gets linked to what was built and tested is a separate artifact, covered in the traceability matrix that closes the loop. How the analyst role itself is shifting toward this kind of validation sits in what validation does to the analyst role.

What a BRD should not contain

Shorter than the list of what it should, and more useful, because padding a BRD is how it stops being read.

No solution design. Objects, fields, flows and automation choices belong in the design document, which is a different artifact with a different audience and is covered in the solution design that comes next.

No stories. They live below requirements and change during delivery. A BRD containing stories has a baseline that moves.

No dispositions. Whether a requirement is met by standard functionality, configuration, an agent or code is a fit-gap decision taken after the requirements are agreed, not a column in the requirements themselves.

No effort estimates. A requirement does not know what it costs, and putting a number beside it invites the business to negotiate the requirement rather than the solution.

No raw workshop notes. Where the requirements came from matters and belongs in where the requirements came from rather than pasted into the document that fixes scope.

A BRD that holds only what fixes scope stays short enough that someone reads it before signing.

Six questions about Salesforce BRDs

What should a Salesforce business requirements document contain?

Eleven sections: business context, objectives with success measures, stakeholders and decision rights, current state, future state, functional requirements, non-functional requirements, data and integration requirements, assumptions and constraints, out of scope, and a glossary. Four of those do the scope-fixing work: objectives with measures, stakeholders with decision rights, functional requirements, and out of scope.

What is the difference between a requirement and a user story?

A requirement states what the business needs to be true and changes rarely and visibly once agreed. A story describes how a user experiences one slice of it and is meant to change during delivery. Salesforce’s Business Analyst exam outline tests this distinction explicitly. A BRD built from stories has a scope baseline that moves every time a story is rewritten.

Does Salesforce publish a BRD template?

No. Its Certified Business Analyst exam outline uses the phrase version controlled repository three times, covering business processes, requirements and user stories, and separately tests the difference between scope, requirements and user stories. It prescribes no document format at all. The published templates ranking for this query are general-purpose and contain nothing Salesforce-specific.

What makes a requirement well written?

IEEE/ISO/IEC 29148-2018, the active international standard for requirements engineering, defines the construct of a good requirement and provides characteristics for individual requirements and for requirement sets. The individual characteristics are commonly enumerated as necessary, appropriate, unambiguous, complete, singular, feasible, verifiable, correct and conforming. On Salesforce work, singular, verifiable, appropriate and unambiguous catch the most defects.

What belongs in the out-of-scope section?

Everything the business raised that the project will not do, in the business’s own words, with a reason and the name of whoever agreed it. Hunt specifically for items discussed in workshops and quietly dropped, items an adjacent team assumes they are getting, and items deferred rather than rejected, since deferred and declined are different commitments.

Can AI write a Salesforce BRD?

It can draft one quickly from structured discovery, which removes most of the writing cost. What it cannot do is decide: which success measure is right, who holds decision rights, which requirements are necessary, and what goes out of scope. Generated requirement sets fail in predictable ways, typically bundling two needs into one statement, stating implementation rather than need, and writing acceptance criteria that any working build would pass.

The AI-Ready Salesforce Business Analyst: Skills, Tools and Workflow

Most advice about AI and the business analyst role is written by people guessing. The guesses are reasonable, they are also unfalsifiable, and they all arrive at the same place: analysts will do less writing and more thinking.

Salesforce has answered the question concretely, and almost nobody has noticed. Keeping a Salesforce Certified Business Analyst credential current now requires demonstrating three competencies that were not part of the role two years ago. They are named, scoped, and assessed by a quiz at the end of the module.

That makes this page unusual. Instead of predicting what an AI-ready business analyst looks like on the Salesforce platform, it reads what Salesforce now requires one to do.

Salesforce rewrote Business Analyst certification maintenance around agent validation

The Summer ’26 Business Analyst certification maintenance module contains three sections, and passing it is a condition of keeping the credential rather than optional reading. Salesforce ties maintenance to its release cycle and gives each badge a year: its published maintenance schedule lists the Business Analyst badge as available from 27 August 2026 and due by 20 August 2027.

Those sections are selecting the correct automation approach, validating agent behavior with reasoning traces, and understanding data grounding for Agentforce.

Read what is absent. No section on elicitation technique. Nothing on stakeholder workshops, process mapping, or writing a requirement well. Those remain the job, which is presumably why they are not the part Salesforce felt obliged to add.

What got added is the work of deciding whether an agent should exist, checking whether it reasoned correctly, and knowing what its answers depend on. Stated as a relationship: AI shifts the Salesforce BA from producing documentation toward validating generated behavior. Salesforce’s own learning objectives are the evidence, and the three sections below are what each one actually asks for.

Orchestration density decides whether a requirement becomes a Flow or an agent

The first competency is a build-or-agent decision that used to belong to architects.

Salesforce frames the two options plainly. Traditional automation, built with Flow and Apex, follows a fixed path defined before the process runs, which suits rule-based tasks needing predictable results, high-volume record processing or strict auditability. Agentic automation works differently: the Atlas Reasoning Engine evaluates context at runtime and determines the next best action, which suits processes where the goal is clear but the steps cannot be fully specified in advance.

Salesforce calls the framework for choosing between them orchestration density, defining it as a measure of the reasoning complexity of a workflow’s path toward a goal. Three factors drive the assessment.

Execution path. Can every step and outcome be defined before the process runs, or does the path depend on context at runtime?

Goal complexity. Does the process handle one contained task, or does it involve multiple competing outcomes and edge cases?

Modality mix. Does the process use structured data only, or does it also handle unstructured inputs such as emails, documents or voice?

Notice what those three questions are. They are requirements questions, not technical ones. A BA who has run the elicitation already knows whether the steps can be specified in advance and whether the inputs include email bodies. The analyst is the person best placed to answer them, which is why the competency landed on this credential rather than an architect’s.

The density matrix routes four complexity levels to four different tools

Salesforce publishes the routing as a selection matrix, and it is more granular than the usual advice to use agents for hard things.

Orchestration densityRecommended approach
LowFlow or Apex
Low to mediumAgentforce Grid
MediumAgentforce with Flow or Apex
HighAgentforce with Agent Script

Two readings matter for an analyst.

Start with the low row, which is a refusal. A process that updates a record when a field changes is low density, and the correct answer is Flow. An analyst who writes a requirement for an agent to do that has specified an expensive, non-deterministic solution to a deterministic problem, and the matrix says so on Salesforce’s own authority. That is a useful thing to be able to point at in a stakeholder meeting where somebody wants an agent because agents are what the board asked about.

Upper rows carry a scoping signal. High density means Agent Script, which means a different build effort, a different test approach and a different cost profile from a Flow. Recognizing density early changes the estimate as well as the design. Where the configure-or-build line falls more broadly is the subject of fit-gap analysis.

Reasoning traces convert agent behavior into evidence a BA can sign off

The second competency is the one that most changes what a BA does day to day, and it has no equivalent in traditional delivery.

Salesforce is explicit that testing an agent differs from testing automation. With Flow or Apex you verify that a process followed the correct path and produced the correct result. With Agentforce you also need to understand how the agent reached its conclusion.

Salesforce’s instrument for that is a reasoning trace, which Salesforce also calls a session trace or reasoning summary. It shows the chain of thought the Atlas Reasoning Engine followed to reach a decision, including the steps the agent considered, the actions it took, and the reasoning behind each decision.

Salesforce names three uses for an analyst during user acceptance testing. Confirming that the agent interpreted the business requirement correctly. Identifying where the agent’s reasoning diverged from the expected outcome. Providing documented evidence of agent behavior.

That middle one is the new skill, and it is harder than it sounds. A correct output from faulty reasoning is a defect that will recur, and it passes a conventional test. An agent that reached the right refund decision by reading the wrong policy article will reach a wrong decision next week on a case that differs slightly. Only the trace reveals it.

So acceptance criteria have to change shape. “The agent issues a refund for orders under thirty days” is testable by outcome. “The agent cites the current returns policy as the basis for the decision” is testable only by trace, and it is the criterion that catches the recurring defect. How acceptance criteria get constructed for Salesforce work in general is covered in writing user stories and acceptance criteria, and the wider test design around agents sits in how agent test design works.

Grounding is the dependency a BA validates without configuring

The third competency comes with a boundary Salesforce draws itself, and the boundary is the interesting part.

Grounding, in Salesforce’s definition, is the process of providing an agent with fresh, trusted and relevant business context before it generates a response. Data 360 is the foundation for storing and retrieving that content, through retrieval augmented generation.

Then the line: a Business Analyst does not need to configure grounding, but does need to understand what it depends on.

That sentence is the cleanest statement available of where the AI-ready BA sits. Not building the retrieval pipeline. Accountable for knowing that the agent’s answers are only as good as the content behind them, and for asking during requirements gathering and UAT whether that content is accurate, current, and actually reachable by the agent.

In practice it produces questions a BA should be raising before a build starts. Which knowledge articles will this agent ground on, and who owns them. Which fields are sparsely populated, because an agent reading a thinly filled field will answer confidently from a biased sample. Whether the policy the business described in a workshop exists anywhere the agent can read, or only in somebody’s head.

That last question exposes the common failure. A workshop produces a clear statement of how returns are handled, the requirement is written, the agent is built, and nothing in the org contains that policy in a retrievable form. The pre-activation version of these checks is set out in the Agentforce readiness checklist.

GetGenerative.ai agents produce the drafts a BA now validates

There is an obvious tension in a role defined around validation. Validation needs something to validate, and if the analyst is still hand-writing every requirement, design note and test script, the time to inspect reasoning traces does not exist.

That is the gap GetGenerative.ai is built around. Of its six delivery agents, three produce what an analyst spends the week on. Workshops come back as structured scope instead of a recording nobody replays. That scope becomes solution outlines, stories and acceptance criteria in one consistent format. Test cases arrive keyed to those same stories.

A useful way to frame the division: generation moves to agents while judgment stays with the analyst. A generated story is a hypothesis about what the business meant. Deciding whether it is right, whether it is complete, and whether its acceptance criteria would actually catch a failure is the work that cannot be delegated, and it is precisely the work Salesforce’s three new competencies describe.

What the platform does not do is tell you whether a process is low or high orchestration density, or whether a reasoning trace shows sound logic. Those are the judgments the credential now tests. Teams restructuring analyst capacity around this split can compare plan options for analyst teams.

Salesforce retired AI Associate and moved recognition into a status program

Anyone building an AI-ready BA development plan should know that the obvious credential for it no longer exists.

Salesforce retired the AI Associate certification in February 2026. Its own credential page states the reason: the company launched Agentblazer Status, a program designed to build and recognize AI and Agentforce skills, and is evolving its exam catalog accordingly.

That changes what a development plan should contain. There is no entry-level AI certification to collect. What exists instead is a status program, plus the agent competencies now embedded in the maintenance requirements of the credential you already hold.

One practical consequence is mildly inconvenient and worth stating. AI capability for a Salesforce BA is no longer demonstrable through a single exam line on a profile. It shows up as maintained certification, Agentblazer progress, and the only durable proof: a deployment you validated, with traces you reviewed and defects you caught before go-live.

The BA credential kept its name while consultant credentials took the Agentforce prefix

A detail in Salesforce’s credential catalog is worth reading deliberately, because it cuts against the assumption that every role is being redefined as an agent role.

Salesforce renamed the Sales Cloud and Service Cloud consultant credentials to Agentforce Sales Consultant and Agentforce Service Consultant, and the rename was thorough: the old salescloudconsultant credential address now resolves to the Agentforce Sales Consultant page. What did not change is that credential’s description, which still speaks of designing and implementing Sales Cloud solutions. The Business Analyst credential kept its name outright and is still listed as Salesforce Certified Business Analyst.

Agent-specific content went into maintenance, not into the title. That is a reasonable reading of the role: the analyst’s job is not to become an agent specialist, it is to keep doing business analysis in an environment that now contains agents. Requirements, stakeholder management and process understanding remain the credential’s substance, with agent validation added to them.

For anyone weighing a career move, that is the opposite of a signal to retrain into an agent role. It is a signal that the existing role absorbed new responsibility.

A validation-first workflow changes which artifacts a BA produces

Put the three competencies together and the analyst’s weekly output looks different, though less dramatically than most predictions suggest.

StageWhat changesWhat does not
DiscoverySessions produce structured scope through tooling instead of longhand notesThe questions asked, and the judgment about which answers conflict
RequirementsStories arrive as drafts to be corrected, not as blank pagesJudging whether a draft matches what the business meant
Solution choiceDensity assessment becomes an explicit, documented stepKnowing the process well enough to answer the three density factors
Acceptance criteriaSome criteria now specify reasoning as well as outcomeThe discipline of writing criteria that can actually fail
UATTrace review joins outcome testingFacilitating the business through sign-off

Everything in the right-hand column is the durable part of the job, and it is why the role is being extended rather than replaced. Traceability from requirement through to tested outcome becomes more important when drafts are generated, not less, which is the argument for maintaining a matrix that traces every requirement to a tested outcome. The document that holds scope before design begins is still a BA artifact too, and its structure is covered in the business requirements document.

Three failure signatures show up in generated Salesforce requirements

Validation is only a skill if you know what wrong looks like. Generated Salesforce requirements fail in patterns, and these three account for most of it.

Access is assumed rather than specified. A generated story says a manager reviews the record. It does not say how that manager can see it, and Salesforce makes visibility an explicit design decision through the role hierarchy, sharing rules, manual sharing or teams. A story silent on access produces a build that is silent on access, then a defect in UAT that looks like a bug and is actually a missing requirement.

Automation is named without the choice being made. Generated output reaches for whatever automation the training data favored. The density framework above exists precisely to make that an argued decision, and a story that says the system automatically does something has skipped it.

Acceptance criteria restate the story. Common, and the hardest to see. A criterion that says the manager can approve the request restates the story instead of testing it. A criterion has to be capable of failing, and generated criteria are frequently written so that any working implementation passes.

Learning to spot these three is more valuable than any tool training, because they outlast any change of model, vendor or platform.

What to learn first, in order of usefulness

For an analyst deciding where to spend limited time, the sequence matters more than the list.

Start with the density framework, because it is small, immediately applicable, and it prevents the most expensive category of error: building an agent where a Flow belonged. It is a single page of criteria and it changes decisions this quarter.

Learn to read a reasoning trace next. Open one in a sandbox for an agent that behaved correctly, before you ever need to debug one that did not. Pattern recognition for sound reasoning only comes from seeing the normal case.

Third, rewrite one set of acceptance criteria so that at least one criterion specifies reasoning rather than outcome. One set is enough to understand what the format demands.

Then the grounding dependencies, which are mostly a matter of asking two questions in every workshop: where does this policy live, and who keeps it current.

Tool fluency comes last, deliberately. Tools change, and an analyst who understands density, traces and grounding can assess any tool against them. An analyst who has only learned a tool has learned the thing most likely to be replaced.

What analysts ask when the role description changes

What does an AI-ready Salesforce business analyst actually do differently?

Three things Salesforce now names in its certification maintenance: assesses orchestration density to decide whether a process needs an agent or a Flow, reviews reasoning traces during UAT to confirm the agent interpreted the requirement correctly, and validates the data conditions an agent’s grounding depends on. Elicitation, stakeholder management and process understanding are unchanged.

Is AI replacing Salesforce business analysts?

The evidence from Salesforce’s own credential points the other way. Agent-related competencies were added to Business Analyst certification maintenance rather than the role being folded into a new one, and the consultant credentials that did get renamed to Agentforce were the Sales and Service Cloud ones, not this. Generation of drafts is moving to tooling; the judgment about whether a draft is correct is what the credential now tests.

What is orchestration density in Salesforce?

It is Salesforce’s framework for measuring the reasoning complexity of a workflow’s path toward a goal, used to choose between traditional and agentic automation. It assesses three factors: whether the execution path can be fully defined before the process runs, how complex the goal is, and whether the process handles unstructured inputs as well as structured data. Low density routes to Flow or Apex, high density to Agentforce with Agent Script.

What is a reasoning trace and why does a BA need it?

A reasoning trace, also called a session trace or reasoning summary, shows the chain of thought the Atlas Reasoning Engine followed to reach a decision, including steps considered, actions taken and the reasoning behind each. A BA uses it in UAT to confirm the agent interpreted the requirement correctly, to locate where reasoning diverged from the expected outcome, and to document agent behavior as evidence. It catches correct answers produced by faulty reasoning, which conventional outcome testing passes.

Which AI certification should a Salesforce business analyst get?

Salesforce retired the AI Associate certification in February 2026, so there is no entry-level AI exam to take. Recognition moved into Agentblazer Status, and the agent competencies now sit inside Business Analyst certification maintenance. A development plan should combine maintained certification, Agentblazer progress and documented experience validating a real deployment.

Do business analysts need to configure Agentforce grounding?

No. Salesforce states that a Business Analyst does not need to configure grounding but does need to understand what it depends on. The analyst’s job is to establish during requirements and UAT whether the content an agent will ground on is accurate, current and reachable by the agent, and to flag where a business policy exists only in conversation rather than in a retrievable source.

Salesforce UAT: Process, Checklist and Test Script Examples

Ask five Salesforce teams what UAT is and you get five answers, most of which amount to letting users click around before go-live and collecting what they say. That version produces a list of opinions, an argument about whether each one is a defect or a change request, and a sign-off nobody wants to put their name to.

Salesforce has published a definition, and it contains a second clause that the clicking-around version skips entirely.

Salesforce defines UAT as two checks and most teams run one

In its Trailhead module on the subject, Salesforce describes user acceptance testing as end-user testing performed in a sandbox or test environment to verify that a project or enhancement works as intended, and that what was originally requested is actually being delivered.

Read the two halves separately, because they are different activities.

First comes a functional check. Does the thing behave correctly when a user does what the system expects? That is what most UAT cycles test, and testers are good at it.

Second comes a scope check. Is this what the business asked for? That question is answered by comparison, not by exploration, and it requires something written down to compare against. Without it, a tester’s only reference point is their own expectation, which was never recorded and is therefore unarguable.

That consequence runs through everything below. A UAT cycle that only performs the first check cannot produce a defensible sign-off, because the business is being asked to accept delivery against a standard nobody stated. That is why sign-off meetings turn into negotiations.

Salesforce is also clear about who carries this. It features Dernie Hashemzadeh, who leads Salesforce’s own internal business analysis team, and places UAT under the business analyst’s purview, with the formality of an official sign-off described as a big part of the phase.

A test script performs the scope check that exploration cannot

So the instrument matters more than the schedule. A test script is the artifact that converts “does this seem right to you” into “does this match what was agreed”.

What makes a script work is not detail for its own sake. It is traceability in one direction and verifiability in the other: each script points back to a specific acceptance criterion, and each step has an expected result a tester can mark pass or fail without interpreting.

Three properties separate a script from a list of instructions.

It names the story or criterion it validates, so a failure is traceable to a commitment rather than to a preference. Mapping that across the whole project is the job of the matrix linking requirement to tested outcome.

It states a starting condition, because half of UAT failures are really setup failures. A script that begins “open the opportunity” without saying which opportunity, owned by whom, at what stage, will fail for reasons unrelated to the build.

It has an expected result written before the test runs. An expected result written afterwards is a description of what happened.

Where the acceptance criteria themselves come from, and why criteria that cannot fail are the root cause of unusable scripts, sits in how acceptance criteria get written.

Four script formats exist and two survive a sign-off dispute

Teams write UAT scripts in four familiar shapes. They are not equally defensible.

Narrative. “Check that the approval process works correctly for large deals.” One sentence, no steps, no expected result. Fast to write and worth nothing in a dispute, because two people can disagree about whether it passed.

Step-and-expect. Numbered actions, each with an expected result and a pass or fail box. The workhorse format and the right default for configuration.

Given-When-Then. Preconditions, action, expected outcome, inherited from the acceptance criteria. Strongest where the criterion was written that way already, since the script then needs no translation.

Scenario walkthrough. An end-to-end business process crossing several objects and users, testing the joins rather than the features. Essential and insufficient alone, because it finds integration problems and misses field-level ones.

Here is the same requirement in the two formats that hold up.

FormatThe script
Step-and-expect1. Log in as a sales rep in the EMEA role. 2. Open opportunity ACME-1042, stage Negotiation, amount 85,000. 3. Change amount to 120,000. 4. Save. Expected: record locks for edit, approval request appears in the EMEA manager’s queue within one minute, rep sees status Pending Approval.
Given-When-ThenGiven a sales rep in the EMEA role owns an opportunity at Negotiation worth under 100,000, when they raise the amount above 100,000 and save, then the record is submitted for approval, locked for edit, and routed to their regional manager.

Both are verifiable by someone who was not in the requirements workshop. A narrative version of the same requirement, “test that big deals need approval”, is not.

Two things to notice in those examples. Each names a specific record, a specific role and specific values, which is what makes the result reproducible. And each states a timing expectation where one exists, because “appears in the queue” without a time bound is a criterion a tester cannot fail.

A UAT cycle runs in six stages, each ending in a decision

This process is short. What makes cycles overrun is running the stages out of order or skipping the decision at the end of one.

StageWho runs itEnds when
Script authoringBA, from acceptance criteriaEvery in-scope criterion has a script
Environment and data readinessDelivery teamTesters can log in and find their records
Smoke passBA or lead testerCore paths run without blocking errors
Tester briefingBATesters know their scripts, their role, and how to log results
ExecutionBusiness testersAll scripts attempted, results recorded
Triage and retestDelivery team with BAFailures resolved or dispositioned, affected scripts re-run

Smoke pass before tester briefing is the stage most often skipped and the one that protects the cycle. Twenty business users discovering a blocking error on script two costs a day of credibility you do not get back, and it converts a cycle into a reschedule.

Triage sits inside the cycle rather than after it, because a failure that is really a change request needs to leave the defect log before anyone counts it. How failures get classified once they are in the log is its own discipline, and the environment half of stage two belongs to the sandbox the cycle runs in.

The pre-access checklist has eleven items and four of them block

Before a single business tester receives a login, these should be true. Four marked blocking are the ones that waste everyone’s day if they are not.

#CheckBlocking
1Every in-scope acceptance criterion has at least one scriptYes
2Each script has a stated starting condition and expected resultYes
3Test users exist with the profiles and roles real users will haveYes
4Smoke pass completed on the core pathsYes
5Test records exist matching each script’s starting condition
6Email deliverability confirmed, so notification steps can be observed
7Integrations pointed at test endpoints, not production
8Result-logging method agreed and accessible to testers
9Defect severity definitions written and shared
10Named tester per script, with a backup
11Cycle start and end dates agreed with the business

Item three is the one teams underestimate. Testing as a system administrator proves nothing about what a sales rep can see, because visibility is the thing most likely to be wrong and the thing an admin profile hides. A UAT run entirely under administrator permissions will pass and then fail in week one of production.

Item six catches a Salesforce-specific trap with a precise mechanism. Salesforce documents that new and refreshed sandboxes default to System email only, a setting that permits automatically generated messages such as new user and password reset emails and nothing else. So a tester logs in without difficulty, and then never receives the approval notification their script asks them to confirm.

Three consequences follow from that one default. The notification works and gets logged as a defect. The setting resets every time the sandbox is refreshed, so clearing it once is not a permanent fix. And it is changed at Setup, under Deliverability, in the Access to Send Email section, where the options run No access, System email only and All email, with Salesforce able to restrict whether you can edit the level at all.

Items five and eleven are where the business has obligations rather than the project, and both belong in the plan as dated commitments, which is covered in the plan that gates this phase.

GetGenerative.ai turns the script library into a reusable asset

Script authoring is the stage that gets compressed, and it is the stage that decides whether the cycle produces evidence.

Arithmetic is unforgiving on a small team. A mid-sized project carries a few hundred acceptance criteria. Writing a step-and-expect script for each, with starting conditions and expected results, is days of careful work by the person who also runs the workshops and manages the stakeholders. So scripts get thinner, narrative creeps in, and the cycle loses its ability to settle a dispute.

GetGenerative.ai generates the case library from the same stories and acceptance criteria the project already produced, which removes most of that authoring cost and keeps the script traceable to its criterion by construction rather than by someone remembering to add a reference. Because the org itself gets read, a script can name fields and record types that exist rather than ones the design assumed.

What stays human is the judgment a generated script cannot supply. Which starting condition reflects how the business actually works. Which edge case matters enough to script. Whether an expected result is specific enough to fail. A generated library is a strong first pass that still needs someone to add the awkward cases, because the clean path is the one guaranteed not to find the defect. Teams who want this stage scoped properly can see how a delivery pod runs a cycle.

Testers need a role, a script and a way to record results

Most UAT advice treats testers as a resource to be scheduled. Failures here are more specific than availability.

A tester without a named script tests what interests them, which is useful exploratory feedback and not acceptance testing. Both have value; only one can support a sign-off.

A tester testing outside their real role produces results that do not transfer. A regional manager should test the manager scripts, not the rep scripts, because the manager’s visibility is what their scripts assert.

A tester with no agreed way to record a result records it in an email. Results scattered across inboxes cannot be counted, and a cycle whose pass rate is unknown cannot close.

And a tester who has not been told what happens to a failure assumes nothing happens, which is why the second half of a cycle goes quiet. Telling people that each failure gets triaged within a day, and that they will see the outcome, is what keeps results arriving on day four.

Which coverage these scripts should aim for across the whole project, as distinct from how a single cycle runs, belongs in the wider test strategy.

Agent behavior needs a script shape that outcome testing cannot provide

Where an agent is in scope, UAT acquires a problem the four formats above do not solve.

A step-and-expect script tests what came out. With an agent, a correct output produced by faulty reasoning passes that script and recurs later on a slightly different case. So an agent script needs a second expected result, about the path rather than the answer.

Salesforce now treats this as a business analyst competency rather than a developer one, which is a meaningful signal about where it sits in a project. Mechanics of validating agent behavior during UAT, including what a reasoning trace shows, are set out in what the BA credential now requires, and the broader test design around agents sits in the wider test design around agents.

Two practical adjustments for a cycle that includes agents. Write at least one script per agent topic whose expected result concerns the basis of the decision, not only the decision. And give agent scripts to testers who know the business rule well enough to notice a right answer reached the wrong way, which is usually a different person from the one testing the screen flows.

Sign-off commits the business to something specific or to nothing

Sign-off is where a vague cycle becomes an expensive cycle, because the signature either references something or it does not.

A signature against a named script set, with a recorded pass rate and a list of accepted known issues, commits the business to a defined state. Later discoveries are change requests, and that conversation is short.

A signature on a document saying UAT is complete commits the business to a feeling. Every later discovery is arguable, and the project absorbs work it did not scope.

Three elements make sign-off hold.

A named, versioned script set, so both sides know what was tested.

A result expressed as a count rather than an impression. Scripts attempted, passed, failed, and failures still open.

A known-issues list, with each item accepted explicitly by whoever is signing. An issue the business has read and accepted is not a surprise in week two.

Conditional sign-off is legitimate and should be written as a condition with a date, not as a verbal understanding that the two remaining defects will be fixed soon. Where that signature feeds next is the cutover it authorises, and the data that made the cycle realistic in the first place is its own topic, covered in making test data representative.

Six questions decide whether a UAT cycle is worth running

What is UAT in Salesforce?

Salesforce defines user acceptance testing as end-user testing performed in a sandbox or test environment to verify that a project works as intended and that what was originally requested is actually being delivered. The second clause is a scope check, which requires written acceptance criteria to compare against, and it is the half most cycles skip.

What does a Salesforce UAT test script look like?

Either step-and-expect or Given-When-Then. A usable script names the acceptance criterion it validates, states a specific starting condition including the record, role and values, and gives an expected result written before the test runs. Narrative scripts such as “check the approval process works” cannot settle a disagreement, because two people can disagree about whether they passed.

Who should run Salesforce UAT?

Business users testing in their own roles, coordinated by a business analyst. Salesforce places UAT under the business analyst’s purview and describes the formality of official sign-off as a major part of the phase. Testing under an administrator profile is the common error, since an admin profile hides exactly the visibility problems UAT should catch.

What should be checked before UAT starts?

Four items block: every in-scope criterion has a script, every script has a starting condition and expected result, test users exist with real profiles and roles, and a smoke pass has cleared the core paths. Seven more matter, including test records, email deliverability, integrations pointed at test endpoints, an agreed logging method, severity definitions, named testers, and agreed cycle dates. Email deliverability is the one teams miss, because new and refreshed sandboxes default to System email only, which blocks the notifications a script asks a tester to observe.

Why do Salesforce UAT cycles overrun?

Usually because the smoke pass was skipped, so business testers hit a blocking error early and the cycle becomes a reschedule. Another recurring cause is triage happening after the cycle rather than inside it, which leaves change requests sitting in the defect log and makes the failure count meaningless.

How is UAT different for Agentforce agents?

An outcome-only script passes a correct answer reached by faulty reasoning, which then recurs on a different case. Agent scripts need a second expected result concerning the basis of the decision rather than the decision itself, and they should be given to testers who know the underlying business rule well enough to spot sound reasoning from unsound.

Salesforce Implementation Plan: 7 Phases, Template and Timeline

A plan made of seven boxes in a row is a picture of a project, not a plan. Anyone can draw it, nobody can defend it, and it answers none of the questions a sponsor actually asks: what has to be true before this phase starts, what proves it finished, and which single item will stop everything if it slips.

Seven phases follow, and they are conventional, which is fine. What makes a plan work is the criteria between them.

Twelve agents per organization change what a plan has to sequence

One thing has materially changed about Salesforce planning since the last generation of templates was written, and it is worth establishing before the phases.

Salesforce’s 11th Annual Connectivity Benchmark Report, published as its 2026 Connectivity Report and based on a survey of 1,050 enterprise IT leaders, found organizations running an average of twelve agents, with that number projected to climb 67 percent within two years. Its connectivity finding is stated flatly: 96 percent of IT leaders agree that AI agent success depends on data integration across all systems.

Read those two findings together. Agents are arriving at volume, and the thing they depend on is data integration. A plan that schedules integration as a mid-project build task and agents as a later feature has inverted its own dependency order, which is how an agent reaches user testing grounded on data that does not reach it yet.

So the classic seven-phase shape survives. What changes is which items are dependencies and which are deliverables, and that distinction is what the criteria below encode.

Seven phases carry a Salesforce plan from discovery to hypercare

Here is the sequence. Phase names are familiar; read the right-hand column, because that is where the planning content lives.

PhaseProducesCannot start until
DiscoveryRequirements, process maps, success measuresSponsor named with decision authority
DesignData model, sharing model, integration contracts, dispositionsRequirements signed and scope baselined
Configure and buildWorking configuration and codeData model and sharing decided
Data migrationLoaded, reconciled dataSource data profiled and mapping agreed
TestDefects found and fixedBuild stable and test data seeded
Deploy and go-liveProduction cutover completeAcceptance signed and rollback rehearsed
HypercareStabilized org, handover to BAUUsers live and support route published

Two things about that table.

That third column is the plan. Everything else is a label. A phase with no stated precondition will start when the calendar says so rather than when it is ready, and a phase that starts unready produces rework that lands two phases later wearing a different name.

And the sequence is not strictly serial. Discovery for a later workstream can run while an earlier one builds, which is how programs phase by function or region. What cannot overlap is a dependency: nothing in column three bends because a date is tight.

Entry and exit criteria are what turn a phase into a gate

A phase boundary either tests something or it is a date in a calendar invite. Most plans have the second kind.

An entry criterion states what must be true to begin. An exit criterion states what proves the phase is done, in terms someone outside the project could verify. Both have to be falsifiable, which rules out most of what gets written.

Compare these two exit criteria for Design. “Design complete and approved” is unfalsifiable; it means whatever the person reading it wants. “Data model, sharing model and integration contracts documented and signed by the architect and sponsor, with no open decisions on the register” can be checked by someone who was not in the room.

Three properties make a criterion useful.

It names an artifact rather than a state of mind. Documents, signatures, test results and loaded record counts are checkable. Readiness, alignment and confidence are not.

It names who verifies it. A criterion with no verifier is a criterion nobody applies, which is most of them.

It is written before the phase starts, not during the argument about whether the phase finished.

What the first gate depends on is a sponsor with authority, which is also the output of a proper kickoff, covered in the kickoff that sets the first gate.

Integration is a dependency, not a phase

Most published Salesforce plans place integration somewhere in the build, between configuration and testing. That placement is the single most common structural error in the plans I have seen, and the Connectivity Report finding above explains why it matters more in 2026 than it did.

Integration is three separate things that belong in three different places.

The contract belongs in Design, before anything is built. Which system owns which field, which direction data flows, what the payload looks like, and what happens on failure. Agreeing that after the build has started means building twice.

The build belongs in Configure and build, where it is ordinary work.

The reconciliation belongs in Test, because an interface that moves data is not proven until both sides agree on what arrived.

Teams that treat integration as one block in the middle of the plan discover the contract problem during the build, which is the expensive moment to discover it. Where the data itself gets profiled, and why that belongs before kickoff rather than inside migration, is set out in what makes a date defensible.

Three gates decide whether the rest of the plan holds

Seven phases means six boundaries, and they are not equal. Three carry almost all the risk.

Design exit. The data model and sharing model leave this gate decided or they do not. Everything downstream assumes them, so a soft exit here propagates into every later phase. This is also where the configure-or-build decision per requirement should already be recorded, which is the output of how each requirement gets routed.

Test entry. Testing cannot start against an unstable build with unrepresentative data, and starting anyway produces defect reports that are really environment reports. Both halves of that precondition have their own discipline: what gets validated and by whom and the environment the test runs in.

Go-live entry. Acceptance signed, rollback rehearsed, support route published. Rehearsed is the operative word, since a rollback plan nobody has executed is a document rather than a capability. The full sequence sits in the cutover steps this gate approves.

Remaining boundaries matter and are recoverable. These three are not, which is the argument for spending review time unevenly rather than holding identical gate meetings six times.

Salesforce’s own phasing rule starts with one solved problem

Salesforce publishes a principle for phasing that is more useful than most methodology, and it is worth stating because it contradicts how scope usually gets set.

In its guidance on implementing projects with a phased approach, written for nonprofit implementations but general in its logic, Salesforce says the first phase should solve a real, tangible problem acknowledged by all key stakeholders, and should serve as a firm foundation for growth.

Two tests fall out of that, and most phase-one scopes fail at least one.

Does phase one solve something the business already agrees is a problem? Scope assembled from every department’s wish list solves nothing anyone was complaining about, and lands with users who were not waiting for it.

Is phase one a foundation the later phases build on? Accounts, contacts and the sharing model are foundational. A reporting suite is not, and shipping it first means rebuilding it when the data model underneath changes.

A phase one that passes both tests is usually smaller than the one originally proposed, which is the uncomfortable part.

The plan template carries nine fields per phase

A plan document that is a Gantt chart plus a paragraph cannot be used to run a project. Nine fields per phase can.

FieldWhy it exists
Phase name and objectiveOne sentence on what this phase is for
Entry criteriaWhat must be true to start, verifiable
Exit criteriaWhat proves it finished, verifiable
DeliverablesNamed artifacts, not activities
OwnerOne person, not a team
VerifierWho confirms the exit criteria, if not the owner
DependenciesWhat this phase waits on, inside or outside the project
Client obligationsWhat the business must supply, with dates
Known risksCarried forward, with a current status

Two fields get skipped: verifier and client obligations, and both failures have the same shape. Without a verifier, exit criteria get self-assessed by the person motivated to move on. Without client obligations written as dated commitments, the project absorbs every delay the business causes and reports it as its own slippage.

Effort behind each phase is a separate calculation with its own discipline, set out in turning scope into a number you can defend.

GetGenerative.ai compresses three phases and leaves four alone

Any claim about AI and project plans should say which phases it touches. Most do not, which is why buyers discount them.

Looking at the seven phases, the effect lands on three. Discovery produces structured requirements and scope from workshop sessions rather than notes someone transcribes later. Design converts those into solution outlines, stories and acceptance criteria against a consistent format, and because the org itself gets read, a design reflects deployed configuration rather than remembered configuration. Test gets its case library generated from the same stories, which is what stops the test pack being written the week testing opens.

Four phases are substantially untouched, and saying so is the point. Data migration is bounded by source data quality and by client decisions about what the correct value is. Deploy and go-live is bounded by cutover windows and sign-off. Hypercare is bounded by real user behavior. Configure and build moves somewhat and remains real work.

So the honest read is that artifact-heavy phases compress and decision-heavy phases do not, and a plan that applies a uniform percentage across all seven is wrong in both directions. Teams who want a plan built this way can see how a delivery pod sequences the work.

Agents enter the plan twice and teams sequence only one

Given the adoption numbers above, most Salesforce plans written now contain agent work, and it enters at two separate points that get conflated.

Agents that help deliver the project are a tooling decision. They affect the three phases above and they belong in the resourcing section, not the scope.

Agents delivered as part of the solution are scope. An Agentforce deployment needs requirements, a design, grounding data, test cases and a consumption assumption, which means it touches every phase in the table. A planning error follows from treating that second category as a configuration task appended to the build, when its real dependency chain runs through integration and data readiness.

That dependency is what the 96 percent finding is about. An agent is only as useful as the systems it can reach, so agent scope inherits the integration contract agreed at Design exit. Sequencing an agent before that contract exists produces a demo rather than a deployment. The design artifact that carries both is covered in the document that records those decisions.

A plan fails at its gates rather than inside its phases

Worth being precise about where plans actually come apart, because it is not where post-mortems usually look.

Phases rarely fail. Work inside a phase takes longer or shorter than expected and the plan absorbs it. What fails is a boundary crossed without the criteria being met, because the cost of that appears two phases later and gets attributed to whatever was happening then.

Four gate failures recur.

Design exited with the sharing model unresolved, so build proceeds on an assumption and visibility defects surface in testing as functional bugs.

Test entered against a build that was still changing, so the defect log mixes real defects with version confusion and nobody trusts the count.

Go-live entered with acceptance signed by someone who had not used the system, which converts into hypercare tickets that are really unmet requirements.

Hypercare ended on a date rather than on a condition, handing an unstable org to a support team with no defect threshold agreed.

Each of those is prevented by one sentence written before the phase started, which is the entire argument for criteria over calendars.

When a gate fails, re-baseline rather than waive it

A gate that cannot be met leaves three options, and the one teams reach for first is the one that costs most.

Waiving it is the default. That phase proceeds, the criterion is marked as an exception, and the exposure moves downstream without a record. Occasionally correct for a minor criterion, and never correct for the three gates above.

Narrowing scope so the criterion is met is usually right. If the sharing model is unresolved for two of six objects, remove those two from the phase and let the other four exit cleanly. Scope stays honest and the unresolved items stay visible.

Re-baselining the plan is right when the criterion is unmeetable at current scope. Do it once, with new dates and new criteria, rather than through a run of small waivers that leaves nobody able to say what the plan now is.

Record which happened and who decided. A plan with a waiver history is a plan that can be audited after go-live, and the alternative is a project whose actual sequence exists only in people’s memories.

What sponsors ask about the plan

Which phases does a Salesforce implementation plan contain?

Seven: discovery, design, configure and build, data migration, test, deploy and go-live, and hypercare. The phase names matter less than the entry and exit criteria between them, since a boundary that tests nothing is a date rather than a gate.

What should a Salesforce implementation plan template include?

Nine fields per phase: objective, entry criteria, exit criteria, named deliverables, a single owner, a verifier, dependencies, client obligations with dates, and carried risks. Verifier and client obligations are the two most often omitted, and omitting them means exit criteria get self-assessed and client-caused delays get reported as project slippage.

Which phase boundaries matter most?

Three. Design exit, because the data model and sharing model are assumed by everything after it. Test entry, because testing an unstable build with unrepresentative data produces defect reports that are really environment reports. Go-live entry, because acceptance and a rehearsed rollback cannot be recovered after cutover.

Where does integration belong in the plan?

In three places, not one. The contract belongs in design before anything is built, the build belongs in configure and build, and reconciliation belongs in test. Salesforce’s 11th Annual Connectivity Benchmark Report found 96 percent of IT leaders agreeing that AI agent success depends on data integration across all systems, which makes the contract a design-phase dependency rather than a mid-build task.

How should agent work be sequenced in an implementation plan?

Separate agents used to deliver the project from agents delivered as part of the solution. The first is a resourcing decision. The second is scope that needs requirements, design, grounding data, test cases and a consumption assumption, and its dependency chain runs through the integration contract, so it cannot be appended to the build as a configuration task.

What should happen when a phase cannot meet its exit criteria?

Narrow the scope so the criterion is met, or re-baseline the plan once with new dates and criteria. Waiving the criterion moves the exposure downstream without a record, which is acceptable only for minor items and never for design exit, test entry or go-live entry. Record which option was taken and who decided it.

Salesforce Go-Live Checklist: Cutover, Rollback and Hypercare

Nearly every go-live checklist contains the line “prepare a rollback plan” and then moves on. It is the least useful instruction in delivery, because on Salesforce the answer depends entirely on what you changed, and some of what you changed cannot be undone at all.

A rollback plan that does not say which parts are unrecoverable is not a plan. It is reassurance.

Three classes of change sit behind any Salesforce rollback plan

Before a runbook, a go-live needs this classification applied to its own change list. Every item belongs in one of three categories, and the categories behave completely differently under pressure.

ClassWhat reversal meansExample
ReversibleDeploy the previous versionFlows, validation rules, page layouts, Apex
Reversible with damageThe switch flips back, the data does not fully followField type conversions, State and Country/Territory picklists
PermanentNo supported path backMulti-currency, migrated data users have transacted on

The middle row is the one that catches experienced teams, because the change appears in Setup like any other and therefore looks safe.

Note what is not in row one. Metadata is reversible as a category and field changes are the exception inside it, which matters because field changes are among the commonest things a cutover carries.

Work through the change list and assign a class to each item before the cutover weekend, not during it. Anything landing in row three stops being a technical decision and becomes a business decision, because the question is no longer how to undo it but whether to proceed at all.

Multi-currency is permanent, and Salesforce says so plainly

The cleanest example of row three, and worth quoting because teams enable it on a Friday assuming it behaves like any other setting.

Salesforce’s own guidance on enabling multiple currencies opens by stating that enabling multiple currencies introduces permanent changes in the org, and then says it directly: after you turn on multiple currencies for your Salesforce org, you can’t turn it off.

There is a second clause with its own trap. Once a currency is added to the org’s list of supported currencies, it cannot be deleted from the administrator’s list, even after it is deactivated. A deactivated currency stops being visible to end users and stays visible to administrators, which Salesforce describes as cosmetic, and which in practice means a test currency enabled during a rushed cutover is in that list permanently.

So the practical rule for any feature in this class is that the sandbox is the only place to find out. Salesforce makes that recommendation itself for multi-currency, and the environment question behind it sits in choosing the sandbox to prove it in.

Converting a field type can delete the data and the list views with it

Salesforce documents eleven conversions that risk data, and its own advice is blunt: only convert custom fields that have no data.

The pattern across that list is worth knowing rather than learning. Conversions to or from Date and Date/Time risk data. So does converting to Number, Percent or Currency from anything else. So does moving away from Checkbox, in either direction with Multi-Select Picklist, and in either direction with Auto Number. Text to Picklist is on the list, as is Text Area (Long) to most types.

Two consequences make this a row-two item rather than a row-one item.

Changing the type back does not bring the values back. The metadata reverts and the data does not, which is the definition of reversible with damage.

And the damage spreads past the field. Salesforce states that if data is lost, any list view based on that custom field is deleted, and assignment and escalation rules can be affected. So a field conversion during cutover can remove a report-adjacent artifact nobody put on the change list.

There is a narrower version of the same trap in picklists. Converting a picklist to multi-select keeps the defined values, but record values that were never in the picklist definition are deleted from those records at conversion.

Disabling state and country picklists reverts only the untouched records

This is the row-two example, and the detail matters because the feature does have a disable path, which is exactly what makes it dangerous.

Salesforce documents that state and country/territory picklists can be turned off by clicking Disable on their setup page. The reversal is partial, and the condition is precise: for records that you have not saved since enabling picklists, state and country values revert to their original text values.

Read the condition carefully. Records nobody has touched since the switch come back. Records that have been saved since enabling do not, so a week of normal user activity converts a reversible change into a data reconciliation exercise. Customizations referencing the picklists are affected too.

So a change in this class has a shelf life on its reversibility, measured in user activity rather than in days. That is a different kind of risk from the metadata in row one, and it belongs in the rollback plan as a stated window rather than as an assumption that Disable restores the prior state.

Migrated data stops being reversible the moment a user transacts on it

The largest row-three item on most go-lives is not a feature. It is the data.

Loading records into production is reversible in the trivial sense that records can be deleted. It stops being reversible the moment users begin working on them, because what has to come back is not the data you loaded but the data plus everything that happened to it: new opportunities on migrated accounts, cases logged against migrated contacts, activity history, field updates, approvals in flight.

So the reversibility question for data has a specific trigger, and it is user access rather than the load itself. That has two consequences for sequencing.

Validate the load before any user is let in, because the window where a bad migration can still be cleanly removed closes when the first user logs in rather than when the load finishes.

And define what a failed migration means numerically before the window opens. Record counts by object, a reconciliation of totals for anything financial, and a spot check of relationships. “The data looks right” is not a cutover decision.

The cutover sequence has a fixed order and three freeze points

Before the runbook format, the order. Cutover steps are not interchangeable, and the sequence below is driven by what each step makes irreversible.

WindowStepWhy it sits here
T minus 1 weekFreeze configuration in the source environmentAnything changed after this is untested
T minus 1 weekFinal full rehearsal against a refreshed copyLast chance to time the window honestly
T minus 2 daysFreeze source system data entry, or agree a delta processDecides whether you migrate once or twice
Window opensDeploy metadataReversible, so it goes early
Window opensLoad data, objects in dependency orderParents before children, owners before records
Mid-windowReconcile counts and totals against sourceThe abort decision depends on this number
Mid-windowEnable integrations, pointed at productionReversible individually, which is what makes partial rollback possible
Late windowFlip irreversible settingsAfter every step that could still cause an abort
Late windowAssign licenses and activate usersPoint of no return
Window closesPublish the support route and open accessHypercare starts here, not at a meeting

Three freezes carry the sequence, and each is a commitment someone has to make rather than a task. Configuration freeze protects the rehearsal’s validity. Data freeze decides whether a delta load is needed, which is the single largest variable in window length. And access freeze, meaning nobody gets in before reconciliation passes, is the one that preserves the abort option.

Rehearsal is the step most often dropped for time, and it is the only one that tells you how long the window actually takes. A rehearsal that runs four hours longer than planned has given you the most useful number in the plan.

A cutover runbook holds eight columns per step

A runbook written as a list of tasks produces a cutover where nobody knows whether step eleven is late. Eight columns make the window governable.

ColumnWhy it exists
Step numberSo people can talk about step eleven
ActionOne instruction, performed by one person
OwnerNamed individual, not a team
Planned start and durationWhat “late” means
DependencyWhich step must finish first
VerificationHow you know it worked, not that it ran
ReversibleYes, partially, or no, from the classification above
StatusUpdated live during the window

Verification and the reversible flag are the two that get dropped, and they are the two that make the runbook useful at 2am. A step marked done because the script ran is not evidence. A step whose reversible flag reads no tells the person running the window that the decision point has already passed.

What authorizes the window in the first place is the signed acceptance from testing, covered in the sign-off this window depends on.

Sequence the irreversible steps as late as the dependencies allow. If multi-currency has to be enabled, it goes after everything that could still cause an abort, because once it is on, the abort option is gone. Where this runbook sits relative to the phase gates is set out in the plan that authorizes this window.

GetGenerative.ai reads the org so the classification is not from memory

The classification above only works if the change list is accurate and complete, and that is where go-live preparation usually fails rather than in the runbook format.

The reason is ordinary. A project of any length accumulates configuration beyond what the design document describes. Somebody added a validation rule during UAT to unblock a tester. A field got renamed. A permission set grew. By cutover weekend, the authoritative statement of what is being deployed exists in the metadata rather than in any document, and the team is working from the document.

GetGenerative.ai closes that gap by inspecting the org itself, so a cutover change list gets assembled from what is deployed rather than from recollection and a design three sprints old. For a go-live that matters more than on other artifacts, because an item missing from the change list is an item with no reversibility class, no verification step and no owner at 2am.

What no tool decides is the business question underneath. Whether to proceed when a required step is permanent, how much reconciliation variance is acceptable, and who is authorized to call an abort at 3am: those belong to named humans and should be settled in daylight. Teams wanting that run by people who do it repeatedly can talk to us about post-go-live support.

A rollback decision needs a trigger, an owner and a deadline

Most rollback plans fail not because reversal was impossible but because nobody decided in time.

Three elements prevent that, and all three are written before the window opens.

A trigger expressed as a condition, not a feeling. Data reconciliation variance above an agreed threshold. A blocking defect in a critical path with no workaround. Integration failure that cannot be cleared within a stated number of hours. Written triggers turn an argument into an observation.

A named decision owner with authority to abort, available for the whole window and not on a plane. One name. A decision needing three people to agree at 3am is a decision that will be deferred until reversal is no longer possible.

A deadline, because reversibility decays. The point of no return is a specific hour in the runbook, usually the moment users are admitted or the first irreversible step completes, whichever is earlier. After that the only options are forward.

Whether a deployment can be reversed at all depends on the tooling that moved it, and what each option does and does not give you is compared in deployment tooling and its limits.

Partial rollback deserves naming as the realistic middle path. Reverting one integration while leaving the rest live, or restricting a feature to a pilot group rather than withdrawing it, is usually available when full reversal is not. It needs planning in advance to be executable under pressure. Which failures justify any of this is a triage question, covered in how defects get classified and ranked.

Hypercare needs severity routing and a numeric exit, not a duration

Hypercare is commonly specified as two weeks of heightened attention, which gives it no entry condition, no routing and no way to end.

Three mechanics make it function.

A severity scale agreed with the business before go-live, with a response commitment against each level and a named route for each. The scale matters less than the fact that the business agreed it when calm, because every ticket in week one arrives described as urgent.

A single intake route that users actually know. Hypercare tickets arriving through four channels cannot be counted, and a hypercare period whose volume is unknown cannot be assessed. Publishing one route, and telling users what it is during training, is most of the work.

A numeric exit measure. Open severity-one defects at zero, severity-two below an agreed count, and ticket volume trending down across a stated number of days. That converts the end of hypercare into an observation rather than a negotiation, and it gives the receiving support team something to accept.

The handover itself is a deliverable rather than a meeting. Known issues with owners, the defect log at its current state, the configuration changes made during hypercare, and whatever was learned about the data. Who then owns the org, and under what cadence, is a governance question rather than a cutover one.

Agents add a monitoring obligation that hypercare has not carried before

Where an agent went live, hypercare acquires something it has not previously had to watch, and the usual metrics do not surface it.

Ticket volume and defect counts catch broken things. An agent that is working but reasoning poorly produces neither, because the user receives a plausible answer and does not report it. The failure is silent and compounding, and it surfaces weeks later as a pattern rather than as an incident.

Two additions to a hypercare plan where agents are in scope.

Sample agent conversations deliberately during the window rather than waiting for complaints, and review the basis of the decision rather than only the outcome. A small daily sample read properly beats a dashboard of volumes.

Watch consumption as a behavioral signal, not only as a cost line. An agent taking more actions per conversation than the design assumed is telling you something about its instructions before it tells you something about the bill.

Who owns the agent after the project team leaves is the part most often unassigned, and it is set out in who holds the agents after launch.

Six questions decide whether a go-live is ready

What should a Salesforce go-live checklist cover?

The cutover window specifically: a step-by-step runbook with owners, dependencies and verification, a reversibility class for every change, a rollback decision with a trigger and a named owner, and hypercare with severity routing and a numeric exit. Whole-project readiness is a different document.

What cannot be rolled back in Salesforce?

Some changes have no supported reversal. Salesforce states that enabling multiple currencies introduces permanent changes and that once turned on it cannot be turned off, and that a currency added to the supported list cannot be deleted even once deactivated. Migrated data becomes effectively irreversible once users transact on it, because restoring it would mean discarding their work.

Can state and country picklists be disabled after enabling?

Yes, by clicking Disable on their setup page, but the reversal is partial. Salesforce documents that values revert to their original text only for records not saved since the picklists were enabled. Records saved since then keep picklist values, and customizations referencing the picklists are affected, so reversibility decays with user activity.

When is the point of no return in a Salesforce cutover?

Whichever comes first: the moment users are admitted to production, or the completion of the first irreversible step. Both should be marked as a specific hour in the runbook, because a rollback decision taken after that point is not available regardless of what the plan says.

How long should Salesforce hypercare last?

Specify it as a condition rather than a duration. Open severity-one defects at zero, severity-two below an agreed count, and declining ticket volume across a stated number of days. A two weeks with no exit measure ends when the calendar says so, which hands an unstable org to a support team that never agreed to receive it.

What changes about hypercare when an agent is live?

Standard metrics miss the main risk. An agent that answers plausibly but reasons poorly generates no tickets and no defects, so the failure is silent. Sample conversations daily and review the basis of each decision rather than only the outcome, and treat higher-than-expected consumption per conversation as a behavioral signal about instructions rather than only a cost variance.