ArcGIS Blog

Developers

ArcGIS

Integrating Salesforce and ArcGIS

By Russell Sands

When constituents apply for permits, governments need the ability to engage with the applicant, understand where activity will occur, see what is located or planned nearby, identify the regulations that apply there, and route approvals to the right people. When a sales rep plans their day, they need to identify their hottest leads, track customer engagement, compare how sales and leads to the total addressable market in an area, and prioritize activity in neighborhoods where their product will sell best. To do this work in a timely and accurate way requires integrating customer relationship management (CRM) and GIS systems.

If you use Salesforce today and need to get the most out of your Salesforce and ArcGIS systems, this post is for you. This post will provides a high-level overview of the successful patterns for integrating Salesforce and ArcGIS. You will find options for Salesforce users and ArcGIS users, options for software or developer focused approaches, and options for desktop and field workflows.

 

Integrating ArcGIS with Salesforce

Embed your ArcGIS applications in Salesforce

The easiest way to integrate your existing ArcGIS content to Salesforce is to directly embed it on a Salesforce page. Directly embedding applications into Salesforce eliminates an “extra step” for Salesforce users. Embedding an existing application also delivers immediate value with minimal effort from your Salesforce and ArcGIS teams.

A common requirement when embedding ArcGIS applications in Salesforce is for the embedded application to be “responsive”. Many ArcGIS applications like Dashboards, Experience Builder, and Instant Apps support URL parameters that make this possible by controlling the behavior of your application when it loads. URL parameters can set filters, change the center or zoom level of the map, add markers, and modify layer visibility.

And with a some effort, you can append information from a Salesforce record to an ArcGIS app’s URL when a page loads. This data can be categorical data, location information, and other record details from Salesforce. By adding this data as URL parameters, your application will open up zoomed to the right location with the right data displayed. In the example below, a lease manager can view available space on a map, run reports, and make changes to features using a configurable ArcGIS application embedded into Salesforce. When a record is opened, the map zooms to the record’s address, adding a marker at the geocoded location.

an ArcGIS configurable app is embedded directly in to a salesforce page

Use Salesforce Maps to view ArcGIS data

If your organization uses ArcGIS Online, Salesforce Maps is an excellent tool for exposing existing ArcGIS data to Salesforce users. Salesforce Maps allows users to display layers from ArcGIS Online side by side with Salesforce records.

With their ArcGIS Online account, Salesforce Maps users can access secure ArcGIS data and subscriber or premium layers from the ArcGIS Living Atlas. These layers can fill in the space between Salesforce records to show total addressable market, reveal where people in your top customer profiles live, and reveal suitable areas for grant or other programs.

a screenshot of salesforce maps. the map shows account records and ArcGIS data layers
ArcGIS Online layers add context to data displayed in Salesforce Maps

Develop Lightning Web Components in Salesforce

When you need to deliver ArcGIS content and services to Salesforce users and embedded ArcGIS applications or Salesforce Maps do not meet your needs, consider developing a Lightning Web Component (LWC). LWCs allow developers to build reusable Salesforce components using a lightweight framework and a component library for building components that look and feel “like Salesforce”.

With LWCs, developers canto spatially enable Salesforce pages by directly interacting with ArcGIS content and services through ArcGIS REST APIs. For developers who are new to ArcGIS, ArcGIS REST JS can reduce the effort required to build these interactions.

In the screenshot below, an LWC adds hyper-local demographic and market data to a Salesforce account page by calling the ArcGIS GeoEnrichment Service from ArcGIS Location Platform. When the page loads, the LWC sends the account’s location to the ArcGIS GeoEnrichment Service and receives enriched data in return. The LWC displays this data in a table that looks “just like Salesforce” the end-user.

a salesforce lightning web component displays data from the geo enrichment service on a salesforce account page

Integrating Salesforce with ArcGIS

Access Salesforce Records in ArcGIS with a Custom Data Feed

Does your use case for integrating Salesforce and ArcGIS Enterprise involve displaying Salesforce records in ArcGIS Enterprise maps and apps? If so, Custom Data Feeds (CDFs) are one option to integrate Salesforce and ArcGIS you should consider. Released with ArcGIS Enterprise 11.1, a CDF allows organizations to access data from sources that are not supported out-of-the-box by ArcGIS Enterprise as a read-only feature layer.

Custom Data Feeds are part of the ArcGIS Enterprise SDK. Creating a CDF requires development effort, knowledge of JavaScript, and access to ArcGIS Server as an administrator. There are two general steps to creating a CDF. First, a developer must author a CDF provider. The CDF provider must request data from Salesforce and transform it into GeoJSON. Next, an ArcGIS Server administrator uploads the CDF provider to ArcGIS Server and publishes it. After publishing, the Salesforce records are available as a read-only Feature Layer to ArcGIS Enterprise.

To learn know more about creating a CDF, refer to the Custom Data Feed walkthrough in the documentation.

Extract, transform, and load (ETL) data

