Follow and complete a Learn MOAR Summer ’22 trailmix for admins or developers by July 31, 2022, 11:59 pm PT to earn a special community badge and enter for a chance to win one of five $200 USD Salesforce Certification vouchers. Restrictions apply. Learn how to participate and review the Official Rules by visiting the Trailhead Quests page.
When it comes to Salesforce development, automation and integration go hand in hand, which is why we’re excited about the latest updates to the Salesforce APIs. On top of this, External Services has continued to expand as a Salesforce Platform feature, giving customers the ability to automate across multiple systems without having to write custom code. In this blog post, we’ll take a look at all of the new features in External Services, as well as some fantastic API updates, available in the Summer ’22 release.
External Services updates
Using External Services, developers and admins can take a process that sits behind an OpenAPI specification and accelerate the creation of actions that invoke functionality in other systems from within Salesforce. This provides a valuable way to leverage Salesforce process automation tools to automate and integrate anything.
Call External Services natively from Apex
Your external services are now more reusable than ever! With this release, you can call your External Services registered actions directly from Apex. This process is similar to making a callout to an external service with the Apex
Http Class, but without writing boilerplate code. This removes the overhead of having to write an integration multiple times across your org. Previously, External Services registered actions were only available through Flow or Bots.
Using the API spec from a fictional bank web service, the below Apex code highlights the classes that are automatically created when you register the schema in External Services.
Bank Service API spec
Bank Service External Services Registration
Bank Service Apex code
All of the classes you need are automatically created when you register the schema as an External Service. They are also accessible in the External Services setup page in your org. In this example we have the
Update existing schemas connected to Flow
If a registration is in use by a flow or in Apex (bots coming soon!), now you can update it with a new, compatible API specification version. Previously, you couldn’t update a registered schema that was in use by a flow. If the new schema version isn’t compatible, the edit workflow notifies you of which operations and schema objects are in use, by which flows, and by which Apex classes. With this information, you know which existing references are incompatible, so that you can remove them before saving your updated registration.
External Services Edit Screen
There are a number of API updates available in the Summer ‘22 release, including updates to the Bulk API and the User Interface API.
The Bulk APIs have received some great updates that give you more appropriate Apex limits to support large-scale asynchronous workloads, including changing the CPU time limit from 10 seconds to 60 seconds. This will give you the ability to really innovate on the platform with confidence that large scale integrations will be successful.
User Interface API
The User Interface API now has the ability to get record data for a related list or batch of related lists. You can access these via the API directly by sending a post request to
/ui-api/related-list-records/batch/. You can also access these APIs directly from your Lightning Web Components using the new wire adapters for getting related list records and info.
This module includes new wire adapters to get records and metadata for a batch of related lists:
getRelatedListRecordsBatch— returns record data for a batch of related lists
getRelatedListInfoBatch— returns metadata for a batch of related lists
These wire adapters to get records, metadata, and record count for a related list are now generally available:
getRelatedListRecords— returns record data for a related list
getRelatedListInfo— returns metadata for a related list
getRelatedListsInfo— returns metadata for related lists in an object’s default layout
getRelatedListCount— returns the record count for a related list
This example gets a related list list from a record and passes in the
relatedLIstParamaters to the
getRelatedListRecordsBatch wire adapter.
Other Notable Features
- There is now a
401:GONEError Code when a service has been removed or retired.
- The GraphQL API is now in Beta.
- Legacy API Versions 7.0 through 20.0 are now retired.
- Legacy API Versions 21.0 through 30.0 are being retired in Summer ‘23.
Learn MOAR this week
Product Managers and the Developer Relations team are back to share the latest features and functionality in Summer ‘22. To help you develop faster, new content from Developer Relations will cover their favorite new features. Also, be sure to check out Release Readiness Live on Friday, May 20, 2022 at 9:00 a.m. PST. Lastly, keep an eye on the Salesforce Developers blog every day this week for more posts on Summer ’22!
To learn even more, check out the Summer ’22 trailmix.
About the author
Andrea Guzman is the Product Manager for External Services. She works on Salesforce integration products that harness API industry standards to generate declarative building blocks on the Salesforce Platform, empowering developers and admins to build cross-system integrations and workflows. When Andrea is not working, she enjoys traveling, hiking, and playing soccer.
Stephan Chandler-Garcia is a Senior Developer Evangelist at Salesforce. He focuses on application development, security, and Experience Cloud. You can follow him on Twitter @stephanwcg.