Considering Integrations

Salesforce has been a pioneer and continued leader in the “Cloud” industry  The idea of outsourcing your infrastructure to a separate third party company is a part of nearly every company’s IT strategy for both small and large organizations alike.

One thing that has increasingly caught on is the idea of integrating these Cloud based systems with each other and also with any on-premise applications you may have as well.  The concept initially seems foreign to many – how can I get my local application to connect with a system somewhere out there in the cloud?  Is it secure?  Will it be fast enough?  Will I be in control?

The Benefits of Cloud Integration

It’s no secret that silo’d applications create significant duplication of work and potential errors.  If I create a new customer record, it’s not efficient to have to enter the same data in two or possibly more separate systems.  It’s time consuming to type it into multiple places and in addition, there’s chance for human error.  Keeping the data in synch ongoing presents another challenge.  If a customer’s address is changed, then every other system that stores that address will also need to be changed.

Use of disconnected systems also typically means multiple logins and multiple screens which also limit productivity.  Integrations help mitigate these types of problems:

Common systems that are integrated include:

  • Financial system / billing
  • ERP system
  • Service provisioning system
  • Bug tracking system
  • Inventory systems
  • Nearly every sales, service and marketing process touches other departments and applications, in which case you are likely to benefit from an integration.

Common use cases include:

  • The Opportunity in Salesforce.com closed and now we have to “create a new customer.”  The relevant information (which is already stored in Salesforce) is passed directly to the Financial System to create a new customer.  An order is created in the ERP system and a bill generated from the Financial System.
  • A customer service representative would like to see the status of the account as they are fielding a service call for the customer.  As they are handling the case, they can easily look up the latest stats for the customer in the dashboard (without ever having to leave salesforce.com) as well as see the billing status of the customer (from the Financial System).
  • A technical support representative logs a case that is a bug with the software product he/she is supporting.  The bug# is noted in the case.  When the software development organization fixes the bug, the case is automatically updated with the new status of the bug (Fixed in Release version 2.4) and a notification is sent directly to the technical support representative to contact the customer of the change in status.
  • A customer changes their contact information in the customer portal.  Changes are automatically propagated to all systems in real time.  Customer can view all of their information in real-time from the customer portal screens.

There are many other similar examples where system integration increases efficiency, decreases chances of errors and enables teams to scale to meet growth.

Architecture choices

Salesforce provides a number of interface technologies to integrate systems.  When thinking about integrations there are a couple of technical considerations:

  • What are the immediacy requirements?  Does the information need to change in real-time or can it be batch loaded periodically?  An example where you need information immediately is when a customer creates an account on a website and then calls support because they need help immediately.  In this case the customer service agent must have the information in real-time to assist.
  • What is the volume of information exchanged?  Is a significant amount of data required to be exchanged? What types of data will be exchanged (for example large graphics files?)  What are the peak simultaneous transaction rate that the system should be architected to handle?  Larger scale systems obviously have more cost to build.
  • What is the latency of the systems being integrated?  How reliable are the interfaces?   Would any requests likely time out?
  • Does the integration require bi-directionality? Or are the integration points unidirectional?  Who is the requestor and who is the sender?
  • How transactional in nature are the integrations?  Is the integration to provide just informational data or will it be transactional, mission-critical data?
  • What system will be the system of record (sometimes known as the “customer master”).  What systems are allowed to change a piece of data and what happens to maintain data integrity?

Salesforce can be accessed through a number of means, including published REST API’s for real-time access as well as Dataloader for more batch process/data focused integration.  Dataloader can support scheduled loads and can use templates for repeated data loads where the structure will be the same with each load.  The Salesforce API’s can be accessed by code or through middleware technologies such as Jitterbit and informatica which provide third party cloud-based integration technologies that have already-built connectors for the most popular applications. The interfaces are well documented and the technology providers are robust.  You can learn these techniques and applications yourself or get help if you don’t have the time or expertise.

Next Steps

Many companies are taking full advantage of the ability to integrate different systems quickly and easily.  Gone are the days of multi-year integration projects.  Some of these technologies do not require coding experience and even have graphical point and click interfaces to quickly create connections among both hosted and in-house applications.  Integrations are a key way to more automate the business process so that you can scale your business and the technologies and approaches being offered are much easier and more standard than years past.