Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

Integration with Salesforce

Connect Data from


Anywhere for a Unified
View of the Customer
Executive Summary
Most organizations rely on technology from multiple vendors to serve their
customers. But often, these technologies are disconnected from one another;
resulting in internal inefficiencies and broken customer experiences. Integration
is the process of reassembling this far-flung data into a single view. This is typically
addressed at the data layer through an ETL process, but there are three additional
layers of integration to consider. Salesforce enables organizations to build a
single view of their customers by uniting data across four distinct layers of your
application.
Systems Integration:
an Introduction
Why is systems integration necessary?

Today’s customers expect consistent engaging experiences across every touchpoint. But
behind the scenes, organizations rely on a mishmash of disconnected systems to serve
customers and run their business. This leads to a cascade of challenges, which sabotage
employees and break the customer experience.

When systems aren’t integrated, context about the customer becomes dispersed and
duplicated across multiple isolated systems. Employees must then navigate, and often
reauthenticate, between systems to complete basic tasks. These inefficiencies then impact
customers and produce frustrating, inconsistent, and slow experiences.

Integration is the process of reassembling that scattered context and connecting multiple
systems to create cohesive, consistent, and engaging experiences for both employees and
customers. This white paper describes the different ways Salesforce can integrate with external
systems to build a single view of the customer.

How is systems integration typically achieved?

Traditionally, systems integration is addressed at the data layer by ETL:

1. Extracting data from one system


2. Transforming that data to match another system’s format
3. Loading that data into a new system

ETL is an important tactic for integrating disparate systems. However, many integration
projects fail because the integration solution focuses exclusively on the technical mechanics
of moving data from one system to another, but then fails to address how employees and
customers will experience and use those integrations firsthand.
By contrast, successful integration projects envision, upfront, how system integrations will be
experienced by end users. For example, will users be allowed to switch between systems? Will
switching systems require a new login? Will their permissions be respected between systems?
Will data from multiple systems be accessible in a single view? Can actions in one system
automatically trigger responses in another system?

Once the goal is understood, teams can explore the full breadth of integration solutions
available across every system layer.

How does Salesforce address integration?

Salesforce starts with the goal of building a single view of the customer. This view is comprised
of Salesforce data and data from other systems. Furthermore, this view might exist inside of
Salesforce or extend outside of Salesforce.

To help customers achieve this goal, Salesforce integrates with external systems across four
distinct layers:

1. Identity Layer
Extends a single trusted identity across all your apps and devices.
2. Data Layer
Unifies customer context across multiple systems.
3. Process Layer
Coordinates realtime activities and workflows across multiple systems.
4. Presentation Layer
Builds a single view of the customer that is accessible from any device.

Below we’ll explore each of these layers and the solutions Salesforce offers.
Integration at the
Identity Layer
Identity enables systems to recognize an individual employee or customer. This is
frequently accomplished with a unique login, but also extends to the unique ID
associated with the user’s account. When systems do not share identity it results in
multiple logins and multiple, often contradictory, records for a single person. This
creates friction as users attempt to switch between systems and manually match
records between systems.

By integrating systems at an identity layer, records from one system can be reliably
associated with records in another system. In addition, shared identity reduces the
friction of moving between systems by eliminating redundant logins, and increasing
security through centralized account management. Salesforce provides a solution,
known as Salesforce Identity, that enables you to extend a single trusted identity
across all your apps and devices.

1. active Directory Integration

Many organizations rely on Active Directory to manage their employee logins. Salesforce
enables these organizations to leverage their Active Directory investment by reusing these
identities inside Salesforce. This enables employees to seamlessly authenticate into Salesforce
with their existing credentials. IT departments can then easily manage and monitor these
accounts by continuously synchronizing with their on-premises Active Directory provider, auto-
provisioning accounts based on Active Directory permissions, then create reports to monitor
usage.

More resources
Active Directory Implementation Guide
2. Single Sign-On to Employee apps

Shared identity enables systems to standardize on a single username and password. Once this
centralized account is established, it can be used to seamlessly authenticate into numerous
systems with a single click. Salesforce facilitates this one-click experience by acting as an
identity provider. Salesforce also provides an Employee Community template, known as
“Aloha,” that provides a launchpad employees can use to discover and instantly access the
apps they have access to.

More resources
SSO Implementation Guide, Aloha Template

3. Centralized Customer Identity

Integrated customer identity enables customers to utilize their existing identities while also
connecting those identities to internal customer records used by employees. With External
Identity, Salesforce provides identity services that can be embedded inside an organization’s
customer-facing apps and websites. These plug-in services provide registration, password
resets, social login, and profile management functions. Each of these functions can be
branded and customized to seamlessly blend with existing apps. Furthermore, these customer
identities are fully connected to the customer records in Salesforce and sharable with external
systems.

