Salesforce Data Integration Options

Integrating external systems data with Salesforce is a common use case in any Salesforce implementation. Such external systems may provide ERP, Finance, HR or some other critical business functionality. These integrations are needed to seamlessly exchange data between the systems and eliminate manual data reentry and errors. Salesforce provides various options to integrate external systems. While analyzing the integration needs, it is always better to get a holistic picture of how the integrated data fits into overall use of Salesforce. Let’s look at some considerations to review before jumping into integration options.

Technical Considerations

  • Is there a need for real time access to data or will batch update suffice?
  • Do you need bi-directional integration?
  • What methods of integration does the external system support? 
  • What are the security aspects of the supported system?
  • What is the expected volume of data?
  • How many data exchanges need to be made with the external system?
  • How are errors to be handled? How are failed exchanges to be handled?
  • What are the audit requirements around integration?
  • What is the complexity of data mapping & transformations ?
  • What is the technology for integration?

Non-Technical Considerations

  • What is the documentation level of the external system?
  • What is the level of support for the external system ?
  • Is an in-house administrator or developer with expertise on the external system, available for clarifications during the design, development and testing?

Once the above considerations are reviewed in detail and the requirements finalized, you can evaluate the following integration options:

Data Import Wizard

If the integration need is to only ingest some data periodically into Salesforce then Salesforce’s Data Import Wizard is a great simple option. It is a good point and click, Salesforce native tool suitable for occasional data imports. A few points to note about this tool are:

  • While custom objects are supported, all standard objects cannot be imported e.g. objects such as Cases, Opportunities are not supported.
  • Automation is not possible using the data import wizard. So any import has to be done manually when required.
  • This option is only for ingesting data into Salesforce.

Reports

Salesforce reports are a good way to take data out of Salesforce for pushing into external systems. It gives you the flexibility of creating the fields you want in the extract using Salesforce reports. This could also be done by a business user without much support from a technical resource.

Batch Files

This is the most simple yet very flexible approach. It gives you the ability to design the interchange format as per external system requirements and also automate the process. You can decide the frequency based on your integration needs. A few points to note about batch file based integration:

  • From Salesforce side, it can be achieved using Data Loader client application (Free with some editions) or using a cloud based paid tools such as dataloader.io or Jitterbit 
  • The tools give you ability to map the Salesforce fields to the columns in the file being exchanged.
  • You can achieve the actual file exchange using secure channels like sFTP or Dropbox.
  • The file exchange can be automated to run at scheduled intervals so that the whole integration process runs smoothly without human intervention.
  • The method itself is independent of the external system technology so it can be used widely for many types of external systems with varying levels of technical complexity.

Salesforce Connect

If the need is to read external system records in real time then Salesforce Connect is an appropriate choice. A few points to note about Salesforce Connect are:

  • Using this method, the data is not copied between Salesforce and the external system but rather a reference to the external system is available inside Salesforce as an external object. 
  • Salesforce Connect also allows you to write updates back to external systems. The external objects are also available to Apex, SOSL, SOQL queries so you can use them in customization alongside standard and custom Salesforce objects. Salesforce Connect is available as a paid option from Salesforce.

Outbound Message

Sometimes you just need to perform a real time action/notification to the external system on completion of some event in Salesforce e.g. send details about an opportunity to the ERP system on creation of opportunity in Salesforce. If the external system can consume SOAP APIs, then an outbound message notification from Salesforce is a convenient way to perform this integration. The outbound message is available as an action to be used in a workflow rule or an approval process. 

Apex Callout and Apex REST Web Service

If the data/service to be integrated is available as a REST web service and if the external system needs to send some data back to Salesforce in real time, then a REST service based integration approach will have to be used. In this case, external REST web service is invoked using Apex callouts and your Salesforce functionality is exposed using Apex REST web service. Customization is needed on both sides to invoke and consume the specific service and then perform appropriate action using the invoked data. Refer to these links about Invoking Callouts and Exposing Apex Classes as REST APIs to get more details.

Enterprise Application Integration Tools and Middleware

If the external system to be integrated is one of the popular enterprise applications, then chances are that the integration can be simplified by using an Enterprise Application Tool and its pre-built integration templates. Cloud based applications such as One SAAS or Automate.io provide integration between Salesforce and various applications such as Mailchimp, Quickbooks, Shopify. The cost of this option will depend on the acceptable level latency in data synchronization as well as other customization options. If the integration needs are more complex with many systems integrating with each other then a full fledged enterprise integration platform such as Mulesoft or Informatica can be used. It gives more visibility and provides governance using access policies and flexible on-premise and cloud deployment options.

Platform Events

You can connect business processes in Salesforce and external apps through the exchange of real-time event data. Platform Events are part of Salesforce’s enterprise messaging platform. The platform provides an event-driven messaging architecture to enable apps to communicate inside and outside of Salesforce. Salesforce Change Data Capture publishes change events, which represent changes to Salesforce records. Changes include record creation, updates to an existing record, deletion of a record, and undeletion of a record. You can also define custom events that you can publish based on custom logic. This integration option allows real-time integration between Salesforce and external systems provided that the external system is able to consume and/or generate such messages using streaming APIs.

Summary

Method

Effort

Considerations

Data Import Wizard Low
  • Only suitable for occasional ingestion of data for certain objects
Reports Low
  • Only suitable for occasional export of data from Salesforce
Batch Files Medium
  • Can be used with any external system
  • Can work even with high volume or frequency of data sync
  • Requires some oversight to ensure error free synch on ongoing basis
Salesforce Connect Low
  • When total external data size is large but only a small amount of data is needed in real time. Real time data access is a key benefit of this method.
  • All Salesforce features don’t work on External objects so additional steps/customization is needed on Salesforce side to utilize external data. E.g. Formulas and Roll up summaries can’t reference external object
  • Comes with extra cost
Outbound Message Low/Medium
  • Only suitable for notifying external systems about changes in Salesforce side data.
  • Some development required on external system side to consume SOAP message
Apex Callout, REST Web Service High
  • Not for bulk data transfers
  • Can be used if data structure to be exposed is complex
  • Can enable external systems to trigger Salesforce processes live
Enterprise App Integration Tools, Middleware Low/Medium
  • Integration actions tend to be standard and customization may require subscription to higher plan
  • More complex integration will need to be managed as a dedicated integration project.
Platform Events High
  • Real-Time, Asynchronous integration option
  • Salesforce side development is simplified through use of Process Builder, Flows. May require development on the external system side.


Source: Salesforce Documentation

While thinking about your Salesforce Data Integration strategy, don’t go with a one-size-fits-all approach. The business needs and context should drive your integration approach. A blended approach based on the needs of the system may also be appropriate. These options will allow you to pick the right approach for your needs.

 

Team Varasi

Anil Nair
Anil Nair
Anil is a Managing Principal at Varasi. He shares thoughts and insights that help blend technical knowledge with business acumen to build great customer solutions. Anil is passionate about simple ways to achieve customer delight that are easy to understand but difficult to implement.