The Salesforce Developer’s Guide to the Spring ’26 Release

The Salesforce Developer's Guide to the Spring '26 Release

The Salesforce Developer’s Guide to the Spring ’26 Release

Quick Overview:

This guide covers all major Salesforce Spring ’26 developer updates, from LWC template expressions and Apex Cursors to Agentforce Builder, mandatory security migrations, Flow logging, GraphQL mutations, and more.

 

  • Complex Template Expressions in LWC (Beta), write JS inline in templates
  • Apex Cursors are now Generally Available, process up to 50M records
  • Agentforce Builder with Canvas + Script views for AI agent development
  • RunRelevantTests for faster, dependency-aware deployments (API v66)
  • Agent Script, YAML-like DSL for deterministic agent behavior
  • TypeScript support for LWC via @salesforce/lightning-types
  • External Client Apps replacing Connected Apps (mandatory migration)
  • Flow Logging, Kanban boards, and inline-editable data tables
  • Triple DES retirement deadline, Summer ’26 (urgent action required)
  • GraphQL mutations are now supported in API v66

Why Spring ’26 Is a Milestone Release for Developers

Every Salesforce release matters. 

 

But the Salesforce Spring ’26 update feels different. This isn’t just a collection of quality-of-life improvements; it’s a definitive shift in how the platform thinks about the developer experience, AI integration, and long-term architectural strategy.

 

As one Salesforce Developer Advocate noted, Spring ’26 is “a gobstopper of a release for developers”, packed with GA features that remove years-old friction points, Beta features that preview the agentic future, and mandatory security changes that demand immediate attention.

 

The defining theme of this release is the move toward what Salesforce calls the “Agentic Enterprise”, a model where AI agents and human developers co-build, co-test, and co-deploy across every layer of the platform. 

 

If you’ve been watching Agentforce evolve since its introduction, Spring ’26 is where it starts to feel like native infrastructure rather than a bolted-on product.

 

In this guide, we’ll break down every developer-relevant feature across LWC, Apex, Agentforce 360 platform, Flow, APIs, and security, so you can prioritize what to test first, what to plan for, and what to act on immediately. 

 

Whether you’re a solo Salesforce developer, part of an enterprise team, or partnering with a specialist provider of Salesforce development services, this guide has you covered.

 

Pro Tip: Sandbox preview for Spring ’26 began January 9, 2026. If you haven’t yet spun up a pre-release org, do it now; some Beta features require explicit activation in Setup before they appear.

Release Dates & Rollout Timeline

The Spring ’26 release follows Salesforce’s standard phased rollout. Here’s the definitive timeline every developer should have bookmarked:

DateMilestoneDetails
Dec 18, 2025Pre-Release Dev EditionSign up for the standalone Developer Edition with all Spring '26 features.
Jan 9–10, 2026Sandbox Preview BeginsEarly access in sandboxes for safe exploration and validation.
Jan 16, 2026Production Wave 1Initial production instances upgraded. Check Salesforce Trust for your org.
Feb 13, 2026Production Wave 2The majority of production orgs upgraded in this wave.
Feb 20, 2026Production Wave 3 (Final)All remaining production environments upgraded. Spring '26 will be fully live globally.

 

Important: Several Spring ’26 changes are enforced, not opt-in. Review the security migration section carefully. The Connected Apps retirement and Triple DES deprecation have hard deadlines with real consequences. 

 

Mandatory Changes: Action Required Now

Session IDs in outbound messages removed Feb 16, 2026. New Connected Apps are disabled by default. Triple DES SAML retires Summer ’26. Full details in Section 9.

Lightning Web Components (LWC) Updates in Spring’26

Spring ’26 delivers a strong batch of LWC improvements, a new dynamic event listener directive, complete GraphQL CRUD support, a completed TypeScript rollout, a cleaner way to launch flows, and a long-overdue developer debugging tool

1. Dynamic Event Listeners.

Before Spring ’26, every event handler had to be declared statically in your HTML template. If you wanted to swap behavior at runtime, you needed messy conditional rendering or manual addEventListener calls.

 

