Integrate to Automate: 10 Best Practices in Salesforce Integration

Written by Jonathan Maher

Originally posted at http://www.salesforcefoundation.org/blog/

Sometimes in higher ed, we’re our own worst enemy — buying multiple point-solution systems that result in data silos, frustrated users who have multiple login credentials, and no holistic view of the student. It makes it pretty tough for a staff or faculty member to obtain a 360° view of a constituent they are serving, or a project they are pursuing. A successful integration strategy should focus on leveraging Salesforce’s robust APIs to integrate data in one location so you can more easily accomplish your goals. The data must be timely, relevant, and actionable. This doesn’t mean it must be real-time, exhaustive, and bi-directional – you will provide significant value by starting with the most relevant data. Below are some key steps to put your integration strategy on a solid foundation.

Verify what data needs to exist in Salesforce

There are a number of compelling reasons data from external systems may need to be moved into Salesforce, as you may need to:

  • Supplement existing records (e.g., appending student data to a Contact record)
  • Leverage Workflow to automate business processes
  • Leverage Salesforce’s analytics
  • Leverage Salesforce’s record and field level security model

However, if you simply need to provide users with supplemental data around Salesforce records (e.g., displaying a student’s class schedule to an admissions advisor), you should consider options that provide visibility without actually storing the data in Salesforce. CanvasVisualforce with an iFrame or Visualforce with Custom Controller all allow for this.

Know your source data, and the people who can get it

A successful integration process will involve significant collaboration with individuals who know both the context of the data and where to source it. For example, of the multiple GPAs your SIS calculates, which is used for Satisfactory Academic Progress by the Financial Aid team? At almost all institutions, this will mean interacting with multiple individuals and will require your Salesforce integration team to develop a strong understanding of the details behind each data element desired.

Decide on a schedule that fits your institution

Real-time, bi-directional integration is often a desired outcome. However, there are legitimate issues that may prevent this:

  • Your institution has multiple SIS systems, so some data is only made available once a day
  • Your SIS doesn’t provide an API
  • You don’t currently have the financial resources

Because of these issues, many institutions will start with a daily batch process, and add real-time updates for data that needs to be immediately reflected in Salesforce.

Configure a Salesforce data model that serves your business needs

You should avoid simply mirroring a source system’s data structure, and instead focus on meeting user needs with as simple a data model as possible. For example, if the Undergrad Admissions team is only concerned with an applicant’s most recently attended high school, you may not need to replicate a model that tracks a history of all high schools attended.

Use Record Types in conjunction with Page Layouts to identify where data is mastered

Unless you have the luxury of a bi-directional integration, there will be some data mastered in your external system; a prospective student’s home address may be updated in Salesforce, but a current student must have their home address updated in the SIS. Using Record Types (e.g., “Salesforce Mastered Contact”, “SIS Mastered Contact”) in conjunction with Page Layouts will allow you to set fields as Read Only when appropriate. You can also use this to hide fields that are only relevant for SIS mastered records (e.g., University GPA only appears on the SIS Mastered Contact layout).

Use Help Text to communicate context to your users

For each field, you have up to 255 characters to help your users understand the context behind a given piece of data. For example, on a “University GPA” field, the Help Text would read “Updated daily from our SIS. Corresponds to the GPA used by Financial Aid for SAP processing.”

Use External IDs

External IDs allow storage of a key on a Salesforce record that can be used to update from an external system. A simple example would be to store a Student ID on a Contact record. It’s possible to get creative with External IDs. If your student information system stores application records that are unique for a given student, term and program you can build an External ID via a Workflow Field Update before the record even exists in the SIS (<> * <> * <>), allowing your users to interact with an application as soon as it is submitted to Salesforce and for that application to later be updated by your SIS.

Leverage your team’s expertise

Even though you may engage an outside company to help with your integration design and implementation, it’s key to leverage the skills you have and plan to develop. Data will have to be manipulated during the integration. Be sure to consider your team’s skillset when deciding where that manipulation should take place: in the source system database, in an ETL tool, or with Workflow and Apex in Salesforce.

Choose a tool to help manage the process

It’s quite possible your institution already invested in an integration tool that provides a Salesforce connector. If not, you have a wide variety of options available, including some tools with free versions that allow scheduled imports to take place (InformaticaJitterbit). Salesforce has a powerful and well-documented API that makes it possible to code your own integration, but it’s rare this approach is cost effective.

Be ready to add data!

In addition to “thank you,” the first thing you can expect to hear from your users will be requests for additional data as they realize all they can accomplish with Salesforce. The good news is this: your integration should now be on a solid foundation, allowing you to add additional data to the process as needed.

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *