“System Integration” – words so scary that most admins immediately start looking for developers, architects and/or anyone brave enough to provide guidance. I was no different when I started out as a junior admin/consultant. However, with time and experience, my outlook changed and I was able to breakdown an integration request into decision points that enabled me to thoughtfully evaluate or execute the work. So, for all you admins out there, here is a guide to the considerations you should take into account when integrating with Salesforce.
The first step usually involves asking the question – is it justified? Just because an integration between systems is possible, or a free integration is available, doesn’t mean you should do it. An unplanned or unjustified integration is usually not as good an idea as it sounds. In order for an integration to be successful and worth putting time, effort and money in, it should be properly planned and thought through. In that sense, not only questioning the motives for your integration, but also anticipating scenarios is essential.
Reasons to integrate?
> Maintain a single source of truth
Is this individual’s contact information up to date? Can I trust the information on this account?
Connecting an external data source to Salesforce always makes sense if you want your data to be trustworthy and reliable.
> Improve work efficiency
So your users don’t have to enter/update information in 2 or more systems. Double keying data equals immediate frustration and can cause poor user adoption.
> Make use of Salesforce reporting
With all your data in Salesforce, you can use Salesforce’s powerful reporting and dashboarding capabilities to make better decisions, thereby taking away the need for collecting analytics from disparate systems.
> Automate business processes
So your users can auto-create a contract and sign and send it to the customer via Docusign as soon as an Opportunity is Won. At the same time, the customer contact can be automatically added to a “Customers” mailing list in your email marketing tool (e.g. Campaign Monitor, Pardot, Mailchimp, Hubspot, etc).
> Improve Data Visibility
Allow your Sales and Business development teams to have visibility into a lead’s activity in Pardot.
When NOT to integrate?
> It’s easy, free or an integration has already been built
Often integrations are lacking in quality and don’t create an effective connection. This creates more work and less reliability in your data. The limitations far outweigh the benefits.
> I want ALL my data to live in Salesforce
You might think that Salesforce offers a lot of storage capacity, but it’s not unlimited. Once you reach the limit, additional storage is super expensive. For example, it might seem like a great idea to store all leads or subscribers from your marketing tools in Salesforce, but the volume of records can build up quickly. You might be better only adding a small number of qualified leads to Salesforce, which could be done manually and therefore an integration isn’t required.
> My data is old. This is the ONLY way to update it!
This is a perfect example of when an integration is not necessary because a one-time mass update might suffice. It’s more cost effective and less time consuming.
So you’ve decided that an integration is the way to go, what next? Here are some considerations and best practices…
> Integration Logs
Whether you’re creating an integration from scratch or purchasing a license for a middleware solution, always make sure that it creates an integration log.
Integration logs are useful for reviewing the state of the integration (success, errors, warnings), debugging errors and understanding historical trends of performance.
> Direction of synchronization
> Would you benefit from a single or bi directional sync?
> During conflict, which system’s data supersedes the other?
> Which factors/fields can help resolve the conflict?
> The answer to all the questions will help you build an effective integration without data corruption.
> Frequency of synchronization
Another important consideration when building an integration is the frequency of synchronization. Typically the options available are real-time, hourly, daily, weekly… Real-time and hourly syncs are popular when users needs real-time information but come at a cost (think: more API calls and more expensive licenses when using middleware tools, etc).
> Understand the data models
Understanding the conditions, requirements and restrictions of a data model on all sides of an integration is important. From the Salesforce side, this means that the integration must take into account considerations such as:
> Every Opportunity must be connected to an account
> Every Contact must have a “Last Name” and every account must have a “Name”
> Salesforce Validation rules prevent records from saving if information is incorrect
> Salesforce automation (Workflow rules, Process Builders, Flows, Triggers) can automatically modify data when records are created, edited or deleted
> Data change
Data can change in many different ways with an integration. The 3 main scenarios to think about are data insert (new data records are created), data update (existing data is edited) and data delete (existing data is deleted). To mitigate the risk of data loss or corruption, the implications of these forms of data change must be considered before an integration is built or configured.
Best Practice #1: Full Sandbox Testing
Always try to test an integration in a Full Sandbox.
Best Practice #2: Dedicated System Admin user account for the Integration
Always create a dedicated user account with a System Administrator profile to allow the integration full access to Salesforce.
Best Practice #3: Perform a data backup
Always perform a data backup before the integration is turned on. Preference should be to invest in a Data Backup and Recovery Tool (Here’s a helpful guide).
Best Practice #4: Automated Notifications when Integration fails
Always configure your integration to notify you and any other admins when it fails.
Examples of Integrations:
- Campaign Monitor
- Marketing Cloud
3rd Party Integration/Middleware Tools
Form Building Tools