The new LWC: on directive solves this cleanly. You pass a plain JavaScript object where each key is an event name, and each value is the handler function. LWC automatically rewires the listeners whenever the object reference changes, no template edits required.

 

  • How it works: Object keys are event names (click, mouseenter…). Values are the functions that run when that event fires.
  • The benefit: Swap an entire set of event behaviors at runtime from JavaScript alone, without ever touching the HTML template.

 

 

 

 

 

Key insight

The getter returns a completely new object whenever the current mode changes. LWC’s reactivity system detects the new reference and seamlessly updates which events the element listens to, no removeEventListener calls, no if-blocks in the template. Source: LWC Recipes PR #1081. 

2. GraphQL Mutations in LWC

Spring ’26 completes GraphQL CRUD in LWC. The existing @wire(graphql) adapter handles reactive reads. The new executeMutation method provides an imperative API for creating, updating, and deleting data; use it anywhere you need to write data from JavaScript.

 

Define your mutation once using the gql template literal, then call executeMutation with the query and variables. The response returns exactly the fields you requested.

 

  graphqlMutationCreate.js

 

graphqlMutationUpdate.js

 

graphqlMutationDelete.js

 

errors (array) – not error (singular)

executeMutation returns { data, errors } where errors is an array. Always check errors?.length. Child relationship fields are not supported in mutation response queries. See LWC Recipes PR #1083 for complete implementation with tests.

3. TypeScript Support for Base Components

The TypeScript rollout for Lightning base components is now complete. Install @salesforce/lightning-types to get IntelliSense, autocomplete, and compile-time error detection for every base component. Catch bugs at edit time, not after deployment.

Set up in 4 steps:

  • Step 1: Install: npm install –save-dev typescript @salesforce/lightning-types
  • Step 2:  Enable: Add “salesforcedx-vscode-lwc.typescript”: true to .vscode/settings.json
  • Step 3: Compile: npx tsc –project ./force-app/main/default/lwc
  • Step 4: Deploy: sf project deploy start –source-dir force-app

 

  typeSafeForm.ts

 

 

Pro tip

The platform stores only JavaScript .ts files that are compiled locally, and the .js output is deployed. Never ship uncompiled TypeScript to a package. If you have custom type stubs for base components, switch to @salesforce/lightning-types for better coverage.

4. Navigate to Flows from LWC

Launching a flow from a component now takes one navigate call. Use the standard__flow PageReference type with the flow’s API name, and pass input data through the state object, it maps directly to the flow’s input variables.

navToFlow.js, LWC Recipes PR #1082

 

 

5. Error Console 

Tired of red-box popups interrupting your testing? The Error Console silently logs non-fatal errors to a dedicated panel you can review whenever you want. Fatal errors that do require a pop-up are also captured here for a full debug history.

 

Enable it at: Setup > User Interface > Advanced Settings > ‘Use Error Console for error reporting in Lightning Experience’.

Error Console, non-fatal errors logged silently, fatal errors captured for full history  |  Source: Salesforce Developer Blog
Error Console, non-fatal errors logged silently, fatal errors captured for full history  |  Source: Salesforce Developer Blog

 

6. Complex Template Expressions

Write JavaScript expressions directly in LWC templates, template literals, ternary operators, optional chaining, null coalescing, array methods, and inline event handlers. No more boilerplate getter methods for simple display logic.

 

Before Spring ’26

 

  After Spring ’26 Complex Template Expressions

 

 

Beta: use in the sandbox first

Complex Template Expressions are subject to Salesforce Beta Services Terms. The feature direction is committed, but the syntax may change before GA. Test in sandbox and developer orgs before any production rollout.

7. Lightning Empty State & Illustration Component

Two new base components deliver SLDS-compliant empty states with zero custom CSS. Both automatically adapt to dark mode themes. Drop them in, and they look polished immediately.

 

 

lightning-empty-state, SLDS illustration + title + description + CTA, auto dark-mode  |  Source: Salesforce Developer Blog
lightning-empty-state, SLDS illustration + title + description + CTA, auto dark-mode  |  Source: Salesforce Developer Blog

 

 Apex Updates in Spring ’26

