August 4, 2020
In this article, you can find a general description of Salesforce APIs, which APIs you can use in Skyvia and when. You can also find useful information about Skyvia's support of Salesforce Professional edition.
Being a leader of SaaS CRM solutions, Salesforce provides powerful APIs that allow flexible data management, integration with other systems, etc. In fact, Salesforce provides a number of different APIs for different use cases:
SOAP API – the first introduced synchronous API for creating, retrieving, updating, or deleting records, performing searches, executing SOQL, etc., using SOAP web services protocol.
REST API – synchronous API for creating, reading, updating, searching, and deleting records, etc., using REST protocol.
Bulk API – asynchronous REST-based API for managing large sets of data with large batches processed in background.
Chatter API – REST API to work with Chatter feeds, users, groups, and followers, etc.
Metadata API – SOAP-based asynchronous API to retrieve or modify metadata customization of a Salesforce org.
Streaming API – asynchronous API for near-real-time streams of data based on changes in Salesforce records, using Bayeux protocol.
Apex APIs, Tooling API, Analytics API, and others.
Skyvia uses Salesforce SOAP and Bulk APIs from the above-mentioned list. That is why in our article we consider these two APIs and differences between them in more details.
Both SOAP API and Bulk API have the same purpose: they are used for Salesforce data retrieving and modifying – creating, updating and deleting records. However, there are big differences between them.
SOAP API is based on SOAP WSDL protocol. It uses XML format for loaded data and synchronous processing. This API was the first API introduced in Salesforce, and it offers more flexible functionality. It is optimized for real-time client applications that update a few records at a time.
Bulk API uses REST protocol and allows XML, JSON, and CSV data format. This API is more limited (for example, some SOQL features, like subqueries, SUM, ROLLUP, or COUNT, are not supported), and it is optimized for loading large volumes of data. Bulk API is asynchronous, it allows sending batches of records to Salesforce, and then these batches are processed in the background.
Being optimized for large data volumes, Bulk API allows larger record batches. While SOAP API retrieves data in batches of up to 2,000 records (or up to 200 records, if two or more custom fields of type long text are selected), Bulk API allows batches of up to 10,000 records.
Bulk API batches have the same record count limit for both querying and loading data to Salesforce. SOAP API batches, however, are always limited to 200 records when loading data to Salesforce.
We have performed performance testing and found out that using Bulk API for reading data does not provide a noticeable performance gain in our case, that is why we do not use Bulk API for reading data. Loading data to Salesforce is, however, more efficient with Bulk API than with SOAP API, especially for large data volumes. So, by default, Skyvia uses SOAP API to get data from Salesforce, and Bulk API – to load data to Salesforce.
Skyvia has its own limits when loading data to Salesforce. It limits Bulk API batches to 5,000, and even this theoretical limit is rarely reached. When loading data to Salesforce, batch size depends on the number and types of loaded fields and other factors, and batches are usually shorter.
If you are interested in how Skyvia uses Salesforce APIs in details, you can find a more detailed information in our documentation.
Salesforce provides APIs in the following editions: Enterprise, Unlimited, and Developer. API can also be enabled for the Professional edition for an additional fee by contacting your Salesforce Account Executive.
However, even if APIs are not enabled for a Professional Salesforce edition, a Salesforce partner application can use SOAP API or REST API with such org. Skyvia is a Salesforce partner application, and thus, it can be used even with Salesforce Professional org without API enabled.
This, however, is related only to SOAP API. Bulk API cannot be used for such an org.
To workaround this problem, Skyvia allows completely disabling Bulk API use when configuring a Salesforce connection. Thus, Skyvia fully supports Salesforce Professional edition orgs. You only need to disable Bulk API use in Salesforce connection settings in Skyvia.
We hope this article has been of use. In case you have any questions regarding Salesforce APIs used by Skyvia, contact our technical support. It is always at hand to help you and give all necessary information.