More resources
External Identity Implementation Guide
Integration at the
Data Layer
Integration at the data layer eliminates the need for users to move between systems.
It does this by automatically moving data through an ETL process from one system
to another. These data transfers can happen on a schedule, by polling a system
for changes, or through a trigger. Data can also be accessed in realtime through
underlying APIs, then surfaced inside another system.

Any time data is moved from one system to another, there arises the risk of conflicts.
For example, if data is simultaneously edited in two systems at the same time, it will
create a mismatch that must be resolved. These challenges are remarkedly tricky to
solve as systems scale, and most integration solutions focus almost exclusively on
managing this process. This explains why, at the conclusion of an integration project,
data might be relocated, but the underlying experience remains largely unimagined
and unaddressed.

An alternative to data duplication is realtime access through an API. In this scenario,


a user might be interacting with System A, but interacting with data from System B.
To facilitate this experience, System A is making a realtime API call to System B when
the data is required. Data is never stored or duplicated in System A, but rather passes
through as needed. Doing this dramatically reduces the risk of using outdated or
out-of-sync data, but also introduces a bit more latency into the transaction, since it
involves an extra conversation between systems behind the scenes.

Regardless of which data integration approach you use, Salesforce has a number
of solutions.
1. Salesforce aPI and (ETL) Integration Partners

Salesforce supports a wide variety of ETL scenarios through its SOAP and REST APIs. These
APIs provide full programmatic access to your org’s data. Additionally, there are many ETL
solutions and integration partners that specialize in leveraging Salesforce APIs to transport
data between common systems.

More resources
Salesforce Platform APIs, Trailhead

2. Integrating external data into Salesforce


with Salesforce Connect

A traditional ETL project might involve months of work and a lot of complexity. For employee
apps, Salesforce offers an alternative to a full-scale ETL project with Salesforce Connect.
Using Salesforce Connect, any oData source can be integrated into Salesforce within a few
minutes. Once connected, Salesforce automatically detects the schema based on the oData
specification. The external data is then represented in Salesforce as an External Object.
External Objects are treated much like other Objects in Salesforce. This means the external
data can be viewed, edited, and even used with reporting. The external data is also made
accessible on mobile devices through the Salesforce mobile app. For all intents and purposes,
the external data feels like it is part of Salesforce, even though it is accessed in realtime from
an external system and never duplicated inside of Salesforce.

More resources
Trailhead

3. Synchronizing selected Salesforce data into


a PostgreSQL database with Heroku Connect

Events

META Data

Publish CRM Data Subscribe


Insert
Before Big Objects
Update
After
For developmentDelete
teams that are simply Artificial
lookingIntelligence
for a familiar SQL interface for their Salesforce
data, Salesforce provides Heroku and Heroku Connect. Heroku is a container-based cloud
platform as a service (PaaS). Developers use Heroku to deploy, manage, and scale modern
apps. Heroku Connect gives those developers a fast and easy way to synchronize selected
Salesforce data into a PostgreSQL database. Developers can then use the technologies they
are familiar with to create customer apps that leverage Salesforce data, without worrying about
the messy details of how that data gets synchronized back into Salesforce.

More resources
Information, Documentation
Integration at the
Process Layer
Process layer integration enables you to automatically initiate actions in one system
based on actions from another system. This activity might then cascade across
numerous other systems. Without process integration, employees are required
to manually intervene to coordinate multisystem activities. This is not only a
slow and frustrating experience, but is also error prone. With process integration,
administrators can create automated workflows that coordinate realtime activities
across numerous apps and devices. This increases efficiency and keeps multiple
systems operating in synchronous harmony.

To accomplish process layer integration, systems need a way to share events with one
another. This can be accomplished by configuring one system to directly use another
system’s APIs. However, this results in tight coupling between systems and becomes
fragile and error prone as more and more integrations are added. Each time a new
system is added, the originating system needs to be reconfigured to trigger an
external system. And when external systems change, the originating system needs
to be updated. It can be incredibly challenging to keep a complicated web of tightly
coupled systems running reliably.

A better solution is to establish a centralized event bus that all systems can subscribe
and publish to. In this scenario, one system can publish an event without being
directly aware of the systems that might be “listening” or “reacting” to that event.
Because this is an uncoupled solution, adding or removing systems from the event
subscription requires zero changes to the original system. This makes the entire
solution much more scalable and fault tolerant.