Apex gets three meaningful improvements this release: Cursors move to GA for large-dataset processing, RunRelevantTests speeds up CI/CD deployments, and a new ConnectApi method eliminates callouts for picklist data.

1. Apex Cursors: Now Generally Available 

Apex Cursors let you work with large SOQL result sets in manageable chunks without the rigidity of Batch Apex. Create a cursor once, the result set is cached server-side, then fetch records from any position, forward or backward. Ideal for processing millions of records without re-running the query.

 

Basic usage

Pattern 1: Queueable chaining for millions of records

Cursors are serialisable; they survive intact between Queueable job executions, so you can chain through arbitrarily large datasets without ever re-running the query.

 

  QueryChunkingQueueable.cls

Pattern 2: PaginationCursor for LWC page navigation

PaginationCursor is a variant built for user-facing lists. It is @AuraEnabled-serialisable, pass it between your LWC and Apex for smooth server-side paging with no OFFSET queries.

 

PaginationController.cls

 

 

paginatedList.js

 

 

Cursor vs Batch Apex vs PaginationCursor

DimensionBatch ApexCursor + QueueablePaginationCursor
Max records50M50M per cursor100K per cursor
Query re-executionYes (per chunk)No, server-cachedNo, server-cached
DirectionForward onlyBidirectionalBidirectional
Chunk sizeFixed at job startFlexible per fetch()Fixed per fetchPage()
LWC paginationComplex (polling)@AuraEnabled serialisable@AuraEnabled serialisable
Best forScheduled DML-heavy jobsAsync large-volume processingUser-facing list pagination

 

Cursor governor limits

Cursors help you use limits smarter; they don’t bypass them. Each fetch() counts against the SOQL row limit. Max: 50M records/cursor, 10K cursor instances/24hrs, 200K PaginationCursor instances/24hrs.

2. RunRelevantTests: Faster Deployments 

A new deployment test level that analyses the dependency graph of your payload and runs only the tests relevant to the changed code. For large organizations with thousands of test methods, this can dramatically reduce CI/CD deployment time.

 

 

3. Picklist Values by Record Type: New Apex Method

Retrieving record-type-specific picklist values in Apex used to require UI API callouts. The new ConnectApi.RecordUi.getPicklistValuesByRecordType() method eliminates that; one native Apex call returns all picklist fields for a given record type, including dependent relationships and default values.

 

 

4. Blob.toPdf(): New Rendering Engine

 Blob.toPdf() now uses the same rendering engine as Visualforce PDFs, consistent output, expanded font support, and full CJK (Chinese, Japanese, Korean), Thai, and Arabic character rendering. The API is unchanged; the results are better.

 

Check existing PDFs before Summer ’26

If your PDFs rely on the old serif default font, line breaks and spacing may change. Add font-family: serif to maintain backward compatibility. Review via Setup > Release Updates and test in the sandbox before the Summer ’26 enforcement date.

Agentforce Developer Features

Spring ’26 brings the most significant Agentforce developer tooling update to date, a rebuilt Builder interface, a new DSL for authoring agent logic, a spreadsheet-style testing environment, and pro-code VS Code tooling. Updates ship monthly within the release window, so watch the release notes.

1.  New Agentforce Builder: Canvas & Script Views

The new Agentforce Builder replaces the previous interface with a text editor-inspired IDE, complete with a file explorer, two distinct working modes, and an upgraded graph-based Atlas Reasoning Engine that lets you mix deterministic logic with natural language prompts.

 

  • Canvas view: Drag-and-drop visual editor for assembling if-then logic flows, action sequences, and topic transitions.
  • Script view: Author Agent Script DSL directly in a text editor, version-controllable and diffable.
  • Deterministic logic: Chain actions in a guaranteed sequence. Control topic transitions precisely, without relying solely on LLM judgment.
  • Deep debug: Trace + reasoning summary for every agent message. See exactly why the agent took each action.
Agentforce Builder: Canvas mode with visual logic flow and Atlas Reasoning Engine  |  Salesforce Developer Blog
Agentforce Builder: Canvas mode with visual logic flow and Atlas Reasoning Engine  |  Salesforce Developer Blog

 

