Winter '24 Abridged
- I hate that I have to put this in “Critical” but hypeland is real so: there’s a few early AI products hitting the ground. Biggest winner is service. If you don’t read it, their AI research blog is pretty darn cool. For the major part of Generative AI products, I’m betting on some public releases in 6 months or so at least, due to the fact we all handle CRM data, which is minorly regulated.
- Critical because big change but not severe Contact and Lead home now don’t just display list views, but give you "intelligence" about contacts, which is great if you like the new display (and use Activities…). Service Intelligence is the same concept for cases.
- Einstein Activity Capture can finally get reported on in standard reports and some Email features are now free
- DataWeave in APEX is now live and viewable in the UI. This fundamentally changes best practices for data transformation in APEX.
- APEX Lists now support comparators, also have a new iterator definition, both of which also changes best practice regarding how you compare stuff in APEX. you won’t have to code your own now.
- All customers get Free Maps Lite
- bla MFA enforcement bla, this video is for you if you’re not ready yet.
- In their quest to have as many A records as possible, Salesforce is moving Setup to another domain (and adding more partitionned domains, add it to your allowlists)
- Salesforce changes icons again after fucking up High Contrast mode for all users last release
- Taking a leaf from its own playbook 6 years ago, Salesforce now displays all Objects and fields on a single page for Permission Sets
- QoL updates for Permissions: PermSetGroups now have a recalculate button to help you diagnose mismatched permissions and errors linked to uncompatible perms. You can also report on assignments for both permsets and groups, as well as see in how many PermSetGroups a Permset is used.
- API Name are now visible on PermSets. Maybe one day they’ll even let us search for fields or objects by API Name in the setup, who knows ?
- Dynamic Forms are available on Mobile and most standard Objects (excl Campaigns, Products, and Tasks).
- You can report on AccountShares. You might ask “why accounts”, the reason is “they can’t report on Custom Object Shares and each Object requires work to bring to these reports”. TL;DR enjoy AccountShare reports, don’t expect more
__sharereports to come out the woodwork though.
- Mass Quick Actions on Related Lists are still here (were beta last release, and still only support Create/Edit record for now, will support stuff like Flows later)
- You can now chose who can access a sandbox for when you have proper project governance ~and want to avoid people logging in to change whatever they want because they think it’s a good a idea to delete a field or something because they don’t like it who knows~
- Email Deliverability gets more details, filters for logs and inbound + outbound logging
- Dashboards can now have their ownership transfered which means you don’t need to clone or rebuild dashboards when you realize that user that created them has left the company 5 years ago.
- Quick Actions in Experience Sites
- Service gets Cross-lingual Intent Models but I’m not sure how much I’d invest in Intent building in the current race to LLM-powered chat, though Conversation Mining does solve some of that.
- Omnichannel gets enhanced if you turn it on, gets better ui (**opinions may differ) and better backend, requires you to not use "standard" Channels
- A Release Update prevents redirection between salesforce orgs unless CORS is set
MESSAGING FOR IN APP AND WEB (LiveAgentv4.0)
- Present T&Cs even before Chat has started, also throw LWCs in there, hell start a Chat via API in your JS
- You can collect Secure Information via securized forms in MIAW
- Send Conversation allows you to send Notifications in MIAW (the replacement for LiveAgent), also allows sending messages from records
- Transferring Messages now better, also supports flows
- Flows now have a Transform element, allowing you to cast data to various types, use formulas to transform them, etc. The skill floor is getting higher and higher for Flows, to the point where learning APEX might just be simpler :kekw:
- Reactivity is now out of beta, supports Global Variables, Selections, more Formulas, Display Text in Beta. Make great screens today :D
- You can use wait elements in schedule-triggered flows, autolaunched flows, and orchestrations.
- Flow Screens retain values and also refresh when you revisit or have an error etc. GREAT QoL change.
- Record Triggered Flows now support Custom Error Messages :D to avoid defaulting to the big GACKS.
- Data Cloud Events can now trigger Flows, and Flows can get data from Data Cloud.
- HTTP Callouts now GA.
- Amongst the rare Release Updates that still happen, the user context staying the same after a Flow Resume one is pretty impactful and will be activated this release, if you abused privilege escalation behavior.
- A bug introduced in Winter24 requires you to Remove isAccessToInvokedApexRequired, isFlowApexContextRetired from
Flow.Settingsmetadata if you don’t want deployments using
- DevOrgs no longer support sms authentication, using U2F seems to be the easiest way for devs to go forward if you have tons of orgs.
- External Client App are basically connected apps but packageable and deployable, seem to now be available
- LWC now support Dynamic Imports, which TL;DR lets data drive which component to use. Note the performance overhead indicated in the notes, because…
- The LWC Workspace API allows you to programmatically open, close, refresh, and otherwise modify tabs in a Console environement.
- LWS virtualizes CustomElementRegistry, which ties to your ability to use Third Party Web Components (with heavy limitations, etween ECMAScript exclusions and Experience builder exclusions), but does in fact highlight a future of heavy customizations
- Custom Property Editors now available for non-LWR sites
- Component-Level API Versioning now allows you to have more tech debt instead of properly using release cycles or Release Updates. Bad Admins rejoice.
- Event Monitoring now follows Insufficient Access cases, but only for account, case, contact, and opportunity. Salesforce does love Object-specific development. EM also gets Component Level Monitoring which is nice due to the other releases
- The usual Web Standards changes lead to DOM Structures changing
- CSS scope tokens change formats, querying them now preferable via template refs.
- LWC Offline gets NFC Readability, and Biometrics Integration. As long as we’re about Offline, you can now attach images to records and search for records offline on Mobile.
- You can now set Queuable Max Depth and delay via the new
System.enqueueJob()overload, and also set a Queuable Duplicate Signature allowing you to better avoid eating up all your
- APEX logging is slightly better but you still should use nebula logger
- Events get relays on Hyperforce
- Salesforce Ids don’t change Length but do have minor structure change with serverId going from 2 to 3 characters, taking one of the “previously reserved” characters
- UTAM (Or UI Test Automation Model if you don’t remember every single SF Acronym) gets a few QoL Updates, I’m just re-highlighting that the entire concept exists.
- LWR Sites get defaulted to enhanced because CMS Content is available in Enhanced, get component variations and better visibility rules, admin-suitable css update powers (and better global CSS handling), an action bar, dynamic redirects, better static resource protection. The most interesting one is Record Detail Component coming in - this is the first time I’m sensing a proximity to “hey we might replace all Aura sites soon with LWR”. If you don’t know what all this means “Salesforce has, in roughly a year, built out a brand new Framework that should allow much better Experience management and third-party compatibility thanks to the Web Components standard, and you should see first impact in roughly another 6 months IMO.”
- If you can’t use LWR, you can now still use refreshView via LockerService
- Headless Authentication gets udpates that make it easier to leverage it or set it up
- Domain addition in SF now does more checks with better error messages (but also make adding a domain harder if you don’t know wtf you’re doing)
- DevOps Center now integrates with SF cli
- You write shit html code, it won’t work no more. sadge.
- You write shit http headers, also sadge no more worky.
SALESFORCE D2F COMMERCE
- New Wizards try to simplify your Commerce Setup, which honsetly is useless as 90% of your actual commerce exp will be custom code but whatever.
- This totally secure page allows guest users to use easily-obtainable data to get order detail information, helping pirates everywhere.
- Some SEO Optimizations make it easier to get your storefront and center.
- Automatic Lowest 30 Day Price Display for EU compliance is a nice little addition.
- Salesforce Payments continues to be worked on. I still don’t know why you’d ever use what seems to be meh code which at least partially reimplements Stripe, but walled gardens I guess.
- :doge: Full APEX Autocomplete is getting retired due to its resource intensity. Which begs the question “all that AI stuff they conveniently don’t communicate Resource costs on, are they actually profitable or more VC-backed tech bubbles that are shiny but ultimately as sustainable as Bitcoin?”
- :doge: Salesforce Functions are getting retired less than two full years after release. This isn't critical because I'm guessing no one uses them. Migration path is to Heroku. Customers have already been warned.
- :doge: Visualize Summary Formulas in Reports as you create them sounds great up until you realize they just mean they did a conditional display of a static image in the report builder, and it doesn’t really preview what you’re building to allow sanity checking. At least they didn’t just take the Classic image…
- You know what’d be awesome ? If we constantly saved Flows without telling you and then make it harder to revert to a known previous step by clicking Undo tons of times like on Cookie Clicker
- :doge: Let’s publish a slack feature and retire it less than a year later lol
- :doge: Email Threading now has lightning threading which is literally just refIds but with exclamaiton marks to indicate how awe-inspiring this whole email thread process was.
This abridged version was graciously written up by the SF Discord
We have a nice wiki: https://wiki.sfxd.org/
Join the ~14000 members in the most active chat-based community around Salesforce these parts of the web at http://join.sfxd.org/