Enterprise AI has changed the security boundary. A Salesforce agent can read CRM records, retrieve knowledge, invoke actions, and interact with external systems. That makes the prompt a potential control plane, not merely a conversational input. Prompt injection exploits this shift. Instead of manipulating a database query, an attacker manipulates the instructions an LLM interprets. This leads to malicious instructions to alter model behavior, expose sensitive information, or influence connected functions. Direct attacks come from user input, while indirect prompt injection comes from external content the model later reads, such as documents, websites, emails, or retrieved knowledge.
For Salesforce teams, the implication of these Agentforce security risks is practical: they need to go beyond identity, permissions, and data access when it comes to preventing these risks. So, how to prevent such severe LLM security vulnerabilities? Especially when the agent’s entire input-to-action path becomes part of the attack surface. This blog will cover prompt injection Salesforce risks, impact and share best practices to prepare you for situations when an AI agent attack surfaces.
What’s insideWhat Is a Prompt Injection?Understanding the AI Agent Attack Surface in AgentforceIndirect Prompt Injection: Is Your Salesforce Agentforce AI the New Attack Surface?What Are the Key Agentforce Security Risks?Prompt Injection Risks: 7 Steps to Keep Your Agents SecureAgentforce Security Assessment ChecklistWrapping It Up
What Is a Prompt Injection?
Prompt injection occurs when untrusted content causes an LLM to follow instructions that conflict with its intended task. In an agentic system, the risk increases because the model may have tools and permissions that let it act on the result.
How to Know Your Agentforce Has Been Prompt Injected
For better prevention, you must identify signs that prompt injection Salesforce teams should look out for:
Unexpected actions: Agents trigger updates/calls to CRM/executing tools that weren’t requested by the user.Anomalous responses: Using instructions or content that the user didn’t provide, often based on external documents or knowledge bases.Data leakage attempts: Agent discloses sensitive data from the CRM, configurations, or instructions beyond the scope of the query.Redirected behavior: The agent follows links or APIs outside the trusted URL list, indicating unsafe external access.Context poisoning indicators: Persistent changes in agent reasoning or repeated references to malicious content across sessions.
Understanding the AI Agent Attack Surface in Agentforce
An AI agent attack surface includes every place where untrusted input can influence model reasoning, tool selection, data retrieval, or downstream actions. For Agentforce, that can include:
User prompts and conversation historyCRM and Data Cloud records used for groundingKnowledge articles and uploaded filesExternal websites, documents, emails, and API responsesAgent instructions, topics, actions, and connected toolsURLs and external systems the agent can access
Salesforce provides protections through the Einstein Trust Layer, including prompt injection detection, system policies, secure data retrieval, audit capabilities, and trusted URL controls. But the user must treat Agentforce security as a shared responsibility: Salesforce secures the platform, while customers configure permissions, guardrails, monitoring, and agent-specific controls.
Indirect Prompt Injection: Is Your Salesforce Agentforce AI the New Attack Surface?
Indirect prompt injection is particularly relevant to CRM environments because agents increasingly consume information they did not receive directly from the user. A malicious instruction could be embedded in a knowledge article, customer-submitted document, webpage, or retrieved source. When the agent processes that material, the content can attempt to redirect its behavior.
The attack path can be simple:
External content → Agent context → Model decision → Tool or action → Business system
What Are the Key Agentforce Security Risks?
Data exposure:The agent may be manipulated into revealing information beyond the request.Excessive agency:Over-permissioned tools can turn a manipulated response into a real business action.Instruction leakage:Attackers may attempt to extract system instructions or configuration details.Context poisoning:Malicious content can influence reused or persistent context.Unsafe external access:Using third-party links or APIs can cause data leaks or unauthorized use.
Prompt Injection Risks: 7 Steps to Keep Your Agents Secure
1Treat External Content as UntrustedClassify user input, retrieved documents, websites, emails, and API responses as data, not instructions. Define trust boundaries before content enters the agent context to reduce prompt injection Salesforce exposure.2Apply Least PrivilegeGive the agent only the Salesforce objects, fields, actions, URLs, and services required for its function. Salesforce recommends customer-side controls such as least-privilege permissions and agent guardrails.3Validate Actions, Not Only PromptsA prompt filter may spot suspicious text, but controls must also check if the action matches what the user asked for. Critical tasks should only continue after double verification or approval from human agents.4Restrict Outbound DestinationsSalesforce Trusted URLs controls reduce the risk of malicious links and outbound requests following prompt injection. In February 2026, Salesforce removed default domain *.salesforce.com. Customers are now expected to create an explicit list of domains their agents need. This change reduces exposure, limits unnecessary endpoints, and enforces tighter control over external access.5Adversarial Input TestSecurity testing should include direct injection, indirect injection through knowledge and documents, tool manipulation, data-exfiltration attempts, and unauthorized-action scenarios. OWASP recommends penetration testing and breach simulations for LLM applications.6Monitor and Audit Agent BehaviorTrack prompts, responses, tool calls, permission use, blocked actions, and anomalies. Detailed logs strengthen Salesforce security assessment and help contain Agentforce security risks tied to LLM security vulnerabilities.7Embed Security into LifecycleIntegrate security reviews across design, testing, rollout, and updates. Embedding controls early limits indirect prompt injection CRM risks and aligns with Salesforce Security & Compliance Consulting standards.
Agentforce Security Assessment Checklist
Data Sources: Review all agent inputs to confirm only trusted records and documents are consumed.Instructions: Examine agent instructions to prevent leakage or manipulation.Permissions: Audit access rights to enforce least-privilege across Salesforce objects and fields.Actions: Validate tool and action execution against approved workflows.Integrations: Inspect APIs and external systems for unsafe exposure.External URLs: Restrict outbound requests to a defined trusted list.Human Approval: Define checkpoints for sensitive or high-impact operations.Logging: Enable capture of prompts, responses, tool calls, and blocked actions.Failure Paths: Map recovery processes to ensure safe handling of injection attempts.Blast Radius: Test containment controls to limit manipulated instructions.Context Poisoning: Monitor for malicious influence across persistent agent sessions.Governance: Include compliance checks alongside technical controls before deployment.
Wrapping It Up
Prompt injection is becoming an enterprise application security issue because AI agents can translate manipulated language into access, decisions, and actions. For Salesforce organizations, Agentforce security requires more than prompt hygiene. It requires a deliberate review of the agent’s attack surface, trust boundaries, permissions, integrations, and operational controls.
Seeking a Salesforce Security & Compliance Consulting partner can help you assess these controls, identify agentic AI exposure, and build a security framework aligned with enterprise governance requirements.
.gkx-blog{
--gkx-accent:#1a73e8; --gkx-dark:#0f4fa8; --gkx-light:#e8f0fe; --gkx-hl:#f3f7ff;
--gkx-line:#e4e9f2; --gkx-ink:#101828; --gkx-body:#3f4a5a; --gkx-mute:#697586;
--gkx-ok:#0f7a4a; --gkx-ok-bg:#eefaf3; --gkx-ok-line:#c3ead6;
--gkx-warn:#a35c00; --gkx-warn-bg:#fff8ec; --gkx-warn-line:#f5dfb8;
--gkx-alt:#6537c9; --gkx-alt-bg:#f5f2ff; --gkx-alt-line:#ddd4f7;
--gkx-neg:#b42318; --gkx-neg-bg:#fdf1f1; --gkx-neg-line:#f6d5d2;
--gkx-r:10px;
width:100%; font-size:17px; line-height:1.75; color:var(--gkx-body);
-webkit-font-smoothing:antialiased;
}
.gkx-blog *,.gkx-blog *::before,.gkx-blog *::after{box-sizing:border-box;}
.gkx-blog p{margin:0 0 20px;}
.gkx-blog h2{font-size:29px; line-height:1.3; letter-spacing:-.015em; margin:52px 0 18px; color:var(--gkx-ink); font-weight:700; scroll-margin-top:90px;}
.gkx-blog h3{font-size:20px; line-height:1.38; letter-spacing:-.01em; margin:32px 0 10px; color:var(--gkx-ink); font-weight:700; scroll-margin-top:90px;}
.gkx-blog h2 + p,.gkx-blog h3 + p{margin-top:0;}
.gkx-blog img{max-width:100%; height:auto; display:block; margin:0 auto; border-radius:var(--gkx-r);}
.gkx-blog hr{border:0; border-top:1px solid var(--gkx-line); margin:44px 0;}
.gkx-blog ul,.gkx-blog ol{margin:0 0 22px; padding:0; list-style:none;}
.gkx-blog svg{fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.gkx-blog code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.88em; color:var(--gkx-ink); background:#f5f7fa; border:1px solid var(--gkx-line); border-radius:5px; padding:1px 6px; overflow-wrap:anywhere;}
.gkx-blog a{
color:var(--gkx-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;
}
.gkx-blog a:hover,.gkx-blog a:focus-visible{color:var(--gkx-dark); text-decoration-thickness:2px;}
.gkx-blog a:visited{color:var(--gkx-accent);}
.gkx-toc-list a,.gkx-blog .gkx-btn{text-decoration:none !important;}
.gkx-blog a:focus-visible{outline:2px solid var(--gkx-accent); outline-offset:3px; border-radius:3px;}
.gkx-kw{color:var(--gkx-ink); font-weight:700;}
.gkx-lede{
background:var(--gkx-hl); border-left:4px solid var(--gkx-accent);
border-radius:0 var(--gkx-r) var(--gkx-r) 0;
padding:20px 24px; margin:0 0 26px; font-size:18px; line-height:1.7; color:var(--gkx-ink);
}
.gkx-lede p{margin:0;}
.gkx-toc{
border:1px solid var(--gkx-line); border-radius:var(--gkx-r);
background:#fff; padding:20px 24px 8px; margin:30px 0 38px;
}
.gkx-toc-head{
font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
color:var(--gkx-mute); margin:0 0 14px;
}
.gkx-toc-list{counter-reset:gkxtoc; margin:0; padding:0;}
@media (min-width:700px){.gkx-toc-2 .gkx-toc-list{columns:2; column-gap:34px;}}
.gkx-toc-2 .gkx-toc-list li{break-inside:avoid;}
.gkx-toc-list li{counter-increment:gkxtoc; position:relative; padding:0 0 12px 34px; font-size:15.5px; line-height:1.5;}
.gkx-toc-list li::before{
content:counter(gkxtoc,decimal-leading-zero);
position:absolute; left:0; top:1px;
font-size:11px; font-weight:700; color:var(--gkx-accent);
background:var(--gkx-light); border-radius:5px; padding:2px 6px; letter-spacing:.02em;
}
.gkx-toc-list a{color:var(--gkx-body); font-weight:600;}
.gkx-toc-list a:hover{color:var(--gkx-accent); text-decoration:underline !important;}
.gkx-list li{position:relative; padding:0 0 12px 24px; line-height:1.7;}
.gkx-list li::before{
content:""; position:absolute; left:2px; top:11px;
width:7px; height:7px; border-radius:50%; background:var(--gkx-accent);
}
.gkx-list strong{color:var(--gkx-ink);}
.gkx-chips{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 26px;}
.gkx-chips li{
display:block; position:relative;
background:var(--gkx-hl); border:1px solid var(--gkx-line); border-radius:8px;
padding:12px 16px 12px 34px; font-size:15px; line-height:1.55; color:var(--gkx-ink);
}
.gkx-chips li::before{
content:""; position:absolute; left:15px; top:20px;
width:6px; height:6px; border-radius:50%; background:var(--gkx-accent);
}
.gkx-chips-ck li{padding-left:42px;}
.gkx-chips-ck li::before{
left:14px; top:14px; width:18px; height:18px; border-radius:50%;
background:var(--gkx-ok-bg); border:1px solid var(--gkx-ok-line);
}
.gkx-chips-ck li::after{
content:""; position:absolute; left:21px; top:18px; width:4px; height:8px;
border:solid var(--gkx-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gkx-cards{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkx-cards-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkx-card{
border:1px solid var(--gkx-line); border-radius:var(--gkx-r); background:#fff;
padding:20px 22px 6px; transition:box-shadow .18s ease, transform .18s ease;
}
.gkx-card:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); transform:translateY(-2px);}
.gkx-card-top{display:flex; align-items:center; gap:11px; margin-bottom:10px;}
.gkx-card-icon{
width:34px; height:34px; flex:0 0 34px; border-radius:8px;
background:var(--gkx-light); color:var(--gkx-accent);
display:flex; align-items:center; justify-content:center;
}
.gkx-card-icon svg{width:19px; height:19px;}
.gkx-card-t{font-size:16px; font-weight:700; color:var(--gkx-ink); line-height:1.35; margin:0;}
.gkx-card p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkx-cards-risk .gkx-card-icon{background:var(--gkx-neg-bg); color:var(--gkx-neg);}
.gkx-ops{display:grid; gap:14px; margin:24px 0 30px;}
.gkx-op{
display:flex; gap:18px; align-items:flex-start;
border:1px solid var(--gkx-line); border-radius:var(--gkx-r); background:#fff;
padding:20px 22px; transition:box-shadow .18s ease, border-color .18s ease;
}
.gkx-op:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); border-color:#d3ddec;}
.gkx-op-n{
flex:0 0 38px; width:38px; height:38px; border-radius:50%;
background:var(--gkx-accent); color:#fff;
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700; letter-spacing:.02em;
}
.gkx-op-b{min-width:0; flex:1;}
.gkx-op-b h3{margin:1px 0 6px; font-size:17.5px;}
.gkx-op-b p{font-size:15.5px; line-height:1.68; margin:0;}
.gkx-op-b p + p{margin-top:12px;}
.gkx-steps{position:relative; margin:26px 0 32px; padding-left:26px;}
.gkx-steps::before{content:""; position:absolute; left:5px; top:8px; bottom:8px; width:2px; background:var(--gkx-line);}
.gkx-step{position:relative; padding:0 0 8px;}
.gkx-step::before{
content:""; position:absolute; left:-26px; top:12px;
width:12px; height:12px; border-radius:50%;
background:#fff; border:3px solid var(--gkx-accent);
}
.gkx-step h2,.gkx-step h3{
font-size:20px; line-height:1.38; margin:22px 0 8px; letter-spacing:-.005em;
}
.gkx-step:first-child h2,.gkx-step:first-child h3{margin-top:0;}
.gkx-step p{font-size:16px; line-height:1.72; margin:0 0 4px;}
.gkx-blog .gkx-seq{counter-reset:gkxseq; position:relative; margin:26px 0 30px; padding:0;}
.gkx-seq::before{content:""; position:absolute; left:17px; top:20px; bottom:20px; width:2px; background:var(--gkx-line);}
.gkx-seq li{counter-increment:gkxseq; position:relative; padding:4px 0 20px 56px; line-height:1.7; min-height:36px;}
.gkx-seq li:last-child{padding-bottom:0;}
.gkx-seq li::before{
content:counter(gkxseq); position:absolute; left:0; top:0;
width:36px; height:36px; border-radius:50%;
background:var(--gkx-accent); color:#fff; border:3px solid #fff; box-shadow:0 0 0 1px var(--gkx-line);
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700;
}
.gkx-seq strong{color:var(--gkx-ink);}
.gkx-dgrid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkx-dgrid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkx-dcard{border:1px solid var(--gkx-line); border-radius:var(--gkx-r); padding:20px 22px 6px; background:#fff; border-top:3px solid var(--gkx-accent); display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:12px; align-items:center; align-content:start;}
.gkx-dcard h3{margin:0 0 8px; font-size:17px;}
.gkx-dcard .gkx-card-t{margin:0 0 10px; font-size:17px;}
.gkx-dcard p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkx-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(--gkx-light); color:var(--gkx-dark);
}
.gkx-dcard .gkx-card-icon{margin:0 0 10px;}
.gkx-dcard p:not(.gkx-card-t){grid-column:1 / -1;}
.gkx-d-ok{border-top-color:var(--gkx-ok);}
.gkx-d-ok .gkx-dtag,.gkx-d-ok .gkx-card-icon{background:var(--gkx-ok-bg); color:var(--gkx-ok);}
.gkx-d-warn{border-top-color:var(--gkx-warn);}
.gkx-d-warn .gkx-dtag,.gkx-d-warn .gkx-card-icon{background:var(--gkx-warn-bg); color:var(--gkx-warn);}
.gkx-d-go{border-top-color:var(--gkx-accent);}
.gkx-d-go .gkx-dtag,.gkx-d-go .gkx-card-icon{background:var(--gkx-light); color:var(--gkx-dark);}
.gkx-d-alt{border-top-color:var(--gkx-alt);}
.gkx-d-alt .gkx-dtag,.gkx-d-alt .gkx-card-icon{background:var(--gkx-alt-bg); color:var(--gkx-alt);}
.gkx-verdict{
background:var(--gkx-hl); border:1px solid var(--gkx-line); border-radius:8px;
padding:13px 16px; font-size:15px; line-height:1.65; color:var(--gkx-ink); margin:2px 0 16px;
}
.gkx-qs{counter-reset:gkxq; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:22px 0 28px;}
.gkx-qs li{
counter-increment:gkxq; position:relative;
border:1px solid var(--gkx-line); border-radius:var(--gkx-r); background:#fff;
padding:16px 18px 14px 18px;
}
.gkx-qs-head{
display:block; font-size:13.5px; font-weight:700; letter-spacing:.01em;
color:var(--gkx-accent); margin-bottom:6px;
}
.gkx-qs li p{font-size:15px; line-height:1.62; margin:0;}
.gkx-faq{display:grid; gap:14px; margin:24px 0 10px;}
.gkx-faq-i{border:1px solid var(--gkx-line); border-radius:var(--gkx-r); background:#fff; padding:20px 22px 6px;}
.gkx-faq-i h3{margin:0 0 8px; font-size:17.5px; line-height:1.4;}
.gkx-faq-i p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkx-table-wrap{
overflow-x:auto; -webkit-overflow-scrolling:touch;
border:1px solid var(--gkx-line); border-radius:var(--gkx-r); margin:24px 0 10px;
}
.gkx-table{width:100%; border-collapse:collapse; min-width:560px; font-size:15px;}
.gkx-table th,.gkx-table td{padding:13px 16px; text-align:left; vertical-align:top; line-height:1.6;}
.gkx-table thead th{
background:var(--gkx-hl); color:var(--gkx-dark);
font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
border-bottom:1px solid var(--gkx-line); white-space:nowrap;
}
.gkx-table tbody td,.gkx-table tbody th{border-top:1px solid var(--gkx-line);}
.gkx-table tbody tr:nth-child(even) td,.gkx-table tbody tr:nth-child(even) th{background:#fbfcfe;}
.gkx-table th:first-child,.gkx-table td:first-child{
position:sticky; left:0; z-index:1;
background:#fff; font-weight:700; color:var(--gkx-ink); font-size:14.5px;
border-right:1px solid var(--gkx-line);
}
.gkx-table thead th:first-child{background:var(--gkx-hl); color:var(--gkx-dark); font-size:11.5px;}
.gkx-table tbody tr:nth-child(even) td:first-child,.gkx-table tbody tr:nth-child(even) th:first-child{background:#fbfcfe;}
.gkx-pill{
display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.01em;
border-radius:999px; padding:3px 11px; white-space:nowrap;
}
.gkx-pill-pos{background:var(--gkx-ok-bg); color:var(--gkx-ok); border:1px solid var(--gkx-ok-line);}
.gkx-pill-mid{background:var(--gkx-warn-bg); color:var(--gkx-warn); border:1px solid var(--gkx-warn-line);}
.gkx-pill-neg{background:var(--gkx-neg-bg); color:var(--gkx-neg); border:1px solid var(--gkx-neg-line);}
.gkx-tag{
display:inline-block; font-size:13px; font-weight:600; color:var(--gkx-body);
background:#f5f7fa; border:1px solid var(--gkx-line); border-radius:6px; padding:3px 9px;
}
.gkx-num{font-variant-numeric:tabular-nums; font-weight:700; color:var(--gkx-ink); white-space:nowrap;}
.gkx-table-hint{display:none; font-size:12.5px; color:var(--gkx-mute); margin:0 0 30px; text-align:right;}
.gkx-stats{border:1px solid var(--gkx-line); border-radius:var(--gkx-r); background:var(--gkx-hl); padding:20px 22px 22px; margin:26px 0 30px;}
.gkx-stats-head{display:flex; align-items:center; gap:10px; font-size:16px; font-weight:700; color:var(--gkx-dark); margin:0 0 16px; line-height:1.35;}
.gkx-stats-head svg{width:20px; height:20px; flex:0 0 20px;}
.gkx-stats-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;}
.gkx-stat{background:#fff; border:1px solid var(--gkx-line); border-radius:8px; padding:16px 18px 6px; font-size:15.5px; line-height:1.65; color:var(--gkx-ink);}
.gkx-stat p{margin:0 0 12px;}
.gkx-stat strong{color:var(--gkx-accent); font-weight:700;}
.gkx-stat .gkx-card-icon{margin:2px 0 10px;}
.gkx-plans{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkx-plan{border:1px solid var(--gkx-line); border-top:3px solid var(--gkx-accent); border-radius:var(--gkx-r); background:#fff; padding:20px 22px 8px;}
.gkx-plan-n{font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gkx-dark); margin:0 0 6px;}
.gkx-plan-p{font-size:20px; line-height:1.3; font-weight:800; letter-spacing:-.01em; color:var(--gkx-ink); margin:0 0 16px; font-variant-numeric:tabular-nums;}
.gkx-blog .gkx-plan-list{margin:0 0 14px;}
.gkx-plan-list li{position:relative; padding:0 0 10px 28px; font-size:15.5px; line-height:1.6; color:var(--gkx-ink);}
.gkx-plan-list li::before{
content:""; position:absolute; left:0; top:3px; width:18px; height:18px; border-radius:50%;
background:var(--gkx-ok-bg); border:1px solid var(--gkx-ok-line);
}
.gkx-plan-list li::after{
content:""; position:absolute; left:7px; top:7px; width:4px; height:8px;
border:solid var(--gkx-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gkx-blog .gkx-ck{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 28px;}
.gkx-ck li{
position:relative; border:1px solid var(--gkx-line); border-radius:8px; background:#fff;
padding:14px 16px 14px 50px; font-size:15.5px; line-height:1.62;
}
.gkx-ck li::before{
content:""; position:absolute; left:17px; top:17px; width:18px; height:18px;
border:2px solid var(--gkx-accent); border-radius:5px; background:#fff;
}
.gkx-ck strong{color:var(--gkx-ink);}
.gkx-flow{display:flex; flex-wrap:wrap; align-items:stretch; gap:8px 6px; margin:22px 0 28px;}
.gkx-flow-i{
background:var(--gkx-hl); border:1px solid var(--gkx-line); border-radius:8px;
padding:9px 14px; font-size:14.5px; line-height:1.4; font-weight:600; color:var(--gkx-ink);
display:flex; align-items:center;
}
.gkx-flow-a{align-self:center; color:var(--gkx-accent); font-weight:700; font-size:16px; line-height:1;}
.gkx-callout,.gkx-tip{
display:flex; gap:14px; align-items:flex-start;
border-radius:var(--gkx-r); padding:17px 20px; margin:24px 0; font-size:16px; line-height:1.68;
}
.gkx-callout{background:var(--gkx-hl); border-left:4px solid var(--gkx-accent); color:var(--gkx-ink);}
.gkx-tip{background:var(--gkx-warn-bg); border-left:4px solid var(--gkx-warn); color:var(--gkx-ink);}
.gkx-callout svg,.gkx-tip svg{width:20px; height:20px; flex:0 0 20px; margin-top:3px;}
.gkx-callout svg{color:var(--gkx-accent);} .gkx-tip svg{color:var(--gkx-warn);}
.gkx-callout p,.gkx-tip p{margin:0;}
.gkx-quote{
margin:26px 0; padding:20px 24px; border-left:4px solid var(--gkx-accent);
background:var(--gkx-hl); border-radius:0 var(--gkx-r) var(--gkx-r) 0;
font-size:18.5px; line-height:1.65; font-style:italic; color:var(--gkx-ink);
}
.gkx-quote p{margin:0;}
.gkx-takeaway{
background:var(--gkx-hl); border:1px solid var(--gkx-line); border-radius:var(--gkx-r);
padding:22px 26px; margin:28px 0 22px;
}
.gkx-takeaway p{margin:0 0 14px;} .gkx-takeaway p:last-child{margin:0;}
.gkx-emph{
border-left:4px solid var(--gkx-accent); padding:4px 0 4px 20px; margin:24px 0 8px;
font-size:19px; line-height:1.6; font-weight:600; color:var(--gkx-ink);
}
.gkx-cta{
background:var(--gkx-ink); border-radius:var(--gkx-r); padding:26px 30px; margin:32px 0;
}
.gkx-cta-h{font-size:20px; font-weight:700; color:#fff; margin:0 0 9px; line-height:1.35;}
.gkx-cta p{color:#cfd6e2; font-size:16px; line-height:1.65; margin:0 0 18px;}
.gkx-blog .gkx-btn{
display:inline-block; background:var(--gkx-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;
}
.gkx-blog .gkx-btn:hover,.gkx-blog .gkx-btn:focus-visible,.gkx-blog .gkx-btn:visited{
background:var(--gkx-dark) !important; color:#fff !important; text-decoration:none !important;
}
@media (max-width:900px){
.gkx-blog h2{font-size:26px; margin-top:44px;}
.gkx-cards-3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:820px){
.gkx-dgrid-3,.gkx-plans,.gkx-stats-grid{grid-template-columns:1fr;}
.gkx-stat{display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:14px; align-items:start;}
}
@media (max-width:700px){
.gkx-cards,.gkx-cards-3,.gkx-dgrid{grid-template-columns:1fr;}
}
@media (max-width:640px){
.gkx-table-hint{display:block;}
.gkx-blog{font-size:16.5px;}
.gkx-blog h2{font-size:23px;}
.gkx-blog h3,.gkx-step h2,.gkx-step h3{font-size:18.5px;}
.gkx-lede{font-size:17px; padding:17px 18px;}
.gkx-toc{padding:18px 18px 6px;}
.gkx-chips,.gkx-qs,.gkx-ck{grid-template-columns:1fr;}
.gkx-op{flex-direction:column; gap:12px; padding:18px;}
.gkx-cta{padding:22px 20px;}
.gkx-emph{font-size:17.5px;}
.gkx-quote{font-size:17px; padding:17px 18px;}
.gkx-takeaway{padding:18px 18px;}
.gkx-steps{padding-left:22px;}
.gkx-step::before{left:-22px;}
.gkx-stats{padding:16px 16px 18px;}
.gkx-flow{flex-direction:column; align-items:flex-start;}
.gkx-flow-a{transform:rotate(90deg); margin-left:16px;}
}
@media (prefers-reduced-motion:reduce){
.gkx-blog *{transition:none !important;}
.gkx-card:hover{transform:none;}
}
If you use CRM Analytics today, you’ve probably noticed that the conversation around Salesforce analytics is changing. With Tableau Next now entering the picture, a natural question follows: Is Salesforce moving away from CRMA, and if so, what does that mean for the analytics you already have in place? Before making any changes, it helps to understand where Tableau Next fits and where CRM Analytics still fits in Salesforce’s analytics architecture.
The confusion is understandable. For Salesforce, Tableau Next is the new generation agentic analytics platform, whereas their current customers have the combination of CRM Analytics, Tableau Cloud, Tableau Server, Data 360, and Salesforce reporting. The question is what to retain, what to modernize, and what not to rebuild.
What’s insideIs CRM Analytics Being Replaced by Tableau?CRM Analytics vs Tableau: What Is Actually Changing?Is CRM Analytics Dead in 2026?Why the Old Product Names Create ConfusionWhat Does Tableau Next Change Technically?What Should Salesforce Customers Do Now?Conclusion
Is CRM Analytics Being Replaced by Tableau?
Not exactly, but Salesforce is clearly building toward a more unified analytics architecture. Salesforce’s current documentation says CRM Analytics will continue to exist for customers who are not ready to move to Tableau Next. At the same time, Salesforce describes Tableau Next as the next generation of its analytics portfolio and the pathway to newer generative AI and agentic analytics capabilities.
CRM Analytics remains a native Salesforce analytics experience. It is designed around analytics inside Salesforce workflows, with datasets, recipes, dashboards, lenses, predictions, and actions closely connected to CRM data and user context. Tableau Next approaches the problem differently. It is an API-first, composable analytics platform built on Salesforce, using Data 360 as its unified data layer and Tableau Semantics as the semantic foundation. So, rather than thinking Tableau replaces CRM Analytics, think of platform evolution.
CRM Analytics vs Tableau: What Is Actually Changing?
A good comparison between the two is the architectural foundation. CRM Analytics usually begins with Salesforce objects and external sources, transforms the data using dataflows, and reveals curated data sets through dashboards and analytics applications. This makes it particularly useful when the consumer of the insight is already working inside Salesforce.
Tableau has historically been stronger for broad enterprise BI: combining data from multiple systems, performing deep visual exploration, and supporting analysts across departments. Tableau Next is designed to bring those elements closer together. Salesforce describes it as combining analytics, AI, Data 360, and Agentforce so insights can become part of the workflow rather than remaining isolated in a BI application. That means the decision should start with where the insight needs to live and what needs to happen after the insight appears.
If a sales rep needs an opportunity-level recommendation inside Salesforce, the native CRM experience remains highly relevant. If an enterprise analytics team needs reusable semantic models and cross-functional analysis across a broader data estate, Tableau Next becomes more strategically relevant.
Is CRM Analytics Dead in 2026?
No! Salesforce is still actively maintaining CRM Analytics. In fact, Salesforce’s current analytics release documentation lists ongoing enhancements, including dashboards, lens, analytics app, and data-integration capabilities. Salesforce also continues to document licensing and administration paths for existing CRM Analytics customers.
More importantly, Salesforce explicitly states that existing CRM Analytics assets and investments will continue to be supported while customers evaluate the newer analytics portfolio. So, the real concern should not be whether the product suddenly disappears. The better question is whether new analytics investments should continue to be designed around the same architecture.
Why the Old Product Names Create Confusion
Salesforce’s analytics naming history makes it difficult to separate its analytics solutions. It started as Einstein Analytics and became Tableau CRM in 2020. But that name didn’t last. The product was renamed once more to CRM Analytics, and that’s what Salesforce calls it today. Both older names, Einstein Analytics and Tableau CRM, are now described by Salesforce as past names for this same product.
That means searches for Einstein Analytics renamed can surface several generations of Salesforce terminology even though they refer to the evolution of the same native analytics lineage. Salesforce Analytics Cloud gets used the same loose way. Some customers treat it as a catch-all term for the broader analytics ecosystem, but that usage isn’t accurate. The architecture matters more than the naming history.
What Does Tableau Next Change Technically?
The important shift is the move toward a shared data and semantic foundation. Tableau Next uses Data 360 as its data layer and Tableau Semantics to represent business concepts, metrics, and logic in a reusable way. Salesforce describes Tableau Next as composable and API-first, rather than simply a new dashboarding interface. That has major implications for Salesforce customers.
Your analytics architecture doesn’t need every rule buried inside dashboards. Data, semantics, visualization, and action can live as separate layers. Take renewal risk: rather than redefining it in dozens of dashboards, a semantic layer defines it once, and every dashboard pulls from that definition. Those definitions can then support analytics and AI experiences consistently. This is significant as Agentforce has become part of the analytics workflow. The future architecture is not just dashboards for teams. It flows from data to semantic context, insight, and finally to the agent.
What Should Salesforce Customers Do Now?
The safest strategy is not immediate migration. It is an analytics inventory and architecture review. Start by classifying your existing CRM Analytics assets into three groups.
Keep:Dashboards and applications that are deeply integrated into Salesforce workflows, being actively used and providing business value.Modernize/Upgrade:Analytics that depend on fragmented datasets, duplicated business logic, or workflows that could benefit from Data 360 and a reusable semantic layer.Reconsider:New enterprise-wide analytics projects that are being built purely because an existing CRM Analytics implementation is familiar, even though the requirement extends well beyond Salesforce CRM.
Conclusion
CRM Analytics isn’t being replaced by Tableau Next. Salesforce is maintaining both, so there is no reason for panic migration. Preserve what works, modernize what’s fragmented, and evaluate Tableau Next for new workloads.
When it comes to a Salesforce strategy for Tableau Next, decide by workload, not by replacing everything you already have.
.gkj-blog{
--gkj-accent:#1a73e8; --gkj-dark:#0f4fa8; --gkj-light:#e8f0fe; --gkj-hl:#f3f7ff;
--gkj-line:#e4e9f2; --gkj-ink:#101828; --gkj-body:#3f4a5a; --gkj-mute:#697586;
--gkj-ok:#0f7a4a; --gkj-ok-bg:#eefaf3; --gkj-ok-line:#c3ead6;
--gkj-warn:#a35c00; --gkj-warn-bg:#fff8ec; --gkj-warn-line:#f5dfb8;
--gkj-alt:#6537c9; --gkj-alt-bg:#f5f2ff; --gkj-alt-line:#ddd4f7;
--gkj-neg:#b42318; --gkj-neg-bg:#fdf1f1; --gkj-neg-line:#f6d5d2;
--gkj-r:10px;
width:100%; font-size:17px; line-height:1.75; color:var(--gkj-body);
-webkit-font-smoothing:antialiased;
}
.gkj-blog *,.gkj-blog *::before,.gkj-blog *::after{box-sizing:border-box;}
.gkj-blog p{margin:0 0 20px;}
.gkj-blog h2{font-size:29px; line-height:1.3; letter-spacing:-.015em; margin:52px 0 18px; color:var(--gkj-ink); font-weight:700; scroll-margin-top:90px;}
.gkj-blog h3{font-size:20px; line-height:1.38; letter-spacing:-.01em; margin:32px 0 10px; color:var(--gkj-ink); font-weight:700; scroll-margin-top:90px;}
.gkj-blog h2 + p,.gkj-blog h3 + p{margin-top:0;}
.gkj-blog img{max-width:100%; height:auto; display:block; margin:0 auto; border-radius:var(--gkj-r);}
.gkj-blog hr{border:0; border-top:1px solid var(--gkj-line); margin:44px 0;}
.gkj-blog ul,.gkj-blog ol{margin:0 0 22px; padding:0; list-style:none;}
.gkj-blog svg{fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.gkj-blog code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.88em; color:var(--gkj-ink); background:#f5f7fa; border:1px solid var(--gkj-line); border-radius:5px; padding:1px 6px; overflow-wrap:anywhere;}
.gkj-blog a{
color:var(--gkj-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;
}
.gkj-blog a:hover,.gkj-blog a:focus-visible{color:var(--gkj-dark); text-decoration-thickness:2px;}
.gkj-blog a:visited{color:var(--gkj-accent);}
.gkj-toc-list a,.gkj-blog .gkj-btn{text-decoration:none !important;}
.gkj-blog a:focus-visible{outline:2px solid var(--gkj-accent); outline-offset:3px; border-radius:3px;}
.gkj-kw{color:var(--gkj-ink); font-weight:700;}
.gkj-lede{
background:var(--gkj-hl); border-left:4px solid var(--gkj-accent);
border-radius:0 var(--gkj-r) var(--gkj-r) 0;
padding:20px 24px; margin:0 0 26px; font-size:18px; line-height:1.7; color:var(--gkj-ink);
}
.gkj-lede p{margin:0;}
.gkj-toc{
border:1px solid var(--gkj-line); border-radius:var(--gkj-r);
background:#fff; padding:20px 24px 8px; margin:30px 0 38px;
}
.gkj-toc-head{
font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
color:var(--gkj-mute); margin:0 0 14px;
}
.gkj-toc-list{counter-reset:gkjtoc; margin:0; padding:0;}
@media (min-width:700px){.gkj-toc-2 .gkj-toc-list{columns:2; column-gap:34px;}}
.gkj-toc-2 .gkj-toc-list li{break-inside:avoid;}
.gkj-toc-list li{counter-increment:gkjtoc; position:relative; padding:0 0 12px 34px; font-size:15.5px; line-height:1.5;}
.gkj-toc-list li::before{
content:counter(gkjtoc,decimal-leading-zero);
position:absolute; left:0; top:1px;
font-size:11px; font-weight:700; color:var(--gkj-accent);
background:var(--gkj-light); border-radius:5px; padding:2px 6px; letter-spacing:.02em;
}
.gkj-toc-list a{color:var(--gkj-body); font-weight:600;}
.gkj-toc-list a:hover{color:var(--gkj-accent); text-decoration:underline !important;}
.gkj-list li{position:relative; padding:0 0 12px 24px; line-height:1.7;}
.gkj-list li::before{
content:""; position:absolute; left:2px; top:11px;
width:7px; height:7px; border-radius:50%; background:var(--gkj-accent);
}
.gkj-list strong{color:var(--gkj-ink);}
.gkj-chips{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 26px;}
.gkj-chips li{
display:block; position:relative;
background:var(--gkj-hl); border:1px solid var(--gkj-line); border-radius:8px;
padding:12px 16px 12px 34px; font-size:15px; line-height:1.55; color:var(--gkj-ink);
}
.gkj-chips li::before{
content:""; position:absolute; left:15px; top:20px;
width:6px; height:6px; border-radius:50%; background:var(--gkj-accent);
}
.gkj-chips-ck li{padding-left:42px;}
.gkj-chips-ck li::before{
left:14px; top:14px; width:18px; height:18px; border-radius:50%;
background:var(--gkj-ok-bg); border:1px solid var(--gkj-ok-line);
}
.gkj-chips-ck li::after{
content:""; position:absolute; left:21px; top:18px; width:4px; height:8px;
border:solid var(--gkj-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gkj-cards{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkj-cards-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkj-card{
border:1px solid var(--gkj-line); border-radius:var(--gkj-r); background:#fff;
padding:20px 22px 6px; transition:box-shadow .18s ease, transform .18s ease;
}
.gkj-card:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); transform:translateY(-2px);}
.gkj-card-top{display:flex; align-items:center; gap:11px; margin-bottom:10px;}
.gkj-card-icon{
width:34px; height:34px; flex:0 0 34px; border-radius:8px;
background:var(--gkj-light); color:var(--gkj-accent);
display:flex; align-items:center; justify-content:center;
}
.gkj-card-icon svg{width:19px; height:19px;}
.gkj-card-t{font-size:16px; font-weight:700; color:var(--gkj-ink); line-height:1.35; margin:0;}
.gkj-card p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkj-cards-risk .gkj-card-icon{background:var(--gkj-neg-bg); color:var(--gkj-neg);}
.gkj-ops{display:grid; gap:14px; margin:24px 0 30px;}
.gkj-op{
display:flex; gap:18px; align-items:flex-start;
border:1px solid var(--gkj-line); border-radius:var(--gkj-r); background:#fff;
padding:20px 22px; transition:box-shadow .18s ease, border-color .18s ease;
}
.gkj-op:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); border-color:#d3ddec;}
.gkj-op-n{
flex:0 0 38px; width:38px; height:38px; border-radius:50%;
background:var(--gkj-accent); color:#fff;
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700; letter-spacing:.02em;
}
.gkj-op-b{min-width:0; flex:1;}
.gkj-op-b h3{margin:1px 0 6px; font-size:17.5px;}
.gkj-op-b p{font-size:15.5px; line-height:1.68; margin:0;}
.gkj-op-b p + p{margin-top:12px;}
.gkj-steps{position:relative; margin:26px 0 32px; padding-left:26px;}
.gkj-steps::before{content:""; position:absolute; left:5px; top:8px; bottom:8px; width:2px; background:var(--gkj-line);}
.gkj-step{position:relative; padding:0 0 8px;}
.gkj-step::before{
content:""; position:absolute; left:-26px; top:12px;
width:12px; height:12px; border-radius:50%;
background:#fff; border:3px solid var(--gkj-accent);
}
.gkj-step h2,.gkj-step h3{
font-size:20px; line-height:1.38; margin:22px 0 8px; letter-spacing:-.005em;
}
.gkj-step:first-child h2,.gkj-step:first-child h3{margin-top:0;}
.gkj-step p{font-size:16px; line-height:1.72; margin:0 0 4px;}
.gkj-blog .gkj-seq{counter-reset:gkjseq; position:relative; margin:26px 0 30px; padding:0;}
.gkj-seq::before{content:""; position:absolute; left:17px; top:20px; bottom:20px; width:2px; background:var(--gkj-line);}
.gkj-seq li{counter-increment:gkjseq; position:relative; padding:4px 0 20px 56px; line-height:1.7; min-height:36px;}
.gkj-seq li:last-child{padding-bottom:0;}
.gkj-seq li::before{
content:counter(gkjseq); position:absolute; left:0; top:0;
width:36px; height:36px; border-radius:50%;
background:var(--gkj-accent); color:#fff; border:3px solid #fff; box-shadow:0 0 0 1px var(--gkj-line);
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700;
}
.gkj-seq strong{color:var(--gkj-ink);}
.gkj-dgrid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkj-dgrid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkj-dcard{border:1px solid var(--gkj-line); border-radius:var(--gkj-r); padding:20px 22px 6px; background:#fff; border-top:3px solid var(--gkj-accent); display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:12px; align-items:center; align-content:start;}
.gkj-dcard h3{margin:0 0 8px; font-size:17px;}
.gkj-dcard .gkj-card-t{margin:0 0 10px; font-size:17px;}
.gkj-dcard p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkj-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(--gkj-light); color:var(--gkj-dark);
}
.gkj-dcard .gkj-card-icon{margin:0 0 10px;}
.gkj-dcard p:not(.gkj-card-t){grid-column:1 / -1;}
.gkj-d-ok{border-top-color:var(--gkj-ok);}
.gkj-d-ok .gkj-dtag,.gkj-d-ok .gkj-card-icon{background:var(--gkj-ok-bg); color:var(--gkj-ok);}
.gkj-d-warn{border-top-color:var(--gkj-warn);}
.gkj-d-warn .gkj-dtag,.gkj-d-warn .gkj-card-icon{background:var(--gkj-warn-bg); color:var(--gkj-warn);}
.gkj-d-go{border-top-color:var(--gkj-accent);}
.gkj-d-go .gkj-dtag,.gkj-d-go .gkj-card-icon{background:var(--gkj-light); color:var(--gkj-dark);}
.gkj-d-alt{border-top-color:var(--gkj-alt);}
.gkj-d-alt .gkj-dtag,.gkj-d-alt .gkj-card-icon{background:var(--gkj-alt-bg); color:var(--gkj-alt);}
.gkj-verdict{
background:var(--gkj-hl); border:1px solid var(--gkj-line); border-radius:8px;
padding:13px 16px; font-size:15px; line-height:1.65; color:var(--gkj-ink); margin:2px 0 16px;
}
.gkj-qs{counter-reset:gkjq; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:22px 0 28px;}
.gkj-qs li{
counter-increment:gkjq; position:relative;
border:1px solid var(--gkj-line); border-radius:var(--gkj-r); background:#fff;
padding:16px 18px 14px 18px;
}
.gkj-qs-head{
display:block; font-size:13.5px; font-weight:700; letter-spacing:.01em;
color:var(--gkj-accent); margin-bottom:6px;
}
.gkj-qs li p{font-size:15px; line-height:1.62; margin:0;}
.gkj-faq{display:grid; gap:14px; margin:24px 0 10px;}
.gkj-faq-i{border:1px solid var(--gkj-line); border-radius:var(--gkj-r); background:#fff; padding:20px 22px 6px;}
.gkj-faq-i h3{margin:0 0 8px; font-size:17.5px; line-height:1.4;}
.gkj-faq-i p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkj-table-wrap{
overflow-x:auto; -webkit-overflow-scrolling:touch;
border:1px solid var(--gkj-line); border-radius:var(--gkj-r); margin:24px 0 10px;
}
.gkj-table{width:100%; border-collapse:collapse; min-width:560px; font-size:15px;}
.gkj-table th,.gkj-table td{padding:13px 16px; text-align:left; vertical-align:top; line-height:1.6;}
.gkj-table thead th{
background:var(--gkj-hl); color:var(--gkj-dark);
font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
border-bottom:1px solid var(--gkj-line); white-space:nowrap;
}
.gkj-table tbody td,.gkj-table tbody th{border-top:1px solid var(--gkj-line);}
.gkj-table tbody tr:nth-child(even) td,.gkj-table tbody tr:nth-child(even) th{background:#fbfcfe;}
.gkj-table th:first-child,.gkj-table td:first-child{
position:sticky; left:0; z-index:1;
background:#fff; font-weight:700; color:var(--gkj-ink); font-size:14.5px;
border-right:1px solid var(--gkj-line);
}
.gkj-table thead th:first-child{background:var(--gkj-hl); color:var(--gkj-dark); font-size:11.5px;}
.gkj-table tbody tr:nth-child(even) td:first-child,.gkj-table tbody tr:nth-child(even) th:first-child{background:#fbfcfe;}
.gkj-pill{
display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.01em;
border-radius:999px; padding:3px 11px; white-space:nowrap;
}
.gkj-pill-pos{background:var(--gkj-ok-bg); color:var(--gkj-ok); border:1px solid var(--gkj-ok-line);}
.gkj-pill-mid{background:var(--gkj-warn-bg); color:var(--gkj-warn); border:1px solid var(--gkj-warn-line);}
.gkj-pill-neg{background:var(--gkj-neg-bg); color:var(--gkj-neg); border:1px solid var(--gkj-neg-line);}
.gkj-tag{
display:inline-block; font-size:13px; font-weight:600; color:var(--gkj-body);
background:#f5f7fa; border:1px solid var(--gkj-line); border-radius:6px; padding:3px 9px;
}
.gkj-num{font-variant-numeric:tabular-nums; font-weight:700; color:var(--gkj-ink); white-space:nowrap;}
.gkj-table-hint{display:none; font-size:12.5px; color:var(--gkj-mute); margin:0 0 30px; text-align:right;}
.gkj-stats{border:1px solid var(--gkj-line); border-radius:var(--gkj-r); background:var(--gkj-hl); padding:20px 22px 22px; margin:26px 0 30px;}
.gkj-stats-head{display:flex; align-items:center; gap:10px; font-size:16px; font-weight:700; color:var(--gkj-dark); margin:0 0 16px; line-height:1.35;}
.gkj-stats-head svg{width:20px; height:20px; flex:0 0 20px;}
.gkj-stats-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;}
.gkj-stat{background:#fff; border:1px solid var(--gkj-line); border-radius:8px; padding:16px 18px 6px; font-size:15.5px; line-height:1.65; color:var(--gkj-ink);}
.gkj-stat p{margin:0 0 12px;}
.gkj-stat strong{color:var(--gkj-accent); font-weight:700;}
.gkj-stat .gkj-card-icon{margin:2px 0 10px;}
.gkj-plans{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkj-plan{border:1px solid var(--gkj-line); border-top:3px solid var(--gkj-accent); border-radius:var(--gkj-r); background:#fff; padding:20px 22px 8px;}
.gkj-plan-n{font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gkj-dark); margin:0 0 6px;}
.gkj-plan-p{font-size:20px; line-height:1.3; font-weight:800; letter-spacing:-.01em; color:var(--gkj-ink); margin:0 0 16px; font-variant-numeric:tabular-nums;}
.gkj-blog .gkj-plan-list{margin:0 0 14px;}
.gkj-plan-list li{position:relative; padding:0 0 10px 28px; font-size:15.5px; line-height:1.6; color:var(--gkj-ink);}
.gkj-plan-list li::before{
content:""; position:absolute; left:0; top:3px; width:18px; height:18px; border-radius:50%;
background:var(--gkj-ok-bg); border:1px solid var(--gkj-ok-line);
}
.gkj-plan-list li::after{
content:""; position:absolute; left:7px; top:7px; width:4px; height:8px;
border:solid var(--gkj-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gkj-blog .gkj-ck{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 28px;}
.gkj-ck li{
position:relative; border:1px solid var(--gkj-line); border-radius:8px; background:#fff;
padding:14px 16px 14px 50px; font-size:15.5px; line-height:1.62;
}
.gkj-ck li::before{
content:""; position:absolute; left:17px; top:17px; width:18px; height:18px;
border:2px solid var(--gkj-accent); border-radius:5px; background:#fff;
}
.gkj-ck strong{color:var(--gkj-ink);}
.gkj-flow{display:flex; flex-wrap:wrap; align-items:stretch; gap:8px 6px; margin:22px 0 28px;}
.gkj-flow-i{
background:var(--gkj-hl); border:1px solid var(--gkj-line); border-radius:8px;
padding:9px 14px; font-size:14.5px; line-height:1.4; font-weight:600; color:var(--gkj-ink);
display:flex; align-items:center;
}
.gkj-flow-a{align-self:center; color:var(--gkj-accent); font-weight:700; font-size:16px; line-height:1;}
.gkj-callout,.gkj-tip{
display:flex; gap:14px; align-items:flex-start;
border-radius:var(--gkj-r); padding:17px 20px; margin:24px 0; font-size:16px; line-height:1.68;
}
.gkj-callout{background:var(--gkj-hl); border-left:4px solid var(--gkj-accent); color:var(--gkj-ink);}
.gkj-tip{background:var(--gkj-warn-bg); border-left:4px solid var(--gkj-warn); color:var(--gkj-ink);}
.gkj-callout svg,.gkj-tip svg{width:20px; height:20px; flex:0 0 20px; margin-top:3px;}
.gkj-callout svg{color:var(--gkj-accent);} .gkj-tip svg{color:var(--gkj-warn);}
.gkj-callout p,.gkj-tip p{margin:0;}
.gkj-quote{
margin:26px 0; padding:20px 24px; border-left:4px solid var(--gkj-accent);
background:var(--gkj-hl); border-radius:0 var(--gkj-r) var(--gkj-r) 0;
font-size:18.5px; line-height:1.65; font-style:italic; color:var(--gkj-ink);
}
.gkj-quote p{margin:0;}
.gkj-takeaway{
background:var(--gkj-hl); border:1px solid var(--gkj-line); border-radius:var(--gkj-r);
padding:22px 26px; margin:28px 0 22px;
}
.gkj-takeaway p{margin:0 0 14px;} .gkj-takeaway p:last-child{margin:0;}
.gkj-emph{
border-left:4px solid var(--gkj-accent); padding:4px 0 4px 20px; margin:24px 0 8px;
font-size:19px; line-height:1.6; font-weight:600; color:var(--gkj-ink);
}
.gkj-cta{
background:var(--gkj-ink); border-radius:var(--gkj-r); padding:26px 30px; margin:32px 0;
}
.gkj-cta-h{font-size:20px; font-weight:700; color:#fff; margin:0 0 9px; line-height:1.35;}
.gkj-cta p{color:#cfd6e2; font-size:16px; line-height:1.65; margin:0 0 18px;}
.gkj-blog .gkj-btn{
display:inline-block; background:var(--gkj-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;
}
.gkj-blog .gkj-btn:hover,.gkj-blog .gkj-btn:focus-visible,.gkj-blog .gkj-btn:visited{
background:var(--gkj-dark) !important; color:#fff !important; text-decoration:none !important;
}
@media (max-width:900px){
.gkj-blog h2{font-size:26px; margin-top:44px;}
.gkj-cards-3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:820px){
.gkj-dgrid-3,.gkj-plans,.gkj-stats-grid{grid-template-columns:1fr;}
.gkj-stat{display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:14px; align-items:start;}
}
@media (max-width:700px){
.gkj-cards,.gkj-cards-3,.gkj-dgrid{grid-template-columns:1fr;}
}
@media (max-width:640px){
.gkj-table-hint{display:block;}
.gkj-blog{font-size:16.5px;}
.gkj-blog h2{font-size:23px;}
.gkj-blog h3,.gkj-step h2,.gkj-step h3{font-size:18.5px;}
.gkj-lede{font-size:17px; padding:17px 18px;}
.gkj-toc{padding:18px 18px 6px;}
.gkj-chips,.gkj-qs,.gkj-ck{grid-template-columns:1fr;}
.gkj-op{flex-direction:column; gap:12px; padding:18px;}
.gkj-cta{padding:22px 20px;}
.gkj-emph{font-size:17.5px;}
.gkj-quote{font-size:17px; padding:17px 18px;}
.gkj-takeaway{padding:18px 18px;}
.gkj-steps{padding-left:22px;}
.gkj-step::before{left:-22px;}
.gkj-stats{padding:16px 16px 18px;}
.gkj-flow{flex-direction:column; align-items:flex-start;}
.gkj-flow-a{transform:rotate(90deg); margin-left:16px;}
}
@media (prefers-reduced-motion:reduce){
.gkj-blog *{transition:none !important;}
.gkj-card:hover{transform:none;}
}
Your loyalty program may be rewarding customers — but is it actually helping you manage loyalty at a scale?
As the program scales up, businesses might need different earning schemes, customer levels, rewards, promotions, partner incentives, and a way to connect loyalty transactions to existing customer information within the Salesforce ecosystem.
A basic points plugin can handle point earnings and rewards. But managing tiers, promotions, partner incentives, and customer data across disconnected systems — can make loyalty harder to scale, personalize, and consistent.
That is where Salesforce Loyalty Management comes in. It brings these loyalty programs into Salesforce, but its real value becomes clearer when organizations look at what it can do that a points plugin can’t.
What’s insideWhat Is Salesforce Loyalty Management?Salesforce Loyalty Management Features for Modern Loyalty ProgramsHow Does Salesforce Loyalty Management Work?What Does Salesforce Loyalty Management Do That a Points Plugin Can’t?Loyalty Management PricingSalesforce Loyalty Management Implementation: A Step-by-Step GuideWhen Do Businesses Need Salesforce Loyalty Management?Ending NoteFrequently Asked Questions
What Is Salesforce Loyalty Management?
Salesforce Loyalty Management is the capability of Salesforce CRM that enables customers to create and manage their own loyalty programs. The solution will allow you to manage members’ sign-up process, earn and redemption of rewards, loyalty levels, benefits, promotions and more.
The key difference is — loyalty does not have to operate as a separate points system. Member activity can remain connected to the customer data and processes already managed in Salesforce, giving businesses a broader foundation for running a Salesforce loyalty program as it grows.
Key Impact & Statistics56% of consumers report spending more because of loyalty programs — stating that rewards play an important role in influencing their purchasing behavior.Customers are enrolled in an average of eight loyalty programs, but only five are used, indicating the issue of keeping the customers engaged.69% of marketers claim that they have difficulties in timely responding as they do not have the customer context needed according to Salesforce’s report on the State of Marketing 2026.
Salesforce Loyalty Management Features for Modern Loyalty Programs
Salesforce Loyalty Management brings the core components of a loyalty program into one platform — from member activity and rewards to tiers, promotions, and partner relationships. Key capabilities include:
Member Management:Manage and register any member while keeping track of their loyalty activities in Salesforce.Points and Rewards:Identify the activities that qualify for points, assign points, keep a log of the points, and assist with redeeming points for prizes.Tier Management:Create tiers and assign members to these tiers based on their activity levels and also track them to upgrade them when they reach the next point level.Promotions and Benefits:Implement various level-based promotions and benefits to ensure that the members have incentives in addition to accumulating points.Partner Management:Engage partners within the program to ensure that members can swap their points with other brands to get services and products.Loyalty Engagement and Analytics:Make use of Salesforce functionality to tie up your loyalty initiative since it is simple to measure the performance of your loyalty program and engage with your members.
How Does Salesforce Loyalty Management Work?
Salesforce Loyalty Management works by connecting the actions of the member against the defined rules and benefits of the loyalty program. A common loyalty experience process is depicted below:
Member Enrollment: Customers or companies get enrolled into the program as loyalty members through Salesforce.Qualifying Action: A purchase, reservation, service encounter, or other predefined action activates the associated loyalty rule.Earnings and Rewards: The points/rewards earned by the member are based on the rules of the loyalty program. The accumulated points/rewards can be used at a later stage in exchange for rewards/vouchers.Loyalty Tiers Evaluation: Based on the activities performed by the members and their earned points, Salesforce can evaluate them and move to different loyalty tiers.Rewards & Incentives: Members receive rewards or incentives according to their tier, participation level or suitability for certain rewards.External Participation: Salesforce can link up loyalty processes to other systems where sales and transactions from sources such as commerce systems, booking systems, or point of sale systems accumulate loyalty.
The above-mentioned model can help a B2B loyalty Salesforce program adopt the same structured process but for different member types and earning and reward schemes.
What Does Salesforce Loyalty Management Do That a Points Plugin Can’t?
A points plugin handles points and rewards. Salesforce Loyalty Management goes further:
CapabilityPoints PluginSalesforce Loyalty ManagementPoints & rewards✓✓Loyalty tiersLimited✓Member benefitsLimited✓PromotionsLimited✓Partner programsLimited✓CRM-connected loyaltyLimited✓B2B loyalty SalesforceLimited✓
Swipe sideways to see the full table
In short: A points plugin manages the reward system while Salesforce Loyalty Management is a more encompassing solution for loyalty program management.
Loyalty Management Pricing
Loyalty Management pricing varies by the level of functionality and the number of loyalty programs you need to run. Salesforce currently offers three editions:
Starter$20,000 USD/Org/MonthLaunch a structured loyalty programManage core member and reward activitiesGet started with Quick PromotionsGrowth$35,000 USD/Org/MonthManage dynamic loyalty experiencesExpand rewards, benefits, and promotionsAdd partner and member administrationAdvanced$45,000 USD/Org/MonthRun multiple loyalty programsManage complex loyalty operationsScale programs on one platform
What does the pricing difference really reflect? Moving from Starter to Advanced is not simply about getting “more features.” The higher editions are designed for businesses with more complex loyalty operations — broader program management needs, and multiple programs.
Ready to Get Your Salesforce Loyalty Management Quote?Get a quote tailored to your loyalty program requirements, business goals, and implementation needs.Talk to Our Experts Now!
Salesforce Loyalty Management Implementation: A Step-by-Step Guide
Salesforce Loyalty Management implementation helps companies to be able to ensure that the loyalty program is aligned with the organizational policies and customers and Salesforce environment.
Step 1. Define the Loyalty ProgramFirst, create the structure of the program — consisting of objectives, types of members, loyalty currencies, rules for earning and redemption, criteria for becoming a member, and the benefits that will be provided to members.Step 2. Create Loyalty TiersCreate tier families and specify the tiers within these families. Specify the criteria for moving from one tier to another and the corresponding benefits.Step 3. Configure Rewards and BenefitsConfigure the rewards and benefits as well as vouchers available to members. Configuration determines what members get and under what conditions.Step 4. Connect Data for Members and TransactionsMake sure all customer and transaction data required for the loyalty program has been entered into Salesforce. Implement system integrations wherever loyalty activities take place — commerce, POS, booking, or billing systems.Step 5. Configure Loyalty Business Processes and IntegrationsConfigure business processes and APIs for accruals, redemptions, tier evaluations, and other loyalty-related actions.Step 6. Test and Launch the ProgramBefore implementing the loyalty program — make sure to test aspects like test enrollment, earning and redemption rules, tier progression, benefits, and promotions. After ensuring everything is accurate, implement it, and fine-tune it according to the behavior of members and business requirements.
If you are looking for assistance with your loyalty program planning, configuration, and integration, you can rely on Salesforce implementation services for effective integration of Loyalty Management with the existing Salesforce environment.
When Do Businesses Need Salesforce Loyalty Management?
Businesses may need Salesforce Loyalty Management when:
Manage multiple loyalty tiers, rules, rewards, or benefitsNeed loyalty activity connected to Salesforce customer dataRun B2B or B2C loyalty programs with different member structuresWork with partners, promotions, or external transaction systemsPlan to manage multiple loyalty programs from one platform
If your program only needs basic points and rewards, a simpler solution may be enough.
Ending Note
Salesforce Loyalty Management is not simply a system for awarding and exchanging points. It provides a framework for managing members, levels, rewards, promotions, perks, and partnerships — while maintaining the connection between loyalty and Salesforce.For a simple rewards program, the points-based solution will be sufficient. However — where there is a need to scale loyalty according to more complex business logic and data around customers, multiple programs, and business-to-business relationships, Salesforce Loyalty Management becomes an essential tool.
Frequently Asked Questions
Q. What is Salesforce Loyalty Management?Salesforce Loyalty Management is a Salesforce capability for creating and managing loyalty programs — including members, rewards, tiers, benefits, promotions, and partner programs.Q. How much does Salesforce Loyalty Management cost?Salesforce currently offers Starter, Growth, and Advanced editions — starting at $20,000 USD/org/month. The final loyalty management pricing depends on the edition and program requirements.Q. Can Salesforce Loyalty Management support B2B loyalty programs?Yes. Salesforce Loyalty Management supports both individual and corporate members — making it suitable for B2B loyalty Salesforce use cases as well as traditional B2C programs.Q. How is Salesforce Loyalty Management different from a points plugin?Points plugin mainly focuses on points of earning and redemption whereas Salesforce Loyalty Management deals with a much wider scope including tiers, benefits, offers, partners, member engagement, etc.
.gkw-blog{
--gkw-accent:#1a73e8; --gkw-dark:#0f4fa8; --gkw-light:#e8f0fe; --gkw-hl:#f3f7ff;
--gkw-line:#e4e9f2; --gkw-ink:#101828; --gkw-body:#3f4a5a; --gkw-mute:#697586;
--gkw-ok:#0f7a4a; --gkw-ok-bg:#eefaf3; --gkw-ok-line:#c3ead6;
--gkw-warn:#a35c00; --gkw-warn-bg:#fff8ec; --gkw-warn-line:#f5dfb8;
--gkw-alt:#6537c9; --gkw-alt-bg:#f5f2ff; --gkw-alt-line:#ddd4f7;
--gkw-neg:#b42318; --gkw-neg-bg:#fdf1f1; --gkw-neg-line:#f6d5d2;
--gkw-r:10px;
width:100%; font-size:17px; line-height:1.75; color:var(--gkw-body);
-webkit-font-smoothing:antialiased;
}
.gkw-blog *,.gkw-blog *::before,.gkw-blog *::after{box-sizing:border-box;}
.gkw-blog p{margin:0 0 20px;}
.gkw-blog h2{font-size:29px; line-height:1.3; letter-spacing:-.015em; margin:52px 0 18px; color:var(--gkw-ink); font-weight:700; scroll-margin-top:90px;}
.gkw-blog h3{font-size:20px; line-height:1.38; letter-spacing:-.01em; margin:32px 0 10px; color:var(--gkw-ink); font-weight:700; scroll-margin-top:90px;}
.gkw-blog h2 + p,.gkw-blog h3 + p{margin-top:0;}
.gkw-blog img{max-width:100%; height:auto; display:block; margin:0 auto; border-radius:var(--gkw-r);}
.gkw-blog hr{border:0; border-top:1px solid var(--gkw-line); margin:44px 0;}
.gkw-blog ul,.gkw-blog ol{margin:0 0 22px; padding:0; list-style:none;}
.gkw-blog svg{fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.gkw-blog code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.88em; color:var(--gkw-ink); background:#f5f7fa; border:1px solid var(--gkw-line); border-radius:5px; padding:1px 6px; overflow-wrap:anywhere;}
.gkw-blog a{
color:var(--gkw-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;
}
.gkw-blog a:hover,.gkw-blog a:focus-visible{color:var(--gkw-dark); text-decoration-thickness:2px;}
.gkw-blog a:visited{color:var(--gkw-accent);}
.gkw-toc-list a,.gkw-blog .gkw-btn{text-decoration:none !important;}
.gkw-blog a:focus-visible{outline:2px solid var(--gkw-accent); outline-offset:3px; border-radius:3px;}
.gkw-kw{color:var(--gkw-ink); font-weight:700;}
.gkw-lede{
background:var(--gkw-hl); border-left:4px solid var(--gkw-accent);
border-radius:0 var(--gkw-r) var(--gkw-r) 0;
padding:20px 24px; margin:0 0 26px; font-size:18px; line-height:1.7; color:var(--gkw-ink);
}
.gkw-lede p{margin:0;}
.gkw-toc{
border:1px solid var(--gkw-line); border-radius:var(--gkw-r);
background:#fff; padding:20px 24px 8px; margin:30px 0 38px;
}
.gkw-toc-head{
font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
color:var(--gkw-mute); margin:0 0 14px;
}
.gkw-toc-list{counter-reset:gkwtoc; margin:0; padding:0;}
@media (min-width:700px){.gkw-toc-2 .gkw-toc-list{columns:2; column-gap:34px;}}
.gkw-toc-2 .gkw-toc-list li{break-inside:avoid;}
.gkw-toc-list li{counter-increment:gkwtoc; position:relative; padding:0 0 12px 34px; font-size:15.5px; line-height:1.5;}
.gkw-toc-list li::before{
content:counter(gkwtoc,decimal-leading-zero);
position:absolute; left:0; top:1px;
font-size:11px; font-weight:700; color:var(--gkw-accent);
background:var(--gkw-light); border-radius:5px; padding:2px 6px; letter-spacing:.02em;
}
.gkw-toc-list a{color:var(--gkw-body); font-weight:600;}
.gkw-toc-list a:hover{color:var(--gkw-accent); text-decoration:underline !important;}
.gkw-list li{position:relative; padding:0 0 12px 24px; line-height:1.7;}
.gkw-list li::before{
content:""; position:absolute; left:2px; top:11px;
width:7px; height:7px; border-radius:50%; background:var(--gkw-accent);
}
.gkw-list strong{color:var(--gkw-ink);}
.gkw-chips{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 26px;}
.gkw-chips li{
display:block; position:relative;
background:var(--gkw-hl); border:1px solid var(--gkw-line); border-radius:8px;
padding:12px 16px 12px 34px; font-size:15px; line-height:1.55; color:var(--gkw-ink);
}
.gkw-chips li::before{
content:""; position:absolute; left:15px; top:20px;
width:6px; height:6px; border-radius:50%; background:var(--gkw-accent);
}
.gkw-chips-ck li{padding-left:42px;}
.gkw-chips-ck li::before{
left:14px; top:14px; width:18px; height:18px; border-radius:50%;
background:var(--gkw-ok-bg); border:1px solid var(--gkw-ok-line);
}
.gkw-chips-ck li::after{
content:""; position:absolute; left:21px; top:18px; width:4px; height:8px;
border:solid var(--gkw-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gkw-cards{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkw-cards-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkw-card{
border:1px solid var(--gkw-line); border-radius:var(--gkw-r); background:#fff;
padding:20px 22px 6px; transition:box-shadow .18s ease, transform .18s ease;
}
.gkw-card:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); transform:translateY(-2px);}
.gkw-card-top{display:flex; align-items:center; gap:11px; margin-bottom:10px;}
.gkw-card-icon{
width:34px; height:34px; flex:0 0 34px; border-radius:8px;
background:var(--gkw-light); color:var(--gkw-accent);
display:flex; align-items:center; justify-content:center;
}
.gkw-card-icon svg{width:19px; height:19px;}
.gkw-card-t{font-size:16px; font-weight:700; color:var(--gkw-ink); line-height:1.35; margin:0;}
.gkw-card p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkw-cards-risk .gkw-card-icon{background:var(--gkw-neg-bg); color:var(--gkw-neg);}
.gkw-ops{display:grid; gap:14px; margin:24px 0 30px;}
.gkw-op{
display:flex; gap:18px; align-items:flex-start;
border:1px solid var(--gkw-line); border-radius:var(--gkw-r); background:#fff;
padding:20px 22px; transition:box-shadow .18s ease, border-color .18s ease;
}
.gkw-op:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); border-color:#d3ddec;}
.gkw-op-n{
flex:0 0 38px; width:38px; height:38px; border-radius:50%;
background:var(--gkw-accent); color:#fff;
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700; letter-spacing:.02em;
}
.gkw-op-b{min-width:0; flex:1;}
.gkw-op-b h3{margin:1px 0 6px; font-size:17.5px;}
.gkw-op-b p{font-size:15.5px; line-height:1.68; margin:0;}
.gkw-op-b p + p{margin-top:12px;}
.gkw-steps{position:relative; margin:26px 0 32px; padding-left:26px;}
.gkw-steps::before{content:""; position:absolute; left:5px; top:8px; bottom:8px; width:2px; background:var(--gkw-line);}
.gkw-step{position:relative; padding:0 0 8px;}
.gkw-step::before{
content:""; position:absolute; left:-26px; top:12px;
width:12px; height:12px; border-radius:50%;
background:#fff; border:3px solid var(--gkw-accent);
}
.gkw-step h2,.gkw-step h3{
font-size:20px; line-height:1.38; margin:22px 0 8px; letter-spacing:-.005em;
}
.gkw-step:first-child h2,.gkw-step:first-child h3{margin-top:0;}
.gkw-step p{font-size:16px; line-height:1.72; margin:0 0 4px;}
.gkw-blog .gkw-seq{counter-reset:gkwseq; position:relative; margin:26px 0 30px; padding:0;}
.gkw-seq::before{content:""; position:absolute; left:17px; top:20px; bottom:20px; width:2px; background:var(--gkw-line);}
.gkw-seq li{counter-increment:gkwseq; position:relative; padding:4px 0 20px 56px; line-height:1.7; min-height:36px;}
.gkw-seq li:last-child{padding-bottom:0;}
.gkw-seq li::before{
content:counter(gkwseq); position:absolute; left:0; top:0;
width:36px; height:36px; border-radius:50%;
background:var(--gkw-accent); color:#fff; border:3px solid #fff; box-shadow:0 0 0 1px var(--gkw-line);
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700;
}
.gkw-seq strong{color:var(--gkw-ink);}
.gkw-dgrid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkw-dgrid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkw-dcard{border:1px solid var(--gkw-line); border-radius:var(--gkw-r); padding:20px 22px 6px; background:#fff; border-top:3px solid var(--gkw-accent); display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:12px; align-items:center; align-content:start;}
.gkw-dcard h3{margin:0 0 8px; font-size:17px;}
.gkw-dcard .gkw-card-t{margin:0 0 10px; font-size:17px;}
.gkw-dcard p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkw-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(--gkw-light); color:var(--gkw-dark);
}
.gkw-dcard .gkw-card-icon{margin:0 0 10px;}
.gkw-dcard p:not(.gkw-card-t){grid-column:1 / -1;}
.gkw-d-ok{border-top-color:var(--gkw-ok);}
.gkw-d-ok .gkw-dtag,.gkw-d-ok .gkw-card-icon{background:var(--gkw-ok-bg); color:var(--gkw-ok);}
.gkw-d-warn{border-top-color:var(--gkw-warn);}
.gkw-d-warn .gkw-dtag,.gkw-d-warn .gkw-card-icon{background:var(--gkw-warn-bg); color:var(--gkw-warn);}
.gkw-d-go{border-top-color:var(--gkw-accent);}
.gkw-d-go .gkw-dtag,.gkw-d-go .gkw-card-icon{background:var(--gkw-light); color:var(--gkw-dark);}
.gkw-d-alt{border-top-color:var(--gkw-alt);}
.gkw-d-alt .gkw-dtag,.gkw-d-alt .gkw-card-icon{background:var(--gkw-alt-bg); color:var(--gkw-alt);}
.gkw-verdict{
background:var(--gkw-hl); border:1px solid var(--gkw-line); border-radius:8px;
padding:13px 16px; font-size:15px; line-height:1.65; color:var(--gkw-ink); margin:2px 0 16px;
}
.gkw-qs{counter-reset:gkwq; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:22px 0 28px;}
.gkw-qs li{
counter-increment:gkwq; position:relative;
border:1px solid var(--gkw-line); border-radius:var(--gkw-r); background:#fff;
padding:16px 18px 14px 18px;
}
.gkw-qs-head{
display:block; font-size:13.5px; font-weight:700; letter-spacing:.01em;
color:var(--gkw-accent); margin-bottom:6px;
}
.gkw-qs li p{font-size:15px; line-height:1.62; margin:0;}
.gkw-faq{display:grid; gap:14px; margin:24px 0 10px;}
.gkw-faq-i{border:1px solid var(--gkw-line); border-radius:var(--gkw-r); background:#fff; padding:20px 22px 6px;}
.gkw-faq-i h3{margin:0 0 8px; font-size:17.5px; line-height:1.4;}
.gkw-faq-i p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkw-table-wrap{
overflow-x:auto; -webkit-overflow-scrolling:touch;
border:1px solid var(--gkw-line); border-radius:var(--gkw-r); margin:24px 0 10px;
}
.gkw-table{width:100%; border-collapse:collapse; min-width:560px; font-size:15px;}
.gkw-table th,.gkw-table td{padding:13px 16px; text-align:left; vertical-align:top; line-height:1.6;}
.gkw-table thead th{
background:var(--gkw-hl); color:var(--gkw-dark);
font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
border-bottom:1px solid var(--gkw-line); white-space:nowrap;
}
.gkw-table tbody td,.gkw-table tbody th{border-top:1px solid var(--gkw-line);}
.gkw-table tbody tr:nth-child(even) td,.gkw-table tbody tr:nth-child(even) th{background:#fbfcfe;}
.gkw-table th:first-child,.gkw-table td:first-child{
position:sticky; left:0; z-index:1;
background:#fff; font-weight:700; color:var(--gkw-ink); font-size:14.5px;
border-right:1px solid var(--gkw-line);
}
.gkw-table thead th:first-child{background:var(--gkw-hl); color:var(--gkw-dark); font-size:11.5px;}
.gkw-table tbody tr:nth-child(even) td:first-child,.gkw-table tbody tr:nth-child(even) th:first-child{background:#fbfcfe;}
.gkw-pill{
display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.01em;
border-radius:999px; padding:3px 11px; white-space:nowrap;
}
.gkw-pill-pos{background:var(--gkw-ok-bg); color:var(--gkw-ok); border:1px solid var(--gkw-ok-line);}
.gkw-pill-mid{background:var(--gkw-warn-bg); color:var(--gkw-warn); border:1px solid var(--gkw-warn-line);}
.gkw-pill-neg{background:var(--gkw-neg-bg); color:var(--gkw-neg); border:1px solid var(--gkw-neg-line);}
.gkw-tag{
display:inline-block; font-size:13px; font-weight:600; color:var(--gkw-body);
background:#f5f7fa; border:1px solid var(--gkw-line); border-radius:6px; padding:3px 9px;
}
.gkw-num{font-variant-numeric:tabular-nums; font-weight:700; color:var(--gkw-ink); white-space:nowrap;}
.gkw-table-hint{display:none; font-size:12.5px; color:var(--gkw-mute); margin:0 0 30px; text-align:right;}
.gkw-stats{border:1px solid var(--gkw-line); border-radius:var(--gkw-r); background:var(--gkw-hl); padding:20px 22px 22px; margin:26px 0 30px;}
.gkw-stats-head{display:flex; align-items:center; gap:10px; font-size:16px; font-weight:700; color:var(--gkw-dark); margin:0 0 16px; line-height:1.35;}
.gkw-stats-head svg{width:20px; height:20px; flex:0 0 20px;}
.gkw-stats-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;}
.gkw-stat{background:#fff; border:1px solid var(--gkw-line); border-radius:8px; padding:16px 18px 6px; font-size:15.5px; line-height:1.65; color:var(--gkw-ink);}
.gkw-stat p{margin:0 0 12px;}
.gkw-stat strong{color:var(--gkw-accent); font-weight:700;}
.gkw-stat .gkw-card-icon{margin:2px 0 10px;}
.gkw-plans{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkw-plan{border:1px solid var(--gkw-line); border-top:3px solid var(--gkw-accent); border-radius:var(--gkw-r); background:#fff; padding:20px 22px 8px;}
.gkw-plan-n{font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gkw-dark); margin:0 0 6px;}
.gkw-plan-p{font-size:20px; line-height:1.3; font-weight:800; letter-spacing:-.01em; color:var(--gkw-ink); margin:0 0 16px; font-variant-numeric:tabular-nums;}
.gkw-blog .gkw-plan-list{margin:0 0 14px;}
.gkw-plan-list li{position:relative; padding:0 0 10px 28px; font-size:15.5px; line-height:1.6; color:var(--gkw-ink);}
.gkw-plan-list li::before{
content:""; position:absolute; left:0; top:3px; width:18px; height:18px; border-radius:50%;
background:var(--gkw-ok-bg); border:1px solid var(--gkw-ok-line);
}
.gkw-plan-list li::after{
content:""; position:absolute; left:7px; top:7px; width:4px; height:8px;
border:solid var(--gkw-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gkw-blog .gkw-ck{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 28px;}
.gkw-ck li{
position:relative; border:1px solid var(--gkw-line); border-radius:8px; background:#fff;
padding:14px 16px 14px 50px; font-size:15.5px; line-height:1.62;
}
.gkw-ck li::before{
content:""; position:absolute; left:17px; top:17px; width:18px; height:18px;
border:2px solid var(--gkw-accent); border-radius:5px; background:#fff;
}
.gkw-ck strong{color:var(--gkw-ink);}
.gkw-flow{display:flex; flex-wrap:wrap; align-items:stretch; gap:8px 6px; margin:22px 0 28px;}
.gkw-flow-i{
background:var(--gkw-hl); border:1px solid var(--gkw-line); border-radius:8px;
padding:9px 14px; font-size:14.5px; line-height:1.4; font-weight:600; color:var(--gkw-ink);
display:flex; align-items:center;
}
.gkw-flow-a{align-self:center; color:var(--gkw-accent); font-weight:700; font-size:16px; line-height:1;}
.gkw-callout,.gkw-tip{
display:flex; gap:14px; align-items:flex-start;
border-radius:var(--gkw-r); padding:17px 20px; margin:24px 0; font-size:16px; line-height:1.68;
}
.gkw-callout{background:var(--gkw-hl); border-left:4px solid var(--gkw-accent); color:var(--gkw-ink);}
.gkw-tip{background:var(--gkw-warn-bg); border-left:4px solid var(--gkw-warn); color:var(--gkw-ink);}
.gkw-callout svg,.gkw-tip svg{width:20px; height:20px; flex:0 0 20px; margin-top:3px;}
.gkw-callout svg{color:var(--gkw-accent);} .gkw-tip svg{color:var(--gkw-warn);}
.gkw-callout p,.gkw-tip p{margin:0;}
.gkw-quote{
margin:26px 0; padding:20px 24px; border-left:4px solid var(--gkw-accent);
background:var(--gkw-hl); border-radius:0 var(--gkw-r) var(--gkw-r) 0;
font-size:18.5px; line-height:1.65; font-style:italic; color:var(--gkw-ink);
}
.gkw-quote p{margin:0;}
.gkw-takeaway{
background:var(--gkw-hl); border:1px solid var(--gkw-line); border-radius:var(--gkw-r);
padding:22px 26px; margin:28px 0 22px;
}
.gkw-takeaway p{margin:0 0 14px;} .gkw-takeaway p:last-child{margin:0;}
.gkw-emph{
border-left:4px solid var(--gkw-accent); padding:4px 0 4px 20px; margin:24px 0 8px;
font-size:19px; line-height:1.6; font-weight:600; color:var(--gkw-ink);
}
.gkw-cta{
background:var(--gkw-ink); border-radius:var(--gkw-r); padding:26px 30px; margin:32px 0;
}
.gkw-cta-h{font-size:20px; font-weight:700; color:#fff; margin:0 0 9px; line-height:1.35;}
.gkw-cta p{color:#cfd6e2; font-size:16px; line-height:1.65; margin:0 0 18px;}
.gkw-blog .gkw-btn{
display:inline-block; background:var(--gkw-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;
}
.gkw-blog .gkw-btn:hover,.gkw-blog .gkw-btn:focus-visible,.gkw-blog .gkw-btn:visited{
background:var(--gkw-dark) !important; color:#fff !important; text-decoration:none !important;
}
@media (max-width:900px){
.gkw-blog h2{font-size:26px; margin-top:44px;}
.gkw-cards-3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:820px){
.gkw-dgrid-3,.gkw-plans,.gkw-stats-grid{grid-template-columns:1fr;}
.gkw-stat{display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:14px; align-items:start;}
}
@media (max-width:700px){
.gkw-cards,.gkw-cards-3,.gkw-dgrid{grid-template-columns:1fr;}
}
@media (max-width:640px){
.gkw-table-hint{display:block;}
.gkw-blog{font-size:16.5px;}
.gkw-blog h2{font-size:23px;}
.gkw-blog h3,.gkw-step h2,.gkw-step h3{font-size:18.5px;}
.gkw-lede{font-size:17px; padding:17px 18px;}
.gkw-toc{padding:18px 18px 6px;}
.gkw-chips,.gkw-qs,.gkw-ck{grid-template-columns:1fr;}
.gkw-op{flex-direction:column; gap:12px; padding:18px;}
.gkw-cta{padding:22px 20px;}
.gkw-emph{font-size:17.5px;}
.gkw-quote{font-size:17px; padding:17px 18px;}
.gkw-takeaway{padding:18px 18px;}
.gkw-steps{padding-left:22px;}
.gkw-step::before{left:-22px;}
.gkw-stats{padding:16px 16px 18px;}
.gkw-flow{flex-direction:column; align-items:flex-start;}
.gkw-flow-a{transform:rotate(90deg); margin-left:16px;}
}
@media (prefers-reduced-motion:reduce){
.gkw-blog *{transition:none !important;}
.gkw-card:hover{transform:none;}
}
When you work with high volumes of transactions or large batches of records, taking on the management of big data in Salesforce becomes crucial.
An organization with 50+ million records may function efficiently if it was designed correctly in terms of transaction, data model, reports, sharing, and automation. However, the challenge begins when every time daily processes use excessive volume of records, which is why you may face slow speed of queries, reports, and transactions.
This is where Salesforce Large Data Volumes best practices become critical. Proper indexing, selective queries, optimized automation, and strategies such as data archiving and skinny tables can help maintain performance as your org continues to grow.
What’s insideWhat Makes 50 Million+ Records a Salesforce LDV ChallengeSalesforce LDV Best Practices for 50M+ RecordsConclusion
What Makes 50 Million+ Records a Salesforce LDV Challenge
The presence of 50 million records does not automatically indicate that the Salesforce organization is slow. The key point to note is that the limitation resides in the frequency of looking for, retrieving, processing, modifying, and reporting or sharing the information.
To illustrate this, let us look at an example of a query that operates with 100,000 records. However, this may require almost exponentially more resources if the evaluation encompasses millions of records. With the increase of the volume of data in an organization, the inappropriate queries and processes may cause a disturbance in the performance and the speed of the system.
At this scale, normal issues are already as follows:
Reporting issues: Loading reports which contain many records takes more time.Data skew: A large volume of records belonging to the single parent record or owner creates problems in locking and sharing.Automation overhead: Numerous triggers, Flow, and other automations significantly increase the level of communication needed for each action.Integration load: High-frequency updates and importing of data can contend with day-to-day transactions for system resources.Non-selective queries: Queries that include more records than needed can add time to the execution.
Thus, Salesforce performance optimization has little to do with the 50 million figures, but everything to do with managing the organization and its work with data.
Salesforce LDV Best Practices for 50M+ Records
Managing an org with millions of records requires more than increasing storage capacity. The following practices can help maintain predictable performance as data volume grows.
Optimize SOQL Queries for Selectivity
Instead of examining datasets for every query, selective SOQL queries narrow the dataset by using specific filters to narrow down the records efficiently that Salesforce needs to consider.
For instance, rather than asking for All Account records, it would be more beneficial to narrow down the search criteria such as status, date of creation, or other relevant data available. Thus, the search operation in the database will only retrieve relevant records required for urgent tasks, and it will eliminate all records that are not needed from the system.
Use Indexing Effectively
Without scanning the entire dataset, indexes help Salesforce locate relevant records. Standard fields of Salesforce, like CreatedDate, SystemModstamp, and ID are indexed, while some custom fields may also be indexed when necessary.
But indexing will not necessarily improve performance for all queries; selective filter should be present for index to help query optimizer.
Let’s assume a field containing only a few values. It may not give much filtering power when millions of records share the same value. So, while evaluating indexing for LDV, consider both the field being filtered and the data is distributed across that field.
Consider Salesforce Skinny Tables Indexing
If your aim is to improve performance for certain operations involving large objects, using Salesforce skinny tables would be best. They contain a subset of frequently accessed fields and can reduce the need for certain joins when Salesforce retrieves data.
Additionally, skinny tables are also very useful when dealing with certain situations that include list views as well as reports and queries. Nevertheless, skinny tables cannot act as a substitute for proper data modeling and proper indexing and accurate query creation.
They are also managed by Salesforce rather than maintained and created like standard custom objects. Therefore, they should be considered a targeted optimization after identifying a specific performance requirement.
Automate and Optimize Bulk Processing
A single record update may trigger Flow, integrations, Apex, validation rules, and additional updates. However, when millions of records are processed, that work can multiply quickly. And this may make inefficient automation particularly expensive.
In order to avoid this happening, it is necessary to understand the automation processes that need to run synchronously and asynchronously. Furthermore, one should ensure that there is no middle redundancy in carrying out any processing or updating operations, while ensuring compliance to integration/load balance requirements at the same time.
For high-volume data movement, Salesforce APIs designed for bulk processing can help handle larger data sets than individual record operations.
Design Reports and List Views for LDV
Too many records being processed can lead to reports and list views becoming slow. In order to avoid users having to navigate through millions of entries in an unrefined database, create views for a data set of relevance.
Record statusBusiness unitDate rangesCustomer segmentOwnerRegion
The goal must be providing the users with the records that they actually need without forcing Salesforce to process the entire object each time. Apply the same principle to dashboards. Instead of building every report around the complete historical dataset, consider whether users need all historical records for that particular analysis.
Conclusion
As data continues to grow, Salesforce LDV best practices should be an ongoing architectural priority rather than a response to slowdowns. Selective SOQL, skinny tables, strategic indexing, optimized reports, and efficient automation can help reduce unnecessary processing and build an LDV environment that continues to scale without compromising everyday user experience.
Explore Girikon’s Salesforce Services to optimize an architecture built for large data volumes.
.gku-blog{
--gku-accent:#1a73e8; --gku-dark:#0f4fa8; --gku-light:#e8f0fe; --gku-hl:#f3f7ff;
--gku-line:#e4e9f2; --gku-ink:#101828; --gku-body:#3f4a5a; --gku-mute:#697586;
--gku-ok:#0f7a4a; --gku-ok-bg:#eefaf3; --gku-ok-line:#c3ead6;
--gku-warn:#a35c00; --gku-warn-bg:#fff8ec; --gku-warn-line:#f5dfb8;
--gku-alt:#6537c9; --gku-alt-bg:#f5f2ff; --gku-alt-line:#ddd4f7;
--gku-neg:#b42318; --gku-neg-bg:#fdf1f1; --gku-neg-line:#f6d5d2;
--gku-r:10px;
width:100%; font-size:17px; line-height:1.75; color:var(--gku-body);
-webkit-font-smoothing:antialiased;
}
.gku-blog *,.gku-blog *::before,.gku-blog *::after{box-sizing:border-box;}
.gku-blog p{margin:0 0 20px;}
.gku-blog h2{font-size:29px; line-height:1.3; letter-spacing:-.015em; margin:52px 0 18px; color:var(--gku-ink); font-weight:700; scroll-margin-top:90px;}
.gku-blog h3{font-size:20px; line-height:1.38; letter-spacing:-.01em; margin:32px 0 10px; color:var(--gku-ink); font-weight:700; scroll-margin-top:90px;}
.gku-blog h2 + p,.gku-blog h3 + p{margin-top:0;}
.gku-blog img{max-width:100%; height:auto; display:block; margin:0 auto; border-radius:var(--gku-r);}
.gku-blog hr{border:0; border-top:1px solid var(--gku-line); margin:44px 0;}
.gku-blog ul,.gku-blog ol{margin:0 0 22px; padding:0; list-style:none;}
.gku-blog svg{fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.gku-blog code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.88em; color:var(--gku-ink); background:#f5f7fa; border:1px solid var(--gku-line); border-radius:5px; padding:1px 6px; overflow-wrap:anywhere;}
.gku-blog a{
color:var(--gku-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;
}
.gku-blog a:hover,.gku-blog a:focus-visible{color:var(--gku-dark); text-decoration-thickness:2px;}
.gku-blog a:visited{color:var(--gku-accent);}
.gku-toc-list a,.gku-blog .gku-btn{text-decoration:none !important;}
.gku-blog a:focus-visible{outline:2px solid var(--gku-accent); outline-offset:3px; border-radius:3px;}
.gku-kw{color:var(--gku-ink); font-weight:700;}
.gku-lede{
background:var(--gku-hl); border-left:4px solid var(--gku-accent);
border-radius:0 var(--gku-r) var(--gku-r) 0;
padding:20px 24px; margin:0 0 26px; font-size:18px; line-height:1.7; color:var(--gku-ink);
}
.gku-lede p{margin:0;}
.gku-toc{
border:1px solid var(--gku-line); border-radius:var(--gku-r);
background:#fff; padding:20px 24px 8px; margin:30px 0 38px;
}
.gku-toc-head{
font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
color:var(--gku-mute); margin:0 0 14px;
}
.gku-toc-list{counter-reset:gkutoc; margin:0; padding:0;}
@media (min-width:700px){.gku-toc-2 .gku-toc-list{columns:2; column-gap:34px;}}
.gku-toc-2 .gku-toc-list li{break-inside:avoid;}
.gku-toc-list li{counter-increment:gkutoc; position:relative; padding:0 0 12px 34px; font-size:15.5px; line-height:1.5;}
.gku-toc-list li::before{
content:counter(gkutoc,decimal-leading-zero);
position:absolute; left:0; top:1px;
font-size:11px; font-weight:700; color:var(--gku-accent);
background:var(--gku-light); border-radius:5px; padding:2px 6px; letter-spacing:.02em;
}
.gku-toc-list a{color:var(--gku-body); font-weight:600;}
.gku-toc-list a:hover{color:var(--gku-accent); text-decoration:underline !important;}
.gku-list li{position:relative; padding:0 0 12px 24px; line-height:1.7;}
.gku-list li::before{
content:""; position:absolute; left:2px; top:11px;
width:7px; height:7px; border-radius:50%; background:var(--gku-accent);
}
.gku-list strong{color:var(--gku-ink);}
.gku-chips{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 26px;}
.gku-chips li{
display:block; position:relative;
background:var(--gku-hl); border:1px solid var(--gku-line); border-radius:8px;
padding:12px 16px 12px 34px; font-size:15px; line-height:1.55; color:var(--gku-ink);
}
.gku-chips li::before{
content:""; position:absolute; left:15px; top:20px;
width:6px; height:6px; border-radius:50%; background:var(--gku-accent);
}
.gku-chips-ck li{padding-left:42px;}
.gku-chips-ck li::before{
left:14px; top:14px; width:18px; height:18px; border-radius:50%;
background:var(--gku-ok-bg); border:1px solid var(--gku-ok-line);
}
.gku-chips-ck li::after{
content:""; position:absolute; left:21px; top:18px; width:4px; height:8px;
border:solid var(--gku-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gku-cards{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gku-cards-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gku-card{
border:1px solid var(--gku-line); border-radius:var(--gku-r); background:#fff;
padding:20px 22px 6px; transition:box-shadow .18s ease, transform .18s ease;
}
.gku-card:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); transform:translateY(-2px);}
.gku-card-top{display:flex; align-items:center; gap:11px; margin-bottom:10px;}
.gku-card-icon{
width:34px; height:34px; flex:0 0 34px; border-radius:8px;
background:var(--gku-light); color:var(--gku-accent);
display:flex; align-items:center; justify-content:center;
}
.gku-card-icon svg{width:19px; height:19px;}
.gku-card-t{font-size:16px; font-weight:700; color:var(--gku-ink); line-height:1.35; margin:0;}
.gku-card p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gku-cards-risk .gku-card-icon{background:var(--gku-neg-bg); color:var(--gku-neg);}
.gku-ops{display:grid; gap:14px; margin:24px 0 30px;}
.gku-op{
display:flex; gap:18px; align-items:flex-start;
border:1px solid var(--gku-line); border-radius:var(--gku-r); background:#fff;
padding:20px 22px; transition:box-shadow .18s ease, border-color .18s ease;
}
.gku-op:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); border-color:#d3ddec;}
.gku-op-n{
flex:0 0 38px; width:38px; height:38px; border-radius:50%;
background:var(--gku-accent); color:#fff;
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700; letter-spacing:.02em;
}
.gku-op-b{min-width:0; flex:1;}
.gku-op-b h3{margin:1px 0 6px; font-size:17.5px;}
.gku-op-b p{font-size:15.5px; line-height:1.68; margin:0;}
.gku-op-b p + p{margin-top:12px;}
.gku-steps{position:relative; margin:26px 0 32px; padding-left:26px;}
.gku-steps::before{content:""; position:absolute; left:5px; top:8px; bottom:8px; width:2px; background:var(--gku-line);}
.gku-step{position:relative; padding:0 0 8px;}
.gku-step::before{
content:""; position:absolute; left:-26px; top:12px;
width:12px; height:12px; border-radius:50%;
background:#fff; border:3px solid var(--gku-accent);
}
.gku-step h2,.gku-step h3{
font-size:20px; line-height:1.38; margin:22px 0 8px; letter-spacing:-.005em;
}
.gku-step:first-child h2,.gku-step:first-child h3{margin-top:0;}
.gku-step p{font-size:16px; line-height:1.72; margin:0 0 4px;}
.gku-blog .gku-seq{counter-reset:gkuseq; position:relative; margin:26px 0 30px; padding:0;}
.gku-seq::before{content:""; position:absolute; left:17px; top:20px; bottom:20px; width:2px; background:var(--gku-line);}
.gku-seq li{counter-increment:gkuseq; position:relative; padding:4px 0 20px 56px; line-height:1.7; min-height:36px;}
.gku-seq li:last-child{padding-bottom:0;}
.gku-seq li::before{
content:counter(gkuseq); position:absolute; left:0; top:0;
width:36px; height:36px; border-radius:50%;
background:var(--gku-accent); color:#fff; border:3px solid #fff; box-shadow:0 0 0 1px var(--gku-line);
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700;
}
.gku-seq strong{color:var(--gku-ink);}
.gku-dgrid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gku-dgrid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gku-dcard{border:1px solid var(--gku-line); border-radius:var(--gku-r); padding:20px 22px 6px; background:#fff; border-top:3px solid var(--gku-accent); display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:12px; align-items:center; align-content:start;}
.gku-dcard h3{margin:0 0 8px; font-size:17px;}
.gku-dcard .gku-card-t{margin:0 0 10px; font-size:17px;}
.gku-dcard p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gku-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(--gku-light); color:var(--gku-dark);
}
.gku-dcard .gku-card-icon{margin:0 0 10px;}
.gku-dcard p:not(.gku-card-t){grid-column:1 / -1;}
.gku-d-ok{border-top-color:var(--gku-ok);}
.gku-d-ok .gku-dtag,.gku-d-ok .gku-card-icon{background:var(--gku-ok-bg); color:var(--gku-ok);}
.gku-d-warn{border-top-color:var(--gku-warn);}
.gku-d-warn .gku-dtag,.gku-d-warn .gku-card-icon{background:var(--gku-warn-bg); color:var(--gku-warn);}
.gku-d-go{border-top-color:var(--gku-accent);}
.gku-d-go .gku-dtag,.gku-d-go .gku-card-icon{background:var(--gku-light); color:var(--gku-dark);}
.gku-d-alt{border-top-color:var(--gku-alt);}
.gku-d-alt .gku-dtag,.gku-d-alt .gku-card-icon{background:var(--gku-alt-bg); color:var(--gku-alt);}
.gku-verdict{
background:var(--gku-hl); border:1px solid var(--gku-line); border-radius:8px;
padding:13px 16px; font-size:15px; line-height:1.65; color:var(--gku-ink); margin:2px 0 16px;
}
.gku-qs{counter-reset:gkuq; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:22px 0 28px;}
.gku-qs li{
counter-increment:gkuq; position:relative;
border:1px solid var(--gku-line); border-radius:var(--gku-r); background:#fff;
padding:16px 18px 14px 18px;
}
.gku-qs-head{
display:block; font-size:13.5px; font-weight:700; letter-spacing:.01em;
color:var(--gku-accent); margin-bottom:6px;
}
.gku-qs li p{font-size:15px; line-height:1.62; margin:0;}
.gku-faq{display:grid; gap:14px; margin:24px 0 10px;}
.gku-faq-i{border:1px solid var(--gku-line); border-radius:var(--gku-r); background:#fff; padding:20px 22px 6px;}
.gku-faq-i h3{margin:0 0 8px; font-size:17.5px; line-height:1.4;}
.gku-faq-i p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gku-table-wrap{
overflow-x:auto; -webkit-overflow-scrolling:touch;
border:1px solid var(--gku-line); border-radius:var(--gku-r); margin:24px 0 10px;
}
.gku-table{width:100%; border-collapse:collapse; min-width:560px; font-size:15px;}
.gku-table th,.gku-table td{padding:13px 16px; text-align:left; vertical-align:top; line-height:1.6;}
.gku-table thead th{
background:var(--gku-hl); color:var(--gku-dark);
font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
border-bottom:1px solid var(--gku-line); white-space:nowrap;
}
.gku-table tbody td,.gku-table tbody th{border-top:1px solid var(--gku-line);}
.gku-table tbody tr:nth-child(even) td,.gku-table tbody tr:nth-child(even) th{background:#fbfcfe;}
.gku-table th:first-child,.gku-table td:first-child{
position:sticky; left:0; z-index:1;
background:#fff; font-weight:700; color:var(--gku-ink); font-size:14.5px;
border-right:1px solid var(--gku-line);
}
.gku-table thead th:first-child{background:var(--gku-hl); color:var(--gku-dark); font-size:11.5px;}
.gku-table tbody tr:nth-child(even) td:first-child,.gku-table tbody tr:nth-child(even) th:first-child{background:#fbfcfe;}
.gku-pill{
display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.01em;
border-radius:999px; padding:3px 11px; white-space:nowrap;
}
.gku-pill-pos{background:var(--gku-ok-bg); color:var(--gku-ok); border:1px solid var(--gku-ok-line);}
.gku-pill-mid{background:var(--gku-warn-bg); color:var(--gku-warn); border:1px solid var(--gku-warn-line);}
.gku-pill-neg{background:var(--gku-neg-bg); color:var(--gku-neg); border:1px solid var(--gku-neg-line);}
.gku-tag{
display:inline-block; font-size:13px; font-weight:600; color:var(--gku-body);
background:#f5f7fa; border:1px solid var(--gku-line); border-radius:6px; padding:3px 9px;
}
.gku-num{font-variant-numeric:tabular-nums; font-weight:700; color:var(--gku-ink); white-space:nowrap;}
.gku-table-hint{display:none; font-size:12.5px; color:var(--gku-mute); margin:0 0 30px; text-align:right;}
.gku-stats{border:1px solid var(--gku-line); border-radius:var(--gku-r); background:var(--gku-hl); padding:20px 22px 22px; margin:26px 0 30px;}
.gku-stats-head{display:flex; align-items:center; gap:10px; font-size:16px; font-weight:700; color:var(--gku-dark); margin:0 0 16px; line-height:1.35;}
.gku-stats-head svg{width:20px; height:20px; flex:0 0 20px;}
.gku-stats-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;}
.gku-stat{background:#fff; border:1px solid var(--gku-line); border-radius:8px; padding:16px 18px 6px; font-size:15.5px; line-height:1.65; color:var(--gku-ink);}
.gku-stat p{margin:0 0 12px;}
.gku-stat strong{color:var(--gku-accent); font-weight:700;}
.gku-stat .gku-card-icon{margin:2px 0 10px;}
.gku-plans{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gku-plan{border:1px solid var(--gku-line); border-top:3px solid var(--gku-accent); border-radius:var(--gku-r); background:#fff; padding:20px 22px 8px;}
.gku-plan-n{font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gku-dark); margin:0 0 6px;}
.gku-plan-p{font-size:20px; line-height:1.3; font-weight:800; letter-spacing:-.01em; color:var(--gku-ink); margin:0 0 16px; font-variant-numeric:tabular-nums;}
.gku-blog .gku-plan-list{margin:0 0 14px;}
.gku-plan-list li{position:relative; padding:0 0 10px 28px; font-size:15.5px; line-height:1.6; color:var(--gku-ink);}
.gku-plan-list li::before{
content:""; position:absolute; left:0; top:3px; width:18px; height:18px; border-radius:50%;
background:var(--gku-ok-bg); border:1px solid var(--gku-ok-line);
}
.gku-plan-list li::after{
content:""; position:absolute; left:7px; top:7px; width:4px; height:8px;
border:solid var(--gku-ok); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.gku-blog .gku-ck{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 28px;}
.gku-ck li{
position:relative; border:1px solid var(--gku-line); border-radius:8px; background:#fff;
padding:14px 16px 14px 50px; font-size:15.5px; line-height:1.62;
}
.gku-ck li::before{
content:""; position:absolute; left:17px; top:17px; width:18px; height:18px;
border:2px solid var(--gku-accent); border-radius:5px; background:#fff;
}
.gku-ck strong{color:var(--gku-ink);}
.gku-flow{display:flex; flex-wrap:wrap; align-items:stretch; gap:8px 6px; margin:22px 0 28px;}
.gku-flow-i{
background:var(--gku-hl); border:1px solid var(--gku-line); border-radius:8px;
padding:9px 14px; font-size:14.5px; line-height:1.4; font-weight:600; color:var(--gku-ink);
display:flex; align-items:center;
}
.gku-flow-a{align-self:center; color:var(--gku-accent); font-weight:700; font-size:16px; line-height:1;}
.gku-callout,.gku-tip{
display:flex; gap:14px; align-items:flex-start;
border-radius:var(--gku-r); padding:17px 20px; margin:24px 0; font-size:16px; line-height:1.68;
}
.gku-callout{background:var(--gku-hl); border-left:4px solid var(--gku-accent); color:var(--gku-ink);}
.gku-tip{background:var(--gku-warn-bg); border-left:4px solid var(--gku-warn); color:var(--gku-ink);}
.gku-callout svg,.gku-tip svg{width:20px; height:20px; flex:0 0 20px; margin-top:3px;}
.gku-callout svg{color:var(--gku-accent);} .gku-tip svg{color:var(--gku-warn);}
.gku-callout p,.gku-tip p{margin:0;}
.gku-quote{
margin:26px 0; padding:20px 24px; border-left:4px solid var(--gku-accent);
background:var(--gku-hl); border-radius:0 var(--gku-r) var(--gku-r) 0;
font-size:18.5px; line-height:1.65; font-style:italic; color:var(--gku-ink);
}
.gku-quote p{margin:0;}
.gku-takeaway{
background:var(--gku-hl); border:1px solid var(--gku-line); border-radius:var(--gku-r);
padding:22px 26px; margin:28px 0 22px;
}
.gku-takeaway p{margin:0 0 14px;} .gku-takeaway p:last-child{margin:0;}
.gku-emph{
border-left:4px solid var(--gku-accent); padding:4px 0 4px 20px; margin:24px 0 8px;
font-size:19px; line-height:1.6; font-weight:600; color:var(--gku-ink);
}
.gku-cta{
background:var(--gku-ink); border-radius:var(--gku-r); padding:26px 30px; margin:32px 0;
}
.gku-cta-h{font-size:20px; font-weight:700; color:#fff; margin:0 0 9px; line-height:1.35;}
.gku-cta p{color:#cfd6e2; font-size:16px; line-height:1.65; margin:0 0 18px;}
.gku-blog .gku-btn{
display:inline-block; background:var(--gku-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;
}
.gku-blog .gku-btn:hover,.gku-blog .gku-btn:focus-visible,.gku-blog .gku-btn:visited{
background:var(--gku-dark) !important; color:#fff !important; text-decoration:none !important;
}
@media (max-width:900px){
.gku-blog h2{font-size:26px; margin-top:44px;}
.gku-cards-3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:820px){
.gku-dgrid-3,.gku-plans,.gku-stats-grid{grid-template-columns:1fr;}
.gku-stat{display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:14px; align-items:start;}
}
@media (max-width:700px){
.gku-cards,.gku-cards-3,.gku-dgrid{grid-template-columns:1fr;}
}
@media (max-width:640px){
.gku-table-hint{display:block;}
.gku-blog{font-size:16.5px;}
.gku-blog h2{font-size:23px;}
.gku-blog h3,.gku-step h2,.gku-step h3{font-size:18.5px;}
.gku-lede{font-size:17px; padding:17px 18px;}
.gku-toc{padding:18px 18px 6px;}
.gku-chips,.gku-qs,.gku-ck{grid-template-columns:1fr;}
.gku-op{flex-direction:column; gap:12px; padding:18px;}
.gku-cta{padding:22px 20px;}
.gku-emph{font-size:17.5px;}
.gku-quote{font-size:17px; padding:17px 18px;}
.gku-takeaway{padding:18px 18px;}
.gku-steps{padding-left:22px;}
.gku-step::before{left:-22px;}
.gku-stats{padding:16px 16px 18px;}
.gku-flow{flex-direction:column; align-items:flex-start;}
.gku-flow-a{transform:rotate(90deg); margin-left:16px;}
}
@media (prefers-reduced-motion:reduce){
.gku-blog *{transition:none !important;}
.gku-card:hover{transform:none;}
}
You might have been eyeing a beautiful dress for quite some time yet refraining from buying it because of its high price. On a fine day, as you scroll through your phone, you come across the same product, which is now available at an amazing discount. What will you do? Certainly… make an instant payment, with the product reaching your doorstep in a day or two.
However, you aren’t satisfied with the fit and wish to place a return. You chat with a bot and place a return request following which a different order for a different dress is generated. The merchant website offers the same deal with a new dress in a better size. You are finally happy as you get a new dress as a replacement for the old one.
An Order Management tool makes the entire process right from order placement to delivery seamless.
What’s insideWhat Is Salesforce Order Management?Where Does Salesforce OMS Fit?Commerce Cloud vs. Salesforce Order ManagementSalesforce Order Management vs. ERP: What Is the Difference?Why Do Businesses Require an Order Management Layer?What Are the Common Salesforce Order Management Implementation Mistakes?Final Words
What Is Salesforce Order Management?
Salesforce Order Management system is a tool that assists organizations to handle tasks such as accepting online payments, order processing, tracking orders, and processing returns. This helps meet the rising client expectations of an eCommerce business. However, Salesforce OMS not only helps process orders effectively but also integrates client-facing systems such as sales, CRM, commerce, and service to ensure that clients have an explicit post-purchase experience.
Since modern businesses usually use multiple platforms to manage their orders, they might have to toggle between systems to manage their workflow. For instance, a customer may browse their product on Salesforce Commerce Cloud, make a payment via third-party system, and have the order accomplished by an ERP system.
However, businesses have to deal with scattered order information, inaccurate inventory data, paused deliveries, and inadequate visibility into returns when these systems aren’t connected properly.
This is where Salesforce Order Management comes to the rescue.
Order Management System Salesforce provides a central way to handle the order process after a customer places an order. It can link commerce platforms with tools that manage order fulfillment, inventory, expenditure, customer service, and other operations.
Where Does Salesforce OMS Fit?
A simple way to understand the role of every platform is to know what it is primarily responsible for.
PlatformPrimary ResponsibilitySalesforce Commerce CloudProvides online shopping experience and captures customer orders. It answers how a customer browses, works and places an order.Salesforce Order ManagementManages the order lifecycle and structures what occurs once an order is placed.ERPHandles supply chain, procurement, inventory, finance and other core business operations. It answers how the financial and operational side of the order can be managed.
The setup might differ from one business to another, but the basic idea remains the same.
Commerce Cloud vs. Salesforce Order Management
Salesforce OMS and Commerce Cloud complement each other. Designed around the digital commerce experience, Commerce Cloud supports client-facing business functions such as product discovery, carts, checkout, and others.
Once the customer places an order, many processes begin.
The business may need to establish:
The location where the order needs to be fulfilledProduct availabilityWhether the client can change the delivery addressShould the order be split across several locations?What will happen in case of item unavailability?What will be the return process?How should the clients receive updates?How must refunds be coordinated?
This is where order management capability shines.
For instance:
Customer→Commerce Cloud→Salesforce OMS→Fulfillment/ERP→Customer
The OMS layer offers the coordination needed to move the order through its lifecycle while ensuring visibility for client-facing teams.
Salesforce Order Management vs. ERP: What Is the Difference?
Salesforce Order Management vs. ERP isn’t all about deciding which system should “own” the order. The two platforms serve different purposes within a company’s technology landscape.
While an ERP is designed to focus on core enterprise operations, including financial management, procurement, supply chain, manufacturing, inventory, and business reporting, Salesforce Order Management System (OMS) focuses on handling and arranging the order lifecycle across different sales channels and fulfillment procedures. This helps businesses provide a connected and consistent experience from order capture through fulfillment, order delivery, returns, and service.
Let’s understand this with an example: A retailer operates an ecommerce website, runs physical stores and multiple warehouses, and works with logistics providers, Salesforce Service Cloud, an ERP, and multiple payment providers. While ERP may continue to serve as the system of record for financial transactions and supply chain processes, the OMS matches the customer-facing order lifecycle across these associated systems. This approach can help shield digital commerce and client service teams from the complexity of ERP processes while providing a more simplified order management experience.
Why Do Businesses Require an Order Management Layer?
Omnichannel commerce has taken precedence over the years. This has made order management extremely complex. Customers may buy online, pick up products in stores, get deliveries from stockrooms, return items to physical locations, exchange products via a different channel, or contact customer service via Salesforce.
Without centralizing order visibility, each system may gather only part of the customer journey. An OMS offers a steadier operational view by merging order status, fulfillment, returns, and refunds. This allows customer service teams to access appropriate information more easily, gives customers a better post-purchase experience, and helps operations teams manage sales channels and fulfillment processes.
What Are the Common Salesforce Order Management Implementation Mistakes?
Common Salesforce OMS implementation mistakes include:
Treating OMS as a replacement for the ERP.Creating overlapping responsibilities.Failing to establish a clear system of record.Not clearly defining which platform serves as the system of record for inventory, payment, and service-delivery data.Designing only for standard order flows while not accounting for exceptions such as inventory shortages, payment failures, cancellations, returns, etc.
Final Words
Salesforce Order Management bridges the gap between digital commerce and back-office processes. While Commerce Cloud manages customer orders, ERP manages financial and back-office processes. Salesforce OMS connects these systems by coordinating fulfillment, cancellations, returns, and order visibility. For businesses evaluating OMS Salesforce architecture, the focus must be defining clear platform responsibilities instead of replacing the ERP. A successful Salesforce Order Management implementation needs clear ownership of inventory, orders, fulfillment, integration, and customer-service processes to support capable omnichannel operations.
.gkj-blog{
--gkj-accent:#1a73e8; --gkj-dark:#0f4fa8; --gkj-light:#e8f0fe; --gkj-hl:#f3f7ff;
--gkj-line:#e4e9f2; --gkj-ink:#101828; --gkj-body:#3f4a5a; --gkj-mute:#697586;
--gkj-ok:#0f7a4a; --gkj-ok-bg:#eefaf3; --gkj-ok-line:#c3ead6;
--gkj-warn:#a35c00; --gkj-warn-bg:#fff8ec; --gkj-warn-line:#f5dfb8;
--gkj-alt:#6537c9; --gkj-alt-bg:#f5f2ff; --gkj-alt-line:#ddd4f7;
--gkj-r:10px;
width:100%; font-size:17px; line-height:1.75; color:var(--gkj-body);
-webkit-font-smoothing:antialiased;
}
.gkj-blog *,.gkj-blog *::before,.gkj-blog *::after{box-sizing:border-box;}
.gkj-blog p{margin:0 0 20px;}
.gkj-blog h2{font-size:29px; line-height:1.3; letter-spacing:-.015em; margin:52px 0 18px; color:var(--gkj-ink); font-weight:700; scroll-margin-top:90px;}
.gkj-blog h3{font-size:20px; line-height:1.38; letter-spacing:-.01em; margin:32px 0 10px; color:var(--gkj-ink); font-weight:700; scroll-margin-top:90px;}
.gkj-blog h2 + p,.gkj-blog h3 + p{margin-top:0;}
.gkj-blog img{max-width:100%; height:auto; display:block; margin:0 auto; border-radius:var(--gkj-r);}
.gkj-blog hr{border:0; border-top:1px solid var(--gkj-line); margin:44px 0;}
.gkj-blog ul,.gkj-blog ol{margin:0 0 22px; padding:0; list-style:none;}
.gkj-blog a{
color:var(--gkj-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;
}
.gkj-blog a:hover,.gkj-blog a:focus-visible{color:var(--gkj-dark); text-decoration-thickness:2px;}
.gkj-blog a:visited{color:var(--gkj-accent);}
.gkj-toc-list a,.gkj-blog .gkj-btn{text-decoration:none !important;}
.gkj-blog a:focus-visible{outline:2px solid var(--gkj-accent); outline-offset:3px; border-radius:3px;}
.gkj-kw{color:var(--gkj-ink); font-weight:700;}
.gkj-lede{
background:var(--gkj-hl); border-left:4px solid var(--gkj-accent);
border-radius:0 var(--gkj-r) var(--gkj-r) 0;
padding:20px 24px; margin:0 0 26px; font-size:18px; line-height:1.7; color:var(--gkj-ink);
}
.gkj-lede p{margin:0;}
.gkj-toc{
border:1px solid var(--gkj-line); border-radius:var(--gkj-r);
background:#fff; padding:20px 24px 8px; margin:30px 0 38px;
}
.gkj-toc-head{
font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
color:var(--gkj-mute); margin:0 0 14px;
}
.gkj-toc-list{counter-reset:gkjtoc; margin:0; padding:0;}
@media (min-width:700px){.gkj-toc-2 .gkj-toc-list{columns:2; column-gap:34px;}}
.gkj-toc-2 .gkj-toc-list li{break-inside:avoid;}
.gkj-toc-list li{counter-increment:gkjtoc; position:relative; padding:0 0 12px 34px; font-size:15.5px; line-height:1.5;}
.gkj-toc-list li::before{
content:counter(gkjtoc,decimal-leading-zero);
position:absolute; left:0; top:1px;
font-size:11px; font-weight:700; color:var(--gkj-accent);
background:var(--gkj-light); border-radius:5px; padding:2px 6px; letter-spacing:.02em;
}
.gkj-toc-list a{color:var(--gkj-body); font-weight:600;}
.gkj-toc-list a:hover{color:var(--gkj-accent); text-decoration:underline !important;}
.gkj-list li{position:relative; padding:0 0 12px 24px; line-height:1.7;}
.gkj-list li::before{
content:""; position:absolute; left:2px; top:11px;
width:7px; height:7px; border-radius:50%; background:var(--gkj-accent);
}
.gkj-list strong{color:var(--gkj-ink);}
.gkj-chips{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 26px;}
.gkj-chips li{
display:block; position:relative;
background:var(--gkj-hl); border:1px solid var(--gkj-line); border-radius:8px;
padding:12px 16px 12px 34px; font-size:15px; line-height:1.55; color:var(--gkj-ink);
}
.gkj-chips li::before{
content:""; position:absolute; left:15px; top:20px;
width:6px; height:6px; border-radius:50%; background:var(--gkj-accent);
}
.gkj-flow{display:flex; flex-wrap:wrap; align-items:center; gap:8px 6px; margin:20px 0 26px;}
.gkj-flow li{
background:#fff; border:1px solid var(--gkj-line); border-radius:8px;
padding:9px 15px; font-size:15px; font-weight:600; line-height:1.4; color:var(--gkj-ink);
}
.gkj-flow li.gkj-flow-a{background:none; border:0; padding:0 2px; color:var(--gkj-accent); font-weight:700; font-size:18px;}
.gkj-cards{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkj-cards-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkj-card{
border:1px solid var(--gkj-line); border-radius:var(--gkj-r); background:#fff;
padding:20px 22px 6px; transition:box-shadow .18s ease, transform .18s ease;
}
.gkj-card:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); transform:translateY(-2px);}
.gkj-card-top{display:flex; align-items:center; gap:11px; margin-bottom:10px;}
.gkj-card-icon{
width:34px; height:34px; flex:0 0 34px; border-radius:8px;
background:var(--gkj-light); color:var(--gkj-accent);
display:flex; align-items:center; justify-content:center;
}
.gkj-card-icon svg{width:19px; height:19px;}
.gkj-card-t{font-size:16px; font-weight:700; color:var(--gkj-ink); line-height:1.35; margin:0;}
.gkj-card p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkj-ops{display:grid; gap:14px; margin:24px 0 30px;}
.gkj-op{
display:flex; gap:18px; align-items:flex-start;
border:1px solid var(--gkj-line); border-radius:var(--gkj-r); background:#fff;
padding:20px 22px; transition:box-shadow .18s ease, border-color .18s ease;
}
.gkj-op:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); border-color:#d3ddec;}
.gkj-op-n{
flex:0 0 38px; width:38px; height:38px; border-radius:50%;
background:var(--gkj-accent); color:#fff;
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700; letter-spacing:.02em;
}
.gkj-op-b{min-width:0; flex:1;}
.gkj-op-b h3{margin:1px 0 6px; font-size:17.5px;}
.gkj-op-b p{font-size:15.5px; line-height:1.68; margin:0;}
.gkj-op-b p + p{margin-top:12px;}
.gkj-steps{position:relative; margin:26px 0 32px; padding-left:26px;}
.gkj-steps::before{content:""; position:absolute; left:5px; top:8px; bottom:8px; width:2px; background:var(--gkj-line);}
.gkj-step{position:relative; padding:0 0 8px;}
.gkj-step::before{
content:""; position:absolute; left:-26px; top:12px;
width:12px; height:12px; border-radius:50%;
background:#fff; border:3px solid var(--gkj-accent);
}
.gkj-step h2{
font-size:20px; line-height:1.38; margin:22px 0 8px; letter-spacing:-.005em;
}
.gkj-step:first-child h2{margin-top:0;}
.gkj-step p{font-size:16px; line-height:1.72; margin:0 0 4px;}
.gkj-dgrid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkj-dcard{border:1px solid var(--gkj-line); border-radius:var(--gkj-r); padding:20px 22px 6px; background:#fff; border-top:3px solid var(--gkj-accent);}
.gkj-dcard h3{margin:0 0 8px; font-size:17px;}
.gkj-dcard p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkj-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(--gkj-light); color:var(--gkj-dark);
}
.gkj-dcard .gkj-card-icon{margin-bottom:12px;}
.gkj-d-ok{border-top-color:var(--gkj-ok);}
.gkj-d-ok .gkj-dtag,.gkj-d-ok .gkj-card-icon{background:var(--gkj-ok-bg); color:var(--gkj-ok);}
.gkj-d-warn{border-top-color:var(--gkj-warn);}
.gkj-d-warn .gkj-dtag,.gkj-d-warn .gkj-card-icon{background:var(--gkj-warn-bg); color:var(--gkj-warn);}
.gkj-d-go{border-top-color:var(--gkj-accent);}
.gkj-d-go .gkj-dtag,.gkj-d-go .gkj-card-icon{background:var(--gkj-light); color:var(--gkj-dark);}
.gkj-d-alt{border-top-color:var(--gkj-alt);}
.gkj-d-alt .gkj-dtag,.gkj-d-alt .gkj-card-icon{background:var(--gkj-alt-bg); color:var(--gkj-alt);}
.gkj-verdict{
background:var(--gkj-hl); border:1px solid var(--gkj-line); border-radius:8px;
padding:13px 16px; font-size:15px; line-height:1.65; color:var(--gkj-ink); margin:2px 0 16px;
}
.gkj-qs{counter-reset:gkjq; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:22px 0 28px;}
.gkj-qs li{
counter-increment:gkjq; position:relative;
border:1px solid var(--gkj-line); border-radius:var(--gkj-r); background:#fff;
padding:16px 18px 14px 18px;
}
.gkj-qs-head{
display:block; font-size:13.5px; font-weight:700; letter-spacing:.01em;
color:var(--gkj-accent); margin-bottom:6px;
}
.gkj-qs li p{font-size:15px; line-height:1.62; margin:0;}
.gkj-table-wrap{
overflow-x:auto; -webkit-overflow-scrolling:touch;
border:1px solid var(--gkj-line); border-radius:var(--gkj-r); margin:24px 0 10px;
}
.gkj-table{width:100%; border-collapse:collapse; min-width:560px; font-size:15px;}
.gkj-table-2{min-width:0;}
.gkj-table-2 th:first-child,.gkj-table-2 td:first-child{width:32%;}
.gkj-table th,.gkj-table td{padding:13px 16px; text-align:left; vertical-align:top; line-height:1.6;}
.gkj-table thead th{
background:var(--gkj-hl); color:var(--gkj-dark);
font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
border-bottom:1px solid var(--gkj-line); white-space:nowrap;
}
.gkj-table tbody td,.gkj-table tbody th{border-top:1px solid var(--gkj-line);}
.gkj-table tbody tr:nth-child(even) td,.gkj-table tbody tr:nth-child(even) th{background:#fbfcfe;}
.gkj-table th:first-child,.gkj-table td:first-child{
position:sticky; left:0; z-index:1;
background:#fff; font-weight:700; color:var(--gkj-ink); font-size:14.5px;
border-right:1px solid var(--gkj-line);
}
.gkj-table thead th:first-child{background:var(--gkj-hl); color:var(--gkj-dark); font-size:11.5px;}
.gkj-table tbody tr:nth-child(even) td:first-child,.gkj-table tbody tr:nth-child(even) th:first-child{background:#fbfcfe;}
.gkj-pill{
display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.01em;
border-radius:999px; padding:3px 11px; white-space:nowrap;
}
.gkj-pill-pos{background:var(--gkj-ok-bg); color:var(--gkj-ok); border:1px solid var(--gkj-ok-line);}
.gkj-pill-mid{background:var(--gkj-warn-bg); color:var(--gkj-warn); border:1px solid var(--gkj-warn-line);}
.gkj-pill-neg{background:#fdf1f1; color:#b42318; border:1px solid #f6d5d2;}
.gkj-tag{
display:inline-block; font-size:13px; font-weight:600; color:var(--gkj-body);
background:#f5f7fa; border:1px solid var(--gkj-line); border-radius:6px; padding:3px 9px;
}
.gkj-table-hint{font-size:12.5px; color:var(--gkj-mute); margin:0 0 30px; text-align:right;}
.gkj-callout,.gkj-tip{
display:flex; gap:14px; align-items:flex-start;
border-radius:var(--gkj-r); padding:17px 20px; margin:24px 0; font-size:16px; line-height:1.68;
}
.gkj-callout{background:var(--gkj-hl); border-left:4px solid var(--gkj-accent); color:var(--gkj-ink);}
.gkj-tip{background:var(--gkj-warn-bg); border-left:4px solid var(--gkj-warn); color:var(--gkj-ink);}
.gkj-callout svg,.gkj-tip svg{width:20px; height:20px; flex:0 0 20px; margin-top:3px;}
.gkj-callout svg{color:var(--gkj-accent);} .gkj-tip svg{color:var(--gkj-warn);}
.gkj-callout p,.gkj-tip p{margin:0;}
.gkj-quote{
margin:26px 0; padding:20px 24px; border-left:4px solid var(--gkj-accent);
background:var(--gkj-hl); border-radius:0 var(--gkj-r) var(--gkj-r) 0;
font-size:18.5px; line-height:1.65; font-style:italic; color:var(--gkj-ink);
}
.gkj-quote p{margin:0;}
.gkj-takeaway{
background:var(--gkj-hl); border:1px solid var(--gkj-line); border-radius:var(--gkj-r);
padding:22px 26px; margin:28px 0 22px;
}
.gkj-takeaway p{margin:0 0 14px;} .gkj-takeaway p:last-child{margin:0;}
.gkj-emph{
border-left:4px solid var(--gkj-accent); padding:4px 0 4px 20px; margin:24px 0 8px;
font-size:19px; line-height:1.6; font-weight:600; color:var(--gkj-ink);
}
.gkj-cta{
background:var(--gkj-ink); border-radius:var(--gkj-r); padding:26px 30px; margin:32px 0;
}
.gkj-cta-h{font-size:20px; font-weight:700; color:#fff; margin:0 0 9px; line-height:1.35;}
.gkj-cta p{color:#cfd6e2; font-size:16px; line-height:1.65; margin:0 0 18px;}
.gkj-blog .gkj-btn{
display:inline-block; background:var(--gkj-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;
}
.gkj-blog .gkj-btn:hover,.gkj-blog .gkj-btn:focus-visible,.gkj-blog .gkj-btn:visited{
background:var(--gkj-dark) !important; color:#fff !important; text-decoration:none !important;
}
@media (max-width:900px){
.gkj-blog h2{font-size:26px; margin-top:44px;}
.gkj-cards-3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:700px){
.gkj-cards,.gkj-cards-3,.gkj-dgrid{grid-template-columns:1fr;}
}
@media (max-width:640px){
.gkj-blog{font-size:16.5px;}
.gkj-blog h2{font-size:23px;}
.gkj-blog h3,.gkj-step h2{font-size:18.5px;}
.gkj-lede{font-size:17px; padding:17px 18px;}
.gkj-toc{padding:18px 18px 6px;}
.gkj-chips,.gkj-qs{grid-template-columns:1fr;}
.gkj-op{flex-direction:column; gap:12px; padding:18px;}
.gkj-cta{padding:22px 20px;}
.gkj-emph{font-size:17.5px;}
.gkj-quote{font-size:17px; padding:17px 18px;}
.gkj-takeaway{padding:18px 18px;}
.gkj-steps{padding-left:22px;}
.gkj-step::before{left:-22px;}
.gkj-flow{flex-direction:column; align-items:flex-start; gap:2px;}
.gkj-flow li.gkj-flow-a{transform:rotate(90deg); margin-left:14px;}
}
@media (prefers-reduced-motion:reduce){
.gkj-blog *{transition:none !important;}
.gkj-card:hover{transform:none;}
}
Salesforce Foundations is free, but how much of your Salesforce setup does that actually cover?
Foundations give eligible Salesforce customers access to a broader set of capabilities without an extra license fee, but some features have usage limits, while other capabilities may require additional products or paid capacity.
That distinction matters when your business needs to go beyond basics. You may require more users, more features, higher usage limits, or integration into your existing business processes — which may not always be available in the free version. Understanding where that line sits allows you to set your expectations for your Salesforce configuration and budgeting accordingly.
Before you build your processes around Salesforce Foundations, it is worth knowing what you get for free and where the costs can start to come in.
What’s inside
What Is Salesforce Foundations?
What Is Included in Salesforce Foundations?
Salesforce Foundations Pricing: What Is Free What Still Costs?
Salesforce Foundations vs Starter vs Enterprise
Where Salesforce Foundations Stops Being “Free”
The Bottom Line
FAQs
What Is Salesforce Foundations?
Salesforce Foundations bring together core Salesforce features to help businesses make better use of their current CRM system. It is specially built for organizations that want to extend their capabilities in Salesforce but not yet ready to upgrade to another edition.
Foundations work with an existing Salesforce environment rather than replacing it. So, it is not a standalone alternative to Enterprise Edition. If you are evaluating how Foundations fit into your broader Salesforce setup or assessing Salesforce Foundations pricing — a Salesforce consulting partner can help you assess the right configuration and approach.
What Is Included in Salesforce Foundations?
So, what do you actually get with Salesforce Foundations? Rather than looking at every individual feature, it helps to look at the main areas Foundations brings together:
AreaWhat’s included
SalesLead management, account management, contact management, opportunity management, and sales activities management functionalities.
ServiceCase management, knowledge management, service console, and other functionalities to assist teams in resolving customer problems.
MarketingFeatures such as e-mail marketing, customer segmentation, form building, and other features that facilitate customer communication management.
CommerceCommerce features that enable firms to have their own storefronts, payment process, products, and other related features.
Data 360Customer data and segmentation functionalities that allow firms to collect customer information to provide better customer experiences.
AgentforceAI-enabled features for sales and service, including some usage for helping businesses implement AI within their organizations.
Foundations can go beyond basic CRM functionality, bringing sales, service, marketing, commerce, data, and Salesforce AI capabilities into the existing Salesforce environment — however, these capabilities are not necessarily unlimited. Some features have usage limits, and exceeding them may require additional paid capacity.
Salesforce Foundations Pricing: What Is Free What Still Costs?
Salesforce Foundations comes at $0 additional license cost for eligible Salesforce customers. But “free” does not mean every capability comes with unlimited usage.
Included at no additional license cost
You get access to the Foundations functionality across sales, service, marketing, commerce, Data 360, and Agentforce. Salesforce also provides specific usage allocations, such as including marketing email sends and Agentforce credits.
What can still cost extra?
Additional costs can come in when your usage goes beyond the included allowances or when you need capabilities outside Foundations. This can include:
Agentforce: Additional AI usage after the included credits is consumed.
Data 360: Additional consumption or higher capacity based on your data and usage.
Marketing: Email activity beyond the included monthly allowance.
Commerce: Certain transaction-related usage or capabilities.
Salesforce advanced products: Any product that is not included in the Foundations package may have a separate license to be purchased.
Therefore, while considering Salesforce Foundations pricing – the one main distinction is: The additional Salesforce Foundations charge is $0, but your Salesforce total costs may go up depending on the usage and purchases.
Salesforce Foundations vs Starter vs Enterprise
To start with, it may appear that Salesforce Starter vs Foundations and Salesforce Foundations vs Enterprise Edition are very much alike. However, they are from different Salesforce products categories.
ComparisonStarterFoundationsEnterprise
Primary purposeCRM package for rookiesCross-cloud features in a certified Salesforce environmentSalesforce edition
Sales✓✓✓
Service✓✓✓
Marketing✓✓✓
Commerce✓✓✓
Customization optionsBasicDepends on the edition underneath✓
Works with an existing Salesforce orgNot primarily✓✓
Swipe to see more →
The key distinction lies in how they fit into the organization.
Starter is a Salesforce edition aimed at being a starting point for organizations requiring fundamental CRM features in one product.
Foundations, in contrast, expand capabilities across Salesforce clouds on top of a valid Salesforce environment.
Meanwhile, Enterprise is a more advanced Salesforce edition offering enhanced capabilities in customizations, automations, integrations, and platform capabilities.
Thus, Foundations is not a substitute for a more expensive Enterprise version. It all comes down to which path you are following.
Where Salesforce Foundations Stops Being “Free”
The free offering works well until your business starts asking for more from it. That point can come when you use more than the included Agentforce credits, need additional Data 360 capacity, or want to send marketing messages beyond the included volume.
The same applies when your team needs functionality that Foundations does not cover. You may need more advanced customization, automation, integrations in Salesforce org, or enterprise-level Salesforce capabilities that require a different product or edition.
So, the question is not simply how long you can use Foundations for free. It is whether the included capabilities and usage limits still match what your business needs. If they don’t, additional Salesforce costs may come into play.
The Bottom Line
Salesforce Foundations can give eligible Salesforce customers access to a broader set of capabilities without an additional add-on license fee. But that does not mean unlimited access.
Usage limits, additional capacity, and advanced Salesforce requirements can still be added to your overall costs. Understanding that difference helps you look at Foundations realistically—not simply as a free Salesforce offering, but as a starting point with clear boundaries.
FAQs
Q. Is Salesforce Foundations really free?
Salesforce Foundations comes at no additional license cost for eligible Salesforce customers, but included usage has limits. Additional usage or capabilities may still cost extra.
Q. What is included in Salesforce Foundations?
Foundations bring together capabilities across sales, service, marketing, commerce, Data 360, and Agentforce, with specific usage allowances.
Q. Does Salesforce Foundations include Agentforce?
Yes. Agentforce capabilities and included usage are part of Foundations, while usage beyond the included allowance may incur additional costs.
.gkl-blog{
--gkl-accent:#1a73e8; --gkl-dark:#0f4fa8; --gkl-light:#e8f0fe; --gkl-hl:#f3f7ff;
--gkl-line:#e4e9f2; --gkl-ink:#101828; --gkl-body:#3f4a5a; --gkl-mute:#697586;
--gkl-ok:#0f7a4a; --gkl-ok-bg:#eefaf3; --gkl-ok-line:#c3ead6;
--gkl-warn:#a35c00; --gkl-warn-bg:#fff8ec; --gkl-warn-line:#f5dfb8;
--gkl-alt:#6537c9; --gkl-alt-bg:#f5f2ff; --gkl-alt-line:#ddd4f7;
--gkl-r:10px;
width:100%;
font-size:17px; line-height:1.75; color:var(--gkl-body);
-webkit-font-smoothing:antialiased;
}
.gkl-blog *,.gkl-blog *::before,.gkl-blog *::after{box-sizing:border-box;}
.gkl-blog p{margin:0 0 20px;}
.gkl-blog h2{font-size:29px; line-height:1.3; letter-spacing:-.015em; margin:52px 0 18px; color:var(--gkl-ink); font-weight:700; scroll-margin-top:90px;}
.gkl-blog h3{font-size:20px; line-height:1.38; letter-spacing:-.01em; margin:32px 0 10px; color:var(--gkl-ink); font-weight:700; scroll-margin-top:90px;}
.gkl-blog h2 + p,.gkl-blog h3 + p{margin-top:0;}
.gkl-blog img{max-width:100%; height:auto; display:block; margin:0 auto; border-radius:var(--gkl-r);}
.gkl-blog hr{border:0; border-top:1px solid var(--gkl-line); margin:44px 0;}
.gkl-blog ul,.gkl-blog ol{margin:0 0 22px; padding:0; list-style:none;}
.gkl-blog a{
color:var(--gkl-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;
}
.gkl-blog a:hover,.gkl-blog a:focus-visible{color:var(--gkl-dark); text-decoration-thickness:2px;}
.gkl-blog a:visited{color:var(--gkl-accent);}
.gkl-toc-list a,.gkl-blog .gkl-btn{text-decoration:none !important;}
.gkl-blog a:focus-visible{outline:2px solid var(--gkl-accent); outline-offset:3px; border-radius:3px;}
.gkl-kw{color:var(--gkl-ink); font-weight:700;}
.gkl-lede{
background:var(--gkl-hl); border-left:4px solid var(--gkl-accent);
border-radius:0 var(--gkl-r) var(--gkl-r) 0;
padding:20px 24px; margin:0 0 26px; font-size:18px; line-height:1.7; color:var(--gkl-ink);
}
.gkl-lede p{margin:0;}
.gkl-toc{
border:1px solid var(--gkl-line); border-radius:var(--gkl-r);
background:#fff; padding:20px 24px 8px; margin:30px 0 38px;
}
.gkl-toc-head{
font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
color:var(--gkl-mute); margin:0 0 14px;
}
.gkl-toc-list{counter-reset:gkltoc; margin:0; padding:0;}
@media (min-width:700px){.gkl-toc-2 .gkl-toc-list{columns:2; column-gap:34px;}}
.gkl-toc-2 .gkl-toc-list li{break-inside:avoid;}
.gkl-toc-list li{counter-increment:gkltoc; position:relative; padding:0 0 12px 34px; font-size:15.5px; line-height:1.5;}
.gkl-toc-list li::before{
content:counter(gkltoc,decimal-leading-zero);
position:absolute; left:0; top:1px;
font-size:11px; font-weight:700; color:var(--gkl-accent);
background:var(--gkl-light); border-radius:5px; padding:2px 6px; letter-spacing:.02em;
}
.gkl-toc-list a{color:var(--gkl-body); font-weight:600;}
.gkl-toc-list a:hover{color:var(--gkl-accent); text-decoration:underline !important;}
.gkl-list li{position:relative; padding:0 0 12px 24px; line-height:1.7;}
.gkl-list li::before{
content:""; position:absolute; left:2px; top:11px;
width:7px; height:7px; border-radius:50%; background:var(--gkl-accent);
}
.gkl-list strong{color:var(--gkl-ink);}
.gkl-chips{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 26px;}
.gkl-chips li{
display:block; position:relative;
background:var(--gkl-hl); border:1px solid var(--gkl-line); border-radius:8px;
padding:12px 16px 12px 34px; font-size:15px; line-height:1.55; color:var(--gkl-ink);
}
.gkl-chips li::before{
content:""; position:absolute; left:15px; top:20px;
width:6px; height:6px; border-radius:50%; background:var(--gkl-accent);
}
.gkl-cards{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkl-cards-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.gkl-card{
border:1px solid var(--gkl-line); border-radius:var(--gkl-r); background:#fff;
padding:20px 22px 6px; transition:box-shadow .18s ease, transform .18s ease;
}
.gkl-card:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); transform:translateY(-2px);}
.gkl-card-top{display:flex; align-items:center; gap:11px; margin-bottom:10px;}
.gkl-card-icon{
width:34px; height:34px; flex:0 0 34px; border-radius:8px;
background:var(--gkl-light); color:var(--gkl-accent);
display:flex; align-items:center; justify-content:center;
}
.gkl-card-icon svg{width:19px; height:19px;}
.gkl-card-t{font-size:16px; font-weight:700; color:var(--gkl-ink); line-height:1.35; margin:0;}
.gkl-card p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkl-ops{display:grid; gap:14px; margin:24px 0 30px;}
.gkl-op{
display:flex; gap:18px; align-items:flex-start;
border:1px solid var(--gkl-line); border-radius:var(--gkl-r); background:#fff;
padding:20px 22px; transition:box-shadow .18s ease, border-color .18s ease;
}
.gkl-op:hover{box-shadow:0 6px 22px rgba(16,24,40,.07); border-color:#d3ddec;}
.gkl-op-n{
flex:0 0 38px; width:38px; height:38px; border-radius:50%;
background:var(--gkl-accent); color:#fff;
display:flex; align-items:center; justify-content:center;
font-size:13px; font-weight:700; letter-spacing:.02em;
}
.gkl-op-b{min-width:0; flex:1;}
.gkl-op-b h3{margin:1px 0 6px; font-size:17.5px;}
.gkl-op-b p{font-size:15.5px; line-height:1.68; margin:0;}
.gkl-op-b p + p{margin-top:12px;}
.gkl-steps{position:relative; margin:26px 0 32px; padding-left:26px;}
.gkl-steps::before{content:""; position:absolute; left:5px; top:8px; bottom:8px; width:2px; background:var(--gkl-line);}
.gkl-step{position:relative; padding:0 0 8px;}
.gkl-step::before{
content:""; position:absolute; left:-26px; top:12px;
width:12px; height:12px; border-radius:50%;
background:#fff; border:3px solid var(--gkl-accent);
}
.gkl-step h2{
font-size:20px; line-height:1.38; margin:22px 0 8px; letter-spacing:-.005em;
}
.gkl-step:first-child h2{margin-top:0;}
.gkl-step p{font-size:16px; line-height:1.72; margin:0 0 4px;}
.gkl-dgrid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 30px;}
.gkl-dcard{border:1px solid var(--gkl-line); border-radius:var(--gkl-r); padding:20px 22px 6px; background:#fff; border-top:3px solid var(--gkl-accent);}
.gkl-dcard h3{margin:0 0 8px; font-size:17px;}
.gkl-dcard p{font-size:15.5px; line-height:1.68; margin:0 0 14px;}
.gkl-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(--gkl-light); color:var(--gkl-dark);
}
.gkl-dcard .gkl-card-icon{margin-bottom:12px;}
.gkl-d-ok{border-top-color:var(--gkl-ok);}
.gkl-d-ok .gkl-dtag,.gkl-d-ok .gkl-card-icon{background:var(--gkl-ok-bg); color:var(--gkl-ok);}
.gkl-d-warn{border-top-color:var(--gkl-warn);}
.gkl-d-warn .gkl-dtag,.gkl-d-warn .gkl-card-icon{background:var(--gkl-warn-bg); color:var(--gkl-warn);}
.gkl-d-go{border-top-color:var(--gkl-accent);}
.gkl-d-go .gkl-dtag,.gkl-d-go .gkl-card-icon{background:var(--gkl-light); color:var(--gkl-dark);}
.gkl-d-alt{border-top-color:var(--gkl-alt);}
.gkl-d-alt .gkl-dtag,.gkl-d-alt .gkl-card-icon{background:var(--gkl-alt-bg); color:var(--gkl-alt);}
.gkl-verdict{
background:var(--gkl-hl); border:1px solid var(--gkl-line); border-radius:8px;
padding:13px 16px; font-size:15px; line-height:1.65; color:var(--gkl-ink); margin:2px 0 16px;
}
.gkl-qs{counter-reset:gklq; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:22px 0 28px;}
.gkl-qs li{
counter-increment:gklq; position:relative;
border:1px solid var(--gkl-line); border-radius:var(--gkl-r); background:#fff;
padding:16px 18px 14px 18px;
}
.gkl-qs-head{
display:block; font-size:13.5px; font-weight:700; letter-spacing:.01em;
color:var(--gkl-accent); margin-bottom:6px;
}
.gkl-qs li p{font-size:15px; line-height:1.62; margin:0;}
.gkl-faq{display:grid; gap:12px; margin:22px 0 30px;}
.gkl-faq-i{
border:1px solid var(--gkl-line); border-left:4px solid var(--gkl-accent);
border-radius:0 var(--gkl-r) var(--gkl-r) 0; background:#fff; padding:18px 22px;
}
.gkl-blog .gkl-faq-i h3{margin:0 0 8px; font-size:17.5px; line-height:1.45;}
.gkl-faq-i p{font-size:16px; line-height:1.7; margin:0;}
.gkl-table-wrap{
overflow-x:auto; -webkit-overflow-scrolling:touch;
border:1px solid var(--gkl-line); border-radius:var(--gkl-r); margin:24px 0 10px;
}
.gkl-table{width:100%; border-collapse:collapse; min-width:560px; font-size:15px;}
.gkl-table th,.gkl-table td{padding:13px 16px; text-align:left; vertical-align:top; line-height:1.6;}
.gkl-table thead th{
background:var(--gkl-hl); color:var(--gkl-dark);
font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
border-bottom:1px solid var(--gkl-line); white-space:nowrap;
}
.gkl-table tbody td,.gkl-table tbody th{border-top:1px solid var(--gkl-line);}
.gkl-table tbody tr:nth-child(even) td{background:#fbfcfe;}
.gkl-table th:first-child,.gkl-table td:first-child{
position:sticky; left:0; z-index:1;
background:#fff; font-weight:700; color:var(--gkl-ink); font-size:14.5px;
border-right:1px solid var(--gkl-line);
}
.gkl-table thead th:first-child{background:var(--gkl-hl);}
.gkl-table tbody tr:nth-child(even) th:first-child,.gkl-table tbody tr:nth-child(even) td:first-child{background:#fbfcfe;}
.gkl-pill{
display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.01em;
border-radius:999px; padding:3px 11px; white-space:nowrap;
}
.gkl-pill-pos{background:var(--gkl-ok-bg); color:var(--gkl-ok); border:1px solid var(--gkl-ok-line);}
.gkl-pill-mid{background:var(--gkl-warn-bg); color:var(--gkl-warn); border:1px solid var(--gkl-warn-line);}
.gkl-pill-neg{background:#fdf1f1; color:#b42318; border:1px solid #f6d5d2;}
.gkl-tag{
display:inline-block; font-size:13px; font-weight:600; color:var(--gkl-body);
background:#f5f7fa; border:1px solid var(--gkl-line); border-radius:6px; padding:3px 9px;
}
.gkl-table-hint{font-size:12.5px; color:var(--gkl-mute); margin:0 0 30px; text-align:right;}
.gkl-table-fit{min-width:0;}
@media (min-width:576px){.gkl-table-hint{display:none;} .gkl-table-wrap{margin-bottom:30px;}}
.gkl-callout,.gkl-tip{
display:flex; gap:14px; align-items:flex-start;
border-radius:var(--gkl-r); padding:17px 20px; margin:24px 0; font-size:16px; line-height:1.68;
}
.gkl-callout{background:var(--gkl-hl); border-left:4px solid var(--gkl-accent); color:var(--gkl-ink);}
.gkl-tip{background:var(--gkl-warn-bg); border-left:4px solid var(--gkl-warn); color:var(--gkl-ink);}
.gkl-callout svg,.gkl-tip svg{width:20px; height:20px; flex:0 0 20px; margin-top:3px;}
.gkl-callout svg{color:var(--gkl-accent);} .gkl-tip svg{color:var(--gkl-warn);}
.gkl-callout p,.gkl-tip p{margin:0;}
.gkl-quote{
margin:26px 0; padding:20px 24px; border-left:4px solid var(--gkl-accent);
background:var(--gkl-hl); border-radius:0 var(--gkl-r) var(--gkl-r) 0;
font-size:18.5px; line-height:1.65; font-style:italic; color:var(--gkl-ink);
}
.gkl-quote p{margin:0;}
.gkl-takeaway{
background:var(--gkl-hl); border:1px solid var(--gkl-line); border-radius:var(--gkl-r);
padding:22px 26px; margin:28px 0 22px;
}
.gkl-takeaway p{margin:0 0 14px;} .gkl-takeaway p:last-child{margin:0;}
.gkl-emph{
border-left:4px solid var(--gkl-accent); padding:4px 0 4px 20px; margin:24px 0 8px;
font-size:19px; line-height:1.6; font-weight:600; color:var(--gkl-ink);
}
.gkl-cta{
background:var(--gkl-ink); border-radius:var(--gkl-r); padding:26px 30px; margin:32px 0;
}
.gkl-cta-h{font-size:20px; font-weight:700; color:#fff; margin:0 0 9px; line-height:1.35;}
.gkl-cta p{color:#cfd6e2; font-size:16px; line-height:1.65; margin:0 0 18px;}
.gkl-blog .gkl-btn{
display:inline-block; background:var(--gkl-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;
}
.gkl-blog .gkl-btn:hover,.gkl-blog .gkl-btn:focus-visible,.gkl-blog .gkl-btn:visited{
background:var(--gkl-dark) !important; color:#fff !important; text-decoration:none !important;
}
@media (max-width:900px){
.gkl-blog h2{font-size:26px; margin-top:44px;}
.gkl-cards-3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:700px){
.gkl-cards,.gkl-cards-3,.gkl-dgrid{grid-template-columns:1fr;}
}
@media (max-width:640px){
.gkl-blog{font-size:16.5px;}
.gkl-blog h2{font-size:23px;}
.gkl-blog h3,.gkl-step h2{font-size:18.5px;}
.gkl-lede{font-size:17px; padding:17px 18px;}
.gkl-toc{padding:18px 18px 6px;}
.gkl-chips,.gkl-qs{grid-template-columns:1fr;}
.gkl-op{flex-direction:column; gap:12px; padding:18px;}
.gkl-faq-i{padding:16px 18px;}
.gkl-cta{padding:22px 20px;}
.gkl-emph{font-size:17.5px;}
.gkl-quote{font-size:17px; padding:17px 18px;}
.gkl-takeaway{padding:18px 18px;}
.gkl-steps{padding-left:22px;}
.gkl-step::before{left:-22px;}
}
@media (prefers-reduced-motion:reduce){
.gkl-blog *{transition:none !important;}
.gkl-card:hover{transform:none;}
}
Salesforce has been extremely ambitious, which is obvious from its attempt to control as much space as possible within its enterprise ecosystem. From Marketing Cloud and Agentforce to automation and data management, the company’s venture has left customers navigating rising costs, corresponding products, and a gradually more closed ecosystem.
While the Data Cloud platform announced a few years back by Salesforce facilitated the integration of enterprise data between Salesforce sales and marketing clouds with other enterprise systems, the platform failed to offer features for ensuring data governance, managing data quality, and data labelling.
This is where Salesforce Informatica comes to the picture and shines. About two-third of informatica MDM systems are installed to amalgamate customer data and a certain percentage to unify product data. Salesforce has established itself as the dominant enterprise CRM system but lacks advanced data unification capabilities and governance framework. Now, after acquiring Informatica, Salesforce’s vision will be backed with what couldn’t be offered out of the box by Data Cloud.
For organizations that are already leveraging Salesforce Data 360, MuleSoft, or Informatica, the acquisition puts several key questions on the table regarding their data strategy, costs, architecture, and authority. Should their Salesforce MDM strategy change? Will Informatica MDM overlap or complement with Data 360? What happens to existent integration plans, and how must data governance evolve? The acquirement brings the enterprise capabilities of Informatica in data integration, cataloging, quality, management of metadata, privacy, MDM, governance, lineage, and observability into Salesforce. These capabilities are expected to fortify Data 360 and create a broader base for Agentforce and other AI capabilities.
What’s inside
The Major Shift: Why is MDM Becoming More Strategic
Informatica vs. MuleSoft: Different Roles in Data Architecture
What Happens to Your Salesforce Data 360 Bill?
What will Happen If Your Integration Scope Require Changing?
What Could Be Done with Your MDM Roadmap?
Final Takeaway:
The Major Shift: Why is MDM Becoming More Strategic
Prior to acquisition, enterprises positioned Salesforce as the client-facing CRM while using Informatica MDM as a data-management layer through Salesforce, ERP, SAP, commerce, and other applications. That architecture still remains a viable approach, but Salesforce can now connect these capacities more closely. Informatica MDM Salesforce helps establishments create reliable records by matching, refining, establishing, and governing data across multiple sources. For instance, client data may dwell in Salesforce, financial data in SAP, orders in an ERP, and product or supplier data in independent systems. Integration alone cannot ensure precise, consistent data. MDM creates a reliable record, while integration disperses that information across applications.
Informatica vs. MuleSoft: Different Roles in Data Architecture
After the acquisition, one of the key queries that arises is whether MuleSoft and Informatica now overlap. Though there might be some functional overlaps, mainly in data integration, the two platforms serve different purposes. While Informatica focuses on data governance, quality, labeling, and Master Data Management, MuleSoft, on the contrary, is primarily focused on application integration, connectivity, API’s, event processing, and workflow arrangement.
In simple words, Informatica answers, “What is reliable data?” while MuleSoft answers, “How do we hook up and move that data?” Consequently, MuleSoft investments should not be viewed as redundant. MuleSoft can serve as the connectivity layer that disperses master data managed by Informatica across Salesforce and other enterprise applications.
What Happens to Your Salesforce Data 360 Bill?
This is a crucial consideration for architects, procurement teams and CIOs. Salesforce’s procurement of Informatica does not ensure that the capabilities of Informatica will automatically become free or that every workload will be incorporated in an existing Salesforce subscription.
Data 360 has its own pricing model, which is based on consumption. This includes Flex Credits and profile-based valuing. While Flex Credits are priced at $500 per 100,000 credits, Profiles are rated at $240 per 1,000 profiles every year. Enterprise Profiles are set at a price of $420 per 1,000 profiles per year. Actual pricing depends on each client’s contract and configuration.
Data 360 utilization varies based on processing, amalgamation, questioning, segmentation, activation, flowing, and real-time pipelines. Therefore, companies must evaluate which assignment runs on which platform and how that load is charged. Connected architecture may enhance capabilities, but tighter integration does not mean lower total costs by default.
What will Happen If Your Integration Scope Require Changing?
A Salesforce integration flow planned like this:
SAP
→
MuleSoft
→
Salesforce Data 360
Might require reviewing whether the current architecture needs an extra data-management layer:
SAP
→
Informatica MDM
→
MuleSoft
→
Data 360
→
Salesforce/Agentforce
However, this does not mean every project requires Informatica. If the objective is just to shift customer data from SAP into MuleSoft, Salesforce may be enough. But if you require finding duplicate clients across multiple systems, create one reliable customer record, define data proprietorship, optimize data quality, track data source, and share authentic data across applications then Informatica MDM could add value.
The Salesforce-Informatica combination offers a key lesson: Keep data at the center of your problem—not the product.
What Could Be Done with Your MDM Roadmap?
If your organization already has an Informatica MDM program, do not stop it just because just because Salesforce acquired it.
Already Implemented: If have already implemented an MDM solution, start by recording the current setup. Document the currently used platform, existing rules for data-quality, governance, integration, and more. This helps you assess what is going well and what improvements are needed. Avoid migrating an existing MDM solution totally because Salesforce is now maintaining Informatica.
Currently Being Designed: If your MDM proposal is still in the initial stages, this is a good time to reexamine the architecture. Ensure whether the capabilities of Informatica could ease your data-management approach, mainly if Salesforce, Data 360, and MuleSoft are crucial aspects of your technology environment. The goal should be to figure out the right blend of capabilities rather than include another platform needlessly.
Future MDM Initiatives: For future MDM projects, the architecture should be kept flexible besides avoiding tightly associated reliance between platforms. The key capabilities of data mastering, integration, governance and activation should be clearly demarcated. This approach makes it simpler to shift platforms, expand to new domains, or initiate new technologies without revamping the whole architecture.
Final Takeaway:
The acquisition of Informatica should not mean migrating your MDM platform, improving your MuleSoft architecture, or supposing higher Salesforce costs. Rather, consider it as an opportunity to review your complete data strategy. Salesforce Master Data Management approach, Informatica MDM needs, data-quality processes, governance structure, Agentforce roadmap etc., should be reexamined. The roles of these platforms complement each other: Informatica helps launch reliable enterprise data, MuleSoft orchestrates and connects that data, Data 360 activates it inside Salesforce, and Agentforce can leverage that data to back intelligent actions.
/* =====================================================================
gkr — Salesforce Bought Informatica (MDM / Data 360 / Integration)
Prefix: gkr- Scoped custom properties on .gkr-blog
===================================================================== */
.gkr-blog{
--accent:#1a73e8;--dark:#0f4fa8;--light:#e8f0fe;--hl:#f3f7ff;
--line:#e4e9f2;--ink:#101828;--body:#3f4a5a;--mute:#697586;
--ok:#0f7a4a;--ok-bg:#eefaf3;--ok-line:#c3ead6;
--warn:#a35c00;--warn-bg:#fff8ec;--warn-line:#f5dfb8;
--r:10px;
font-size:17px;line-height:1.75;color:var(--body);
max-width:860px;margin:0 auto;-webkit-font-smoothing:antialiased;
}
.gkr-blog *{box-sizing:border-box;}
.gkr-blog p{margin:0 0 20px;}
.gkr-blog p:last-child{margin-bottom:0;}
/* --- headings --- */
.gkr-blog h2{
font-size:clamp(22px,3.2vw,28px);line-height:1.28;font-weight:700;
color:var(--ink);letter-spacing:-.015em;
margin:48px 0 16px;padding-top:12px;position:relative;
scroll-margin-top:90px;
}
.gkr-blog h2::before{
content:"";position:absolute;top:0;left:0;width:52px;height:3px;
border-radius:3px;background:linear-gradient(90deg,var(--accent),#5ea2ff);
}
.gkr-blog h3{
font-size:clamp(17px,2.2vw,20px);line-height:1.4;font-weight:700;
color:var(--ink);letter-spacing:-.01em;margin:28px 0 10px;
scroll-margin-top:90px;
}
.gkr-blog strong{font-weight:650;color:var(--ink);}
/* --- anchors --- */
.gkr-blog a{
color:var(--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 .18s ease;
}
.gkr-blog a:hover,.gkr-blog a:focus-visible{color:var(--dark);text-decoration-thickness:2px;}
.gkr-blog a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px;}
/* --- keyword highlight --- */
.gkr-blog .gkr-kw{color:var(--dark);font-weight:650;}
/* --- hero image --- */
.gkr-blog img{max-width:100%;height:auto;border-radius:var(--r);}
/* --- lede --- */
.gkr-blog .gkr-lede{
font-size:clamp(17px,2.1vw,19px);line-height:1.7;color:var(--ink);font-weight:400;
background:var(--hl);border:1px solid var(--line);border-left:4px solid var(--accent);
border-radius:0 var(--r) var(--r) 0;padding:22px 26px;margin:0 0 26px;
}
/* --- TOC --- */
.gkr-blog .gkr-toc{
background:#fff;border:1px solid var(--line);border-radius:14px;
padding:20px 22px 10px;margin:28px 0;
box-shadow:0 1px 2px rgba(16,24,40,.04);
}
.gkr-blog .gkr-toc-head{
font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
color:var(--mute);margin:0 0 14px;
}
.gkr-blog .gkr-toc-list{
list-style:none;counter-reset:gkr-toc;margin:0;padding:0;
display:grid;gap:2px;
}
.gkr-blog .gkr-toc-list li{counter-increment:gkr-toc;margin:0;padding:0;}
.gkr-blog .gkr-toc-list li::before{content:none;}
.gkr-blog .gkr-toc-list a{
display:flex;align-items:baseline;gap:11px;padding:9px 10px;border-radius:8px;
font-size:15.5px;font-weight:550;color:var(--body) !important;
background-image:none !important;text-decoration:none !important;
transition:background-color .15s ease,color .15s ease;
}
.gkr-blog .gkr-toc-list a::before{
content:counter(gkr-toc,decimal-leading-zero);flex:0 0 auto;
font-size:12px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;
}
.gkr-blog .gkr-toc-list a:hover{background-color:var(--light);color:var(--dark) !important;}
/* --- flow (A → B → C) --- */
.gkr-blog .gkr-flow{
display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;
margin:14px 0 20px;padding:16px 20px;
background:var(--hl);border:1px solid var(--line);border-radius:var(--r);
}
.gkr-blog .gkr-flow-i{
background:#fff;border:1px solid var(--accent);color:var(--dark);
font-weight:600;font-size:15px;padding:5px 14px;border-radius:6px;
}
.gkr-blog .gkr-flow-a{color:var(--mute);font-weight:700;font-size:16px;}
/* --- quote --- */
.gkr-blog .gkr-quote{
font-size:clamp(16px,2vw,18px);font-weight:600;line-height:1.6;
color:var(--dark);background:var(--hl);border-left:4px solid var(--accent);
border-radius:0 var(--r) var(--r) 0;padding:18px 24px;margin:26px 0;
}
/* --- list --- */
.gkr-blog .gkr-list{list-style:none;margin:22px 0 24px;padding:0;}
.gkr-blog .gkr-list li{
position:relative;padding:0 0 0 32px;margin:0 0 14px;
}
.gkr-blog .gkr-list li:last-child{margin-bottom:0;}
.gkr-blog .gkr-list li::before{
content:"";position:absolute;left:5px;top:.62em;
width:9px;height:9px;border-radius:2px;
background:linear-gradient(135deg,#5ea2ff,var(--accent));transform:rotate(45deg);
}
/* --- chips --- */
.gkr-blog .gkr-chips{
list-style:none;display:grid;
grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
gap:11px;margin:22px 0 24px;padding:0;
}
.gkr-blog .gkr-chips li{
position:relative;background:#fff;border:1px solid var(--line);
border-radius:var(--r);padding:13px 15px 13px 34px;
font-size:15.5px;font-weight:550;color:var(--ink);line-height:1.4;
transition:border-color .15s,box-shadow .15s,background-color .15s;
}
.gkr-blog .gkr-chips li::before{
content:"";position:absolute;left:15px;top:50%;transform:translateY(-50%);
width:8px;height:8px;border-radius:50%;
background:linear-gradient(135deg,#5ea2ff,var(--accent));
}
.gkr-blog .gkr-chips li:hover{border-color:#b9d2f7;background:#fbfdff;box-shadow:0 3px 12px rgba(26,115,232,.09);}
/* --- cards --- */
.gkr-blog .gkr-cards{
display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
gap:18px;margin:26px 0;
}
.gkr-blog .gkr-card{
position:relative;background:#fff;border:1px solid var(--line);
border-radius:14px;padding:24px;overflow:hidden;
transition:border-color .18s,box-shadow .18s,transform .18s;
}
.gkr-blog .gkr-card::before{
content:"";position:absolute;inset:0 0 auto 0;height:3px;
background:linear-gradient(90deg,var(--accent),#5ea2ff);opacity:0;transition:opacity .18s;
}
.gkr-blog .gkr-card:hover{border-color:#b9d2f7;box-shadow:0 10px 28px rgba(16,24,40,.08);transform:translateY(-2px);}
.gkr-blog .gkr-card:hover::before{opacity:1;}
.gkr-blog .gkr-card-top{display:flex;align-items:center;gap:13px;margin-bottom:12px;}
.gkr-blog .gkr-card-icon{
flex:0 0 40px;width:40px;height:40px;border-radius:10px;
background:var(--light);color:var(--accent);padding:9px;
display:flex;align-items:center;justify-content:center;
}
.gkr-blog .gkr-card-icon svg{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.gkr-blog .gkr-card-t{font-size:clamp(16px,2.2vw,18px);font-weight:700;color:var(--ink);line-height:1.35;letter-spacing:-.01em;}
.gkr-blog .gkr-card p{font-size:16px;margin:0;}
/* --- steps --- */
.gkr-blog .gkr-steps{list-style:none;margin:26px 0;padding:0;}
.gkr-blog .gkr-step{position:relative;padding:0 0 30px 44px;margin:0;}
.gkr-blog .gkr-step::before{
content:"";position:absolute;left:3px;top:7px;
width:16px;height:16px;border-radius:50%;
background:var(--light);border:2px solid var(--accent);z-index:1;
}
.gkr-blog .gkr-step::after{
content:"";position:absolute;left:10px;top:28px;bottom:6px;
width:2px;background:linear-gradient(180deg,#cfe0fb,#eef3fa);
}
.gkr-blog .gkr-step:last-child{padding-bottom:0;}
.gkr-blog .gkr-step:last-child::after{display:none;}
.gkr-blog .gkr-step>h3{margin:0 0 8px;}
.gkr-blog .gkr-step>p:last-child{margin-bottom:0;}
/* --- ops --- */
.gkr-blog .gkr-ops{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:22px 0;}
.gkr-blog .gkr-op{
background:var(--hl);border:1px solid var(--line);border-radius:var(--r);
padding:42px 18px 18px;position:relative;
}
.gkr-blog .gkr-op-n{position:absolute;top:14px;left:18px;font-size:17px;font-weight:800;color:var(--accent);}
.gkr-blog .gkr-op-b{font-weight:700;color:var(--dark);margin:0 0 6px;font-size:16px;}
.gkr-blog .gkr-op p{font-size:15px;color:var(--body);margin:0;line-height:1.6;}
/* --- callout / tip --- */
.gkr-blog .gkr-callout{
display:flex;gap:16px;align-items:flex-start;
background:var(--hl);border:1px solid #cfe0fb;border-left:4px solid var(--accent);
border-radius:0 var(--r) var(--r) 0;padding:20px 24px;margin:26px 0;
}
.gkr-blog .gkr-callout-icon{flex:0 0 26px;width:26px;height:26px;color:var(--accent);margin-top:3px;}
.gkr-blog .gkr-callout p{margin:0;font-size:16.5px;line-height:1.65;color:var(--ink);}
.gkr-blog .gkr-tip{
display:flex;gap:16px;align-items:flex-start;
background:var(--warn-bg);border:1px solid var(--warn-line);border-left:4px solid #d97706;
border-radius:0 var(--r) var(--r) 0;padding:20px 22px;margin:26px 0;
}
.gkr-blog .gkr-tip-icon{flex:0 0 26px;width:26px;height:26px;color:#d97706;margin-top:3px;}
.gkr-blog .gkr-tip p{margin:0;font-size:16.5px;line-height:1.65;color:var(--warn);}
/* --- table --- */
.gkr-blog .gkr-table-wrap{
overflow-x:auto;-webkit-overflow-scrolling:touch;
border:1px solid var(--line);border-radius:14px;margin:24px 0;
box-shadow:0 1px 2px rgba(16,24,40,.04);
}
.gkr-blog .gkr-table{width:100%;min-width:520px;border-collapse:collapse;font-size:15.5px;background:#fff;}
.gkr-blog .gkr-table th,.gkr-blog .gkr-table td{padding:14px 18px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--line);}
.gkr-blog .gkr-table thead th{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);background:#f8fafd;border-bottom:2px solid var(--line);white-space:nowrap;}
.gkr-blog .gkr-table tbody tr:nth-child(even) td{background:#fbfcfe;}
.gkr-blog .gkr-table tbody tr:last-child td{border-bottom:none;}
.gkr-blog .gkr-pill{display:inline-block;padding:3px 11px;border-radius:999px;font-size:13px;font-weight:650;line-height:1.45;white-space:nowrap;border:1px solid transparent;}
.gkr-blog .gkr-pos{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-line);}
.gkr-blog .gkr-mid{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-line);}
.gkr-blog .gkr-neg{color:#b42318;background:#fef3f2;border-color:#fbd5d2;}
.gkr-blog .gkr-tag{display:inline-block;padding:3px 11px;border-radius:6px;font-size:13px;font-weight:650;color:var(--dark);background:var(--light);border:1px solid #c4dbfb;white-space:nowrap;}
.gkr-blog .gkr-num{font-variant-numeric:tabular-nums;font-weight:650;color:var(--ink);white-space:nowrap;}
/* --- verdict cards --- */
.gkr-blog .gkr-dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:22px 0;}
.gkr-blog .gkr-dcard{border-radius:var(--r);padding:18px;border:1px solid var(--line);}
.gkr-blog .gkr-dcard.gkr-d-ok{border-color:var(--ok-line);background:var(--ok-bg);}
.gkr-blog .gkr-dcard.gkr-d-warn{border-color:var(--warn-line);background:var(--warn-bg);}
.gkr-blog .gkr-dcard.gkr-d-go{border-color:#93c5fd;background:#eff6ff;}
.gkr-blog .gkr-dcard.gkr-d-alt{border-color:#d1d5db;background:#f9fafb;}
.gkr-blog .gkr-verdict{font-size:13px;font-weight:600;color:var(--mute);margin-top:10px;padding-top:10px;border-top:1px solid rgba(0,0,0,.08);}
/* --- question set --- */
.gkr-blog .gkr-qs{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 24px 24px;margin:26px 0;box-shadow:0 1px 2px rgba(16,24,40,.04);}
.gkr-blog .gkr-qs-head{font-size:clamp(16px,2.2vw,18px);font-weight:700;color:var(--ink);line-height:1.4;letter-spacing:-.01em;margin:0 0 16px;}
.gkr-blog .gkr-qs ol{list-style:none;counter-reset:gkr-q;margin:0;padding:0;display:grid;gap:10px;}
.gkr-blog .gkr-qs li{counter-increment:gkr-q;position:relative;background:var(--hl);border:1px solid var(--line);border-radius:var(--r);padding:13px 16px 13px 56px;font-size:16px;font-weight:550;color:var(--ink);line-height:1.5;}
.gkr-blog .gkr-qs li::before{content:counter(gkr-q);position:absolute;left:14px;top:10px;width:30px;height:30px;border-radius:50%;background:var(--light);border:1.5px solid #c4dbfb;color:var(--dark);font-size:13.5px;font-weight:700;display:flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;}
/* --- takeaway --- */
.gkr-blog .gkr-takeaway{background:var(--hl);border:1px solid #cfe0fb;border-radius:14px;padding:24px 26px;margin:26px 0 24px;}
.gkr-blog .gkr-takeaway p{font-size:clamp(16.5px,2.1vw,18px);line-height:1.7;color:var(--ink);font-weight:400;margin:0;}
/* --- emph --- */
.gkr-blog .gkr-emph{font-size:clamp(17px,2.1vw,19px);font-weight:600;color:var(--ink);line-height:1.6;border-left:3px solid var(--accent);padding:2px 0 2px 18px;margin:26px 0;}
/* --- CTA / btn --- */
.gkr-blog .gkr-cta{
display:flex;align-items:center;justify-content:space-between;
gap:18px;flex-wrap:wrap;
background:var(--hl);border:1px solid #cfe0fb;border-left:4px solid var(--accent);
border-radius:0 var(--r) var(--r) 0;padding:14px 20px;margin:32px 0;
}
.gkr-blog .gkr-cta p{flex:1 1 300px;margin:0;font-size:15.5px;line-height:1.55;color:var(--ink);}
.gkr-blog .gkr-btn{
flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
padding:10px 20px;border-radius:8px;font-size:14.5px;font-weight:650;
line-height:1.2;text-align:center;background-color:var(--accent);
color:#fff !important;background-image:none !important;
text-decoration:none !important;border:1.5px solid transparent;
white-space:nowrap;box-shadow:0 3px 10px rgba(26,115,232,.28);
transition:transform .16s,box-shadow .16s,background-color .16s;
}
.gkr-blog .gkr-btn:hover,.gkr-blog .gkr-btn:focus-visible{transform:translateY(-1px);background-color:#1668d6;box-shadow:0 6px 16px rgba(26,115,232,.38);}
.gkr-blog .gkr-btn:focus-visible{outline:2px solid var(--dark);outline-offset:3px;}
/* --- responsive --- */
@media(min-width:640px){.gkr-blog .gkr-toc-list{grid-template-columns:1fr 1fr;column-gap:14px;}}
@media(min-width:760px){.gkr-blog .gkr-qs ol{grid-template-columns:1fr 1fr;}}
@media(max-width:680px){
.gkr-blog{font-size:16px;line-height:1.72;}
.gkr-blog .gkr-lede{padding:18px 20px;}
.gkr-blog .gkr-callout,.gkr-blog .gkr-tip{padding:18px;gap:13px;}
.gkr-blog .gkr-takeaway{padding:20px;}
.gkr-blog .gkr-card{padding:20px;}
.gkr-blog .gkr-qs{padding:18px 16px 20px;}
.gkr-blog .gkr-cta{padding:18px;gap:14px;}
.gkr-blog .gkr-btn{width:100%;}
.gkr-blog .gkr-step{padding-left:36px;}
.gkr-blog .gkr-flow{font-size:14px;}
}
@media(max-width:400px){.gkr-blog .gkr-chips,.gkr-blog .gkr-cards{grid-template-columns:1fr;}}
@media(prefers-reduced-motion:reduce){.gkr-blog *{transition:none !important;}.gkr-blog .gkr-btn:hover,.gkr-blog .gkr-card:hover{transform:none;}}
@media print{.gkr-blog .gkr-cta{display:none !important;}.gkr-blog{font-size:11pt;}.gkr-blog .gkr-card,.gkr-blog .gkr-step{break-inside:avoid;}.gkr-blog .gkr-table-wrap{overflow:visible;}.gkr-blog .gkr-table{min-width:0;}}