May 22, 2026 · 23 min read
Summer '26 makes Apex actions easier to configure in Flow Builder. The real opportunity is bigger than nicer inputs: design invocable Apex actions that admins can use safely without memorising your code.
May 16, 2026 · 16 min read
Summer '26 gives Apex readable multiline strings and String.template() interpolation. That is great for JSON payloads, emails, tests, and generated text, but it should not become a dynamic-SOQL injection shortcut.
May 1, 2026 · 16 min read
Summer '26 adds elastic async limits for Queueable and future jobs. The useful bit is not just more headroom, but the ability to shed low-priority work before you hit the wall.
Apr 28, 2026 · 11 min read
Blob.toPdf() keeps the same Apex API, but Summer '26 moves rendering to the Visualforce PDF service, which can change fonts, wrapping, page breaks, and multibyte output.
Apr 25, 2026 · 16 min read
A practical migration guide for replacing WITH SECURITY_ENFORCED with WITH USER_MODE before moving Apex classes to API 67.0.
Apr 22, 2026 · 18 min read
Summer '26 changes Apex defaults in API 67.0: database operations move to user mode, classes default to sharing enforcement, WITH SECURITY_ENFORCED is removed, and triggers stay system mode.
Feb 24, 2026 · 12 min read
GraphQL mutations in API 66.0+ let LWCs create, update, and delete UI API-supported records without Apex for standard CRUD paths.
Feb 23, 2026 · 3 min read
Apex can now fetch all picklist values for a record type directly with ConnectApi.RecordUi.getPicklistValuesByRecordType in API 66.0.
Feb 23, 2026 · 5 min read
RunRelevantTests reduces Apex deployment time by running only tests that are relevant to the components in your deployment payload.
Feb 18, 2026 · 6 min read
I have been using Apex cursors since they became generally available, and this is where they help in day-to-day Salesforce work.