Many integrations between Salesforce and ArcGIS are all about data. Whether you need to integrate data on a scheduled basis or in real time there are several software and developer options which make defining your ETL workflow easy.

Software solutions like the ArcGIS Data Interoperability extension allow for defining and scheduling ETL workflows. In Microsoft’s Power Automate the ArcGIS and Salesforce connectors allow you to define flows that can keep changing data in sync.

For developers there are even more options. The ArcGIS API for Python allows you to work with Salesforce REST APIs to author notebooks that ETL data. These notebooks can then be run ad hoc, on a schedule, or shared to users as web tools. For event driven ETL of data, developers can use Webhooks in ArcGIS, and Apex triggers in Salesforce.

Be on the lookout for opportunities to create virtuous cycles where data can flow in both directions. For example, an insurance company may initially ETL customer data from Salesforce to ArcGIS to perform real-time analytics. This may involve identifying the cars, homes, and businesses are in the path of weather events. The impacts can then be summarized in an ArcGIS Dashboards or ArcGIS Experience builder application. The insurance company can also ETL potentially impacted customers IDs back to Salesforce. This information can then be used to generate targeted outreach campaigns with information on risk mitigation and how to file a claim if a loss occurs.

a diagram shows how the data interoperability extension and a python notebook power a dashboard

Other integration options

Use deep links for mobile workflows

Integration between Salesforce and ArcGIS is not limited to desk work. Field workers need to complete work that requires interacting with both Salesforce and ArcGIS data. For example, a worker may receive daily work assignments in Salesforce Field Service (SFS). The worker must navigate to an address, then locate and service a specific asset. Once on site the worker can use a deep link to open ArcGIS Field Maps from SFS. In ArcGIS Field Maps, the worker can quickly find the exact location of the asset that needs servicing.

Deep links reduce the number of times field workers need to manually switch contexts and can reduce user errors. Deep links allow you to do things like:

  • A user in SFS clicks a link that opens ArcGIS Field Maps at a specific location or address, creating a new record on the map with prepopulated data.
  • A user in ArcGIS Field Maps uses a deep link to create a work order in SFS. The deep link passes information like the feature ID from the map to a new work order.
  • A user in receives a work order for an asset located along a private road. With a deep link from SFS to ArcGIS Navigator, the user receives turn by turn directions to the the asset.
A deep link integrates ArcGIS Field Maps with Salesforce Field Service

Develop a Custom Application

Most organizations prefer configurable or low code solutions. However, there are scenarios where building a custom application may be the best fit for you. When you develop a custom application, there is a wide menu of options available to you. As a developer, the Salesforce REST APIs and Esri’s ArcGIS APIs and SDKs allow you to build desktop, web, or native applications specifically tailored to their end users.

When developing a custom web application, choosing a design system is an important step of understanding your end users. If your end users typically use ArcGIS web applications, consider using the Calcite Design System and ArcGIS Components. These reusable elements make your application look and feel like the ArcGIS applications those users interact with every day. For Salesforce users, the Lightning Design System provides the same opportunity to make those users feel at home.

Be aware – developing a custom application requires more effort and incurs more technical debt than any other option outlined in this post. As a best practice, exhaust all options that leverage configurable applications as well as all any options to extend existing solutions before committing to building a custom solution. Exercise this option only if your use case requires a bespoke experience that cannot be delivered through lower-effort approaches.

Final thoughts

The integration patterns in outlined in this post are a starting point. They include proven patterns your organization can use when integrating Salesforce and ArcGIS. As you move from ideas to action, here are three additional things to keep in mind:

Work with your Salesforce team

Integrating ArcGIS with another system requires access – often as an administrator – to the system you want to integrate with. Integrating Salesforce and ArcGIS typically requires updating permission or other configurations in Salesforce. Identify and reach out to the person or group in your organization who manages your Salesforce instance. Working closely with your Salesforce administrator and being clear about your objectives is the first step to the success of your project.

 Consider authentication from the beginning

When integrating Salesforce and ArcGIS your end users will need access to secure resources in both systems. Your end users will typically need two named user accounts, one for accessing Salesforce and one for accessing ArcGIS. While this may present challenges, authentication does not need to be painful for your end users. For example, configuring Salesforce and ArcGIS with the same identity provider significantly improves the authentication experience for end users. Consider how you will authenticate users from the beginning in order to avoid pitfalls during implementation.

Reach out when you need help

There are many ways to access help as you integrate Salesforce and ArcGIS. You can engage with your peers in the Esri Community, take advantage of an Esri partner solution, consult with a partner service provider or Esri Professional Services, or engage with your solution engineer. When you’re ready to get started, reach out!

More information

Looking for more? If there are other systems you would like to learn more about integrating with ArcGIS, or if you’d like a follow up post diving deeper into one of the patterns let us know in the comments.

Share this article

Subscribe
Notify of
0 Comments
Oldest
Newest
Inline Feedbacks
View all comments