Salesforce has spent the last three years adding AI capabilities to almost every part of its platform. Most of that work has involved connecting existing foundation models, Claude, GPT, Gemini, to Salesforce data and workflows through Agentforce. Salesforce Koa brings a new point of curiosity to this evolving landscape. It is Salesforce’s first CRM reasoning model built from the ground up, trained specifically for CRM reasoning rather than general intelligence. What is it and what makes it worth being looked at in the future? From its capabilities to performance benchmarks and piloting, there are many aspects to consider.
What’s insideWhat is Salesforce Koa?Salesforce Koa FeaturesKoa Benchmarks: What the Numbers Actually SayKoa vs Agentforce: Understanding the RelationshipSalesforce Koa Pilot: How to ParticipateConclusion
What is Salesforce Koa?
Salesforce and NVIDIA unveiled Koa, Salesforce’s very first reasoning model made to serve the purposes of Agentforce, at Dreamforce on September 15, 2026. It differs from a generic model in that it solves problems step-by-step until the point at which it generates its output. It is significant for CRM specifically because most crucial operations in it are not performed in just one step. Updating an opportunity requires checking pipeline context. Routing a case requires evaluating priority rules, ownership logic, and entitlement history. Scheduling a follow-up requires reading prior interaction data and applying business rules about timing.
The reasoning model was created using the foundation model called Nemotron-3-Super-120B provided by NVIDIA, which is built around a Mixture-of-Experts architecture. In this kind of architecture, a certain set of model’s parameters that is required to perform the operation is activated, while the whole model activation for each request would take much more time. The model includes a context window size of one million tokens, which makes it possible to process the entire account history, conversation thread, and workflow context at once without maintaining everything from the start.
Salesforce trained the model on synthetic CRM data for 27 years in 14 different industries. The post-training used reinforcement learning from Group Relative Policy Optimization — a technique that rewards correct multi-step reasoning rather than just correct final outputs. The result is a model that is not trying to be the best AI in general. It is trying to be the best AI for the specific class of tasks Salesforce customers run every day.
Salesforce Koa Features
CRM-native reasoningKoa understands Salesforce’s data model structure because it has been trained on the same basis. It recognizes the concepts of object relationships, field dependencies, approval logic, and sequencing of workflows in their true sense.Stays inside the trust boundarySalesforce controls the model weights entirely. Post-training and inference happen within Salesforce’s own infrastructure, which means customer data does not leave the Salesforce trust boundary during model calls. For organizations with data residency requirements or sovereignty concerns, this is the material difference between Koa and models accessed through third-party APIs.Three deployment optionsThe Salesforce AI model can be selected at three levels inside the platform. Org-wide in Agentforce Setup, making it the default model for every agent in the organization. As a managed large language model in Data Cloud’s generative models catalogue. Or at the per-agent and sub-agent level within the Agent Builder, where it can be implemented on a particular workflow, while other models perform their separate functions. The fact that it is implemented on a per-agent level implies that a mixed modeling architecture is not an exception but a rule.Works across any agent typeAny Agentforce agent, sub-agent, or agent router can use Koa. It is not restricted to a specific cloud or use case category.
Koa Benchmarks: What the Numbers Actually Say
Koa benchmarks show a model that beats where it is designed to compete and is honest about where it does not. On Salesforce’s own CRM benchmark, which evaluates tasks like updating opportunities, routing cases, and scheduling follow-ups rather than general reasoning, Koa produces roughly two times more reliable results than a general-purpose model. It also outperforms the Nemotron base model it was derived from, particularly on multi-turn tool-use scenarios where the agent needs to make multiple model calls to complete a workflow.
There is a useful distinction to consider here. Salesforce designed Koa for CRM-related tasks, which is why the strongest results are obtained in tasks related to CRM workflow specialization. The published benchmark scores also show that models such as Claude Opus 4.8 and GPT-5.5 perform strongly across the evaluated categories. That does not take away from Koa’s results. General-purpose models bring broad capabilities to the table; Koa has been trained to handle the decisions, tool calls, and workflow steps that Salesforce agents encounter. The benchmark is also vendor-reported and uses Salesforce’s own CRM task set, so independent validation would provide another useful point of comparison.
That is not a weakness in the product. It is the product’s entire point. Koa is not competing with GPT-5.5 on general intelligence. It is competing with what a general model does when asked to handle a CRM workflow, and on that narrower comparison, the two-times-reliability claim holds.
Koa vs Agentforce: Understanding the Relationship
Koa vs Agentforce is not a competition. Koa is a model that runs inside Agentforce, a reasoning engine option, not a separate product. Before Koa, Agentforce used what Salesforce calls the Default mix — currently GPT-4.1 for agents built in the new Agent Builder and GPT-4o for agents in the legacy builder. Claude on Amazon Bedrock and Google Gemini on Vertex AI are also available as model options. Koa becomes the fourth option in Agentforce Setup.The practical implication is model routing. Salesforce’s AI gateway can direct routine, lower-complexity tasks to Koa, faster and cheaper to run within the trust boundary, while directing harder reasoning tasks to a frontier model when the use case justifies it. That routing logic is what makes Koa economically interesting beyond the accuracy claim: it gives Agentforce customers a cost-efficient, data-sovereign option for the high-volume CRM tasks that currently consume frontier model capacity.
Salesforce Koa Pilot: How to Participate
The Salesforce Koa pilot is currently active with a select group of customers, including 1-800Accountant, Baxter Credit Union, Engine, Formula 1, UChicago Medicine, and Xero. General availability is targeted for US regions in Winter 2026, with an open beta expected shortly after.
Who should go for the pilot test:Organizations that currently use Agentforce in US regions and have data residency/sovereignty so that customer data cannot be taken out of the Salesforce trust boundary. For such clients, Salesforce Koa remains the only available solution for using Salesforce-hosted reasoning without going through a third-party provider.How access works:Koa is not a separate product purchase. There is no published Koa-specific pricing — access is consumed through existing Agentforce billing. When the pilot opens more broadly and reaches general availability, enabling it is an opt-in through Agentforce setup rather than a new contract.What to prepare before enabling Koa:The model selection in Agentforce operates at three levels — org-wide, per agent, and per sub-agent. Prior to adopting Koa, identify the agent workflows that have the CRM-specific activities for which Koa’s training is most applicable: generating leads, qualifying opportunities, and resolving service cases across the customer lifecycle. For agents handling tasks outside that scope, keeping the Default mix or a frontier model in place is the right call.What can you expect in the pilot project:Pilot customers are currently using a model that has not been made available to all users yet. Feedback during this phase directly influences how Koa develops before the Winter 2026 release. Testing across high-volume, repeatable CRM workflows will produce the most useful signal — particularly for multi-turn tool-use scenarios where the error reduction claim is strongest.
Conclusion
Salesforce Koa is not a general AI model that happens to work in a CRM. It is a CRM reasoning model that happens to be built on one of the most capable foundation architectures available. The distinction shapes everything about how it should be evaluated, deployed, and measured.The benchmarks are honest about what Koa is good at and where frontier models still lead. The trust boundary is really unique in terms of data sovereignty needs of organizations. The pilot is active, the GA schedule is defined, and the access point through Agentforce billing removes the procurement hurdle that normally hinders enterprise AI adoption. For Agentforce customers in US regions, the question is which workflows to test it on first.
.gkal-blog{
--gkal-accent:#1a73e8; --gkal-dark:#0f4fa8; --gkal-light:#e8f0fe; --gkal-hl:#f3f7ff;
--gkal-line:#e4e9f2; --gkal-ink:#101828; --gkal-body:#3f4a5a; --gkal-mute:#697586;
--gkal-ok:#0f7a4a; --gkal-ok-bg:#eefaf3; --gkal-ok-line:#c3ead6;
--gkal-warn:#a35c00; --gkal-warn-bg:#fff8ec; --gkal-warn-line:#f5dfb8;
--gkal-alt:#6537c9; --gkal-alt-bg:#f5f2ff; --gkal-alt-line:#ddd4f7;
--gkal-neg:#b42318; --gkal-neg-bg:#fdf1f1; --gkal-neg-line:#f6d5d2;
--gkal-r:10px;
width:100%; font-size:17px; line-height:1.75; color:var(--gkal-body);
-webkit-font-smoothing:antialiased;
}
.gkal-blog *,.gkal-blog *::before,.gkal-blog *::after{box-sizing:border-box;}
.gkal-blog p{margin:0 0 20px;}
.gkal-blog h2{font-size:29px; line-height:1.3; letter-spacing:-.015em; margin:52px 0 18px; color:var(--gkal-ink); font-weight:700; scroll-margin-top:90px;}
.gkal-blog h3{font-size:20px; line-height:1.38; letter-spacing:-.01em; margin:32px 0 10px; color:var(--gkal-ink); font-weight:700; scroll-margin-top:90px;}
.gkal-blog h2 + p,.gkal-blog h3 + p{margin-top:0;}
.gkal-blog img{max-width:100%; height:auto; display:block; margin:0 auto; border-radius:var(--gkal-r);}
.gkal-blog hr{border:0; border-top:1px solid var(--gkal-line); margin:44px 0;}
.gkal-blog ul,.gkal-blog ol{margin:0 0 22px; padding:0; list-style:none;}
.gkal-blog svg{fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.gkal-blog code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.88em; color:var(--gkal-ink); background:#f5f7fa; border:1px solid var(--gkal-line); border-radius:5px; padding:1px 6px; overflow-wrap:anywhere;}
.gkal-blog a{
color:var(--gkal-accent); font-weight:600;
background-image:none !important;
text-decoration:underline !important;
text-decoration-thickness:1px; text-underline-offset:3px;
text-decoration-skip-ink:auto;
transition:color .15s ease, text-decoration-thickness .15s ease;
}
.gkal-blog a:hover,.gkal-blog a:focus-visible{color:var(--gkal-dark); text-decoration-thickness:2px;}
.gkal-blog a:visited{color:var(--gkal-accent);}
.gkal-toc-list a,.gkal-blog .gkal-btn{text-decoration:none !important;}
.gkal-blog a:focus-visible{outline:2px solid var(--gkal-accent); outline-offset:3px; border-radius:3px;}
.gkal-kw{color:var(--gkal-ink); font-weight:700;}
.gkal-lede{
background:var(--gkal-hl); border-left:4px solid var(--gkal-accent);
border-radius:0 var(--gkal-r) var(--gkal-r) 0;
padding:20px 24px; margin:0 0 26px; font-size:18px; line-height:1.7; color:var(--gkal-ink);
}
.gkal-lede p{margin:0;}
.gkal-toc{
border:1px solid var(--gkal-line); border-radius:var(--gkal-r);
background:#fff; padding:20px 24px 8px; margin:30px 0 38px;
}
.gkal-toc-head{
font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
color:var(--gkal-mute); margin:0 0 14px;
}
.gkal-toc-list{counter-reset:gkaltoc; margin:0; padding:0;}
@media (min-width:700px){.gkal-toc-2 .gkal-toc-list{columns:2; column-gap:34px;}}
.gkal-toc-2 .gkal-toc-list li{break-inside:avoid;}
.gkal-toc-list li{counter-increment:gkaltoc; position:relative; padding:0 0 12px 34px; font-size:15.5px; line-height:1.5;}
.gkal-toc-list li::before{
content:counter(gkaltoc,decimal-leading-zero);
position:absolute; left:0; top:1px;
font-size:11px; font-weight:700; color:var(--gkal-accent);
background:var(--gkal-light); border-radius:5px; padding:2px 6px; letter-spacing:.02em;
}
.gkal-toc-list a{color:var(--gkal-body); font-weight:600;}
.gkal-toc-list a:hover{color:var(--gkal-accent); text-decoration:underline !important;}
.gkal-list li{position:relative; padding:0 0 12px 24px; line-height:1.7;}
.gkal-list li::before{
content:""; position:absolute; left:2px; top:11px;
width:7px; height:7px; border-radius:50%; background:var(--gkal-accent);
}
.gkal-list strong{color:var(--gkal-ink);}
.gkal-chips{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 26px;}
.gkal-chips li{
display:block; position:relative;
background:var(--gkal-hl); border:1px solid var(--gkal-line); border-radius:8px;
padding:12px 16px 12px 34px; font-size:15px; line-height:1.55; color:var(--gkal-ink);
}
.gkal-chips li::before{
content:""; position:absolute; left:15px; top:20px;
width:6px; height:6px; border-radius:50%; background:var(--gkal-accent);
}
.gkal-chips-ck li{padding-left:42px;}
.gkal-chips-ck li::before{
left:14px; top:14px; width:18px; height:18px; border-radius:50%;
background:var(--gkal-ok-bg); border:1px solid var(--gkal-ok-line);
}
.gkal-chips-ck li::after{
content:""; position:absolute; left:21px; top:18px; width:4px; height:8px;
border:solid var(--gkal-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gkal-cards{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkal-cards-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkal-card{
border:1px solid var(--gkal-line); border-radius:var(--gkal-r); background:#fff;
padding:20px 22px 6px; transition:box-shadow .18s ease, transform .18s ease;
}
.gkal-card:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); transform:translateY(-2px);}
.gkal-card-top{display:flex; align-items:center; gap:11px; margin-bottom:10px;}
.gkal-card-icon{
width:34px; height:34px; flex:0 0 34px; border-radius:8px;
background:var(--gkal-light); color:var(--gkal-accent);
display:flex; align-items:center; justify-content:center;
}
.gkal-card-icon svg{width:19px; height:19px;}
.gkal-card-t{font-size:16px; font-weight:700; color:var(--gkal-ink); line-height:1.35; margin:0;}
.gkal-card p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkal-cards-risk .gkal-card-icon{background:var(--gkal-neg-bg); color:var(--gkal-neg);}
.gkal-ops{display:grid; gap:14px; margin:24px 0 30px;}
.gkal-op{
display:flex; gap:18px; align-items:flex-start;
border:1px solid var(--gkal-line); border-radius:var(--gkal-r); background:#fff;
padding:20px 22px; transition:box-shadow .18s ease, border-color .18s ease;
}
.gkal-op:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); border-color:#d3ddec;}
.gkal-op-n{
flex:0 0 38px; width:38px; height:38px; border-radius:50%;
background:var(--gkal-accent); color:#fff;
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700; letter-spacing:.02em;
}
.gkal-op-b{min-width:0; flex:1;}
.gkal-op-b h3{margin:1px 0 6px; font-size:17.5px;}
.gkal-op-b p{font-size:15.5px; line-height:1.68; margin:0;}
.gkal-op-b p + p{margin-top:12px;}
.gkal-steps{position:relative; margin:26px 0 32px; padding-left:26px;}
.gkal-steps::before{content:""; position:absolute; left:5px; top:8px; bottom:8px; width:2px; background:var(--gkal-line);}
.gkal-step{position:relative; padding:0 0 8px;}
.gkal-step::before{
content:""; position:absolute; left:-26px; top:12px;
width:12px; height:12px; border-radius:50%;
background:#fff; border:3px solid var(--gkal-accent);
}
.gkal-step h2,.gkal-step h3{
font-size:20px; line-height:1.38; margin:22px 0 8px; letter-spacing:-.005em;
}
.gkal-step:first-child h2,.gkal-step:first-child h3{margin-top:0;}
.gkal-step p{font-size:16px; line-height:1.72; margin:0 0 4px;}
.gkal-blog .gkal-seq{counter-reset:gkalseq; position:relative; margin:26px 0 30px; padding:0;}
.gkal-seq::before{content:""; position:absolute; left:17px; top:20px; bottom:20px; width:2px; background:var(--gkal-line);}
.gkal-seq li{counter-increment:gkalseq; position:relative; padding:4px 0 20px 56px; line-height:1.7; min-height:36px;}
.gkal-seq li:last-child{padding-bottom:0;}
.gkal-seq li::before{
content:counter(gkalseq); position:absolute; left:0; top:0;
width:36px; height:36px; border-radius:50%;
background:var(--gkal-accent); color:#fff; border:3px solid #fff; box-shadow:0 0 0 1px var(--gkal-line);
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700;
}
.gkal-seq strong{color:var(--gkal-ink);}
.gkal-dgrid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkal-dgrid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkal-dcard{border:1px solid var(--gkal-line); border-radius:var(--gkal-r); padding:20px 22px 6px; background:#fff; border-top:3px solid var(--gkal-accent); display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:12px; align-items:center; align-content:start;}
.gkal-dcard h3{margin:0 0 8px; font-size:17px;}
.gkal-dcard .gkal-card-t{margin:0 0 10px; font-size:17px;}
.gkal-dcard p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkal-dtag{
display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.08em;
text-transform:uppercase; border-radius:5px; padding:3px 9px; margin-bottom:11px;
background:var(--gkal-light); color:var(--gkal-dark);
}
.gkal-dcard .gkal-card-icon{margin:0 0 10px;}
.gkal-dcard p:not(.gkal-card-t){grid-column:1 / -1;}
.gkal-d-ok{border-top-color:var(--gkal-ok);}
.gkal-d-ok .gkal-dtag,.gkal-d-ok .gkal-card-icon{background:var(--gkal-ok-bg); color:var(--gkal-ok);}
.gkal-d-warn{border-top-color:var(--gkal-warn);}
.gkal-d-warn .gkal-dtag,.gkal-d-warn .gkal-card-icon{background:var(--gkal-warn-bg); color:var(--gkal-warn);}
.gkal-d-go{border-top-color:var(--gkal-accent);}
.gkal-d-go .gkal-dtag,.gkal-d-go .gkal-card-icon{background:var(--gkal-light); color:var(--gkal-dark);}
.gkal-d-alt{border-top-color:var(--gkal-alt);}
.gkal-d-alt .gkal-dtag,.gkal-d-alt .gkal-card-icon{background:var(--gkal-alt-bg); color:var(--gkal-alt);}
.gkal-verdict{
background:var(--gkal-hl); border:1px solid var(--gkal-line); border-radius:8px;
padding:13px 16px; font-size:15px; line-height:1.65; color:var(--gkal-ink); margin:2px 0 16px;
}
.gkal-qs{counter-reset:gkalq; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:22px 0 28px;}
.gkal-qs li{
counter-increment:gkalq; position:relative;
border:1px solid var(--gkal-line); border-radius:var(--gkal-r); background:#fff;
padding:16px 18px 14px 18px;
}
.gkal-qs-head{
display:block; font-size:13.5px; font-weight:700; letter-spacing:.01em;
color:var(--gkal-accent); margin-bottom:6px;
}
.gkal-qs li p{font-size:15px; line-height:1.62; margin:0;}
.gkal-faq{display:grid; gap:14px; margin:24px 0 10px;}
.gkal-faq-i{border:1px solid var(--gkal-line); border-radius:var(--gkal-r); background:#fff; padding:20px 22px 6px;}
.gkal-faq-i h3{margin:0 0 8px; font-size:17.5px; line-height:1.4;}
.gkal-faq-i p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkal-table-wrap{
overflow-x:auto; -webkit-overflow-scrolling:touch;
border:1px solid var(--gkal-line); border-radius:var(--gkal-r); margin:24px 0 10px;
}
.gkal-table{width:100%; border-collapse:collapse; min-width:560px; font-size:15px;}
.gkal-table th,.gkal-table td{padding:13px 16px; text-align:left; vertical-align:top; line-height:1.6;}
.gkal-table thead th{
background:var(--gkal-hl); color:var(--gkal-dark);
font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
border-bottom:1px solid var(--gkal-line); white-space:nowrap;
}
.gkal-table tbody td,.gkal-table tbody th{border-top:1px solid var(--gkal-line);}
.gkal-table tbody tr:nth-child(even) td,.gkal-table tbody tr:nth-child(even) th{background:#fbfcfe;}
.gkal-table th:first-child,.gkal-table td:first-child{
position:sticky; left:0; z-index:1;
background:#fff; font-weight:700; color:var(--gkal-ink); font-size:14.5px;
border-right:1px solid var(--gkal-line);
}
.gkal-table thead th:first-child{background:var(--gkal-hl); color:var(--gkal-dark); font-size:11.5px;}
.gkal-table tbody tr:nth-child(even) td:first-child,.gkal-table tbody tr:nth-child(even) th:first-child{background:#fbfcfe;}
.gkal-pill{
display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.01em;
border-radius:999px; padding:3px 11px; white-space:nowrap;
}
.gkal-pill-pos{background:var(--gkal-ok-bg); color:var(--gkal-ok); border:1px solid var(--gkal-ok-line);}
.gkal-pill-mid{background:var(--gkal-warn-bg); color:var(--gkal-warn); border:1px solid var(--gkal-warn-line);}
.gkal-pill-neg{background:var(--gkal-neg-bg); color:var(--gkal-neg); border:1px solid var(--gkal-neg-line);}
.gkal-tag{
display:inline-block; font-size:13px; font-weight:600; color:var(--gkal-body);
background:#f5f7fa; border:1px solid var(--gkal-line); border-radius:6px; padding:3px 9px;
}
.gkal-num{font-variant-numeric:tabular-nums; font-weight:700; color:var(--gkal-ink); white-space:nowrap;}
.gkal-table-hint{display:none; font-size:12.5px; color:var(--gkal-mute); margin:0 0 30px; text-align:right;}
.gkal-stats{border:1px solid var(--gkal-line); border-radius:var(--gkal-r); background:var(--gkal-hl); padding:20px 22px 22px; margin:26px 0 30px;}
.gkal-stats-head{display:flex; align-items:center; gap:10px; font-size:16px; font-weight:700; color:var(--gkal-dark); margin:0 0 16px; line-height:1.35;}
.gkal-stats-head svg{width:20px; height:20px; flex:0 0 20px;}
.gkal-stats-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;}
.gkal-stat{background:#fff; border:1px solid var(--gkal-line); border-radius:8px; padding:16px 18px 6px; font-size:15.5px; line-height:1.65; color:var(--gkal-ink);}
.gkal-stat p{margin:0 0 12px;}
.gkal-stat strong{color:var(--gkal-accent); font-weight:700;}
.gkal-stat .gkal-card-icon{margin:2px 0 10px;}
.gkal-plans{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkal-plan{border:1px solid var(--gkal-line); border-top:3px solid var(--gkal-accent); border-radius:var(--gkal-r); background:#fff; padding:20px 22px 8px;}
.gkal-plan-n{font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gkal-dark); margin:0 0 6px;}
.gkal-plan-p{font-size:20px; line-height:1.3; font-weight:800; letter-spacing:-.01em; color:var(--gkal-ink); margin:0 0 16px; font-variant-numeric:tabular-nums;}
.gkal-blog .gkal-plan-list{margin:0 0 14px;}
.gkal-plan-list li{position:relative; padding:0 0 10px 28px; font-size:15.5px; line-height:1.6; color:var(--gkal-ink);}
.gkal-plan-list li::before{
content:""; position:absolute; left:0; top:3px; width:18px; height:18px; border-radius:50%;
background:var(--gkal-ok-bg); border:1px solid var(--gkal-ok-line);
}
.gkal-plan-list li::after{
content:""; position:absolute; left:7px; top:7px; width:4px; height:8px;
border:solid var(--gkal-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gkal-blog .gkal-ck{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 28px;}
.gkal-ck li{
position:relative; border:1px solid var(--gkal-line); border-radius:8px; background:#fff;
padding:14px 16px 14px 50px; font-size:15.5px; line-height:1.62;
}
.gkal-ck li::before{
content:""; position:absolute; left:17px; top:17px; width:18px; height:18px;
border:2px solid var(--gkal-accent); border-radius:5px; background:#fff;
}
.gkal-ck strong{color:var(--gkal-ink);}
.gkal-flow{display:flex; flex-wrap:wrap; align-items:stretch; gap:8px 6px; margin:22px 0 28px;}
.gkal-flow-i{
background:var(--gkal-hl); border:1px solid var(--gkal-line); border-radius:8px;
padding:9px 14px; font-size:14.5px; line-height:1.4; font-weight:600; color:var(--gkal-ink);
display:flex; align-items:center;
}
.gkal-flow-a{align-self:center; color:var(--gkal-accent); font-weight:700; font-size:16px; line-height:1;}
.gkal-callout,.gkal-tip{
display:flex; gap:14px; align-items:flex-start;
border-radius:var(--gkal-r); padding:17px 20px; margin:24px 0; font-size:16px; line-height:1.68;
}
.gkal-callout{background:var(--gkal-hl); border-left:4px solid var(--gkal-accent); color:var(--gkal-ink);}
.gkal-tip{background:var(--gkal-warn-bg); border-left:4px solid var(--gkal-warn); color:var(--gkal-ink);}
.gkal-callout svg,.gkal-tip svg{width:20px; height:20px; flex:0 0 20px; margin-top:3px;}
.gkal-callout svg{color:var(--gkal-accent);} .gkal-tip svg{color:var(--gkal-warn);}
.gkal-callout p,.gkal-tip p{margin:0;}
.gkal-quote{
margin:26px 0; padding:20px 24px; border-left:4px solid var(--gkal-accent);
background:var(--gkal-hl); border-radius:0 var(--gkal-r) var(--gkal-r) 0;
font-size:18.5px; line-height:1.65; font-style:italic; color:var(--gkal-ink);
}
.gkal-quote p{margin:0;}
.gkal-takeaway{
background:var(--gkal-hl); border:1px solid var(--gkal-line); border-radius:var(--gkal-r);
padding:22px 26px; margin:28px 0 22px;
}
.gkal-takeaway p{margin:0 0 14px;} .gkal-takeaway p:last-child{margin:0;}
.gkal-emph{
border-left:4px solid var(--gkal-accent); padding:4px 0 4px 20px; margin:24px 0 8px;
font-size:19px; line-height:1.6; font-weight:600; color:var(--gkal-ink);
}
.gkal-cta{
background:var(--gkal-ink); border-radius:var(--gkal-r); padding:26px 30px; margin:32px 0;
}
.gkal-cta-h{font-size:20px; font-weight:700; color:#fff; margin:0 0 9px; line-height:1.35;}
.gkal-blog .gkal-cta .gkal-cta-h{color:#fff;}
.gkal-cta p{color:#cfd6e2; font-size:16px; line-height:1.65; margin:0 0 18px;}
.gkal-blog .gkal-btn{
display:inline-block; background:var(--gkal-accent) !important; color:#fff !important;
font-size:14.5px; font-weight:700; padding:11px 24px; border-radius:7px;
text-decoration:none !important; transition:background .15s ease;
}
.gkal-blog .gkal-btn:hover,.gkal-blog .gkal-btn:focus-visible,.gkal-blog .gkal-btn:visited{
background:var(--gkal-dark) !important; color:#fff !important; text-decoration:none !important;
}
@media (max-width:900px){
.gkal-blog h2{font-size:26px; margin-top:44px;}
.gkal-cards-3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:820px){
.gkal-dgrid-3,.gkal-plans,.gkal-stats-grid{grid-template-columns:1fr;}
.gkal-stat{display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:14px; align-items:start;}
}
@media (max-width:700px){
.gkal-cards,.gkal-cards-3,.gkal-dgrid{grid-template-columns:1fr;}
}
@media (max-width:640px){
.gkal-table-hint{display:block;}
.gkal-blog{font-size:16.5px;}
.gkal-blog h2{font-size:23px;}
.gkal-blog h3,.gkal-step h2,.gkal-step h3{font-size:18.5px;}
.gkal-lede{font-size:17px; padding:17px 18px;}
.gkal-toc{padding:18px 18px 6px;}
.gkal-chips,.gkal-qs,.gkal-ck{grid-template-columns:1fr;}
.gkal-op{flex-direction:column; gap:12px; padding:18px;}
.gkal-cta{padding:22px 20px;}
.gkal-emph{font-size:17.5px;}
.gkal-quote{font-size:17px; padding:17px 18px;}
.gkal-takeaway{padding:18px 18px;}
.gkal-steps{padding-left:22px;}
.gkal-step::before{left:-22px;}
.gkal-stats{padding:16px 16px 18px;}
.gkal-flow{flex-direction:column; align-items:flex-start;}
.gkal-flow-a{transform:rotate(90deg); margin-left:16px;}
}
@media (prefers-reduced-motion:reduce){
.gkal-blog *{transition:none !important;}
.gkal-card:hover{transform:none;}
}
September 3, 2026, marked the end of Salesforce’s legacy editions: Enterprise, Unlimited, and Agentforce 1, and three new tiers have been introduced: Core, Advanced, and Max. The announcement framed this as simplification — fewer line items, more bundled, one purchase covering tools that previously required separate contracts.
Simplification does not mean lower cost. The business impact of this overhaul will be determined by what your organization has been buying and how much you are paying for. And for any party preparing for a renewal, knowing about the new Salesforce editions before entering into negotiations is a matter of getting a good deal over a surprise invoice.
What’s inside
Why Salesforce Changed the Edition Structure
The Three New Salesforce Editions: What Each One Actually Includes
What Happened to Salesforce Enterprise, Unlimited and Agentforce 1?
The Flex Credits Detail That Changes the Renewal Calculation
Is the New Pricing Actually Better Value?
Quick Takeaways Before Your Next Renewal
The Salesforce Editions Comparison That Actually Matters
Why Salesforce Changed the Edition Structure
The change happened in response to how enterprise technology purchasing has evolved. Organizations once evaluated and licensed platforms component by component — CRM separately from analytics, collaboration separately from AI. That approach gave procurement teams granular control and allowed budgets to be phased across multiple cycles.
AI-driven deployments work differently. An Agentforce agent handling a service case needs CRM data, knowledge base access, and conversation analytics working together from the first interaction. Partnering with an experienced agentforce consulting partner can help businesses integrate these capabilities, streamline service workflows, and deliver more efficient customer experiences. Buying those capabilities separately and integrating them later adds time and complexity to a deployment that benefits from being operational quickly.
The new editions of Salesforce, Core, Advanced, and Max tiers, are built around that operational requirement. Slack, Tableau Next, Premier Success, and Agentforce are bundled not because the separate components lacked value, but because the use cases enterprises are building for today — autonomous agents operating across sales, service, and operational data — are better served by a platform that ships ready to run rather than ready to assemble.
The Three New Salesforce Editions: What Each One Actually Includes
Core — $195 per user per month
Core replaces the legacy Salesforce Enterprise Edition, which was listed at $175 per user per month. Salesforce claims 70% more value at the new price point.
What is included:
Agentforce with 500,000 Flex Credits per org per year
Slack Business+
Tableau Next for embedded agentic analytics
Premier Success Plan
Enterprise-grade data security
Momentum for automated CRM record updates
What is not included:
Full Copy sandbox — adding one costs approximately 30% of net license fees
Sales Programs — available at Advanced and above
Claudeforce — requires Advanced or Max
Core is where custom objects, automation, and permission design become available. It is the entry point for organizations that want to start running agents in production without a full-scale enterprise deployment.
Advanced — $395 per user per month
Advanced replaces the legacy Salesforce Unlimited Edition, which Salesforce claims it delivers more than 50% more value than the previous edition. The Flex Credit allocation doubles compared to Core.
What is included:
Everything in Core
1 million Flex Credits per org per year
Full Copy sandbox included as standard
Sales Programs for structured deal playbooks and incentive management
Enhanced data and security features
Claudeforce access — the Salesforce and Anthropic integration announced August 2026
Why Advanced matters architecturally:
Full Copy sandbox is no longer an add-on at this tier. For any organization that relies on sandbox environments for development, testing, and release management — which covers most Enterprise-level implementations — managing these environments effectively is essential for ensuring smooth deployments and minimizing disruptions. — This single inclusion, when outlined in the Salesforce implementation roadmap, moves the tier decision from Core to Advanced before any other feature is considered.
Max — $550 per user per month
Max replaces the Agentforce 1 Edition at the same price point. Salesforce claims nearly 60% more value with no price increase. Existing Agentforce 1 Edition customers can upgrade to Max at no additional cost.
What is included:
Everything in Advanced
2.75 million Flex Credits per org per year
Slack Enterprise Grid rather than Business+
Agentforce IT Service for automated employee support
Workforce Engagement for AI-powered contact center operations
Agentforce Workforce Engagement for personalized coaching and staffing
Where Max fits:
Max is built for large enterprises running agents at scale across both customer-facing and internal operations. The 2.75 million Flex Credit allocation gives organizations immediate capacity without purchasing additional consumption on top of the base license.
What Happened to Salesforce Enterprise, Unlimited and Agentforce 1?
Salesforce Enterprise, Unlimited, and Agentforce 1 still serve as the key benchmarks for existing customers, while Core, Advanced, and Max represent the new way of packaging the capabilities. Existing customers using Enterprise editions need to take a look at the new offerings in light of their existing needs and their future investment in analytics, security, and AI.
For Unlimited customers wondering what happened to Salesforce Unlimited, the new packaging does not mean the cancellation or replacement of the existing contract. It holds value depending upon the existing entitlements, pricing negotiation, and capabilities being used. Agentforce 1 also holds its relevance, especially for those making an investment in Salesforce AI. Max edition is priced on the same lines as the Agentforce 1 Edition, making it a new offering for comparison for customers.
The Flex Credits Detail That Changes the Renewal Calculation
Flex Credits are the currency Agentforce agent actions run on. Every conversation an agent handles draws from the org’s annual allocation. Every tier now includes a starting allocation, but one architectural detail does not always surface in commercial conversations.
Organizations planning to run both Agentforce agent workloads and Data Cloud operations need to account for shared consumption, ensuring efficient resource allocation and cost management across both environments. An org that buys Core for its 500,000 Flex Credit allocation and then deploys both Agentforce agents and Data 360 pipelines against the same pool will exhaust credits faster than the agent-only calculation suggests. This is not a licensing catch — it is a planning reality. The tier decision needs to account for total intended consumption across both Agentforce and Data Cloud, not just the agent use case in isolation.
Is the New Pricing Actually Better Value?
The answer depends on one question: what was your org buying before? If you were already purchasing Premier Success Plan, Slack, and Tableau separately:
The Premier Success Plan was historically priced at approximately 30% of net license fees. On a $175 Enterprise license that added roughly $52 per user per month. Tableau Next and Slack were additional purchases on top of that. When you run those numbers, Core at $195 with everything bundled is a consolidation that saves money — not a price increase.
If you were on the Standard Success Plan without Slack or Tableau:
The same edition at the same price is a genuine increase. You are now paying for entitlements that were not part of your previous contract and may not be part of your current operational plans.
The test that matters:
Calculate the true all-in cost of the current contract — base license plus every add-on line item. Run the equivalent new tier at list and at your negotiated discount. The comparison that matters is not the headline per-user price. It is the total contract cost before and after.
Quick Takeaways Before Your Next Renewal
Core replaces Enterprise at $195- Bundling Slack, Tableau Next, Premier Success, and 500,000 Flex Credits
Advanced replaces Unlimited at $395- Adding Full Sandbox, Sales Programs, Claudeforce access, and 1 million Flex Credits
Max replaces Agentforce 1 Edition at $550- Same price, 2.75 million Flex Credits, internal operations tooling included
Premier Success Plan is now bundled- Previously ~30% of net licenses, now part of every tier
Full Sandbox is included at Advanced- On Core it costs an additional ~30% of net licenses
Flex Credits and Data 360 share the same pool- Plan consumption across both, not just agents
Claudeforce requires Advanced or Max- Core does not include access to the Anthropic integration
Legacy editions are unchanged until renewal- Existing customers stay on current terms until their contract comes up
Agentforce 1 Edition holders can move to Max at no extra cost- This is a direct upgrade path worth taking before renewal discussions begin.
The Salesforce Editions Comparison That Actually Matters
A standard Salesforce editions comparison between the three new tiers is a starting point, not an answer. The decision that matters at renewal is not which tier has the best feature list in isolation — it is which tier’s all-in cost, including bundled items that were previously purchased separately, compares most favorably to the current contract.
The new Salesforce Core, Advanced, Max structure removes the ability to negotiate individual components out. When Premier Success, Slack, Tableau, and Agentforce credits were separate line items, a procurement team could cut one to reduce cost. In the bundled structure, the bundle is the product. That removes flexibility at the same time as it simplifies the invoice.
For those approaching renewals within the next six to twelve months: do an all-in analysis, see if the Flex Credits on the proposed edition will accommodate the forecasted consumption in both Agentforce and Data Cloud, and if Full Sandbox makes the difference in deciding the tier before anything else gets discussed. The new Salesforce editions truly add value for those enterprises who were already purchasing the full stack. For everyone else, the renewal discussion becomes more nuanced than the announcement itself.
.gksn-blog{
--gksn-accent:#1a73e8; --gksn-dark:#0f4fa8; --gksn-light:#e8f0fe; --gksn-hl:#f3f7ff;
--gksn-line:#e4e9f2; --gksn-ink:#101828; --gksn-body:#3f4a5a; --gksn-mute:#697586;
--gksn-r:10px;
width:100%; font-size:17px; line-height:1.75; color:var(--gksn-body);
-webkit-font-smoothing:antialiased;
}
.gksn-blog *,.gksn-blog *::before,.gksn-blog *::after{box-sizing:border-box;}
.gksn-blog p{margin:0 0 20px;}
.gksn-blog h2{font-size:29px; line-height:1.3; letter-spacing:-.015em; margin:52px 0 18px; color:var(--gksn-ink); font-weight:700; scroll-margin-top:90px;}
.gksn-blog h3{font-size:20px; line-height:1.38; letter-spacing:-.01em; margin:32px 0 10px; color:var(--gksn-ink); font-weight:700; scroll-margin-top:90px;}
.gksn-blog h2 + p,.gksn-blog h3 + p{margin-top:0;}
.gksn-blog img{max-width:100%; height:auto; display:block; margin:0 auto; border-radius:var(--gksn-r);}
.gksn-blog ul,.gksn-blog ol{margin:0 0 22px; padding:0; list-style:none;}
.gksn-blog a{
color:var(--gksn-accent); font-weight:600;
background-image:none !important;
text-decoration:underline !important;
text-decoration-thickness:1px; text-underline-offset:3px;
text-decoration-skip-ink:auto;
transition:color .15s ease, text-decoration-thickness .15s ease;
}
.gksn-blog a:hover,.gksn-blog a:focus-visible{color:var(--gksn-dark); text-decoration-thickness:2px;}
.gksn-blog a:visited{color:var(--gksn-accent);}
.gksn-toc-list a{text-decoration:none !important;}
.gksn-blog a:focus-visible{outline:2px solid var(--gksn-accent); outline-offset:3px; border-radius:3px;}
.gksn-lede{
background:var(--gksn-hl); border-left:4px solid var(--gksn-accent);
border-radius:0 var(--gksn-r) var(--gksn-r) 0;
padding:20px 24px; margin:0 0 26px; font-size:18px; line-height:1.7; color:var(--gksn-ink);
}
.gksn-lede p{margin:0;}
.gksn-toc{
border:1px solid var(--gksn-line); border-radius:var(--gksn-r);
background:#fff; padding:20px 24px 8px; margin:30px 0 38px;
}
.gksn-toc-head{
font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
color:var(--gksn-mute); margin:0 0 14px;
}
.gksn-toc-list{counter-reset:gksntoc; margin:0; padding:0;}
@media (min-width:700px){.gksn-toc-2 .gksn-toc-list{columns:2; column-gap:34px;}}
.gksn-toc-2 .gksn-toc-list li{break-inside:avoid;}
.gksn-toc-list li{counter-increment:gksntoc; position:relative; padding:0 0 12px 34px; font-size:15.5px; line-height:1.5;}
.gksn-toc-list li::before{
content:counter(gksntoc,decimal-leading-zero);
position:absolute; left:0; top:1px;
font-size:11px; font-weight:700; color:var(--gksn-accent);
background:var(--gksn-light); border-radius:5px; padding:2px 6px; letter-spacing:.02em;
}
.gksn-toc-list a{color:var(--gksn-body); font-weight:600;}
.gksn-toc-list a:hover{color:var(--gksn-accent); text-decoration:underline !important;}
.gksn-list li{position:relative; padding:0 0 12px 24px; line-height:1.7;}
.gksn-list li::before{
content:""; position:absolute; left:2px; top:11px;
width:7px; height:7px; border-radius:50%; background:var(--gksn-accent);
}
.gksn-list strong{color:var(--gksn-ink);}
.gksn-blog .gksn-ck{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 28px;}
.gksn-ck li{
position:relative; border:1px solid var(--gksn-line); border-radius:8px; background:#fff;
padding:14px 16px 14px 50px; font-size:15.5px; line-height:1.62; color:var(--gksn-ink);
}
.gksn-ck li::before{
content:""; position:absolute; left:17px; top:17px; width:18px; height:18px;
border:2px solid var(--gksn-accent); border-radius:5px; background:#fff;
}
.gksn-ck strong{color:var(--gksn-ink);}
.gksn-takeaway{
background:var(--gksn-hl); border:1px solid var(--gksn-line); border-radius:var(--gksn-r);
padding:22px 26px; margin:28px 0 22px;
}
.gksn-takeaway p{margin:0 0 14px;} .gksn-takeaway p:last-child{margin:0;}
@media (max-width:900px){
.gksn-blog h2{font-size:26px; margin-top:44px;}
}
@media (max-width:640px){
.gksn-blog{font-size:16.5px;}
.gksn-blog h2{font-size:23px;}
.gksn-blog h3{font-size:18.5px;}
.gksn-lede{font-size:17px; padding:17px 18px;}
.gksn-toc{padding:18px 18px 6px;}
.gksn-ck{grid-template-columns:1fr !important;}
.gksn-takeaway{padding:18px 18px;}
}
@media (prefers-reduced-motion:reduce){
.gksn-blog *{transition:none !important;}
}
An order is marked as shipped in Salesforce, but the ERP system still shows it as processing. Fifteen minutes later, the ERP system picks up the changes and finally brings both systems into sync.
The integration is working as it’s designed. The problem is that it checks for updates at fixed intervals instead of receiving notifications when changes occur. This crucial difference can make a lot more sense when creating Salesforce integrations.
Polling or 15-minutes of wait may be sufficient when a delay is acceptable, but applications majorly depend on timely updates often benefit from an event-driven approach. Both change data capture and Salesforce platform events support the real-time update approach; however, they serve different purposes. It’s time to get hands on these mechanisms for each integration requirement.
What’s insideHow Polling Can Slow Down Salesforce IntegrationsHow Event Driven Architecture Salesforce Modifies the Integration ModelSalesforce Platform Events: Communicating Business OccurrencesSalesforce Change Data Capture: Communicating Record ChangesPlatform Events vs. Change Data Capture: What’s the Difference?What Architects You Must Consider Before Implementing Event-Driven IntegrationConclusion
How Polling Can Slow Down Salesforce Integrations
Polling is basically Salesforce getting checked again and again for updates. These checks will be carried out after a few minutes to check whether there is any change in the status of order and task execution.
However, according to how integration is designed, either SOQL query or REST API request or comparing timestamps may be done to find out any change after the last run. Consider an ecommerce company that synchronizes Salesforce orders with its fulfillment system every 15 minutes. If an order gets updated just after a check, the change won’t show up in the other system until the next round.
The result is a delay between a change occurring in Salesforce and the connected system processing it. Shortening the polling interval can reduce this delay. However, it can increase the frequency of requests and integration workload.
Let’s understand this with an example of an ERP system that checks Salesforce for order updates.
15 minutes: 4 checks5 minutes: 12 checks1 minute: 60 checks
Even when no orders are updated during an hour, the system still needs to run those checks. So, the more frequently the system checks, the more requests it sends to Salesforce. This can increase integration workload and API usage without necessarily providing any new information. All this articulates that polling is useful for scheduled reconciliation and scenarios where near immediate updates are unnecessary.
How Event Driven Architecture Salesforce Modifies the Integration Model
Event-driven architecture modifies business events and changes in application data. Instead of querying Salesforce for the change in anything, a subscriber just listens to the events and handles them on the go.
The integration model generally involves three components:
Publisher:The system or application that generates the event.Event Bus:The means by which the published events are exposed to the subscribers.Subscriber:The application or service consuming the events.
Thanks to Platform Events and Change Data Capture, Salesforce provides support for this approach as it allows applications to consume the event messages. Streaming API Salesforce has traditionally supported event notifications through streamlining connections, including the older PushTopic and generic event mechanisms. This enables connected systems to respond to updates without constantly checking Salesforce for changes.
Thus, once the Account order changes, an external application gets notified about it and updates its data. The advantage of this architecture is that neither the publisher nor the subscriber will need to exchange any information with one another.
Nevertheless, even though an event-driven integration approach implies real-time reaction, the system still receives the event and consumes it after which the related action may be performed at a slightly different time.
Salesforce Platform Events: Communicating Business Occurrences
Not every event in a Salesforce integration signifies a record update. There are cases when an external system only needs to know that some business events have happened.
For example, consider the case where the order has been put in a state that makes it available for shipment. The fulfillment service might have to begin the shipping process, the notification service might need to notify the customer about the same, and the analytics pipeline might have to track this milestone. Rather than simply replicating changes made to a Salesforce record, these systems are responding to a specific business event.
That’s why Salesforce provides a way to communicate these occurrences through custom event messages. Developers define what information a Platform Event should contain and when it should be published. Depending on the use case, they can send out these events using the Salesforce Flow, APIs, and Apex. In cases where the integration needs to be published and subscribed to the event via a common interface, Pub/Sub API Salesforce helps achieve this purpose.
Salesforce publishes a custom event called OrderReadyForDispatch__e.An event is received by the warehouse system, and it finds that the order is ready for shipping.Depending on how the receiving system is configured, it will be able to automatically create a task to ship the order.
The key point is that Platform Events notify other systems when a specific business activity occurs. They will not automatically update the receiving system; the connected system should be configured for processing the events. For example, the event will tell a system that a lead has been qualified, and payment has been received, but it will not reflect a direct record change.
Salesforce Change Data Capture: Communicating Record Changes
Change Data Capture (CDC) works differently from Platform Events. It automatically generates change events when records in configured and supported Salesforce objects are updated, created, deleted, or undeleted.
For example, when a sales representative updates an Account’s billing address in Salesforce, an ERP system or external database may also need that update. With CDC, the connected system receives a change event with information about the type of change and the affected record.
Within a CDC event, one can find the record ID, changed field values, and other details about the change. However, the information available mostly depends on the change and the event’s structure. CDC is practical when applications need to keep their data in sync with Salesforce or respond to record updates without repeatedly querying Salesforce.
Another advantage is that developers are not required to create custom publishing logic for every record change. Once CDC is enabled for supported objects, the CRM platform, Salesforce generates change events automatically when qualifying changes occur.
Platform Events vs. Change Data Capture: What’s the Difference?
Both capabilities support event-driven integration; however, the choice majorly depends on what the connected system needs to know.
ConsiderationPlatform EventsChange Data captureEvent StructureCustom-defined fieldsSalesforce-defined event structurePurposeCommunicate defined business occurrencesCommunicate Salesforce record changesPublishing ControlThe application determines when to publishSalesforce generates events for qualifying record changesWhat triggers an event?Application logic or an explicit publishing processA qualifying change to a configured, supported recordMain design considerationDefine meaningful events and a suitable payload contractHandle record changes, synchronization, and field availability correctlyCommon use caseWorkflow coordination, business notifications, service-to-service communicationRecord synchronization downstream data processing, change trackingExampleOrderReadyForDispatch__eAccountChangeEventSwipe to see the full table →
What Architects You Must Consider Before Implementing Event-Driven Integration
Here are some important implementation details that deserve full attention before choosing an event mechanism.
Event Delivery and Recovery
Subscribers can disconnect because of deployments, network issues, and failures in the consuming application. In Salesforce even streams, replay capabilities allow for the replaying of constraints and the resuming of consumption.
Platform events and CDC events are generally retained for up to 72 hours. To recover interruptions, applications should reconnect when a connection fails, save their replay IDs, and have a recovery plan for outages that last longer than the retention period. Instead of being regarded as consecutive numbers, Replay IDs need to be treated as unique IDs and stored and re-used by applications rather than calculating the next ID.
Transaction Boundaries
The timing of event publication matters. If the underlying Salesforce transaction has not been committed successfully, an integration that announces a completed business operation should not mislead subscribers.
For Platform Events, teams should understand the configured publishing behavior and select an appropriate transaction strategy. In contrast, CDC uses the change of events in the platform to reflect changes in Salesforce records. Normally, event design needs to allow subscribers to get to know what they can expect from the business transaction.
Monitoring and Error Handling
The delivery of an event does not mean that all required actions have been successfully performed. For instance, a subscriber receives an Account change event but is unable to update the record in the ERP system.
This will be avoided if you monitor the delivery of an event as well as any actions performed after receiving it. What’s more? Monitoring the delays in processing and errors in conducting actions will allow you to detect the problems in time. In case of errors, repeat the operation if possible. However, when the error occurs repeatedly, mark the event for investigation and future reprocessing. These processes help keep event-driven integration reliable rather than quick only.
Conclusion
While Platform Events provide a way to publish particular business events whenever a certain event occurs, CDC will automatically detect any changes made to the records in Salesforce which are supported by the technology. The selection of the right strategy will help make sure that your integrations react to the right events without needing to refresh the information.Nonetheless, of course, a reliable Salesforce integration rests with the underlying system. Proper event handling, monitoring, retries, and recovery have their roles to play in making sure the data flows from Salesforce to connected applications and vice versa.If you want to have reliable and responsive Salesforce integrations, Girikon can assist your business in designing and implementing Salesforce solutions that will facilitate data exchange and integration. Connect with our Salesforce experts to explore the right integration approach for your needs.
.gkah-blog{
--gkah-accent:#1a73e8; --gkah-dark:#0f4fa8; --gkah-light:#e8f0fe; --gkah-hl:#f3f7ff;
--gkah-line:#e4e9f2; --gkah-ink:#101828; --gkah-body:#3f4a5a; --gkah-mute:#697586;
--gkah-ok:#0f7a4a; --gkah-ok-bg:#eefaf3; --gkah-ok-line:#c3ead6;
--gkah-warn:#a35c00; --gkah-warn-bg:#fff8ec; --gkah-warn-line:#f5dfb8;
--gkah-alt:#6537c9; --gkah-alt-bg:#f5f2ff; --gkah-alt-line:#ddd4f7;
--gkah-neg:#b42318; --gkah-neg-bg:#fdf1f1; --gkah-neg-line:#f6d5d2;
--gkah-r:10px;
width:100%; font-size:17px; line-height:1.75; color:var(--gkah-body);
-webkit-font-smoothing:antialiased;
}
.gkah-blog *,.gkah-blog *::before,.gkah-blog *::after{box-sizing:border-box;}
.gkah-blog p{margin:0 0 20px;}
.gkah-blog h2{font-size:29px; line-height:1.3; letter-spacing:-.015em; margin:52px 0 18px; color:var(--gkah-ink); font-weight:700; scroll-margin-top:90px;}
.gkah-blog h3{font-size:20px; line-height:1.38; letter-spacing:-.01em; margin:32px 0 10px; color:var(--gkah-ink); font-weight:700; scroll-margin-top:90px;}
.gkah-blog h2 + p,.gkah-blog h3 + p{margin-top:0;}
.gkah-blog img{max-width:100%; height:auto; display:block; margin:0 auto; border-radius:var(--gkah-r);}
.gkah-blog ul,.gkah-blog ol{margin:0 0 22px; padding:0; list-style:none;}
.gkah-blog svg{fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.gkah-blog code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.88em; color:var(--gkah-ink); background:#f5f7fa; border:1px solid var(--gkah-line); border-radius:5px; padding:1px 6px; overflow-wrap:anywhere;}
.gkah-blog a{
color:var(--gkah-accent); font-weight:600;
background-image:none !important;
text-decoration:underline !important;
text-decoration-thickness:1px; text-underline-offset:3px;
text-decoration-skip-ink:auto;
transition:color .15s ease, text-decoration-thickness .15s ease;
}
.gkah-blog a:hover,.gkah-blog a:focus-visible{color:var(--gkah-dark); text-decoration-thickness:2px;}
.gkah-blog a:visited{color:var(--gkah-accent);}
.gkah-toc-list a,.gkah-blog .gkah-btn{text-decoration:none !important;}
.gkah-blog a:focus-visible{outline:2px solid var(--gkah-accent); outline-offset:3px; border-radius:3px;}
.gkah-kw{color:var(--gkah-ink); font-weight:700;}
.gkah-lede{
background:var(--gkah-hl); border-left:4px solid var(--gkah-accent);
border-radius:0 var(--gkah-r) var(--gkah-r) 0;
padding:20px 24px; margin:0 0 26px; font-size:18px; line-height:1.7; color:var(--gkah-ink);
}
.gkah-lede p{margin:0;}
.gkah-toc{
border:1px solid var(--gkah-line); border-radius:var(--gkah-r);
background:#fff; padding:20px 24px 8px; margin:30px 0 38px;
}
.gkah-toc-head{
font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
color:var(--gkah-mute); margin:0 0 14px;
}
.gkah-toc-list{counter-reset:gkahtoc; margin:0; padding:0;}
@media (min-width:700px){.gkah-toc-2 .gkah-toc-list{columns:2; column-gap:34px;}}
.gkah-toc-2 .gkah-toc-list li{break-inside:avoid;}
.gkah-toc-list li{counter-increment:gkahtoc; position:relative; padding:0 0 12px 34px; font-size:15.5px; line-height:1.5;}
.gkah-toc-list li::before{
content:counter(gkahtoc,decimal-leading-zero);
position:absolute; left:0; top:1px;
font-size:11px; font-weight:700; color:var(--gkah-accent);
background:var(--gkah-light); border-radius:5px; padding:2px 6px; letter-spacing:.02em;
}
.gkah-toc-list a{color:var(--gkah-body); font-weight:600;}
.gkah-toc-list a:hover{color:var(--gkah-accent); text-decoration:underline !important;}
.gkah-list li{position:relative; padding:0 0 12px 24px; line-height:1.7;}
.gkah-list li::before{
content:""; position:absolute; left:2px; top:11px;
width:7px; height:7px; border-radius:50%; background:var(--gkah-accent);
}
.gkah-list strong{color:var(--gkah-ink);}
.gkah-chips{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 26px;}
.gkah-chips li{
display:block; position:relative;
background:var(--gkah-hl); border:1px solid var(--gkah-line); border-radius:8px;
padding:12px 16px 12px 34px; font-size:15px; line-height:1.55; color:var(--gkah-ink);
}
.gkah-chips li::before{
content:""; position:absolute; left:15px; top:20px;
width:6px; height:6px; border-radius:50%; background:var(--gkah-accent);
}
.gkah-cards{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkah-cards-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkah-card{
border:1px solid var(--gkah-line); border-radius:var(--gkah-r); background:#fff;
padding:20px 22px 6px; transition:box-shadow .18s ease, transform .18s ease;
}
.gkah-card:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); transform:translateY(-2px);}
.gkah-card-top{display:flex; align-items:center; gap:11px; margin-bottom:10px;}
.gkah-card-icon{
width:34px; height:34px; flex:0 0 34px; border-radius:8px;
background:var(--gkah-light); color:var(--gkah-accent);
display:flex; align-items:center; justify-content:center;
}
.gkah-card-icon svg{width:19px; height:19px;}
.gkah-card-t{font-size:16px; font-weight:700; color:var(--gkah-ink); line-height:1.35; margin:0;}
.gkah-card p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkah-blog .gkah-card-top .gkah-card-t{margin:0;}
.gkah-cards-risk .gkah-card-icon{background:var(--gkah-neg-bg); color:var(--gkah-neg);}
.gkah-ops{display:grid; gap:14px; margin:24px 0 30px;}
.gkah-op{
display:flex; gap:18px; align-items:flex-start;
border:1px solid var(--gkah-line); border-radius:var(--gkah-r); background:#fff;
padding:20px 22px; transition:box-shadow .18s ease, border-color .18s ease;
}
.gkah-op:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); border-color:#d3ddec;}
.gkah-op-n{
flex:0 0 38px; width:38px; height:38px; border-radius:50%;
background:var(--gkah-accent); color:#fff;
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700; letter-spacing:.02em;
}
.gkah-ops-risk .gkah-op-n{background:var(--gkah-neg);}
.gkah-op-b{min-width:0; flex:1;}
.gkah-op-b h3{margin:1px 0 6px; font-size:17.5px;}
.gkah-op-b p{font-size:15.5px; line-height:1.68; margin:0;}
.gkah-op-b p + p{margin-top:12px;}
.gkah-blog .gkah-seq{counter-reset:gkahseq; position:relative; margin:26px 0 30px; padding:0;}
.gkah-seq::before{content:""; position:absolute; left:17px; top:20px; bottom:20px; width:2px; background:var(--gkah-line);}
.gkah-seq li{counter-increment:gkahseq; position:relative; padding:4px 0 20px 56px; line-height:1.7; min-height:36px;}
.gkah-seq li:last-child{padding-bottom:0;}
.gkah-seq li::before{
content:counter(gkahseq); position:absolute; left:0; top:0;
width:36px; height:36px; border-radius:50%;
background:var(--gkah-accent); color:#fff; border:3px solid #fff; box-shadow:0 0 0 1px var(--gkah-line);
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700;
}
.gkah-seq strong{color:var(--gkah-ink);}
.gkah-table-wrap{
overflow-x:auto; -webkit-overflow-scrolling:touch;
border:1px solid var(--gkah-line); border-radius:var(--gkah-r); margin:24px 0 10px;
}
.gkah-table{width:100%; border-collapse:collapse; min-width:560px; font-size:15px;}
.gkah-table th,.gkah-table td{padding:13px 16px; text-align:left; vertical-align:top; line-height:1.6;}
.gkah-table thead th{
background:var(--gkah-hl); color:var(--gkah-dark);
font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
border-bottom:1px solid var(--gkah-line); white-space:nowrap;
}
.gkah-table tbody td,.gkah-table tbody th{border-top:1px solid var(--gkah-line);}
.gkah-table tbody tr:nth-child(even) td,.gkah-table tbody tr:nth-child(even) th{background:#fbfcfe;}
.gkah-table th:first-child,.gkah-table td:first-child{
position:sticky; left:0; z-index:1;
background:#fff; font-weight:700; color:var(--gkah-ink); font-size:14.5px;
border-right:1px solid var(--gkah-line);
}
.gkah-table thead th:first-child{background:var(--gkah-hl); color:var(--gkah-dark); font-size:11.5px;}
.gkah-table tbody tr:nth-child(even) td:first-child,.gkah-table tbody tr:nth-child(even) th:first-child{background:#fbfcfe;}
.gkah-table tfoot td{border-top:2px solid var(--gkah-line); background:var(--gkah-hl); font-weight:700; color:var(--gkah-ink);}
.gkah-table tfoot td:first-child{background:var(--gkah-hl);}
.gkah-tag{
display:inline-block; font-size:13px; font-weight:600; color:var(--gkah-body);
background:#f5f7fa; border:1px solid var(--gkah-line); border-radius:6px; padding:3px 9px;
}
.gkah-pill{
display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.01em;
border-radius:999px; padding:3px 11px; white-space:nowrap;
background:var(--gkah-light); color:var(--gkah-dark); border:1px solid #cfe0fb;
}
.gkah-num{font-variant-numeric:tabular-nums; font-weight:700; color:var(--gkah-ink); white-space:nowrap;}
.gkah-table-hint{display:none; font-size:12.5px; color:var(--gkah-mute); margin:0 0 30px; text-align:right;}
.gkah-blog .gkah-ck{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 28px;}
.gkah-ck li{
position:relative; border:1px solid var(--gkah-line); border-radius:8px; background:#fff;
padding:14px 16px 14px 50px; font-size:15.5px; line-height:1.62; color:var(--gkah-ink);
}
.gkah-ck li::before{
content:""; position:absolute; left:17px; top:17px; width:18px; height:18px;
border:2px solid var(--gkah-accent); border-radius:5px; background:#fff;
}
.gkah-blog .gkah-qn{display:grid; gap:10px; margin:18px 0 30px;}
.gkah-qn li{
position:relative; border:1px solid var(--gkah-line); border-radius:8px; background:#fff;
padding:13px 16px 13px 62px; font-size:15.5px; line-height:1.62; color:var(--gkah-ink); min-height:50px;
}
.gkah-qn li::before{
content:"Q" counter(list-item); position:absolute; left:12px; top:12px;
min-width:38px; text-align:center; font-size:12px; font-weight:700; letter-spacing:.02em;
color:var(--gkah-dark); background:var(--gkah-light); border-radius:6px; padding:3px 6px;
font-variant-numeric:tabular-nums;
}
.gkah-callout,.gkah-tip{
display:flex; gap:14px; align-items:flex-start;
border-radius:var(--gkah-r); padding:17px 20px; margin:24px 0; font-size:16px; line-height:1.68;
}
.gkah-callout{background:var(--gkah-hl); border-left:4px solid var(--gkah-accent); color:var(--gkah-ink);}
.gkah-tip{background:var(--gkah-warn-bg); border-left:4px solid var(--gkah-warn); color:var(--gkah-ink);}
.gkah-callout svg,.gkah-tip svg{width:20px; height:20px; flex:0 0 20px; margin-top:3px;}
.gkah-callout svg{color:var(--gkah-accent);} .gkah-tip svg{color:var(--gkah-warn);}
.gkah-callout p,.gkah-tip p{margin:0;}
.gkah-takeaway{
background:var(--gkah-hl); border:1px solid var(--gkah-line); border-radius:var(--gkah-r);
padding:22px 26px; margin:28px 0 22px;
}
.gkah-takeaway p{margin:0 0 14px;} .gkah-takeaway p:last-child{margin:0;}
.gkah-cta{
background:var(--gkah-ink); border-radius:var(--gkah-r); padding:26px 30px; margin:32px 0;
}
.gkah-cta-h{font-size:20px; font-weight:700; color:#fff !important; margin:0 0 9px; line-height:1.35;}
.gkah-cta p{color:#cfd6e2; font-size:16px; line-height:1.65; margin:0 0 18px;}
.gkah-blog .gkah-cta p.gkah-cta-h{color:#fff;}
.gkah-blog .gkah-btn{
display:inline-block; background:var(--gkah-accent) !important; color:#fff !important;
font-size:14.5px; font-weight:700; padding:11px 24px; border-radius:7px;
text-decoration:none !important; transition:background .15s ease;
}
.gkah-blog .gkah-btn:hover,.gkah-blog .gkah-btn:focus-visible,.gkah-blog .gkah-btn:visited{
background:var(--gkah-dark) !important; color:#fff !important; text-decoration:none !important;
}
@media (max-width:900px){
.gkah-blog h2{font-size:26px; margin-top:44px;}
.gkah-cards-3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:820px){
.gkah-cards-3{grid-template-columns:1fr;}
}
@media (max-width:700px){
.gkah-cards,.gkah-cards-3{grid-template-columns:1fr;}
}
@media (max-width:640px){
.gkah-table-hint{display:block;}
.gkah-blog{font-size:16.5px;}
.gkah-blog h2{font-size:23px;}
.gkah-blog h3{font-size:18.5px;}
.gkah-lede{font-size:17px; padding:17px 18px;}
.gkah-toc{padding:18px 18px 6px;}
.gkah-chips,.gkah-ck{grid-template-columns:1fr;}
.gkah-op{flex-direction:column; gap:12px; padding:18px;}
.gkah-cta{padding:22px 20px;}
.gkah-takeaway{padding:18px 18px;}
}
@media (prefers-reduced-motion:reduce){
.gkah-blog *{transition:none !important;}
.gkah-card:hover{transform:none;}
}
Most companies operating in the USA, especially those who manage consumer data must comply with the State privacy laws. These laws require different requirements to access, delete, get consent and opt-out from data. These distinctions complicate business efforts to maintain the customers’ records, marketing choices and apps they can sync with Salesforce. A single privacy policy or one basic CRM process proves to be insufficient to abide by different state privacy laws in the country. Businesses must have a structured approach; otherwise, they open themselves to potential non-compliance fines, as well as loss of brand credibility.
In this blog, we map 20 US state privacy laws and discuss some of the core concepts like consent management, privacy rights automation, data masking, and multi-state CRM architecture to help organizations spot compliance issues and plan their next steps.
What’s insideSalesforce Consent Management: Individual Object vs Contact Point ConsentList of 20 States Privacy Laws for Salesforce Teams in 2026How Does Global Privacy Control Integration Work in Salesforce?Where Do Most Salesforce Users Fail State Privacy Reviews?7 Steps for Organizations to Map CCPA Privacy Rights in SalesforceConclusion
Salesforce Consent Management: Individual Object vs Contact Point Consent
Salesforce consent management depends on two data models:
Individual object:this is what keeps person-level preferences like do-not-sell flags, connected to Contact, Lead, or User recordsContact Point Type Permission:Records permissions by channel and purpose, such as email authorization under a defined Data Use Purpose
Use the Individual object for global suppression, such as a sale opt-out. Where permission differs by channel or purpose, use Contact Point Type permission. Most multi-state programs need both, with the Individual record acting as the master preference.
List of 20 States Privacy Laws for Salesforce Teams in 2026
Consider these for your current compliance planning. An important thing to remember is that this list shows a 20-state map focused on the laws in effect at the beginning of 2026.
StatePrivacy LawKey Compliance ConsiderationCaliforniaCCPA and CPRAAccess, deletion, correction, opt-outs and sensitive dataVirginiaVCDPA, Virginia Consumer Data Protection ActConsumer rights and data protection assessmentsColoradoCPA, Colorado Privacy ActUniversal opt-out and consent requirementsConnecticutCTDPA, Connecticut Data Privacy ActConsumer rights, profiling and opt-out mechanismsUtahUCPA, Utah Consumer Privacy ActAccess, deletion and targeted advertising opt-outsTexasTDPSA, Texas Data Privacy and Security ActConsumer rights and recognized opt-out signalsOregonOCPA, Oregon Consumer Privacy ActData minimization and sensitive data consentMontanaMCDPA, Montana Consumer Data Privacy ActConsumer rights and sensitive data protectionFloridaFDBR, Florida Digital Bill of RightsSpecific obligations for covered large technology businessesDelawareDPDPA, Delaware Personal Data Privacy ActConsumer rights and sensitive data safeguardsIowaICDPA, Iowa Consumer Data Privacy ActAccess, deletion and opt-out rightsNebraskaNDPA, Nebraska Data Privacy ActConsumer rights and processing obligationsNew HampshireNHDPA, New Hampshire Data Privacy ActAccess, correction and deletionNew JerseyNJDPA, New Jersey Data Privacy ActConsumer rights and sensitive data consentMarylandMODPA, Maryland Online Data Privacy ActData minimization and sensitive data restrictionsMinnesotaMCDPA, Minnesota Consumer Data Privacy ActConsumer rights and profiling safeguardsTennesseeTIPA, Tennessee Information Protection ActConsumer rights and data protection assessmentsIndianaICDPA, Indiana Consumer Data Privacy ActConsumer rights and processing safeguardsKentuckyKCDPA, Kentucky Consumer Data Privacy ActConsent, access and deletion rightsRhode IslandRIDTPPAPrivacy disclosures and consumer rightsSwipe to see the full table →
How Does Global Privacy Control Integration Work in Salesforce?
Global Privacy Control is a browser feature that sends a user’s choice to decline data collection directly to websites. Integration with Salesforce usually involves three steps:
Detect the consent markers on your website or platformSend it to Salesforce through an API or Data Cloud ingestionUpdate the Individual record and suppress downstream sharing and test regularly to keep results audit-ready.
Where Do Most Salesforce Users Fail State Privacy Reviews?
Records like ‘opt-outs’ are present in the CRM but not sync with marketing automationUpstream copy deletion fails to reach backups, archives, or integrated systemsProduction data copied into sandboxes without maskingNo documented retention period for lead and campaign dataConsent history overwritten instead of preserved
7 Steps for Organizations to Map CCPA Privacy Rights in Salesforce
01Enable Consumer RightsMost customers share requests to access, edit, delete, or put limits on how their data is used. Record the requests and approvals and keep the platform CCPA compliant with Salesforce Flow. Before responding, confirm user identity. When automation is applied, rules on keeping data and applicable laws must guide how data is managed.02Centralize data classificationKeep one inventory of personal information. Connect each entry to a CRM object, label it to the correct field, and define the timeline on how long it’s going to be in the system. It should include both live and test environments. Having a unified inventory simplifies managing the compliance of CRM systems to state privacy regulations when they are enacted and reduces the risk of gaps across systems.03Configure jurisdiction-aware rulesThe rights and consent of each state are different. Capture those differences and apply them to Salesforce consent management; that way, it’s done automatically with no manual management. If the GPC signal is passed on, add the update to the preference. Both advertising and analytics integrations must be obliged with requests of not collecting data.04Use data masking to your advantage.The Salesforce Data Mask is part of state privacy compliance and should be applied in the development and testing stage. Set classifications, masking rules, and access permissions before you hit sandbox. Masking helps to enable production access controls and delete workflows but cannot replace them.05Automate Request Management and Request LoggingAutomate intake and approvals, fulfillment and exceptions. Keep documentation that confirms each closure, with a clear paper trail of petitions, and ensure statutory deadlines are consistently met. This is very important for any organization since the rules and time limits differ at the state level.06Limit access to sensitive informationImplement role-based permissions, and field-level security, apply control access to sensitive fields. Record all unauthorized use(s) and periodically check logs. Regulators may request these types of records, and equivalent oversight of individual objects and consent records must exist.07Review compliance continuouslySetting up compliance policies once and then not revisiting them may create issues for you later. This is because privacy laws will keep changing; updating, and regulators may demand more rigid requirements. Your reviews should cover legal updates, changes in integrations, consent records, and existing retention policies, and fix any gaps before they escalate.
Conclusion
State privacy laws continue to expand, and a configuration built for one regulation may not satisfy twenty. Girikon’s Salesforce Security & Compliance Consulting team reviews your org against each applicable statute, resolves consent and rights-request gaps, and documents controls for audit readiness. Request a free Salesforce privacy compliance assessment.
.gkaj-blog{
--gkaj-accent:#1a73e8; --gkaj-dark:#0f4fa8; --gkaj-light:#e8f0fe; --gkaj-hl:#f3f7ff;
--gkaj-line:#e4e9f2; --gkaj-ink:#101828; --gkaj-body:#3f4a5a; --gkaj-mute:#697586;
--gkaj-ok:#0f7a4a; --gkaj-ok-bg:#eefaf3; --gkaj-ok-line:#c3ead6;
--gkaj-warn:#a35c00; --gkaj-warn-bg:#fff8ec; --gkaj-warn-line:#f5dfb8;
--gkaj-alt:#6537c9; --gkaj-alt-bg:#f5f2ff; --gkaj-alt-line:#ddd4f7;
--gkaj-neg:#b42318; --gkaj-neg-bg:#fdf1f1; --gkaj-neg-line:#f6d5d2;
--gkaj-r:10px;
width:100%; font-size:17px; line-height:1.75; color:var(--gkaj-body);
-webkit-font-smoothing:antialiased;
}
.gkaj-blog *,.gkaj-blog *::before,.gkaj-blog *::after{box-sizing:border-box;}
.gkaj-blog p{margin:0 0 20px;}
.gkaj-blog h2{font-size:29px; line-height:1.3; letter-spacing:-.015em; margin:52px 0 18px; color:var(--gkaj-ink); font-weight:700; scroll-margin-top:90px;}
.gkaj-blog h3{font-size:20px; line-height:1.38; letter-spacing:-.01em; margin:32px 0 10px; color:var(--gkaj-ink); font-weight:700; scroll-margin-top:90px;}
.gkaj-blog h2 + p,.gkaj-blog h3 + p{margin-top:0;}
.gkaj-blog img{max-width:100%; height:auto; display:block; margin:0 auto; border-radius:var(--gkaj-r);}
.gkaj-blog ul,.gkaj-blog ol{margin:0 0 22px; padding:0; list-style:none;}
.gkaj-blog svg{fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.gkaj-blog code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.88em; color:var(--gkaj-ink); background:#f5f7fa; border:1px solid var(--gkaj-line); border-radius:5px; padding:1px 6px; overflow-wrap:anywhere;}
.gkaj-blog a{
color:var(--gkaj-accent); font-weight:600;
background-image:none !important;
text-decoration:underline !important;
text-decoration-thickness:1px; text-underline-offset:3px;
text-decoration-skip-ink:auto;
transition:color .15s ease, text-decoration-thickness .15s ease;
}
.gkaj-blog a:hover,.gkaj-blog a:focus-visible{color:var(--gkaj-dark); text-decoration-thickness:2px;}
.gkaj-blog a:visited{color:var(--gkaj-accent);}
.gkaj-toc-list a,.gkaj-blog .gkaj-btn{text-decoration:none !important;}
.gkaj-blog a:focus-visible{outline:2px solid var(--gkaj-accent); outline-offset:3px; border-radius:3px;}
.gkaj-kw{color:var(--gkaj-ink); font-weight:700;}
.gkaj-lede{
background:var(--gkaj-hl); border-left:4px solid var(--gkaj-accent);
border-radius:0 var(--gkaj-r) var(--gkaj-r) 0;
padding:20px 24px; margin:0 0 26px; font-size:18px; line-height:1.7; color:var(--gkaj-ink);
}
.gkaj-lede p{margin:0;}
.gkaj-toc{
border:1px solid var(--gkaj-line); border-radius:var(--gkaj-r);
background:#fff; padding:20px 24px 8px; margin:30px 0 38px;
}
.gkaj-toc-head{
font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
color:var(--gkaj-mute); margin:0 0 14px;
}
.gkaj-toc-list{counter-reset:gkajtoc; margin:0; padding:0;}
@media (min-width:700px){.gkaj-toc-2 .gkaj-toc-list{columns:2; column-gap:34px;}}
.gkaj-toc-2 .gkaj-toc-list li{break-inside:avoid;}
.gkaj-toc-list li{counter-increment:gkajtoc; position:relative; padding:0 0 12px 34px; font-size:15.5px; line-height:1.5;}
.gkaj-toc-list li::before{
content:counter(gkajtoc,decimal-leading-zero);
position:absolute; left:0; top:1px;
font-size:11px; font-weight:700; color:var(--gkaj-accent);
background:var(--gkaj-light); border-radius:5px; padding:2px 6px; letter-spacing:.02em;
}
.gkaj-toc-list a{color:var(--gkaj-body); font-weight:600;}
.gkaj-toc-list a:hover{color:var(--gkaj-accent); text-decoration:underline !important;}
.gkaj-list li{position:relative; padding:0 0 12px 24px; line-height:1.7;}
.gkaj-list li::before{
content:""; position:absolute; left:2px; top:11px;
width:7px; height:7px; border-radius:50%; background:var(--gkaj-accent);
}
.gkaj-list strong{color:var(--gkaj-ink);}
.gkaj-chips{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 26px;}
.gkaj-chips li{
display:block; position:relative;
background:var(--gkaj-hl); border:1px solid var(--gkaj-line); border-radius:8px;
padding:12px 16px 12px 34px; font-size:15px; line-height:1.55; color:var(--gkaj-ink);
}
.gkaj-chips li::before{
content:""; position:absolute; left:15px; top:20px;
width:6px; height:6px; border-radius:50%; background:var(--gkaj-accent);
}
.gkaj-cards{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkaj-cards-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkaj-card{
border:1px solid var(--gkaj-line); border-radius:var(--gkaj-r); background:#fff;
padding:20px 22px 6px; transition:box-shadow .18s ease, transform .18s ease;
}
.gkaj-card:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); transform:translateY(-2px);}
.gkaj-card-top{display:flex; align-items:center; gap:11px; margin-bottom:10px;}
.gkaj-card-icon{
width:34px; height:34px; flex:0 0 34px; border-radius:8px;
background:var(--gkaj-light); color:var(--gkaj-accent);
display:flex; align-items:center; justify-content:center;
}
.gkaj-card-icon svg{width:19px; height:19px;}
.gkaj-card-t{font-size:16px; font-weight:700; color:var(--gkaj-ink); line-height:1.35; margin:0;}
.gkaj-card p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkaj-blog .gkaj-card-top .gkaj-card-t{margin:0;}
.gkaj-cards-risk .gkaj-card-icon{background:var(--gkaj-neg-bg); color:var(--gkaj-neg);}
.gkaj-ops{display:grid; gap:14px; margin:24px 0 30px;}
.gkaj-op{
display:flex; gap:18px; align-items:flex-start;
border:1px solid var(--gkaj-line); border-radius:var(--gkaj-r); background:#fff;
padding:20px 22px; transition:box-shadow .18s ease, border-color .18s ease;
}
.gkaj-op:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); border-color:#d3ddec;}
.gkaj-op-n{
flex:0 0 38px; width:38px; height:38px; border-radius:50%;
background:var(--gkaj-accent); color:#fff;
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700; letter-spacing:.02em;
}
.gkaj-ops-risk .gkaj-op-n{background:var(--gkaj-neg);}
.gkaj-op-b{min-width:0; flex:1;}
.gkaj-op-b h3{margin:1px 0 6px; font-size:17.5px;}
.gkaj-op-b p{font-size:15.5px; line-height:1.68; margin:0;}
.gkaj-op-b p + p{margin-top:12px;}
.gkaj-blog .gkaj-seq{counter-reset:gkajseq; position:relative; margin:26px 0 30px; padding:0;}
.gkaj-seq::before{content:""; position:absolute; left:17px; top:20px; bottom:20px; width:2px; background:var(--gkaj-line);}
.gkaj-seq li{counter-increment:gkajseq; position:relative; padding:4px 0 20px 56px; line-height:1.7; min-height:36px;}
.gkaj-seq li:last-child{padding-bottom:0;}
.gkaj-seq li::before{
content:counter(gkajseq); position:absolute; left:0; top:0;
width:36px; height:36px; border-radius:50%;
background:var(--gkaj-accent); color:#fff; border:3px solid #fff; box-shadow:0 0 0 1px var(--gkaj-line);
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700;
}
.gkaj-seq strong{color:var(--gkaj-ink);}
.gkaj-table-wrap{
overflow-x:auto; -webkit-overflow-scrolling:touch;
border:1px solid var(--gkaj-line); border-radius:var(--gkaj-r); margin:24px 0 10px;
}
.gkaj-table{width:100%; border-collapse:collapse; min-width:560px; font-size:15px;}
.gkaj-table th,.gkaj-table td{padding:13px 16px; text-align:left; vertical-align:top; line-height:1.6;}
.gkaj-table thead th{
background:var(--gkaj-hl); color:var(--gkaj-dark);
font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
border-bottom:1px solid var(--gkaj-line); white-space:nowrap;
}
.gkaj-table tbody td,.gkaj-table tbody th{border-top:1px solid var(--gkaj-line);}
.gkaj-table tbody tr:nth-child(even) td,.gkaj-table tbody tr:nth-child(even) th{background:#fbfcfe;}
.gkaj-table th:first-child,.gkaj-table td:first-child{
position:sticky; left:0; z-index:1;
background:#fff; font-weight:700; color:var(--gkaj-ink); font-size:14.5px;
border-right:1px solid var(--gkaj-line);
}
.gkaj-table thead th:first-child{background:var(--gkaj-hl); color:var(--gkaj-dark); font-size:11.5px;}
.gkaj-table tbody tr:nth-child(even) td:first-child,.gkaj-table tbody tr:nth-child(even) th:first-child{background:#fbfcfe;}
.gkaj-table tfoot td{border-top:2px solid var(--gkaj-line); background:var(--gkaj-hl); font-weight:700; color:var(--gkaj-ink);}
.gkaj-table tfoot td:first-child{background:var(--gkaj-hl);}
.gkaj-tag{
display:inline-block; font-size:13px; font-weight:600; color:var(--gkaj-body);
background:#f5f7fa; border:1px solid var(--gkaj-line); border-radius:6px; padding:3px 9px;
}
.gkaj-pill{
display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.01em;
border-radius:999px; padding:3px 11px; white-space:nowrap;
background:var(--gkaj-light); color:var(--gkaj-dark); border:1px solid #cfe0fb;
}
.gkaj-num{font-variant-numeric:tabular-nums; font-weight:700; color:var(--gkaj-ink); white-space:nowrap;}
.gkaj-table-hint{display:none; font-size:12.5px; color:var(--gkaj-mute); margin:0 0 30px; text-align:right;}
.gkaj-blog .gkaj-ck{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 28px;}
.gkaj-ck li{
position:relative; border:1px solid var(--gkaj-line); border-radius:8px; background:#fff;
padding:14px 16px 14px 50px; font-size:15.5px; line-height:1.62; color:var(--gkaj-ink);
}
.gkaj-ck li::before{
content:""; position:absolute; left:17px; top:17px; width:18px; height:18px;
border:2px solid var(--gkaj-accent); border-radius:5px; background:#fff;
}
.gkaj-blog .gkaj-qn{display:grid; gap:10px; margin:18px 0 30px;}
.gkaj-qn li{
position:relative; border:1px solid var(--gkaj-line); border-radius:8px; background:#fff;
padding:13px 16px 13px 62px; font-size:15.5px; line-height:1.62; color:var(--gkaj-ink); min-height:50px;
}
.gkaj-qn li::before{
content:"Q" counter(list-item); position:absolute; left:12px; top:12px;
min-width:38px; text-align:center; font-size:12px; font-weight:700; letter-spacing:.02em;
color:var(--gkaj-dark); background:var(--gkaj-light); border-radius:6px; padding:3px 6px;
font-variant-numeric:tabular-nums;
}
.gkaj-callout,.gkaj-tip{
display:flex; gap:14px; align-items:flex-start;
border-radius:var(--gkaj-r); padding:17px 20px; margin:24px 0; font-size:16px; line-height:1.68;
}
.gkaj-callout{background:var(--gkaj-hl); border-left:4px solid var(--gkaj-accent); color:var(--gkaj-ink);}
.gkaj-tip{background:var(--gkaj-warn-bg); border-left:4px solid var(--gkaj-warn); color:var(--gkaj-ink);}
.gkaj-callout svg,.gkaj-tip svg{width:20px; height:20px; flex:0 0 20px; margin-top:3px;}
.gkaj-callout svg{color:var(--gkaj-accent);} .gkaj-tip svg{color:var(--gkaj-warn);}
.gkaj-callout p,.gkaj-tip p{margin:0;}
.gkaj-takeaway{
background:var(--gkaj-hl); border:1px solid var(--gkaj-line); border-radius:var(--gkaj-r);
padding:22px 26px; margin:28px 0 22px;
}
.gkaj-takeaway p{margin:0 0 14px;} .gkaj-takeaway p:last-child{margin:0;}
.gkaj-cta{
background:var(--gkaj-ink); border-radius:var(--gkaj-r); padding:26px 30px; margin:32px 0;
}
.gkaj-cta-h{font-size:20px; font-weight:700; color:#fff !important; margin:0 0 9px; line-height:1.35;}
.gkaj-cta p{color:#cfd6e2; font-size:16px; line-height:1.65; margin:0 0 18px;}
.gkaj-blog .gkaj-cta p.gkaj-cta-h{color:#fff;}
.gkaj-blog .gkaj-btn{
display:inline-block; background:var(--gkaj-accent) !important; color:#fff !important;
font-size:14.5px; font-weight:700; padding:11px 24px; border-radius:7px;
text-decoration:none !important; transition:background .15s ease;
}
.gkaj-blog .gkaj-btn:hover,.gkaj-blog .gkaj-btn:focus-visible,.gkaj-blog .gkaj-btn:visited{
background:var(--gkaj-dark) !important; color:#fff !important; text-decoration:none !important;
}
@media (max-width:900px){
.gkaj-blog h2{font-size:26px; margin-top:44px;}
.gkaj-cards-3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:820px){
.gkaj-cards-3{grid-template-columns:1fr;}
}
@media (max-width:700px){
.gkaj-cards,.gkaj-cards-3{grid-template-columns:1fr;}
}
@media (max-width:640px){
.gkaj-table-hint{display:block;}
.gkaj-blog{font-size:16.5px;}
.gkaj-blog h2{font-size:23px;}
.gkaj-blog h3{font-size:18.5px;}
.gkaj-lede{font-size:17px; padding:17px 18px;}
.gkaj-toc{padding:18px 18px 6px;}
.gkaj-chips,.gkaj-ck{grid-template-columns:1fr;}
.gkaj-op{flex-direction:column; gap:12px; padding:18px;}
.gkaj-cta{padding:22px 20px;}
.gkaj-takeaway{padding:18px 18px;}
}
@media (prefers-reduced-motion:reduce){
.gkaj-blog *{transition:none !important;}
.gkaj-card:hover{transform:none;}
}
Life sciences and healthcare share the same cause – health. Yet, they differ in the goals they pursue. While life sciences dive deep into discoveries to find new approaches for treatment, healthcare draws from these findings for treatment and recovery of people’s health. Both work toward the patient; however, the processes that help get there are entirely different.
Salesforce recognizes the differences by providing two platforms that are designed specifically for both. The Salesforce Life Sciences Cloud covers all the processes needed to develop and commercialize therapies – recruiting people to the clinical trials, managing medical inquiries, field force planning, tracking samples, engaging HCPs, and managing access programs. It takes into account the specificity of the industry where research, scientific collaboration, commercial activity, and regulations are interlinked. Life Sciences Cloud combines these processes on the Salesforce platform, thus providing pharmaceutical and MedTech organizations with a platform tailored to their business processes.
What’s inside
What is Salesforce Life Sciences Cloud?
What Life Sciences Cloud Adds That Health Cloud Doesn’t
1. Clinical Trial Operations and Participant Management
2. Medical Affairs and MSL Execution
3. Commercial and MedTech Sales Planning
4. Sampling Governance and Regulatory Compliance
5. Advanced Patient Services and Hub Programs
Choosing the Right Platform for Life Sciences Operations
Conclusion
What is Salesforce Life Sciences Cloud?
Salesforce Life Sciences Cloud is where pharmaceutical, biotech, and medical technology organizations run their commercial, clinical, and regulatory operations — on a platform built specifically for that industry rather than adapted from a broader one. It integrates industry-specific data models, regulatory processes, and AI capabilities in one system – designed for life science complexity, rather than a modified version of an already existing system.
Out of the box, the platform handles clinical trial site and sponsor relationships, patient identification and matching, Medical Science Liaison, MSL, call planning and document management, Healthcare professional (HCP) engagement and compliance tracking, sample management and traceability, medical inquiry routing and response workflows, and patient access program coordination — each as a native object rather than a custom configuration. Agentforce runs across these functions within regulated, auditable boundaries, handling adverse event triage, MLR workflow progression, and field force exception management without requiring manual oversight at each step.
Unlike Health Cloud’s patient-centered architecture, Salesforce Life Sciences Cloud is organized around the relationships and workflows that exist before a therapy reaches the patient — investigators, HCPs, payers, and commercial operations, each with its own compliance logic built in natively.
What Life Sciences Cloud Adds That Health Cloud Doesn’t
1. Clinical Trial Operations and Participant Management
Trial Site and Sponsor SelectionSelection of trial sites for Salesforce clinical trial management is based on the use of native performance metrics, such as rate of recruitment, protocol deviation history, and timeline of activation of the sites, which are stored within the Salesforce platform itself and not in any other clinical tool. The sponsor coordination takes place within the same environment where the coordination between sponsor and investigator site is taking place commercially.
Participant Recruitment and Auto-MatchingThe AI-based auto-matching algorithm matches the participants’ profile against the inclusion and exclusion criteria set out by the protocol without any manual screening. The visibility of the recruitment pipeline, including the number of screened, enrolled, active, and withdrawn candidates, takes place in real-time from across all sites.
2. Medical Affairs and MSL Execution
MSL EfficiencyMSL activity has historically lived in a separate system from commercial, meaning the complete HCP relationship existed nowhere in a single view. Life sciences CRM in this platform manages MSL call planning, scientific exchange documentation, and congress activity inside the same HCP record commercial operates from. Medical affairs and commercial leadership see the same relationship history simultaneously — no integration layer required.
AI-Automated Inquiry ResponsesIf a medical inquiry is submitted, the system recognizes the relevant approved content, composes the response, which is to be reviewed by the specialist, and passes the response through the documented process. No manual recording is required at any stage throughout this process, and the complete record is ready to be used for auditing purposes by the regulator.
3. Commercial and MedTech Sales Planning
MedTech Commercial OperationsAccount segmentation, product placement tracking, capital equipment sales cycles, and contract management operate natively within the platform. Territory planning uses AI-driven targeting that weights HCP and facility profiles against historical sales data — field deployment decisions driven by the same data measuring field performance, not sitting in a separate analytics environment.
Pricing and Rebate ManagementContract pricing, rebate calculations, and payer agreement management sit within the commercial data model. Pricing tiers and rebate thresholds link directly to account records — a field rep’s account view reflects current contract terms without a separate lookup, and finance gets accurate accrual data without manual extraction from a disconnected system.
4. Sampling Governance and Regulatory Compliance
Traceability and E-SignaturesSample inventory is tracked at the rep level. Every transaction logs against the HCP recipient, enforces federal and state sample limits automatically, and captures electronic signatures at the point of delivery. Every record is timestamped, attributed, and audit-ready — what a DEA audit requires, and what a generic CRM logging samples against Contact records cannot reliably produce.
Embedded AI and Agentic WorkflowsSalesforce Life Sciences Cloud embeds Agentforce directly into regulated workflows. Agentic automation handles adverse event triage routing, MLR workflow progression, and field force exception management — each within documented, auditable decision trails. Compliance boundaries are defined at the workflow level by regulatory teams. The agents operate within them.
5. Advanced Patient Services and Hub Programs
Holistic Patient Support and Hub Services. Hub services, patient assistance programs, specialty pharmacy coordination, benefit verification, and prior authorizations become an integral part of the solution. A hub program coordinator can see all patient details — eligibility, registration, specialty pharmacy fulfillment, and financial assistance — on one screen without switching between a hub solution, patient services platform, and CRM. This consolidates a function most life sciences organizations currently fill with a separate hub technology vendor, bringing patient services data into the same platform managing commercial and clinical operations.
Choosing the Right Platform for Life Sciences Operations
The difference between Life Sciences Cloud vs Health Cloud comes from the processes an organization is required to support. Health Cloud still has value in healthcare delivery, care coordination, and patient services. Life Sciences Cloud introduces more industry-related features such as clinical recruitment, medical inquiry management, field engagement, sampling, and commercial business operations. There is some overlap between the two, and it all depends on licensing and configuration.
The Veeva vs Salesforce Life Sciences comparison brings another advantage into focus. Veeva Vault CRM specializes in life sciences commercial engagement. Salesforce Life Sciences Cloud combines industry-specific capabilities with Salesforce’s wider platform, which can benefit companies already using its sales, service, analytics, and integration tools. That connection can make it easier to link commercial activity with other business workflows. Existing Veeva investments, migration costs, compliance needs, and content transfers still matter, but Salesforce’s broader ecosystem gives life sciences teams a compelling reason to consider it.
Conclusion
Life sciences has its own requirements for functioning, ranging from clinical studies and scientific collaboration to execution and patient management. Salesforce Life Sciences Cloud caters to all these requirements by integrating industry-specific functionalities in the Salesforce environment. The effect could either be big or small depending on an organization’s priorities and its processes. To some organizations, this may mean uniting fragmented teams, but for other organizations, it may mean adopting a platform that transforms their decision-making and information flow processes within the company. And both situations start with a single question: what is possible to do with connected life sciences operations?
.gkae-blog{
--gkae-accent:#1a73e8; --gkae-dark:#0f4fa8; --gkae-light:#e8f0fe; --gkae-hl:#f3f7ff;
--gkae-line:#e4e9f2; --gkae-ink:#101828; --gkae-body:#3f4a5a; --gkae-mute:#697586;
--gkae-ok:#0f7a4a; --gkae-ok-bg:#eefaf3; --gkae-ok-line:#c3ead6;
--gkae-warn:#a35c00; --gkae-warn-bg:#fff8ec; --gkae-warn-line:#f5dfb8;
--gkae-alt:#6537c9; --gkae-alt-bg:#f5f2ff; --gkae-alt-line:#ddd4f7;
--gkae-neg:#b42318; --gkae-neg-bg:#fdf1f1; --gkae-neg-line:#f6d5d2;
--gkae-r:10px;
width:100%; font-size:17px; line-height:1.75; color:var(--gkae-body);
-webkit-font-smoothing:antialiased;
}
.gkae-blog *,.gkae-blog *::before,.gkae-blog *::after{box-sizing:border-box;}
.gkae-blog p{margin:0 0 20px;}
.gkae-blog h2{font-size:29px; line-height:1.3; letter-spacing:-.015em; margin:52px 0 18px; color:var(--gkae-ink); font-weight:700; scroll-margin-top:90px;}
.gkae-blog h3{font-size:20px; line-height:1.38; letter-spacing:-.01em; margin:32px 0 10px; color:var(--gkae-ink); font-weight:700; scroll-margin-top:90px;}
.gkae-blog h2 + p,.gkae-blog h3 + p{margin-top:0;}
.gkae-blog img{max-width:100%; height:auto; display:block; margin:0 auto; border-radius:var(--gkae-r);}
.gkae-blog hr{border:0; border-top:1px solid var(--gkae-line); margin:44px 0;}
.gkae-blog ul,.gkae-blog ol{margin:0 0 22px; padding:0; list-style:none;}
.gkae-blog svg{fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.gkae-blog code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.88em; color:var(--gkae-ink); background:#f5f7fa; border:1px solid var(--gkae-line); border-radius:5px; padding:1px 6px; overflow-wrap:anywhere;}
.gkae-blog a{
color:var(--gkae-accent); font-weight:600;
background-image:none !important;
text-decoration:underline !important;
text-decoration-thickness:1px; text-underline-offset:3px;
text-decoration-skip-ink:auto;
transition:color .15s ease, text-decoration-thickness .15s ease;
}
.gkae-blog a:hover,.gkae-blog a:focus-visible{color:var(--gkae-dark); text-decoration-thickness:2px;}
.gkae-blog a:visited{color:var(--gkae-accent);}
.gkae-toc-list a,.gkae-blog .gkae-btn{text-decoration:none !important;}
.gkae-blog a:focus-visible{outline:2px solid var(--gkae-accent); outline-offset:3px; border-radius:3px;}
.gkae-kw{color:var(--gkae-ink); font-weight:700;}
.gkae-lede{
background:var(--gkae-hl); border-left:4px solid var(--gkae-accent);
border-radius:0 var(--gkae-r) var(--gkae-r) 0;
padding:20px 24px; margin:0 0 26px; font-size:18px; line-height:1.7; color:var(--gkae-ink);
}
.gkae-lede p{margin:0;}
.gkae-toc{
border:1px solid var(--gkae-line); border-radius:var(--gkae-r);
background:#fff; padding:20px 24px 8px; margin:30px 0 38px;
}
.gkae-toc-head{
font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
color:var(--gkae-mute); margin:0 0 14px;
}
.gkae-toc-list{counter-reset:gkaetoc; margin:0; padding:0;}
@media (min-width:700px){.gkae-toc-2 .gkae-toc-list{columns:2; column-gap:34px;}}
.gkae-toc-2 .gkae-toc-list li{break-inside:avoid;}
.gkae-toc-list li{counter-increment:gkaetoc; position:relative; padding:0 0 12px 34px; font-size:15.5px; line-height:1.5;}
.gkae-toc-list li::before{
content:counter(gkaetoc,decimal-leading-zero);
position:absolute; left:0; top:1px;
font-size:11px; font-weight:700; color:var(--gkae-accent);
background:var(--gkae-light); border-radius:5px; padding:2px 6px; letter-spacing:.02em;
}
.gkae-toc-list a{color:var(--gkae-body); font-weight:600;}
.gkae-toc-list a:hover{color:var(--gkae-accent); text-decoration:underline !important;}
.gkae-list li{position:relative; padding:0 0 12px 24px; line-height:1.7;}
.gkae-list li::before{
content:""; position:absolute; left:2px; top:11px;
width:7px; height:7px; border-radius:50%; background:var(--gkae-accent);
}
.gkae-list strong{color:var(--gkae-ink);}
.gkae-chips{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 26px;}
.gkae-chips li{
display:block; position:relative;
background:var(--gkae-hl); border:1px solid var(--gkae-line); border-radius:8px;
padding:12px 16px 12px 34px; font-size:15px; line-height:1.55; color:var(--gkae-ink);
}
.gkae-chips li::before{
content:""; position:absolute; left:15px; top:20px;
width:6px; height:6px; border-radius:50%; background:var(--gkae-accent);
}
.gkae-chips-ck li{padding-left:42px;}
.gkae-chips-ck li::before{
left:14px; top:14px; width:18px; height:18px; border-radius:50%;
background:var(--gkae-ok-bg); border:1px solid var(--gkae-ok-line);
}
.gkae-chips-ck li::after{
content:""; position:absolute; left:21px; top:18px; width:4px; height:8px;
border:solid var(--gkae-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gkae-cards{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkae-cards-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkae-card{
border:1px solid var(--gkae-line); border-radius:var(--gkae-r); background:#fff;
padding:20px 22px 6px; transition:box-shadow .18s ease, transform .18s ease;
}
.gkae-card:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); transform:translateY(-2px);}
.gkae-card-top{display:flex; align-items:center; gap:11px; margin-bottom:10px;}
.gkae-card-icon{
width:34px; height:34px; flex:0 0 34px; border-radius:8px;
background:var(--gkae-light); color:var(--gkae-accent);
display:flex; align-items:center; justify-content:center;
}
.gkae-card-icon svg{width:19px; height:19px;}
.gkae-card-t{font-size:16px; font-weight:700; color:var(--gkae-ink); line-height:1.35; margin:0;}
.gkae-card p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkae-cards-risk .gkae-card-icon{background:var(--gkae-neg-bg); color:var(--gkae-neg);}
.gkae-ops{display:grid; gap:14px; margin:24px 0 30px;}
.gkae-op{
display:flex; gap:18px; align-items:flex-start;
border:1px solid var(--gkae-line); border-radius:var(--gkae-r); background:#fff;
padding:20px 22px; transition:box-shadow .18s ease, border-color .18s ease;
}
.gkae-op:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); border-color:#d3ddec;}
.gkae-op-n{
flex:0 0 38px; width:38px; height:38px; border-radius:50%;
background:var(--gkae-accent); color:#fff;
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700; letter-spacing:.02em;
}
.gkae-op-b{min-width:0; flex:1;}
.gkae-op-b h3{margin:1px 0 6px; font-size:17.5px;}
.gkae-op-b p{font-size:15.5px; line-height:1.68; margin:0;}
.gkae-op-b p + p{margin-top:12px;}
.gkae-steps{position:relative; margin:26px 0 32px; padding-left:26px;}
.gkae-steps::before{content:""; position:absolute; left:5px; top:8px; bottom:8px; width:2px; background:var(--gkae-line);}
.gkae-step{position:relative; padding:0 0 8px;}
.gkae-step::before{
content:""; position:absolute; left:-26px; top:12px;
width:12px; height:12px; border-radius:50%;
background:#fff; border:3px solid var(--gkae-accent);
}
.gkae-step h2,.gkae-step h3{
font-size:20px; line-height:1.38; margin:22px 0 8px; letter-spacing:-.005em;
}
.gkae-step:first-child h2,.gkae-step:first-child h3{margin-top:0;}
.gkae-step p{font-size:16px; line-height:1.72; margin:0 0 4px;}
.gkae-blog .gkae-seq{counter-reset:gkaeseq; position:relative; margin:26px 0 30px; padding:0;}
.gkae-seq::before{content:""; position:absolute; left:17px; top:20px; bottom:20px; width:2px; background:var(--gkae-line);}
.gkae-seq li{counter-increment:gkaeseq; position:relative; padding:4px 0 20px 56px; line-height:1.7; min-height:36px;}
.gkae-seq li:last-child{padding-bottom:0;}
.gkae-seq li::before{
content:counter(gkaeseq); position:absolute; left:0; top:0;
width:36px; height:36px; border-radius:50%;
background:var(--gkae-accent); color:#fff; border:3px solid #fff; box-shadow:0 0 0 1px var(--gkae-line);
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700;
}
.gkae-seq strong{color:var(--gkae-ink);}
.gkae-dgrid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkae-dgrid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkae-dcard{border:1px solid var(--gkae-line); border-radius:var(--gkae-r); padding:20px 22px 6px; background:#fff; border-top:3px solid var(--gkae-accent); display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:12px; align-items:center; align-content:start;}
.gkae-dcard h3{margin:0 0 8px; font-size:17px;}
.gkae-dcard .gkae-card-t{margin:0 0 10px; font-size:17px;}
.gkae-dcard p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkae-blog .gkae-dcard ul{grid-column:1 / -1;margin:0 0 10px}
.gkae-dtag{
display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.08em;
text-transform:uppercase; border-radius:5px; padding:3px 9px; margin-bottom:11px;
background:var(--gkae-light); color:var(--gkae-dark);
}
.gkae-dcard .gkae-card-icon{margin:0 0 10px;}
.gkae-dcard p:not(.gkae-card-t){grid-column:1 / -1;}
.gkae-d-ok{border-top-color:var(--gkae-ok);}
.gkae-d-ok .gkae-dtag,.gkae-d-ok .gkae-card-icon{background:var(--gkae-ok-bg); color:var(--gkae-ok);}
.gkae-d-warn{border-top-color:var(--gkae-warn);}
.gkae-d-warn .gkae-dtag,.gkae-d-warn .gkae-card-icon{background:var(--gkae-warn-bg); color:var(--gkae-warn);}
.gkae-d-go{border-top-color:var(--gkae-accent);}
.gkae-d-go .gkae-dtag,.gkae-d-go .gkae-card-icon{background:var(--gkae-light); color:var(--gkae-dark);}
.gkae-d-alt{border-top-color:var(--gkae-alt);}
.gkae-d-alt .gkae-dtag,.gkae-d-alt .gkae-card-icon{background:var(--gkae-alt-bg); color:var(--gkae-alt);}
.gkae-verdict{
background:var(--gkae-hl); border:1px solid var(--gkae-line); border-radius:8px;
padding:13px 16px; font-size:15px; line-height:1.65; color:var(--gkae-ink); margin:2px 0 16px;
}
.gkae-qs{counter-reset:gkaeq; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:22px 0 28px;}
.gkae-qs li{
counter-increment:gkaeq; position:relative;
border:1px solid var(--gkae-line); border-radius:var(--gkae-r); background:#fff;
padding:16px 18px 14px 18px;
}
.gkae-qs-head{
display:block; font-size:13.5px; font-weight:700; letter-spacing:.01em;
color:var(--gkae-accent); margin-bottom:6px;
}
.gkae-qs li p{font-size:15px; line-height:1.62; margin:0;}
.gkae-faq{display:grid; gap:14px; margin:24px 0 10px;}
.gkae-faq-i{border:1px solid var(--gkae-line); border-radius:var(--gkae-r); background:#fff; padding:20px 22px 6px;}
.gkae-faq-i h3{margin:0 0 8px; font-size:17.5px; line-height:1.4;}
.gkae-faq-i p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkae-table-wrap{
overflow-x:auto; -webkit-overflow-scrolling:touch;
border:1px solid var(--gkae-line); border-radius:var(--gkae-r); margin:24px 0 10px;
}
.gkae-table{width:100%; border-collapse:collapse; min-width:560px; font-size:15px;}
.gkae-table th,.gkae-table td{padding:13px 16px; text-align:left; vertical-align:top; line-height:1.6;}
.gkae-table thead th{
background:var(--gkae-hl); color:var(--gkae-dark);
font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
border-bottom:1px solid var(--gkae-line); white-space:nowrap;
}
.gkae-table tbody td,.gkae-table tbody th{border-top:1px solid var(--gkae-line);}
.gkae-table tbody tr:nth-child(even) td,.gkae-table tbody tr:nth-child(even) th{background:#fbfcfe;}
.gkae-table th:first-child,.gkae-table td:first-child{
position:sticky; left:0; z-index:1;
background:#fff; font-weight:700; color:var(--gkae-ink); font-size:14.5px;
border-right:1px solid var(--gkae-line);
}
.gkae-table thead th:first-child{background:var(--gkae-hl); color:var(--gkae-dark); font-size:11.5px;}
.gkae-table tbody tr:nth-child(even) td:first-child,.gkae-table tbody tr:nth-child(even) th:first-child{background:#fbfcfe;}
.gkae-pill{
display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.01em;
border-radius:999px; padding:3px 11px; white-space:nowrap;
}
.gkae-pill-pos{background:var(--gkae-ok-bg); color:var(--gkae-ok); border:1px solid var(--gkae-ok-line);}
.gkae-pill-mid{background:var(--gkae-warn-bg); color:var(--gkae-warn); border:1px solid var(--gkae-warn-line);}
.gkae-pill-neg{background:var(--gkae-neg-bg); color:var(--gkae-neg); border:1px solid var(--gkae-neg-line);}
.gkae-tag{
display:inline-block; font-size:13px; font-weight:600; color:var(--gkae-body);
background:#f5f7fa; border:1px solid var(--gkae-line); border-radius:6px; padding:3px 9px;
}
.gkae-num{font-variant-numeric:tabular-nums; font-weight:700; color:var(--gkae-ink); white-space:nowrap;}
.gkae-table-hint{display:none; font-size:12.5px; color:var(--gkae-mute); margin:0 0 30px; text-align:right;}
.gkae-stats{border:1px solid var(--gkae-line); border-radius:var(--gkae-r); background:var(--gkae-hl); padding:20px 22px 22px; margin:26px 0 30px;}
.gkae-stats-head{display:flex; align-items:center; gap:10px; font-size:16px; font-weight:700; color:var(--gkae-dark); margin:0 0 16px; line-height:1.35;}
.gkae-stats-head svg{width:20px; height:20px; flex:0 0 20px;}
.gkae-stats-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;}
.gkae-stat{background:#fff; border:1px solid var(--gkae-line); border-radius:8px; padding:16px 18px 6px; font-size:15.5px; line-height:1.65; color:var(--gkae-ink);}
.gkae-stat p{margin:0 0 12px;}
.gkae-stat strong{color:var(--gkae-accent); font-weight:700;}
.gkae-stat .gkae-card-icon{margin:2px 0 10px;}
.gkae-plans{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkae-plan{border:1px solid var(--gkae-line); border-top:3px solid var(--gkae-accent); border-radius:var(--gkae-r); background:#fff; padding:20px 22px 8px;}
.gkae-plan-n{font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gkae-dark); margin:0 0 6px;}
.gkae-plan-p{font-size:20px; line-height:1.3; font-weight:800; letter-spacing:-.01em; color:var(--gkae-ink); margin:0 0 16px; font-variant-numeric:tabular-nums;}
.gkae-blog .gkae-plan-list{margin:0 0 14px;}
.gkae-plan-list li{position:relative; padding:0 0 10px 28px; font-size:15.5px; line-height:1.6; color:var(--gkae-ink);}
.gkae-plan-list li::before{
content:""; position:absolute; left:0; top:3px; width:18px; height:18px; border-radius:50%;
background:var(--gkae-ok-bg); border:1px solid var(--gkae-ok-line);
}
.gkae-plan-list li::after{
content:""; position:absolute; left:7px; top:7px; width:4px; height:8px;
border:solid var(--gkae-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gkae-blog .gkae-ck{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 28px;}
.gkae-ck li{
position:relative; border:1px solid var(--gkae-line); border-radius:8px; background:#fff;
padding:14px 16px 14px 50px; font-size:15.5px; line-height:1.62;
}
.gkae-ck li::before{
content:""; position:absolute; left:17px; top:17px; width:18px; height:18px;
border:2px solid var(--gkae-accent); border-radius:5px; background:#fff;
}
.gkae-ck strong{color:var(--gkae-ink);}
.gkae-flow{display:flex; flex-wrap:wrap; align-items:stretch; gap:8px 6px; margin:22px 0 28px;}
.gkae-flow-i{
background:var(--gkae-hl); border:1px solid var(--gkae-line); border-radius:8px;
padding:9px 14px; font-size:14.5px; line-height:1.4; font-weight:600; color:var(--gkae-ink);
display:flex; align-items:center;
}
.gkae-flow-a{align-self:center; color:var(--gkae-accent); font-weight:700; font-size:16px; line-height:1;}
.gkae-callout,.gkae-tip{
display:flex; gap:14px; align-items:flex-start;
border-radius:var(--gkae-r); padding:17px 20px; margin:24px 0; font-size:16px; line-height:1.68;
}
.gkae-callout{background:var(--gkae-hl); border-left:4px solid var(--gkae-accent); color:var(--gkae-ink);}
.gkae-tip{background:var(--gkae-warn-bg); border-left:4px solid var(--gkae-warn); color:var(--gkae-ink);}
.gkae-callout svg,.gkae-tip svg{width:20px; height:20px; flex:0 0 20px; margin-top:3px;}
.gkae-callout svg{color:var(--gkae-accent);} .gkae-tip svg{color:var(--gkae-warn);}
.gkae-callout p,.gkae-tip p{margin:0;}
.gkae-quote{
margin:26px 0; padding:20px 24px; border-left:4px solid var(--gkae-accent);
background:var(--gkae-hl); border-radius:0 var(--gkae-r) var(--gkae-r) 0;
font-size:18.5px; line-height:1.65; font-style:italic; color:var(--gkae-ink);
}
.gkae-quote p{margin:0;}
.gkae-takeaway{
background:var(--gkae-hl); border:1px solid var(--gkae-line); border-radius:var(--gkae-r);
padding:22px 26px; margin:28px 0 22px;
}
.gkae-takeaway p{margin:0 0 14px;} .gkae-takeaway p:last-child{margin:0;}
.gkae-emph{
border-left:4px solid var(--gkae-accent); padding:4px 0 4px 20px; margin:24px 0 8px;
font-size:19px; line-height:1.6; font-weight:600; color:var(--gkae-ink);
}
.gkae-cta{
background:var(--gkae-ink); border-radius:var(--gkae-r); padding:26px 30px; margin:32px 0;
}
.gkae-cta p.gkae-cta-h{color:#fff; font-size:20px; margin:0 0 9px}
.gkae-cta-h{font-size:20px; font-weight:700; color:#fff; margin:0 0 9px; line-height:1.35;}
.gkae-cta p{color:#cfd6e2; font-size:16px; line-height:1.65; margin:0 0 18px;}
.gkae-blog .gkae-btn{
display:inline-block; background:var(--gkae-accent) !important; color:#fff !important;
font-size:14.5px; font-weight:700; padding:11px 24px; border-radius:7px;
text-decoration:none !important; transition:background .15s ease;
}
.gkae-blog .gkae-btn:hover,.gkae-blog .gkae-btn:focus-visible,.gkae-blog .gkae-btn:visited{
background:var(--gkae-dark) !important; color:#fff !important; text-decoration:none !important;
}
@media (max-width:900px){
.gkae-blog h2{font-size:26px; margin-top:44px;}
.gkae-cards-3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:820px){
.gkae-dgrid-3,.gkae-plans,.gkae-stats-grid{grid-template-columns:1fr;}
.gkae-stat{display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:14px; align-items:start;}
}
@media (max-width:700px){
.gkae-cards,.gkae-cards-3,.gkae-dgrid{grid-template-columns:1fr;}
}
@media (max-width:640px){
.gkae-table-hint{display:block;}
.gkae-blog{font-size:16.5px;}
.gkae-blog h2{font-size:23px;}
.gkae-blog h3,.gkae-step h2,.gkae-step h3{font-size:18.5px;}
.gkae-lede{font-size:17px; padding:17px 18px;}
.gkae-toc{padding:18px 18px 6px;}
.gkae-chips,.gkae-qs,.gkae-ck{grid-template-columns:1fr;}
.gkae-op{flex-direction:column; gap:12px; padding:18px;}
.gkae-cta{padding:22px 20px;}
.gkae-emph{font-size:17.5px;}
.gkae-quote{font-size:17px; padding:17px 18px;}
.gkae-takeaway{padding:18px 18px;}
.gkae-steps{padding-left:22px;}
.gkae-step::before{left:-22px;}
.gkae-stats{padding:16px 16px 18px;}
.gkae-flow{flex-direction:column; align-items:flex-start;}
.gkae-flow-a{transform:rotate(90deg); margin-left:16px;}
}
@media (prefers-reduced-motion:reduce){
.gkae-blog *{transition:none !important;}
.gkae-card:hover{transform:none;}
}
Be it a sales team requiring a few custom fields, a service department requesting a page layout, and an administrator building automation to do away with redundant work, business requirements tend to change. Over a period, teams grow, workflows change, and useful customization of the past becomes forgotten configuration of tomorrow.
Though the org continues to work, the effort required to maintain, navigate, and optimize it is much more. This is where Salesforce Optimizer popularized itself. It helped administrators reevaluate their Salesforce environments, identify potential ineffectiveness, and turn configuration conclusions into actionable suggestions. With more than 40 findings across its area of assessment, the tool offered a clearer picture of amassed technical debt.
Yet, administrators in 2026 must know this important update: Salesforce Optimizer App is stepping down. Salesforce declared that Hyperforce orgs will be retreating w.e.f Winter’26 while non-Hyperforce orgs will no longer be available after Summer’26.
The fundamental issue addressed by Optimizer hasn’t yet disappeared but now the challenge is to preserve discipline w.r.t maintenance by using available alternatives.
What’s Inside
Why Does Salesforce Optimizer Matter?
Comprehending Forty Findings
How to Use Salesforce Optimizer Findings Optimally?
What Is the Practical Alternative to Salesforce Optimizer?
Final Words
Why Does Salesforce Optimizer Matter?
As a native assessment tool designed to assess an org against chosen platform usage, configuration, and issues related to maintenance, Salesforce Optimizer highlighted on potential issues and offered suggestions to help administrators optimize usability, manage customizations, and minimize technical debt.
Besides examining areas such as custom fields, storage, page layouts, reports and dashboards, the Salesforce Optimizer report also assesses validation rules, custom code, automation, user management, and permissions. Conclusions derived by it assisted teams identify where their org might gain from interpretation or closer investigation.
It could be considered as the health assessment of your Salesforce org as it flags crowded page layout, a collection of fields, concerns w.r.t maintenance and everything that drew attention much before they become difficult and costly to fix.
However, every finding should not be considered a defect. A field that seemed unused might support integration, a compliance need, or a workflow that runs occasionally. The report was a beginning point for probe rather than consent to delete everything it flagged.
Comprehending Forty Findings
An org with a large number of suggestions may appear overwhelming. However, true value lies in identifying patterns.
Configuration Sprawl:
Too many rules, fields and customizations make the org complex and difficult to maintain.
User Experience Issues:
Crowded record pages and needless fields can slow down mundane work.
Maintenance Risks:
Invalid configurations, complex automation etc., may call for close assessment.
Governance Gaps:
Incompatible permissions and overlooked customizations can make future changes difficult to control.
These findings help administrators differentiate between an individual issue and a broader pattern of Salesforce technical debt. The objective isn’t to draw a perfect report but to build an org that supports workflows without carrying needless complexity.
How to Use Salesforce Optimizer Findings Optimally?
For teams having a Salesforce Optimizer report, the best way is to turn their suggestions into a well-structured cleanup plan. Here is a 5-step process.
1. Review the Findings and Set Priorities
Begin with findings that may impact security, data integrity, platform limits, or critical business processes. Next, evaluate usability issues and opportunities to ease conformations. Not every recommendation should be treated as urgent. Do not treat every suggestion as equally urgent. A potential limit issue warrants a separate response from unused fields and layout Salesforce that troubles a bunch of users.
2. Investigate Idle Fields and Layouts in Salesforce
The most appealing clean up candidate includes unused layouts and Fields Salesforce administrators may have to deal with. An object may include fields that are occupied, while several page layouts may perform overlapping principles.
Before deleting anything, examine:
Whether Apex code, flows, validation rules, methods, or incorporations depends on the field.
Whether dashboards, reports or downriver systems leverages their values.
Whether several record types or user groups need the layout.
Whether the field backs legal, audit or historic reporting needs.
A field without recent updates isn’t necessarily redundant. Check dependencies, consult process owners, and test recommended changes in a sandbox before installing them.
3. Turn Suggestions into a Cleanup Backlog
Create a hunter with the discovery, business impact, assessed effort, owner, reliance checks, projected action, and status.
Classify the tasks into 3 sets:
Quick Wins:
Changes that do not include risks such as streamlining an accepted page layout or eliminating redundant configurations.
Planned Enhancements:
Changes needing the approval of stakeholders, regression testing, or managed releases.
Investigations:
Findings that require analysis since reliance or ownership remain obscure.
This structure turns a long report into an easy-to-handle work rather than another document that every person reads once and overlooks.
4. Test Before Managing Production Changes
Salesforce configurations are unified. Deleting a field or changing permission can impact automation, integrations, reporting, and workflows. Changes can be authenticated in a sandbox environment. Appropriate tests should be run and get acceptance where appropriate. A back up of important metadata and data should be maintained before destructive changes occur. Apart from this, make sure to document the rollback approach.
5. Measure the Results
Success shouldn’t be measured by the number of items you remove. You must track cutbacks in redundant fields, ensure fewer duplicate configurations, quick completion of tasks, and less time employed sustaining obsolete components. Make sure to review the backlog and include org protection in your release process.
What Is the Practical Alternative to Salesforce Optimizer?
Salesforce administrators should understand that original Optimizer app will no longer be available due to its phased retirement across both Hyperforce, as well as non-Hyperforce surroundings. Existing reports may offer insights but are not a commonly available solution. A feasible alternative is Org Check that helps figure out metadata issues and technical debt. However, it might duplicate every Optimizer finding. Verify permissions, compatibility and requirements for installation, and use dedicated tools such as Security Health Check for security considerations.
Final Words:
Salesforce technical debt seldom shows up as a significant system failure. Rather, it quietly builds through fields no one understands, automations that couldn’t be changed, and releases delayed by dependencies that aren’t documented. These inefficiencies raise the cost of maintenance, complicate improvements, and minimize Salesforce usability.
Salesforce Optimizer encourages discipline besides the report it generates. Administrators need a redundant process to assess configurations, authenticate reliance, focus on solutions, and measure upgrades. In a healthy Salesforce org, every customization has a purpose, and a valid reason to exist.
.gkaf-blog{
--gkaf-accent:#1a73e8; --gkaf-dark:#0f4fa8; --gkaf-light:#e8f0fe; --gkaf-hl:#f3f7ff;
--gkaf-line:#e4e9f2; --gkaf-ink:#101828; --gkaf-body:#3f4a5a; --gkaf-mute:#697586;
--gkaf-ok:#0f7a4a; --gkaf-ok-bg:#eefaf3; --gkaf-ok-line:#c3ead6;
--gkaf-warn:#a35c00; --gkaf-warn-bg:#fff8ec; --gkaf-warn-line:#f5dfb8;
--gkaf-alt:#6537c9; --gkaf-alt-bg:#f5f2ff; --gkaf-alt-line:#ddd4f7;
--gkaf-neg:#b42318; --gkaf-neg-bg:#fdf1f1; --gkaf-neg-line:#f6d5d2;
--gkaf-r:10px;
width:100%; font-size:17px; line-height:1.75; color:var(--gkaf-body);
-webkit-font-smoothing:antialiased;
}
.gkaf-blog *,.gkaf-blog *::before,.gkaf-blog *::after{box-sizing:border-box;}
.gkaf-blog p{margin:0 0 20px;}
.gkaf-blog h2{font-size:29px; line-height:1.3; letter-spacing:-.015em; margin:52px 0 18px; color:var(--gkaf-ink); font-weight:700; scroll-margin-top:90px;}
.gkaf-blog h3{font-size:20px; line-height:1.38; letter-spacing:-.01em; margin:32px 0 10px; color:var(--gkaf-ink); font-weight:700; scroll-margin-top:90px;}
.gkaf-blog h2 + p,.gkaf-blog h3 + p{margin-top:0;}
.gkaf-blog img{max-width:100%; height:auto; display:block; margin:0 auto; border-radius:var(--gkaf-r);}
.gkaf-blog hr{border:0; border-top:1px solid var(--gkaf-line); margin:44px 0;}
.gkaf-blog ul,.gkaf-blog ol{margin:0 0 22px; padding:0; list-style:none;}
.gkaf-blog svg{fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.gkaf-blog code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.88em; color:var(--gkaf-ink); background:#f5f7fa; border:1px solid var(--gkaf-line); border-radius:5px; padding:1px 6px; overflow-wrap:anywhere;}
.gkaf-blog a{
color:var(--gkaf-accent); font-weight:600;
background-image:none !important;
text-decoration:underline !important;
text-decoration-thickness:1px; text-underline-offset:3px;
text-decoration-skip-ink:auto;
transition:color .15s ease, text-decoration-thickness .15s ease;
}
.gkaf-blog a:hover,.gkaf-blog a:focus-visible{color:var(--gkaf-dark); text-decoration-thickness:2px;}
.gkaf-blog a:visited{color:var(--gkaf-accent);}
.gkaf-toc-list a,.gkaf-blog .gkaf-btn{text-decoration:none !important;}
.gkaf-blog a:focus-visible{outline:2px solid var(--gkaf-accent); outline-offset:3px; border-radius:3px;}
.gkaf-kw{color:var(--gkaf-ink); font-weight:700;}
.gkaf-lede{
background:var(--gkaf-hl); border-left:4px solid var(--gkaf-accent);
border-radius:0 var(--gkaf-r) var(--gkaf-r) 0;
padding:20px 24px; margin:0 0 26px; font-size:18px; line-height:1.7; color:var(--gkaf-ink);
}
.gkaf-lede p{margin:0;}
.gkaf-toc{
border:1px solid var(--gkaf-line); border-radius:var(--gkaf-r);
background:#fff; padding:20px 24px 8px; margin:30px 0 38px;
}
.gkaf-toc-head{
font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
color:var(--gkaf-mute); margin:0 0 14px;
}
.gkaf-toc-list{counter-reset:gkaftoc; margin:0; padding:0;}
@media (min-width:700px){.gkaf-toc-2 .gkaf-toc-list{columns:2; column-gap:34px;}}
.gkaf-toc-2 .gkaf-toc-list li{break-inside:avoid;}
.gkaf-toc-list li{counter-increment:gkaftoc; position:relative; padding:0 0 12px 34px; font-size:15.5px; line-height:1.5;}
.gkaf-toc-list li::before{
content:counter(gkaftoc,decimal-leading-zero);
position:absolute; left:0; top:1px;
font-size:11px; font-weight:700; color:var(--gkaf-accent);
background:var(--gkaf-light); border-radius:5px; padding:2px 6px; letter-spacing:.02em;
}
.gkaf-toc-list a{color:var(--gkaf-body); font-weight:600;}
.gkaf-toc-list a:hover{color:var(--gkaf-accent); text-decoration:underline !important;}
.gkaf-list li{position:relative; padding:0 0 12px 24px; line-height:1.7;}
.gkaf-list li::before{
content:""; position:absolute; left:2px; top:11px;
width:7px; height:7px; border-radius:50%; background:var(--gkaf-accent);
}
.gkaf-list strong{color:var(--gkaf-ink);}
.gkaf-chips{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 26px;}
.gkaf-chips li{
display:block; position:relative;
background:var(--gkaf-hl); border:1px solid var(--gkaf-line); border-radius:8px;
padding:12px 16px 12px 34px; font-size:15px; line-height:1.55; color:var(--gkaf-ink);
}
.gkaf-chips li::before{
content:""; position:absolute; left:15px; top:20px;
width:6px; height:6px; border-radius:50%; background:var(--gkaf-accent);
}
.gkaf-chips-ck li{padding-left:42px;}
.gkaf-chips-ck li::before{
left:14px; top:14px; width:18px; height:18px; border-radius:50%;
background:var(--gkaf-ok-bg); border:1px solid var(--gkaf-ok-line);
}
.gkaf-chips-ck li::after{
content:""; position:absolute; left:21px; top:18px; width:4px; height:8px;
border:solid var(--gkaf-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gkaf-cards{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkaf-cards-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkaf-card{
border:1px solid var(--gkaf-line); border-radius:var(--gkaf-r); background:#fff;
padding:20px 22px 6px; transition:box-shadow .18s ease, transform .18s ease;
}
.gkaf-card:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); transform:translateY(-2px);}
.gkaf-card-top{display:flex; align-items:center; gap:11px; margin-bottom:10px;}
.gkaf-card-icon{
width:34px; height:34px; flex:0 0 34px; border-radius:8px;
background:var(--gkaf-light); color:var(--gkaf-accent);
display:flex; align-items:center; justify-content:center;
}
.gkaf-card-icon svg{width:19px; height:19px;}
.gkaf-card-t{font-size:16px; font-weight:700; color:var(--gkaf-ink); line-height:1.35; margin:0;}
.gkaf-card p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkaf-cards-risk .gkaf-card-icon{background:var(--gkaf-neg-bg); color:var(--gkaf-neg);}
.gkaf-ops{display:grid; gap:14px; margin:24px 0 30px;}
.gkaf-op{
display:flex; gap:18px; align-items:flex-start;
border:1px solid var(--gkaf-line); border-radius:var(--gkaf-r); background:#fff;
padding:20px 22px; transition:box-shadow .18s ease, border-color .18s ease;
}
.gkaf-op:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); border-color:#d3ddec;}
.gkaf-op-n{
flex:0 0 38px; width:38px; height:38px; border-radius:50%;
background:var(--gkaf-accent); color:#fff;
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700; letter-spacing:.02em;
}
.gkaf-op-b{min-width:0; flex:1;}
.gkaf-op-b h3{margin:1px 0 6px; font-size:17.5px;}
.gkaf-op-b p{font-size:15.5px; line-height:1.68; margin:0;}
.gkaf-op-b p + p{margin-top:12px;}
.gkaf-steps{position:relative; margin:26px 0 32px; padding-left:26px;}
.gkaf-steps::before{content:""; position:absolute; left:5px; top:8px; bottom:8px; width:2px; background:var(--gkaf-line);}
.gkaf-step{position:relative; padding:0 0 8px;}
.gkaf-step::before{
content:""; position:absolute; left:-26px; top:12px;
width:12px; height:12px; border-radius:50%;
background:#fff; border:3px solid var(--gkaf-accent);
}
.gkaf-step h2,.gkaf-step h3{
font-size:20px; line-height:1.38; margin:22px 0 8px; letter-spacing:-.005em;
}
.gkaf-step:first-child h2,.gkaf-step:first-child h3{margin-top:0;}
.gkaf-step p{font-size:16px; line-height:1.72; margin:0 0 4px;}
.gkaf-blog .gkaf-seq{counter-reset:gkafseq; position:relative; margin:26px 0 30px; padding:0;}
.gkaf-seq::before{content:""; position:absolute; left:17px; top:20px; bottom:20px; width:2px; background:var(--gkaf-line);}
.gkaf-seq li{counter-increment:gkafseq; position:relative; padding:4px 0 20px 56px; line-height:1.7; min-height:36px;}
.gkaf-seq li:last-child{padding-bottom:0;}
.gkaf-seq li::before{
content:counter(gkafseq); position:absolute; left:0; top:0;
width:36px; height:36px; border-radius:50%;
background:var(--gkaf-accent); color:#fff; border:3px solid #fff; box-shadow:0 0 0 1px var(--gkaf-line);
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700;
}
.gkaf-seq strong{color:var(--gkaf-ink);}
.gkaf-dgrid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkaf-dgrid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkaf-dcard{border:1px solid var(--gkaf-line); border-radius:var(--gkaf-r); padding:20px 22px 6px; background:#fff; border-top:3px solid var(--gkaf-accent); display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:12px; align-items:center; align-content:start;}
.gkaf-dcard h3{margin:0 0 8px; font-size:17px;}
.gkaf-dcard .gkaf-card-t{margin:0 0 10px; font-size:17px;}
.gkaf-dcard p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkaf-dtag{
display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.08em;
text-transform:uppercase; border-radius:5px; padding:3px 9px; margin-bottom:11px;
background:var(--gkaf-light); color:var(--gkaf-dark);
}
.gkaf-dcard .gkaf-card-icon{margin:0 0 10px;}
.gkaf-dcard p:not(.gkaf-card-t){grid-column:1 / -1;}
.gkaf-d-ok{border-top-color:var(--gkaf-ok);}
.gkaf-d-ok .gkaf-dtag,.gkaf-d-ok .gkaf-card-icon{background:var(--gkaf-ok-bg); color:var(--gkaf-ok);}
.gkaf-d-warn{border-top-color:var(--gkaf-warn);}
.gkaf-d-warn .gkaf-dtag,.gkaf-d-warn .gkaf-card-icon{background:var(--gkaf-warn-bg); color:var(--gkaf-warn);}
.gkaf-d-go{border-top-color:var(--gkaf-accent);}
.gkaf-d-go .gkaf-dtag,.gkaf-d-go .gkaf-card-icon{background:var(--gkaf-light); color:var(--gkaf-dark);}
.gkaf-d-alt{border-top-color:var(--gkaf-alt);}
.gkaf-d-alt .gkaf-dtag,.gkaf-d-alt .gkaf-card-icon{background:var(--gkaf-alt-bg); color:var(--gkaf-alt);}
.gkaf-verdict{
background:var(--gkaf-hl); border:1px solid var(--gkaf-line); border-radius:8px;
padding:13px 16px; font-size:15px; line-height:1.65; color:var(--gkaf-ink); margin:2px 0 16px;
}
.gkaf-qs{counter-reset:gkafq; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:22px 0 28px;}
.gkaf-qs li{
counter-increment:gkafq; position:relative;
border:1px solid var(--gkaf-line); border-radius:var(--gkaf-r); background:#fff;
padding:16px 18px 14px 18px;
}
.gkaf-qs-head{
display:block; font-size:13.5px; font-weight:700; letter-spacing:.01em;
color:var(--gkaf-accent); margin-bottom:6px;
}
.gkaf-qs li p{font-size:15px; line-height:1.62; margin:0;}
.gkaf-faq{display:grid; gap:14px; margin:24px 0 10px;}
.gkaf-faq-i{border:1px solid var(--gkaf-line); border-radius:var(--gkaf-r); background:#fff; padding:20px 22px 6px;}
.gkaf-faq-i h3{margin:0 0 8px; font-size:17.5px; line-height:1.4;}
.gkaf-faq-i p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkaf-table-wrap{
overflow-x:auto; -webkit-overflow-scrolling:touch;
border:1px solid var(--gkaf-line); border-radius:var(--gkaf-r); margin:24px 0 10px;
}
.gkaf-table{width:100%; border-collapse:collapse; min-width:560px; font-size:15px;}
.gkaf-table th,.gkaf-table td{padding:13px 16px; text-align:left; vertical-align:top; line-height:1.6;}
.gkaf-table thead th{
background:var(--gkaf-hl); color:var(--gkaf-dark);
font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
border-bottom:1px solid var(--gkaf-line); white-space:nowrap;
}
.gkaf-table tbody td,.gkaf-table tbody th{border-top:1px solid var(--gkaf-line);}
.gkaf-table tbody tr:nth-child(even) td,.gkaf-table tbody tr:nth-child(even) th{background:#fbfcfe;}
.gkaf-table th:first-child,.gkaf-table td:first-child{
position:sticky; left:0; z-index:1;
background:#fff; font-weight:700; color:var(--gkaf-ink); font-size:14.5px;
border-right:1px solid var(--gkaf-line);
}
.gkaf-table thead th:first-child{background:var(--gkaf-hl); color:var(--gkaf-dark); font-size:11.5px;}
.gkaf-table tbody tr:nth-child(even) td:first-child,.gkaf-table tbody tr:nth-child(even) th:first-child{background:#fbfcfe;}
.gkaf-pill{
display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.01em;
border-radius:999px; padding:3px 11px; white-space:nowrap;
}
.gkaf-pill-pos{background:var(--gkaf-ok-bg); color:var(--gkaf-ok); border:1px solid var(--gkaf-ok-line);}
.gkaf-pill-mid{background:var(--gkaf-warn-bg); color:var(--gkaf-warn); border:1px solid var(--gkaf-warn-line);}
.gkaf-pill-neg{background:var(--gkaf-neg-bg); color:var(--gkaf-neg); border:1px solid var(--gkaf-neg-line);}
.gkaf-tag{
display:inline-block; font-size:13px; font-weight:600; color:var(--gkaf-body);
background:#f5f7fa; border:1px solid var(--gkaf-line); border-radius:6px; padding:3px 9px;
}
.gkaf-num{font-variant-numeric:tabular-nums; font-weight:700; color:var(--gkaf-ink); white-space:nowrap;}
.gkaf-table-hint{display:none; font-size:12.5px; color:var(--gkaf-mute); margin:0 0 30px; text-align:right;}
.gkaf-stats{border:1px solid var(--gkaf-line); border-radius:var(--gkaf-r); background:var(--gkaf-hl); padding:20px 22px 22px; margin:26px 0 30px;}
.gkaf-stats-head{display:flex; align-items:center; gap:10px; font-size:16px; font-weight:700; color:var(--gkaf-dark); margin:0 0 16px; line-height:1.35;}
.gkaf-stats-head svg{width:20px; height:20px; flex:0 0 20px;}
.gkaf-stats-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;}
.gkaf-stat{background:#fff; border:1px solid var(--gkaf-line); border-radius:8px; padding:16px 18px 6px; font-size:15.5px; line-height:1.65; color:var(--gkaf-ink);}
.gkaf-stat p{margin:0 0 12px;}
.gkaf-stat strong{color:var(--gkaf-accent); font-weight:700;}
.gkaf-stat .gkaf-card-icon{margin:2px 0 10px;}
.gkaf-plans{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkaf-plan{border:1px solid var(--gkaf-line); border-top:3px solid var(--gkaf-accent); border-radius:var(--gkaf-r); background:#fff; padding:20px 22px 8px;}
.gkaf-plan-n{font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gkaf-dark); margin:0 0 6px;}
.gkaf-plan-p{font-size:20px; line-height:1.3; font-weight:800; letter-spacing:-.01em; color:var(--gkaf-ink); margin:0 0 16px; font-variant-numeric:tabular-nums;}
.gkaf-blog .gkaf-plan-list{margin:0 0 14px;}
.gkaf-plan-list li{position:relative; padding:0 0 10px 28px; font-size:15.5px; line-height:1.6; color:var(--gkaf-ink);}
.gkaf-plan-list li::before{
content:""; position:absolute; left:0; top:3px; width:18px; height:18px; border-radius:50%;
background:var(--gkaf-ok-bg); border:1px solid var(--gkaf-ok-line);
}
.gkaf-plan-list li::after{
content:""; position:absolute; left:7px; top:7px; width:4px; height:8px;
border:solid var(--gkaf-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gkaf-blog .gkaf-ck{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 28px;}
.gkaf-ck li{
position:relative; border:1px solid var(--gkaf-line); border-radius:8px; background:#fff;
padding:14px 16px 14px 50px; font-size:15.5px; line-height:1.62;
}
.gkaf-ck li::before{
content:""; position:absolute; left:17px; top:17px; width:18px; height:18px;
border:2px solid var(--gkaf-accent); border-radius:5px; background:#fff;
}
.gkaf-ck strong{color:var(--gkaf-ink);}
.gkaf-flow{display:flex; flex-wrap:wrap; align-items:stretch; gap:8px 6px; margin:22px 0 28px;}
.gkaf-flow-i{
background:var(--gkaf-hl); border:1px solid var(--gkaf-line); border-radius:8px;
padding:9px 14px; font-size:14.5px; line-height:1.4; font-weight:600; color:var(--gkaf-ink);
display:flex; align-items:center;
}
.gkaf-flow-a{align-self:center; color:var(--gkaf-accent); font-weight:700; font-size:16px; line-height:1;}
.gkaf-callout,.gkaf-tip{
display:flex; gap:14px; align-items:flex-start;
border-radius:var(--gkaf-r); padding:17px 20px; margin:24px 0; font-size:16px; line-height:1.68;
}
.gkaf-callout{background:var(--gkaf-hl); border-left:4px solid var(--gkaf-accent); color:var(--gkaf-ink);}
.gkaf-tip{background:var(--gkaf-warn-bg); border-left:4px solid var(--gkaf-warn); color:var(--gkaf-ink);}
.gkaf-callout svg,.gkaf-tip svg{width:20px; height:20px; flex:0 0 20px; margin-top:3px;}
.gkaf-callout svg{color:var(--gkaf-accent);} .gkaf-tip svg{color:var(--gkaf-warn);}
.gkaf-callout p,.gkaf-tip p{margin:0;}
.gkaf-quote{
margin:26px 0; padding:20px 24px; border-left:4px solid var(--gkaf-accent);
background:var(--gkaf-hl); border-radius:0 var(--gkaf-r) var(--gkaf-r) 0;
font-size:18.5px; line-height:1.65; font-style:italic; color:var(--gkaf-ink);
}
.gkaf-quote p{margin:0;}
.gkaf-takeaway{
background:var(--gkaf-hl); border:1px solid var(--gkaf-line); border-radius:var(--gkaf-r);
padding:22px 26px; margin:28px 0 22px;
}
.gkaf-takeaway p{margin:0 0 14px;} .gkaf-takeaway p:last-child{margin:0;}
.gkaf-emph{
border-left:4px solid var(--gkaf-accent); padding:4px 0 4px 20px; margin:24px 0 8px;
font-size:19px; line-height:1.6; font-weight:600; color:var(--gkaf-ink);
}
.gkaf-cta{
background:var(--gkaf-ink); border-radius:var(--gkaf-r); padding:26px 30px; margin:32px 0;
}
.gkaf-cta-h{font-size:20px; font-weight:700; color:#fff; margin:0 0 9px; line-height:1.35;}
.gkaf-cta p{color:#cfd6e2; font-size:16px; line-height:1.65; margin:0 0 18px;}
.gkaf-blog .gkaf-btn{
display:inline-block; background:var(--gkaf-accent) !important; color:#fff !important;
font-size:14.5px; font-weight:700; padding:11px 24px; border-radius:7px;
text-decoration:none !important; transition:background .15s ease;
}
.gkaf-blog .gkaf-btn:hover,.gkaf-blog .gkaf-btn:focus-visible,.gkaf-blog .gkaf-btn:visited{
background:var(--gkaf-dark) !important; color:#fff !important; text-decoration:none !important;
}
@media (max-width:900px){
.gkaf-blog h2{font-size:26px; margin-top:44px;}
.gkaf-cards-3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:820px){
.gkaf-dgrid-3,.gkaf-plans,.gkaf-stats-grid{grid-template-columns:1fr;}
.gkaf-stat{display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:14px; align-items:start;}
}
@media (max-width:700px){
.gkaf-cards,.gkaf-cards-3,.gkaf-dgrid{grid-template-columns:1fr;}
}
@media (max-width:640px){
.gkaf-table-hint{display:block;}
.gkaf-blog{font-size:16.5px;}
.gkaf-blog h2{font-size:23px;}
.gkaf-blog h3,.gkaf-step h2,.gkaf-step h3{font-size:18.5px;}
.gkaf-lede{font-size:17px; padding:17px 18px;}
.gkaf-toc{padding:18px 18px 6px;}
.gkaf-chips,.gkaf-qs,.gkaf-ck{grid-template-columns:1fr;}
.gkaf-op{flex-direction:column; gap:12px; padding:18px;}
.gkaf-cta{padding:22px 20px;}
.gkaf-emph{font-size:17.5px;}
.gkaf-quote{font-size:17px; padding:17px 18px;}
.gkaf-takeaway{padding:18px 18px;}
.gkaf-steps{padding-left:22px;}
.gkaf-step::before{left:-22px;}
.gkaf-stats{padding:16px 16px 18px;}
.gkaf-flow{flex-direction:column; align-items:flex-start;}
.gkaf-flow-a{transform:rotate(90deg); margin-left:16px;}
}
@media (prefers-reduced-motion:reduce){
.gkaf-blog *{transition:none !important;}
.gkaf-card:hover{transform:none;}
}
A CRM is supposed to give sales teams a clear picture of their customer conversations. But when an important email is missing from a customer record — reps often end up digging through their inboxes or asking colleagues to forward messages just to catch up. What is supposed to be an easy follow-up process may become a tedious task that leaves the team unable to get the information needed to move a deal further.
Salesforce Outlook Integration is designed to ensure that email activity remains tied to your customer accounts. However — just because you have integrated Outlook with Salesforce does not necessarily mean that all emails that matter will be in the right place. Even with Einstein Activity Capture enabled, gaps can still occur.So — why aren’t those emails syncing, and what can businesses do to fix the problem? From common configuration issues to the limitations of native email capture, understanding what’s going wrong can help teams maintain a more complete record of customer interactions.Let’s look at the causes and practical ways to address them in Salesforce.
What’s insideHow Salesforce Outlook Integration Works and What It DoesWhy Emails Aren’t Syncing to SalesforceEinstein Activity Capture Limitations in SalesforceTroubleshooting Salesforce Outlook Integration: 5 Checks to MakeConcluding Words
How Salesforce Outlook Integration Works and What It Does
Salesforce Outlook Integration enables sales teams to look at customer details, see pertinent information, and log emails all within one program. However — connecting the two systems doesn’t guarantee that every email will appear in Salesforce. The outcome depends on the integration setup and the email logging method. For instance — Einstein Activity Capture can automatically capture emails and events, while other emails may need to be logged manually.
For businesses managing multiple applications, Salesforce consulting services can help review integration configurations, improve email synchronization, and align Salesforce with existing business workflows and data requirements.
Understanding how these features work is the first step toward identifying why emails go missing and how to fix the problem.
Why Emails Aren’t Syncing to Salesforce
When Salesforce email sync doesn’t work as expected — the problem isn’t always the connection itself. Emails may be missing because of incorrect settings, access issues — or the way email activity is captured and linked to CRM records.
Here are a few common causes to check:
Integration settings:Outlook may be connected — but the required settings might not be configured correctly.User permissions:Access or authentication issues can prevent integration from working as expected.Email capture settings:Automatic capture and manual email logging work differently, which affects where emails appear in Salesforce.Record association:The record association may be problematic, where an email can be stored, but not associated with the right lead, contact or opportunity.
Firstly, you need to determine what the problem really is. However — some gaps relate to how email capture works rather than a faulty connection. That’s why it’s important to understand what Einstein Activity Capture can and cannot do before changing the setup.
Einstein Activity Capture Limitations in Salesforce
Einstein Activity Capture can automatically capture emails and add them to related Salesforce activity timelines — reducing manual logging. However, it doesn’t guarantee that every email detail will be available where your team expects it. Its capabilities depend on the configuration and how Salesforce stores the captured data.
Here are three limitations to keep in mind:
Limited reporting capabilities:Depending on the setup — captured emails may appear on activity timelines without being available in standard Salesforce reports. The Sync Email as Salesforce Activity setting affects how email data is stored and used.Email attachments aren’t synced:Einstein Activity Capture doesn’t sync email attachments to Salesforce — so users may need to access them through their connected inbox.Salesforce Inbox serves a different purpose:Salesforce Inbox offers additional email productivity features, while Einstein Activity Capture handles email and calendar activity. Both serve related but different purposes and help improve workflow efficiency with Salesforce by streamlining daily tasks and enhancing productivity.
These limitations also affect email logging in Salesforce. The presence of an email on an activity timeline does not imply that — its content can be accessed through reporting and that its attachment can be stored in Salesforce. This is because such knowledge is important to help a team determine the best solution.
Troubleshooting Salesforce Outlook Integration: 5 Checks to Make
If you are worried why your email isn’t syncing with Salesforce, then you must check out the connection, capture, and record association before making any changes.
Ensure your Outlook connection is set up correctly. Ensure that your email account is connected and that it’s authenticated. An expired connection means — you need to reconnect your email account and verify it.Verify the integration settings. Make sure that the Outlook integration is enabled in Salesforce Setup and — the necessary users have access to all necessary functions. Just having an established connection doesn’t mean that your setup is configured perfectly.Inspect the Einstein Activity Capture settings. Verify that the necessary user has the proper configuration, and email capture is turned on. You should also inspect the list of excluded emails and domains.Check email-to-record match. In case an email was captured but not found on the right lead, contact, or opportunity, see if the email is linked to the right Salesforce record.Check if email logging and reporting are required. When your team needs emails to be included in reports, make sure that your Salesforce administrator enables Sync Email as Salesforce Activity option. It may vary depending on the setup — so some emails may not be logged and reported in the same way.
These troubleshooting tips cover the most common Salesforce email sync problems — without assuming that all emails are missed because of a connection problem.
Read More: Identify the Hidden Gaps in Your Salesforce Org
Concluding Words
Salesforce Outlook Integration helps sales teams keep customer conversations connected to their CRM records — but a successful connection doesn’t guarantee complete email visibility. Missing messages may result from configuration issues, record associations, or limitations in how Einstein Activity Capture stores and displays email activity.The best approach is to identify where the gap occurs before changing the setup. Reviewing connection settings, capture rules, and email logging requirements — help teams resolve sync issues and maintain more reliable customer activity records.
.gkad-blog{
--gkad-accent:#1a73e8; --gkad-dark:#0f4fa8; --gkad-light:#e8f0fe; --gkad-hl:#f3f7ff;
--gkad-line:#e4e9f2; --gkad-ink:#101828; --gkad-body:#3f4a5a; --gkad-mute:#697586;
--gkad-ok:#0f7a4a; --gkad-ok-bg:#eefaf3; --gkad-ok-line:#c3ead6;
--gkad-warn:#a35c00; --gkad-warn-bg:#fff8ec; --gkad-warn-line:#f5dfb8;
--gkad-alt:#6537c9; --gkad-alt-bg:#f5f2ff; --gkad-alt-line:#ddd4f7;
--gkad-neg:#b42318; --gkad-neg-bg:#fdf1f1; --gkad-neg-line:#f6d5d2;
--gkad-r:10px;
width:100%; font-size:17px; line-height:1.75; color:var(--gkad-body);
-webkit-font-smoothing:antialiased;
}
.gkad-blog *,.gkad-blog *::before,.gkad-blog *::after{box-sizing:border-box;}
.gkad-blog p{margin:0 0 20px;}
.gkad-blog h2{font-size:29px; line-height:1.3; letter-spacing:-.015em; margin:52px 0 18px; color:var(--gkad-ink); font-weight:700; scroll-margin-top:90px;}
.gkad-blog h3{font-size:20px; line-height:1.38; letter-spacing:-.01em; margin:32px 0 10px; color:var(--gkad-ink); font-weight:700; scroll-margin-top:90px;}
.gkad-blog h2 + p,.gkad-blog h3 + p{margin-top:0;}
.gkad-blog img{max-width:100%; height:auto; display:block; margin:0 auto; border-radius:var(--gkad-r);}
.gkad-blog hr{border:0; border-top:1px solid var(--gkad-line); margin:44px 0;}
.gkad-blog ul,.gkad-blog ol{margin:0 0 22px; padding:0; list-style:none;}
.gkad-blog svg{fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.gkad-blog code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.88em; color:var(--gkad-ink); background:#f5f7fa; border:1px solid var(--gkad-line); border-radius:5px; padding:1px 6px; overflow-wrap:anywhere;}
.gkad-blog a{
color:var(--gkad-accent); font-weight:600;
background-image:none !important;
text-decoration:underline !important;
text-decoration-thickness:1px; text-underline-offset:3px;
text-decoration-skip-ink:auto;
transition:color .15s ease, text-decoration-thickness .15s ease;
}
.gkad-blog a:hover,.gkad-blog a:focus-visible{color:var(--gkad-dark); text-decoration-thickness:2px;}
.gkad-blog a:visited{color:var(--gkad-accent);}
.gkad-toc-list a,.gkad-blog .gkad-btn{text-decoration:none !important;}
.gkad-blog a:focus-visible{outline:2px solid var(--gkad-accent); outline-offset:3px; border-radius:3px;}
.gkad-kw{color:var(--gkad-ink); font-weight:700;}
.gkad-lede{
background:var(--gkad-hl); border-left:4px solid var(--gkad-accent);
border-radius:0 var(--gkad-r) var(--gkad-r) 0;
padding:20px 24px; margin:0 0 26px; font-size:18px; line-height:1.7; color:var(--gkad-ink);
}
.gkad-lede p{margin:0;}
.gkad-toc{
border:1px solid var(--gkad-line); border-radius:var(--gkad-r);
background:#fff; padding:20px 24px 8px; margin:30px 0 38px;
}
.gkad-toc-head{
font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
color:var(--gkad-mute); margin:0 0 14px;
}
.gkad-toc-list{counter-reset:gkadtoc; margin:0; padding:0;}
@media (min-width:700px){.gkad-toc-2 .gkad-toc-list{columns:2; column-gap:34px;}}
.gkad-toc-2 .gkad-toc-list li{break-inside:avoid;}
.gkad-toc-list li{counter-increment:gkadtoc; position:relative; padding:0 0 12px 34px; font-size:15.5px; line-height:1.5;}
.gkad-toc-list li::before{
content:counter(gkadtoc,decimal-leading-zero);
position:absolute; left:0; top:1px;
font-size:11px; font-weight:700; color:var(--gkad-accent);
background:var(--gkad-light); border-radius:5px; padding:2px 6px; letter-spacing:.02em;
}
.gkad-toc-list a{color:var(--gkad-body); font-weight:600;}
.gkad-toc-list a:hover{color:var(--gkad-accent); text-decoration:underline !important;}
.gkad-list li{position:relative; padding:0 0 12px 24px; line-height:1.7;}
.gkad-list li::before{
content:""; position:absolute; left:2px; top:11px;
width:7px; height:7px; border-radius:50%; background:var(--gkad-accent);
}
.gkad-list strong{color:var(--gkad-ink);}
.gkad-chips{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 26px;}
.gkad-chips li{
display:block; position:relative;
background:var(--gkad-hl); border:1px solid var(--gkad-line); border-radius:8px;
padding:12px 16px 12px 34px; font-size:15px; line-height:1.55; color:var(--gkad-ink);
}
.gkad-chips li::before{
content:""; position:absolute; left:15px; top:20px;
width:6px; height:6px; border-radius:50%; background:var(--gkad-accent);
}
.gkad-chips-ck li{padding-left:42px;}
.gkad-chips-ck li::before{
left:14px; top:14px; width:18px; height:18px; border-radius:50%;
background:var(--gkad-ok-bg); border:1px solid var(--gkad-ok-line);
}
.gkad-chips-ck li::after{
content:""; position:absolute; left:21px; top:18px; width:4px; height:8px;
border:solid var(--gkad-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gkad-cards{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkad-cards-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkad-card{
border:1px solid var(--gkad-line); border-radius:var(--gkad-r); background:#fff;
padding:20px 22px 6px; transition:box-shadow .18s ease, transform .18s ease;
}
.gkad-card:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); transform:translateY(-2px);}
.gkad-card-top{display:flex; align-items:center; gap:11px; margin-bottom:10px;}
.gkad-card-icon{
width:34px; height:34px; flex:0 0 34px; border-radius:8px;
background:var(--gkad-light); color:var(--gkad-accent);
display:flex; align-items:center; justify-content:center;
}
.gkad-card-icon svg{width:19px; height:19px;}
.gkad-card-t{font-size:16px; font-weight:700; color:var(--gkad-ink); line-height:1.35; margin:0;}
.gkad-card p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkad-cards-risk .gkad-card-icon{background:var(--gkad-neg-bg); color:var(--gkad-neg);}
.gkad-ops{display:grid; gap:14px; margin:24px 0 30px;}
.gkad-op{
display:flex; gap:18px; align-items:flex-start;
border:1px solid var(--gkad-line); border-radius:var(--gkad-r); background:#fff;
padding:20px 22px; transition:box-shadow .18s ease, border-color .18s ease;
}
.gkad-op:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); border-color:#d3ddec;}
.gkad-op-n{
flex:0 0 38px; width:38px; height:38px; border-radius:50%;
background:var(--gkad-accent); color:#fff;
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700; letter-spacing:.02em;
}
.gkad-op-b{min-width:0; flex:1;}
.gkad-op-b h3{margin:1px 0 6px; font-size:17.5px;}
.gkad-op-b p{font-size:15.5px; line-height:1.68; margin:0;}
.gkad-op-b p + p{margin-top:12px;}
.gkad-steps{position:relative; margin:26px 0 32px; padding-left:26px;}
.gkad-steps::before{content:""; position:absolute; left:5px; top:8px; bottom:8px; width:2px; background:var(--gkad-line);}
.gkad-step{position:relative; padding:0 0 8px;}
.gkad-step::before{
content:""; position:absolute; left:-26px; top:12px;
width:12px; height:12px; border-radius:50%;
background:#fff; border:3px solid var(--gkad-accent);
}
.gkad-step h2,.gkad-step h3{
font-size:20px; line-height:1.38; margin:22px 0 8px; letter-spacing:-.005em;
}
.gkad-step:first-child h2,.gkad-step:first-child h3{margin-top:0;}
.gkad-step p{font-size:16px; line-height:1.72; margin:0 0 4px;}
.gkad-blog .gkad-seq{counter-reset:gkadseq; position:relative; margin:26px 0 30px; padding:0;}
.gkad-seq::before{content:""; position:absolute; left:17px; top:20px; bottom:20px; width:2px; background:var(--gkad-line);}
.gkad-seq li{counter-increment:gkadseq; position:relative; padding:4px 0 20px 56px; line-height:1.7; min-height:36px;}
.gkad-seq li:last-child{padding-bottom:0;}
.gkad-seq li::before{
content:counter(gkadseq); position:absolute; left:0; top:0;
width:36px; height:36px; border-radius:50%;
background:var(--gkad-accent); color:#fff; border:3px solid #fff; box-shadow:0 0 0 1px var(--gkad-line);
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700;
}
.gkad-seq strong{color:var(--gkad-ink);}
.gkad-dgrid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkad-dgrid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkad-dcard{border:1px solid var(--gkad-line); border-radius:var(--gkad-r); padding:20px 22px 6px; background:#fff; border-top:3px solid var(--gkad-accent); display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:12px; align-items:center; align-content:start;}
.gkad-dcard h3{margin:0 0 8px; font-size:17px;}
.gkad-dcard .gkad-card-t{margin:0 0 10px; font-size:17px;}
.gkad-dcard p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkad-dtag{
display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.08em;
text-transform:uppercase; border-radius:5px; padding:3px 9px; margin-bottom:11px;
background:var(--gkad-light); color:var(--gkad-dark);
}
.gkad-dcard .gkad-card-icon{margin:0 0 10px;}
.gkad-dcard p:not(.gkad-card-t){grid-column:1 / -1;}
.gkad-d-ok{border-top-color:var(--gkad-ok);}
.gkad-d-ok .gkad-dtag,.gkad-d-ok .gkad-card-icon{background:var(--gkad-ok-bg); color:var(--gkad-ok);}
.gkad-d-warn{border-top-color:var(--gkad-warn);}
.gkad-d-warn .gkad-dtag,.gkad-d-warn .gkad-card-icon{background:var(--gkad-warn-bg); color:var(--gkad-warn);}
.gkad-d-go{border-top-color:var(--gkad-accent);}
.gkad-d-go .gkad-dtag,.gkad-d-go .gkad-card-icon{background:var(--gkad-light); color:var(--gkad-dark);}
.gkad-d-alt{border-top-color:var(--gkad-alt);}
.gkad-d-alt .gkad-dtag,.gkad-d-alt .gkad-card-icon{background:var(--gkad-alt-bg); color:var(--gkad-alt);}
.gkad-verdict{
background:var(--gkad-hl); border:1px solid var(--gkad-line); border-radius:8px;
padding:13px 16px; font-size:15px; line-height:1.65; color:var(--gkad-ink); margin:2px 0 16px;
}
.gkad-qs{counter-reset:gkadq; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:22px 0 28px;}
.gkad-qs li{
counter-increment:gkadq; position:relative;
border:1px solid var(--gkad-line); border-radius:var(--gkad-r); background:#fff;
padding:16px 18px 14px 18px;
}
.gkad-qs-head{
display:block; font-size:13.5px; font-weight:700; letter-spacing:.01em;
color:var(--gkad-accent); margin-bottom:6px;
}
.gkad-qs li p{font-size:15px; line-height:1.62; margin:0;}
.gkad-faq{display:grid; gap:14px; margin:24px 0 10px;}
.gkad-faq-i{border:1px solid var(--gkad-line); border-radius:var(--gkad-r); background:#fff; padding:20px 22px 6px;}
.gkad-faq-i h3{margin:0 0 8px; font-size:17.5px; line-height:1.4;}
.gkad-faq-i p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkad-table-wrap{
overflow-x:auto; -webkit-overflow-scrolling:touch;
border:1px solid var(--gkad-line); border-radius:var(--gkad-r); margin:24px 0 10px;
}
.gkad-table{width:100%; border-collapse:collapse; min-width:560px; font-size:15px;}
.gkad-table th,.gkad-table td{padding:13px 16px; text-align:left; vertical-align:top; line-height:1.6;}
.gkad-table thead th{
background:var(--gkad-hl); color:var(--gkad-dark);
font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
border-bottom:1px solid var(--gkad-line); white-space:nowrap;
}
.gkad-table tbody td,.gkad-table tbody th{border-top:1px solid var(--gkad-line);}
.gkad-table tbody tr:nth-child(even) td,.gkad-table tbody tr:nth-child(even) th{background:#fbfcfe;}
.gkad-table th:first-child,.gkad-table td:first-child{
position:sticky; left:0; z-index:1;
background:#fff; font-weight:700; color:var(--gkad-ink); font-size:14.5px;
border-right:1px solid var(--gkad-line);
}
.gkad-table thead th:first-child{background:var(--gkad-hl); color:var(--gkad-dark); font-size:11.5px;}
.gkad-table tbody tr:nth-child(even) td:first-child,.gkad-table tbody tr:nth-child(even) th:first-child{background:#fbfcfe;}
.gkad-pill{
display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.01em;
border-radius:999px; padding:3px 11px; white-space:nowrap;
}
.gkad-pill-pos{background:var(--gkad-ok-bg); color:var(--gkad-ok); border:1px solid var(--gkad-ok-line);}
.gkad-pill-mid{background:var(--gkad-warn-bg); color:var(--gkad-warn); border:1px solid var(--gkad-warn-line);}
.gkad-pill-neg{background:var(--gkad-neg-bg); color:var(--gkad-neg); border:1px solid var(--gkad-neg-line);}
.gkad-tag{
display:inline-block; font-size:13px; font-weight:600; color:var(--gkad-body);
background:#f5f7fa; border:1px solid var(--gkad-line); border-radius:6px; padding:3px 9px;
}
.gkad-num{font-variant-numeric:tabular-nums; font-weight:700; color:var(--gkad-ink); white-space:nowrap;}
.gkad-table-hint{display:none; font-size:12.5px; color:var(--gkad-mute); margin:0 0 30px; text-align:right;}
.gkad-stats{border:1px solid var(--gkad-line); border-radius:var(--gkad-r); background:var(--gkad-hl); padding:20px 22px 22px; margin:26px 0 30px;}
.gkad-stats-head{display:flex; align-items:center; gap:10px; font-size:16px; font-weight:700; color:var(--gkad-dark); margin:0 0 16px; line-height:1.35;}
.gkad-stats-head svg{width:20px; height:20px; flex:0 0 20px;}
.gkad-stats-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;}
.gkad-stat{background:#fff; border:1px solid var(--gkad-line); border-radius:8px; padding:16px 18px 6px; font-size:15.5px; line-height:1.65; color:var(--gkad-ink);}
.gkad-stat p{margin:0 0 12px;}
.gkad-stat strong{color:var(--gkad-accent); font-weight:700;}
.gkad-stat .gkad-card-icon{margin:2px 0 10px;}
.gkad-plans{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkad-plan{border:1px solid var(--gkad-line); border-top:3px solid var(--gkad-accent); border-radius:var(--gkad-r); background:#fff; padding:20px 22px 8px;}
.gkad-plan-n{font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gkad-dark); margin:0 0 6px;}
.gkad-plan-p{font-size:20px; line-height:1.3; font-weight:800; letter-spacing:-.01em; color:var(--gkad-ink); margin:0 0 16px; font-variant-numeric:tabular-nums;}
.gkad-blog .gkad-plan-list{margin:0 0 14px;}
.gkad-plan-list li{position:relative; padding:0 0 10px 28px; font-size:15.5px; line-height:1.6; color:var(--gkad-ink);}
.gkad-plan-list li::before{
content:""; position:absolute; left:0; top:3px; width:18px; height:18px; border-radius:50%;
background:var(--gkad-ok-bg); border:1px solid var(--gkad-ok-line);
}
.gkad-plan-list li::after{
content:""; position:absolute; left:7px; top:7px; width:4px; height:8px;
border:solid var(--gkad-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gkad-blog .gkad-ck{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 28px;}
.gkad-ck li{
position:relative; border:1px solid var(--gkad-line); border-radius:8px; background:#fff;
padding:14px 16px 14px 50px; font-size:15.5px; line-height:1.62;
}
.gkad-ck li::before{
content:""; position:absolute; left:17px; top:17px; width:18px; height:18px;
border:2px solid var(--gkad-accent); border-radius:5px; background:#fff;
}
.gkad-ck strong{color:var(--gkad-ink);}
.gkad-flow{display:flex; flex-wrap:wrap; align-items:stretch; gap:8px 6px; margin:22px 0 28px;}
.gkad-flow-i{
background:var(--gkad-hl); border:1px solid var(--gkad-line); border-radius:8px;
padding:9px 14px; font-size:14.5px; line-height:1.4; font-weight:600; color:var(--gkad-ink);
display:flex; align-items:center;
}
.gkad-flow-a{align-self:center; color:var(--gkad-accent); font-weight:700; font-size:16px; line-height:1;}
.gkad-callout,.gkad-tip{
display:flex; gap:14px; align-items:flex-start;
border-radius:var(--gkad-r); padding:17px 20px; margin:24px 0; font-size:16px; line-height:1.68;
}
.gkad-callout{background:var(--gkad-hl); border-left:4px solid var(--gkad-accent); color:var(--gkad-ink);}
.gkad-tip{background:var(--gkad-warn-bg); border-left:4px solid var(--gkad-warn); color:var(--gkad-ink);}
.gkad-callout svg,.gkad-tip svg{width:20px; height:20px; flex:0 0 20px; margin-top:3px;}
.gkad-callout svg{color:var(--gkad-accent);} .gkad-tip svg{color:var(--gkad-warn);}
.gkad-callout p,.gkad-tip p{margin:0;}
.gkad-quote{
margin:26px 0; padding:20px 24px; border-left:4px solid var(--gkad-accent);
background:var(--gkad-hl); border-radius:0 var(--gkad-r) var(--gkad-r) 0;
font-size:18.5px; line-height:1.65; font-style:italic; color:var(--gkad-ink);
}
.gkad-quote p{margin:0;}
.gkad-takeaway{
background:var(--gkad-hl); border:1px solid var(--gkad-line); border-radius:var(--gkad-r);
padding:22px 26px; margin:28px 0 22px;
}
.gkad-takeaway p{margin:0 0 14px;} .gkad-takeaway p:last-child{margin:0;}
.gkad-emph{
border-left:4px solid var(--gkad-accent); padding:4px 0 4px 20px; margin:24px 0 8px;
font-size:19px; line-height:1.6; font-weight:600; color:var(--gkad-ink);
}
.gkad-cta{
background:var(--gkad-ink); border-radius:var(--gkad-r); padding:26px 30px; margin:32px 0;
}
.gkad-cta-h{font-size:20px; font-weight:700; color:#fff; margin:0 0 9px; line-height:1.35;}
.gkad-cta p{color:#cfd6e2; font-size:16px; line-height:1.65; margin:0 0 18px;}
.gkad-blog .gkad-cta p.gkad-cta-h{color:#fff; font-size:20px; margin:0 0 9px;}
.gkad-blog .gkad-btn{
display:inline-block; background:var(--gkad-accent) !important; color:#fff !important;
font-size:14.5px; font-weight:700; padding:11px 24px; border-radius:7px;
text-decoration:none !important; transition:background .15s ease;
}
.gkad-blog .gkad-btn:hover,.gkad-blog .gkad-btn:focus-visible,.gkad-blog .gkad-btn:visited{
background:var(--gkad-dark) !important; color:#fff !important; text-decoration:none !important;
}
@media (max-width:900px){
.gkad-blog h2{font-size:26px; margin-top:44px;}
.gkad-cards-3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:820px){
.gkad-dgrid-3,.gkad-plans,.gkad-stats-grid{grid-template-columns:1fr;}
.gkad-stat{display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:14px; align-items:start;}
}
@media (max-width:700px){
.gkad-cards,.gkad-cards-3,.gkad-dgrid{grid-template-columns:1fr;}
}
@media (max-width:640px){
.gkad-table-hint{display:block;}
.gkad-blog{font-size:16.5px;}
.gkad-blog h2{font-size:23px;}
.gkad-blog h3,.gkad-step h2,.gkad-step h3{font-size:18.5px;}
.gkad-lede{font-size:17px; padding:17px 18px;}
.gkad-toc{padding:18px 18px 6px;}
.gkad-chips,.gkad-qs,.gkad-ck{grid-template-columns:1fr;}
.gkad-op{flex-direction:column; gap:12px; padding:18px;}
.gkad-cta{padding:22px 20px;}
.gkad-emph{font-size:17.5px;}
.gkad-quote{font-size:17px; padding:17px 18px;}
.gkad-takeaway{padding:18px 18px;}
.gkad-steps{padding-left:22px;}
.gkad-step::before{left:-22px;}
.gkad-stats{padding:16px 16px 18px;}
.gkad-flow{flex-direction:column; align-items:flex-start;}
.gkad-flow-a{transform:rotate(90deg); margin-left:16px;}
}
@media (prefers-reduced-motion:reduce){
.gkad-blog *{transition:none !important;}
.gkad-card:hover{transform:none;}
}