Salesforce Integration Patterns and Practices for mortals

Salesforce lives in the cloud, we all know that right. Thanks to Marc Benioff.


But that does not mean it stays isolated. There will be needs to have your Salesforce instance talk to other systems aka integration.


  • Like, when a customer buys stuff you may need to update SAP (think ERP) with the order details.
  • You may need to send a couple of million records into Salesforce from an external system.
  • What about when apps behind a customers firewall need to talk to Salesforce or vice versa.
  • How about Facebook and Twitter integration – as enterprises leverage social media integrating is becoming a must.
  • Have your Salesforce exchange data with Enterprise Mobile apps.


Salesforce crm integration Patterns - AhaApps

Get the idea?


Broadly either you are doing something (read, write, update) INTO Salesforce or you are doing something from Salesforce OUT to an external system.


Here comes the fun part.


Salesforce recommends some best practices to follow to accomplish integration.


What are these best practices and why do you need them? That’s what I’m going to answer in this blog.


Here are the 5 patterns that have been put out by Salesforce:


  1. Remote Process Invocation – Request and Reply
  2. Remote Process Invocation – Fire and Forget
  3. Batch Data Synchronization
  4. Remote Call-in
  5. UI Update Based on Data Changes


Integration can get very complex, sort of like navigating roads in an unfamiliar city. Salesforce doesn’t want you get lost, hence they are giving you a map. So that your journey is smooth.


There are several ways you could navigate your way to the appropriate integration solution. I will try to simplify this as much as possible.


Remember these 2 top-level categories for integration, basically INTO or OUT of Salesforce:


Integration from Salesforce —-> External System

Integration from External System —-> Salesforce


Then there are 2 types of integration and 2 types of Timing you need to keep in mind:


I’ll explain these shortly.


With the top level INTO or OUT of Salesforce in mind and an eye on the type of the integration, you can pick the appropriate pattern as listed in the table.

Salesforce crm integration - AhaApps
Integration from external system - AhaApps

I hope you are hanging in with me. Now, let’s talk a little bit more about the 4 types of integration:


Data Integration patterns are used when you need to keep data in two or more systems in a meaningful state. That is you have some master data and all the systems must adhere to that master data, etc.


Process Integration patterns are used when having a business process that involves two or more applications to complete the task. Let’s just say that these are more complex kind of integrations with involved design, testing and exception handling involved.


Synchronous – Here is how IBM describes Synchronous as…… Blocking or “near-real-time” requests can be defined as “request/response operation, and the result of the process is returned to the caller immediately via this operation.” A simpler way to explain that is, you knock on someone’s door and wait till they open it, simple right?


Asynchronous is the opposite, you knock on someone’s door and don’t care when they open it, you continue riding your bike or doing other mischiefs 🙂


Now that you got these basics down, I’ll discuss the first pattern Remote Process Invocation – Request & Reply in the next blog post.

Partner Logos