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.
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:
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.
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:
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:
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.
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.
|Data Import Wizard||Low||
|Apex Callout, REST Web Service||High||
|Enterprise App Integration Tools, Middleware||Low/Medium||
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.