2. Agent Script DSL 

Agent Script is a new DSL that combines natural language instructions with deterministic code-like constructs, if-else conditions, variable bindings, and action sequencing. You curate exactly what instructions and state variables the LLM receives, giving it a high-signal prompt and predictable behavior.

 

escalation.agent-script

 

Why Agent Script?

Unlike freeform system prompts, Agent Script is version-controllable, diffable, and reviewable in pull requests. By curating the state variables and instructions the LLM sees, you reduce ambiguity and hallucinations. Explore the Agent Script Recipes sample app at developer.salesforce.com/sample-apps/agent-script-recipes.

3. Agent Grid

Agentforce Grid is a spreadsheet-like environment for testing AI workflows against real CRM data. Every row is a CRM record, every column is an agent action, every cell shows immediate AI output. No deployment cycle needed to validate logic changes.

Agentforce Grid: rows are CRM records, columns are agent actions, cells show instant AI output  |  Salesforce Developer Blog
Agentforce Grid: rows are CRM records, columns are agent actions, cells show instant AI output  |  Salesforce Developer Blog

 

4. Agentforce DX: Pro-Code in VS Code

Agentforce DX is the pro-code equivalent of the Builder UI. Build, test, and deploy agents in VS Code and the Salesforce CLI without context switching. Retrieve an admin-built agent from Agentforce Builder, pull it locally, and refine it with complex logic.

 

  • Language Server: Syntax highlighting, red squiggles for errors, internal validation, and outline support for Agent Script files.
  • Simulated preview: Test agent logic with mocked actions. Fast iteration, no org resources consumed.
  • Live preview: Connect to real Apex, flows, and org data for end-to-end testing.

 

Agentforce DX in VS Code: Agent Script editor with language server + Agent Preview  |  Salesforce Developer Blog
Agentforce DX in VS Code: Agent Script editor with language server + Agent Preview  |  Salesforce Developer Blog

 

5. Agentforce Vibes: AI Developer Tooling

Agentforce Vibes is an AI-powered developer assistant available as a VS Code extension and in the Agentforce Vibes IDE. Spring ’26 delivers the improvements from versions 3.3.0 through 3.8.0, smarter planning, better context management, and a streamlined MCP experience.

1. /deep-planning, Structured Complex Workflows

Type /deep-planning in the Agentforce Vibes chat to invoke a structured four-step approach for complex tasks:

 

  • Scan: Agent scans your codebase for relevant context and existing patterns.
  • Clarify: Agent asks targeted questions before writing any code.
  • Plan: A comprehensive implementation plan is generated for your review.
  • Execute: Task launches with all context loaded. A persistent Focus Chain keeps the agent on target across context resets.

2. MCP Auto-Approval & Performance

  • Auto-approved: All read-only Salesforce DX MCP server tools, no more prompts for safe queries.
  • Still requires approval: All write operations, insert, update, delete, and deploy.
  • Performance: Toggling auto-approve no longer triggers server reconnections.
  • UX: MCP tab renamed from “Installed” to “Configure”.

Salesforce CLI Updates

Spring ’26 adds three notable CLI improvements: unified logic testing, package source retrieval, and quality-of-life improvements for login timeouts and test polling.

 

Data 360 Monthly Updates

Data 360 ships on a monthly cadence. The headline addition for developers in this release is the new ConnectApi.CDPQuery methods for querying data graphs directly from Apex.

 

API Updates

1. Named Query API: Generally Available

Define and expose custom SOQL queries as versioned, reusable REST endpoints. Named Query APIs are faster and more efficient than equivalent Flow or Apex processes. Once defined, they are callable as standard REST resources.

 

 

2. Session IDs in Outbound Messages: Removed

Session IDs can no longer be sent in outbound messages as of February 16, 2026. Audit Setup > Integrations > Outbound Messages. Update all outbound message subscribers to authenticate using OAuth instead of reading a session ID from the message payload.

Security: Three Mandatory Changes

