Salesforce Integration Options — A Five Minute Overview

Salesforce is a widely adopted platform, and many businesses often need to integrate it with other components of their IT ecosystem.

The integration options for Salesforce vary depending on the specific business requirements, technical scenarios, and the complexity of the integration.
This post provides an overview of the most popular Salesforce integration methods, along with the pros and cons of each approach.

Using API to Salesforce

Salesforce offers a powerful REST API that can be used for create, retrieve, update, and delete on objects.

While it has unique characteristics — such as a custom query language for object selection SOQL (Salesforce Object Query Language) — differentiating it from a typical REST API, it offers flexible and efficient inbound (i.e. externally initiated) integration.

There are (as usual) a few considerations:

  • Salesforce API is not available in all Salesforce editions, so some of your customers may not have it.
  • Calling APIs is subject to governor limits (just like any other operation in Salesforce), and requires a careful design & implementation, esp. when synchronizing large volumes of data.
  • Selecting unique ids for keeping track of what was synchronized or not may be an issue: Salesforce object ids are unique; however, they are not globally unique (i.e. vary from one Salesforce instance to another). Other fields like names are not unique and cannot be relied upon, unless a custom external id field is created (this however requires changes on customer’s Salesforce instance).

Important

One important (and very often overlooked) feature of the Salesforce API is that it enables calling APEX methods from REST (see this post). This simplifies transaction management by replacing multiple REST calls by a single API call to custom code handling all the processing logic.

Calling your API from Salesforce

Outbound communication (from Salesforce to your service) is possible using APEX (Salesforce back-end programming language) REST callouts.

The challenge is that this requires changes to customer instance such as deploying your classes and modifying objects structure on the Salesforce side (at a minimum keeping track of unique ids of corresponding objects of the system being integrated).
This makes it suitable for one-off projects, unless distributed as a package (see below).

Third-Party Apps

Many popular vendors, such as LinkedIn, MailChimp, Box, RingCentral, and others, offer their services directly within Salesforce through add-on apps available on Salesforce AppExchange. In addition to providing out-of-the-box functionality, these packages often include Apex classes and UI components that can be reused for custom integrations.

Salesforce Connect

Salesforce Connect is an add-on that enables seamless access to external data within Salesforce without requiring the data to be copied into your organization. Instead, Salesforce Connect retrieves the data on demand, making it available in real-time. Although the data resides outside of your Salesforce org, it appears as local records and can be used in Apex, SOSL, SOQL queries, and Salesforce APIs just like native Salesforce objects and records.

Salesforce Connect is ideal for scenarios that require real-time access to large volumes of external data. However, it’s important to note that it supports only inbound integration (i.e., data integration into Salesforce).

Salesforce Data Loader and ETL Tools

Salesforce Data Loader and ETL tools like Talend, Apache NiFi, and Pentaho are well suited for bi-directional integration focused on data transfers between Salesforce and external systems. Advanced ETL tools offer capabilities for batch synchronization, scheduling, and even complex data transformation rules, enabling efficient and automated data transfers.

Heroku Connect

Heroku Connect is an add-on that mirrors Salesforce objects and records as tables and rows in a Postgres database. It synchronizes data both ways between a Salesforce org storage and Postgres database, allowing interacting with Salesforce data using SQL.

ODBC Drivers and Database Emulation

In addition to Heroku, there are other tools that can mirror Salesforce as a database. For example, CDATA and Skyvia can mirror Salesforce in a Microsoft SQL Server database.

ODBC drivers are also available, allowing querying of Salesforce data using SQL syntax and ODBC-compatible tools.
Database mirroring reduces the overhead on API calls and is ideal when the same Salesforce data is frequently queried. On the other hand, ODBC drivers provide real-time access and are better suited for infrequent or smaller queries.

Platform Events

Platform Events and Change Data Capture (CDC) are relatively new features in the Salesforce platform that enable real-time, event-driven integration. Platform Events are asynchronous notifications that indicate an event has occurred in Salesforce. These events can be streamed to other systems in real-time, such as Apache Kafka, for further processing and integration.

Change Data Capture (CDC) is a specific type of Platform Event that focuses on data changes, such as an opportunity being marked as “closed-won” or a contact record being updated. This allows external systems to stay synchronized with Salesforce data changes in real-time.

Summary

The optimal Salesforce integration approach depends on several factors, including business requirements, technical scenarios, API limitations, and the existing IT infrastructure.

At Nexteris, we have extensive experience in integrating Salesforce with various systems—from simple API calls to developing full-scale AppExchange applications.

Contact us today to find out how we can help you!