Salesforce offers several solutions for not only publishing and subscribing to events,
but also responding to those events.
1. Publish events from Salesforce to
external systems
Events

META Data

Publish CRM Data Subscribe


Insert
Before Big Objects
Update
After
Delete
Artificial Intelligence

Salesforce enables you to create custom triggers, then attach them to a variety of actions
inside Salesforce. These triggers can then publish those events to external systems using
Salesforce Platform Events. Platform Events simplifies the process of communicating changes
and responding to them without writing complex logic. Platform Events can also be integrated
into a centralized message bus or subscribed to directly from external systems.

More resources
Reference Guide, Developer Guide

2. Respond to external events with Process


Builder
Events

META Data

Publish CRM Data Subscribe

Big Objects

Artificial Intelligence

External systems, apps, and devices can also publish to Salesforce Platform Events to
notify Salesforce of external activities. Once those external events exist in Platform Events,
automated workflows can be created with clicks, not code, using Process Builder. Process
Builder is a tool that allows you to easily automate business processes using a convenient
graphical representation of your process as you build it.

More resources
Trailhead
Integration at the
Presentation Layer
The presentation layer is where users ultimately experience systems integration. The
other integration layers mentioned above establish an underlying foundation that
can be fully experienced at the presentation layer. When systems are integrated at the
presentation layer, divisions between systems disappear. Users are entirely unaware
of where the underlying data resides, and instead experience user interfaces that
present, in one view, all the information and functionality related to their task. This
means that data from one system sits side-by-side, on-screen, with another system.

The presentation layer is where Salesforce fully delivers on the original goal of
building a single view of the customer. There are a variety of strategies to accomplish
this goal. Fundamentally, we think about surfacing Salesforce in external apps and
surfacing external apps inside of Salesforce. We also think about embedding existing
interfaces versus creating brand-new custom apps. Salesforce has solutions for all of
these scenarios.

1. Surfacing Salesforce in external apps

One of the fastest ways to embed Salesforce in an external system or app is to simply
use Lightning Out. Lightning Out embeds the Salesforce interface inside a webview. This
enables Salesforce to sit in the midst of an external app, securely embedded into an existing
view. Parameters can be passed between the external system and Salesforce using parameters
and callbacks.

Alternately, developers can use Heroku to create a custom app using their preferred languages
and technologies. Heroku Connect, mentioned at the data layer, facilitates easy data transfers
between Salesforce and a PostgreSQL database. Heroku provides a scalable cloud-based
infrastructure that fully embraces modern development practices.

More resources
Lightning Out Developer Guide, Heroku

2. Surface external apps inside Salesforce

One strategy for embedding an external system inside Salesforce is to use Canvas. Canvas is
an open-source suite of JavaScript libraries that enables you to embed an external URL inside
the Salesforce interface. Using Canvas, you can display an external system inside an existing
Salesforce view.

Alternately, Lightning App Builder can be used to create new employee apps using a drag-and-
drop library of visual components. These components can utilize external objects, described
at the data layer, as standard and custom Salesforce objects. The impact of this is that
Lightning App Builder makes it incredibly easy to create apps that combine Salesforce data
with data from one or more external systems. Furthermore, these apps are instantly accessible
from mobile devices using the Salesforce mobile app.

More resources
Canvas Developer Guide
Conclusion
Organizations rely on a variety of systems to serve their customers. But the isolated and
disconnected nature of these systems leads to broken experiences for customers and
employees. By integrating these systems, scattered context can be reassembled to create the
consistent, engaging experiences employees and customers expect.

Unfortunately, many integration projects fail because they focus exclusively on the mechanics
of moving data from one system to another. These projects subsequently fail to envision how
these integrations will be experienced by end users, or address system layers outside of the
data layer. This diminishes the impact end users are able to experience.

Successful integration projects fully envision how the integration will be experienced by end
users and integrate across numerous layers to produce seamless experiences. End users
experience these integrations through apps that combine, in one view, data and functionality
from multiple systems. This enables users to ignore the underlying system structures and
focus purely on their objective.

Salesforce provides integration solutions across four distinct system layers. At the identity layer,
this enables organizations to extend a single trusted identity across all their apps and devices.
At the data layer, this enables organizations to unify customer context. At the process layer, it
enables organizations to coordinate realtime activity across multiple systems. And finally, at
the presentation layer, organizations can build a single view of their customers. This empowers
organizations to deliver consistent engaging experiences across every touchpoint.

Next Steps
Learn more about delivering a unified view of the customer through robust APIs and managed
services that let you integrate back-office data systems with your apps and communities.

LEARN MORE

You might also like