Spring ’26 brings three mandatory security changes. These are not optional improvements. Every Salesforce development team needs to review and act on each one.

1. External Client Apps Replace Connected Apps

Creating new Connected Apps is disabled by default for all orgs. Existing Connected Apps continue to work normally, and nothing breaks immediately. But all new integrations must now use External Client Apps (ECA).

DimensionConnected Apps (Legacy)External Client Apps (New)
Create newDisabled by defaultFully supported
Existing appsContinue workingMigration target, plan your timeline
2GP packagingLimited supportFull support
Migration pathApp Manager > Migrate to ECAOriginal becomes read-only post-migration

 

2. Triple DES SAML Retirement

SAML SSO using Triple DES will stop functioning entirely in Summer ’26. Find affected configs at Setup > Identity > Single Sign-On Settings, look for ‘Triple DES’ in the algorithm column. Migrate to AES-128 or AES-256 now. User lockouts at the deadline require emergency Salesforce Support.

3. Session ID in Outbound Messages: Already Removed

If you have any outbound messages still attempting to send session IDs, they are already failing. Audit and update the OAuth authentication immediately. See Section 8.2 for details.

Quick Reference, All Spring ’26 Features

FeatureAreaStatusAction Required
lwc:on, dynamic event listenersLWCGA · API v66Available now, use freely
GraphQL executeMutationLWCGA · API v66Upgrade to API v66 in sf-project.json
@salesforce/lightning-types TypeScriptLWCDev Betanpm install --save-dev @salesforce/lightning-types
Complex Template ExpressionsLWCBetaSandbox first, enable Beta in Setup
standard__flow PageReferenceLWCGAAvailable now
Error ConsoleLWCGASetup > User Interface > Advanced Settings
Apex Cursors + PaginationCursorApexGA · API v66Available now, no config needed
RunRelevantTestsApex / DeployBeta--test-level RunRelevantTests in CLI
Picklist values by record typeApexGAConnectApi.RecordUi.getPicklistValuesByRecordType()
Blob.toPdf() new engineApexGA (Summer '26 enforced)Test in sandbox, check font rendering
Agentforce Builder (Canvas + Script)AgentforceBetaEnable Beta in Setup
Agent Script DSLAgentforceBetaInstall Agent Script VS Code extension
Agent GridAgentforceBetaAvailable in the Agentforce app
Named Query APIAPIGASetup > Integrations > Named Query API
External Client AppsSecurityMANDATORYUse for all new integrations now
Triple DES SAML retirementSecurityDeadline Summer '26Migrate to AES-128 or AES-256 now
Session IDs in outbound messagesSecurityREMOVED Feb 16Switch to OAuth immediately

 

 

FAQs

Three waves: January 16, February 13, and February 20, 2026. Sandbox preview began January 9–10. A pre-release Developer Edition has been available since December 18, 2025. Check status.salesforce.com for your specific instance date.

API version 66.0. Features requiring v66+: Apex Cursors (GA), GraphQL executeMutation, the lwc:on directive, and RunRelevantTests. Update sf-project.json to “sourceApiVersion”: “66.0” and verify your integrations are compatible.

Database.Cursor is for background async processing, up to 50M records, 10K instances/day, ideal for Queueable chaining. Database.PaginationCursor is for user-facing pagination, up to 100K records, 200K instances/day, consistent page sizes, designed for LWC @AuraEnabled integration.

No, existing Connected Apps continue working normally. What changes is that you can no longer create new ones without contacting Salesforce Support. Plan migration in your own timeline. Migration: App Manager > your Connected App > dropdown > ‘Migrate to External Client App’.

A new DSL (Beta) that combines natural language instructions with deterministic constructs like if-else and variable bindings. Unlike freeform system prompts, Agent Script is version-controllable, diffable, and produces more predictable agent behavior.

Summer ’26. Any SAML SSO config using Triple DES stops working entirely at that point. Lockouts at the deadline require emergency Salesforce Support. Migrate to AES-128 or AES-256 now, check Setup > Identity > Single Sign-On Settings.


0


Leave a Reply

Your email address will not be published. Required fields are marked *