Check out all the enhancements you can look forward to with the Spring ’22 release!
External Services is a feature of the Salesforce Platform that empowers customers to connect Salesforce to external business actions and build process integrations without writing custom code.
https://unofficialsf.com/wp-content/uploads/2020/05/USFlogo2-300x111.png00Andrea Guzmanhttps://unofficialsf.com/wp-content/uploads/2020/05/USFlogo2-300x111.pngAndrea Guzman2022-02-04 15:49:292022-02-04 15:49:32Learn MOAR in Spring ’22 with OpenAPI 3.0 Support for External Services
UnofficialSF.com has added a new section devoted to Service Cloud channel functionality, which is increasingly driven by flow-based services.
Check it out here. If you know of a good post or page on the topic, don’t hesitate to let us know via the form on the home page.
https://unofficialsf.com/wp-content/uploads/2020/05/USFlogo2-300x111.png00Alex Edelsteinhttps://unofficialsf.com/wp-content/uploads/2020/05/USFlogo2-300x111.pngAlex Edelstein2022-01-20 16:34:202022-01-28 08:46:40UnofficialSF has a new Service Cloud Channels Section
Check out some of the changes and enhancements to External Services in the Winter ’22 release – supporting even larger API spec sizes (4MB!) and improving the registration workflow with rescoped limits!
Import MuleSoft Anypoint Platform APIs via External Services
Import your MuleSoft Anypoint Platform APIs in a few clicks. Previously, you needed to manually export your Open API 2.0 specifications from MuleSoft and import them into an external service. Now, all you need to do is select your MuleSoft Name Credentials and let Salesforce do the heavy lifting of importing your endpoints and converting them into actions.
Revised and Expanded Operation, Action, and Object Limits
You can register even more complex, publicly available API specifications. Most registration limits have been rescoped from a per API spec limitation to a per org limitation, and have been expanded.
Map Non-Standard Media Types in Your Registration
A Salesforce administrator, developer, or ISV can edit the compatible media type mappings in an external service registration for OpenAPI specifications with unknown or non-standard request or response media types.
For Winter ’22, we’ve provided a workaround. With the Metadata API, you can manipulate a registration and override the definition of the custom header.
External Services in Einstein Bot Builder
Add an external service’s action to your bot from the Bot Builder. Previously, you could only add an external service’s action to your bot via a flow.
Check out the announcement regarding all the improvements shipping in the Summer ’21 release!
#LearnMOAR about enhancements to external services in Summer '21. ⬇️
Now you can seamlessly integrate with even more third party platforms and build upon their published #APIs without having to manually edit input specifications before registering. https://t.co/e9p7Yrmqst
— Salesforce Developers (@SalesforceDevs) May 18, 2021
https://unofficialsf.com/wp-content/uploads/2020/05/USFlogo2-300x111.png00Alex Edelsteinhttps://unofficialsf.com/wp-content/uploads/2020/05/USFlogo2-300x111.pngAlex Edelstein2021-05-03 06:48:472021-05-03 06:48:52From SFDC Panther: New Intro Video to External Services
https://unofficialsf.com/wp-content/uploads/2020/05/USFlogo2-300x111.png00Alex Edelsteinhttps://unofficialsf.com/wp-content/uploads/2020/05/USFlogo2-300x111.pngAlex Edelstein2020-10-07 12:21:022020-10-07 12:21:03From Narender Singh: External Services: Set up Named Credentials for OAuth 2.0
Here’s an example of a set of AWS endpoints that have been successfully ingested as External Service Registrations
In the above example, I ingested the specification for the AWS API Gateway service. I found it at Apis.guru, a useful online library.
External Service recently extended the size of the specifications that can be ingested from 100k to 1megabyte. That was critical to enabling the above ingestion example, because it is about 700k in size.
There are other AWS specs that are larger than 1megabyte. For example, the AWS EC2 spec is 2.4 megabytes, and can’t be ingested as-is. However, it’s definitely possible to carve pieces of them out. It can be tricky because different parts of the spec depend on other parts. But usually, for a given service, there’s an 80/20 rule, and a small number of API’s carry most of the load. Salesforce does intend to increase the size of ingestable specifications.
Authorization Headers in AWS Specs
Salesforce External Services recently added support for Authorization Headers in its processing of Open API Specifications. AWS uses Authorization Headers extensively in its apis. Take as an example the DeleteApiKey api from above. In the specification you’ll find a listing of a bunch of authorization-related input parameters:
Like all input parameters, these then show up in the property editor of the resulting invocable action:
Note that in the spec above, these are defined as ‘components’. Further down, the ‘components’ section of the spec informs External Services that these are intended to be used as headers:
The invocable action code generated as part of the external service registration will take the inputs provided to the invocable action and form them into headers for the resulting callouts.
https://unofficialsf.com/wp-content/uploads/2020/05/USFlogo2-300x111.png00Alex Edelsteinhttps://unofficialsf.com/wp-content/uploads/2020/05/USFlogo2-300x111.pngAlex Edelstein2020-03-24 20:08:412020-03-24 20:08:42Learn about Apex-Defined Types: the Glue between External Services and Flow
Oftentimes the biggest obstacle to integrating Salesforce with an External Service is the first step: configuring secure designated access to that service. Below are step-by-step instructions on using OAuth 2.0 to grant Salesforce the ability to post a message in Slack:
[Slack] App & App Credentials
Tell Slack about the Salesforce app that will need access your Slack workspace, and that it needs permissions to write messages.
1.Log into Slack as the administrator of the workspace you want to integrate with Salesforce.
2. In the Apps page, click on “App Directory” in the upper right hand corner.
3. In the App Directory, click on “Build” in the upper right hand corner, which should take you to api.slack.com.
4. Click on “Start Building”.
5. In the “Create a Slack App” modal:
a. App Name: enter an app name
b. Development Slack Workspace: select the workspace you want to Salesforce to access
c. Click “Create App”
6. Modal will close, and you will see the Settings -> Basic Information page for your newly configured app. In the “Building Apps for Slack” section, under “Add features and functionality”, click “Permissions”.
7. In the Features -> OAuth & Permissions page, scroll down to the “Scopes” section. For Bot Token Scopes, click “Add an OAuth Scope”, and choose “chat:write”.
8. Scroll up to the “OAuth Tokens & Redirect URLs” section, and click “Install App to Workspace”.
9. Click “Allow” to confirm you want this app to access your Slack workspace.
[Slack] Client ID and Secret
Retrieve the shared secret that Salesforce needs to use to access Slack:
10. In the Settings -> Basic Information page for your app in Slack, scroll down to the “App Credentials” section, and copy the values for the “Client ID” and “Client Secret” fields.
[Salesforce] Auth. Provider
Configure Salesforce to request access to Slack using the shared secret:
11. Log into Salesforce as an administrator for your org.
12. In the Setup -> Auth. Providers page, click “New” to configure a new auth. provider.
13. Configure the new Auth. Provider as follows:
a. Provider Type: Open ID Connect
b. Name: (choose a name for the Auth Provider)
c. URL Suffix: (choose a suffix to be used in client configuration URLs)
d. Consumer Key: (paste in the Client ID from step #10 above)
e. Consumer Secret: (paste in the Client Secret from step #10 above)