Salesforce Composite REST API is an innovative feature that enables executing multiple API requests with a
single call. This feature allows users to perform various operations in a single callout, such as read,
create, update, and delete Salesforce data. Additionally, the output of one request can serve as an input to
the subsequent request. A remarkable advantage of Composite API is that all the requests specified are
bundled and processed as one call, reducing the number of API requests and being friendly towards API
limits. Users can leverage Anypoint Connector for Salesforce Composite (Salesforce Composite Connector) to
smoothly integrate with Salesforce Composite API.
MuleSoft's Salesforce Composite Connector streamlines code, lowers network overhead, and boosts the app
performance by using a single REST API call to access multiple distinct Salesforce services. The connection
offers flexible access to Salesforce's composite resources to perform extensive data operations on
Salesforce data. Before being imported into Salesforce, each record is first represented as a sObject. The
records obtained from Salesforce are similarly saved in a sObject variable.
Features of Salesforce Composite Connector
Complex object interactions that would often need many requests to Salesforce when utilizing real-time APIs
can be carried out using the Salesforce Composite Connector included within the Salesforce REST API. In
specific circumstances, this connector can streamline workflows, lower the volume of API calls to SFDC, and
speed up processing. The Salesforce Composite Connector includes the following operations:
- Batch: A batch may carry out up to 25 distinct, unconnected actions in a single call.
Each call runs independently, and no data is passed between them.
- sObject Tree: sObject trees are created with root records of the specified type in one
or more instances. A sObject tree is a group of nested parent-child records with a single root record.
- sObject Collections: The sObject collection resource, which works similarly to batch,
can reduce round trip calls on collections of objects (up to 200), but it necessitates a common
operation (such as creating, updating, retrieving, or deleting a collection of records). In case of a
partial failure, this call includes the ability to specify a rollback behavior.
- Composite: In a single call, this will consecutively carry out a number of operations.
One action's response can be included in another action's input.
Use Case
For example, let's see how the customer-onboarding scenario works, wherein a customer has to fill out the
onboarding form with this data. Primarily, the Account and Contact objects have to be created in Salesforce.
In a conventional method, two API callouts are required to create an Account and Contact using only the
Salesforce Rest API . However, utilizing the Salesforce composite REST API can accomplish both tasks in a
single call. Moreover, the Salesforce composite REST API allows all Rest API series to be counted as a
singular call towards API limits. This approach significantly reduces API usage, a crucial factor when
operating within the Salesforce platform due to the governor limitations on resource consumption.
sObject Tree Using the Salesforce Composite Connector
One or more sObject trees with a root record of the chosen type are created by the sObject tree Salesforce.
It is a group of parent-child records that are nested within one another. There are only 200 records allowed
in total across all trees; five records of a different kind are allowed, and the sObject tree Salesforce can
only go as deep as five levels.
- Conducts operations on numerous records in a single request.
- Lessens the quantity of data sent back and forth between the client and server.
- A single response body contains both the HTTP statuses of the responses and the response bodies.
- The entire request counts as a single call toward API limits.
- Determines if the entire request needs to be rolled back in case of an error.
- Creates objects in the order they're listed.
- If the request body includes objects of more than one type, they are processed in chunks. For instance,
if {account1, account2, contact1, account3} are the incoming objects, the request is processed in three
chunks; a single request can process up to 10 chunks.
Steps to Configure Salesforce Composite Connector
- Add Salesforce Composite Connector from the exchange.
- Here, we are using "Create sObject tree" connector for understanding. Below is the
configuration for sObject tree Salesforce connector :
-
Define the consumer key and secret and create a connected app in Salesforce.
- Go to Setup -> Build -> Create -> Apps -> Create New Connected App.
- Enter all the required information.
- Enable OAuth Settings, enter the call-back URL (if needed), and select Full Access Scope.
- Click on Manage and set Permitted Users as ‘All users may self-authorize’ and IP
Relaxation as
‘Relax IP restrictions.’
- Now get the Consumer ID and Secret from the custom app.
- Use this same key and secret in the Salesforce Composite Connector Configuration.
- Set the username and password to the username and password of the Salesforce Org where the app is
created.
-
Now go back to Anypoint Studio and create a basic flow using the Execute Composite Request connector:
- It is recommended to conduct a test on this operation using Postman. Upon running the application, the
resulting output will include the Salesforce IDs of the newly generated accounts and contacts.
Testing in Postman
- Open Postman.
- Copy and paste the below request body in the body tab and click send.
- A typical response looks as depicted above.
- The response as Account and Contact are created successfully.
Advantages of the Composite Connector over the Salesforce Composite Connector
- Multiple REST API calls for a single call. Good practices to reduce API usage.
- Ability to finish a procedure in a single call, similar to how we must finish several linked activities
in a single call.
- Can easily handle parent-child relationship operation.
- Can handle more complicated and related objects and data structures.
- Appropriate in all or none process circumstances. For example, if we insert an account and all of its
child contact records using solely the Rest API, but contact creation fails due to an error, we are
unable to roll back the account record. In a Salesforce Composite Rest API, it is simple to administer.
Conclusion
The Salesforce Composite Connector from MuleSoft can simplify code and reduce the processing time by
reducing the number of calls to SFDC. Using the Connector, multiple records can be created and updated with
a single request, reducing network overhead and improving app performance. To leverage features of MuleSoft
for seamless developer experience, engage with a reliable MuleSoft Integration
Services provider like Nous
Infosystems.