> For the complete documentation index, see [llms.txt](https://help.getmobly.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.getmobly.com/help-center/integrations/crm/legacy/salesforce-legacy.md).

# Salesforce + Mobly Integration Guide (Legacy Integration)

## Overview

This guide will help you integrate your Salesforce account with Mobly so leads captured at events via the Mobly app automatically sync into your Salesforce CRM—with context, tags, and engagement logs to support your workflows and reporting.

***

## Contents

[What We'll Need From You](#What-Well-Need-From-You-jAsbC)

[Setup Steps](#Setup-Steps-oqXdw)

[Field Mapping](#Field-Mapping-o_Wv2)

[Tags](#Tags-m18S-)

[Engagement Logging](#Engagement-Logging-nwJUH)

***

## What We’ll Need From You

To get started, please do the following:

* Authenticate the Salesforce + Mobly connection by either:
  * Providing your Salesforce deployment URL, integration user email, and password + security token
  * Connecting using OAuth 2.0
* Creating fields where we can map Mobly specific data

***

## Setup Steps

1. Create or identify a user for integration.
   1. We recommend creating a standard Salesforce user with the Sales role. This simplifies permissions while giving Mobly the access it needs.
2. Authenticate the Salesforce + Mobly connection by either:

* **Option 1:** Providing your Salesforce deployment URL, integration user email, and password + security token
* **Option 2:** Connecting using OAuth 2.0 - required if you are using SSO or 2FA

4. Work with the Mobly team to get all your custom fields mapped properly.

**Option 1**

**Providing your Salesforce deployment URL, integration user email, and password + security token**

1. If you don't already have a security token for the user, it can be reset under the user settings. It will be emailed to the user.

![](//d33v4339jhl8k0.cloudfront.net/docs/assets/67f00b47b96c282fea91b6f6/images/68810dd4e14d8d7a2cbd094d/file-YhrfhPKQ5l.png)

2. You can get the URL by going to Domain settings under Setup. It will look something like `https://yourdomain.my.salesforce.com`

![](//d33v4339jhl8k0.cloudfront.net/docs/assets/67f00b47b96c282fea91b6f6/images/68810db0a309495486d15431/file-WLJJYvE9PU.png)

![](//d33v4339jhl8k0.cloudfront.net/docs/assets/67f00b47b96c282fea91b6f6/images/68810d97a309495486d15430/file-nT6FX70QaP.png)

**Option 2**

**Connecting using OAuth 2.0**

1. From Setup, enter External Client Apps, then select Settings.
2. Click New Connected App.
3. Enter a name for the Connected App and enter `support@getmobly.com`  as the Contact Email.
4. Click Enable OAuth Settings.
5. Enter `https://www.getmobly.com/`  for the callback URL.
6. Under Selected OAuth Scopes, move "Manage user data via APIs (api)" to the selected column.
7. Ensure "Require Secret for Web Server Flow" and "Require Secret for Refresh Token Flow" remain selected.
8. Select "Enable Client Credentials Flow".
9. Click Save.
10. On the setup screen for your newly created connected app, click Manage.
11. Click Edit Policies.
12. In the Client Credentials Flow section, select the user you'd like Mobly to act as to create and edit leads and contacts.
13. Navigate back to your connected app (App Manager -> your connected app -> View).
14. Under the API section, click Manage Consumer Details. You may need to verify your identity.
15. Copy your Consumer Key and Consumer Secret. Paste these into the Mobly Hub to authorize the connection.

**Minimum Access**

If you'd like to limit Mobly’s access to a more narrow scope than the authenticating user, you can do so by creating a new user, profile, and permission set. This should be done with caution, though, as every time you make a change to tags or mapping, you will need to revisit the permissions to make sure the Mobly user has access.

1. Create a new user.
2. Assign a license that has access to the Lead entity. We recommend a Salesforce license.

   ![](//d33v4339jhl8k0.cloudfront.net/docs/assets/67f00b47b96c282fea91b6f6/images/68810f74b28ecf16639c8d74/file-Hi7L2sq15r.png)
3. Assign a profile. We recommend using the "Salesforce API Only System Integration" profile.
   1. If you want to create a different profile:
      1. Create the user as an "API Only User".

         ![](//d33v4339jhl8k0.cloudfront.net/docs/assets/67f00b47b96c282fea91b6f6/images/68810fd5e14d8d7a2cbd0956/file-qUUXeKNdeb.png)

         ii. Grant access to "Edit Tasks".

         ![](//d33v4339jhl8k0.cloudfront.net/docs/assets/67f00b47b96c282fea91b6f6/images/68811054ec7c3755b572432e/file-LQi7TZgoy7.png)

         iii. Modify the password policies to "Never expire" and "3 passwords remembered".

         ![](//d33v4339jhl8k0.cloudfront.net/docs/assets/67f00b47b96c282fea91b6f6/images/688110e1e14d8d7a2cbd0960/file-zWPherJawA.png)
4. Grant Read, Create, and Edit permissions to the Lead object. If you want Mobly to push to contacts, also grant Read, Create, and Edit permissions to the Contact object.

   ![](//d33v4339jhl8k0.cloudfront.net/docs/assets/67f00b47b96c282fea91b6f6/images/68811278401e5f22412d711c/file-gZQsVK4NEi.png)
5. Create a permission set.
   1. Choose "None" for the license.

      ![](//d33v4339jhl8k0.cloudfront.net/docs/assets/67f00b47b96c282fea91b6f6/images/688112d7ec7c3755b5724340/file-5ADxQSfnng.png)
   2. In Object Settings, grant Read, Create, and Edit permissions to the Lead object. If you want Mobly to push to contacts, also grant Read, Create, and Edit permissions to the Contact object.

      ![](//d33v4339jhl8k0.cloudfront.net/docs/assets/67f00b47b96c282fea91b6f6/images/6881132b401e5f22412d7122/file-NEKpM1Vi6i.png)
   3. Grant Read and Edit access to any fields that you want Mobly to populate. Anytime you create a new field, you will need to add it to the permission set.
6. If you created a new permission set, assign the permission set.
   1. Find and open the newly created permission set.
   2. Go to Manage Assignments and select the new user.
7. Follow steps 2-4 above to finish setting up the connected app.

***

## Field Mapping

Here are the lead object fields that Mobly can send over to Salesforce. We currently only add and update the Lead and Contact object in Salesforce.

![](//d33v4339jhl8k0.cloudfront.net/docs/assets/67f00b47b96c282fea91b6f6/images/68801abbb28ecf16639c899b/file-lIwaaTT20B.png)

Fields can be mapped directly within Mobly, and to aid in the planning phase of the project, you can make a copy of [this spreadsheet](https://docs.google.com/spreadsheets/d/1J7Q72Ut-mEzxtkHrx4u8LTHzkDbgV30f_CBlfFUdXqg/edit?usp=sharing) and add in your own CRM fields and tag preferences.

### Basic Lead Info

* First Name
* Last Name
* Email
* Personal Email
* Personal Address
* LinkedIn
* Facebook
* X (Twitter)
* Profile Picture
* Job Title
* Phone Number
* Other Phone Numbers
  * If you wish to have additional phone numbers that enrichment finds, we recommend making a new field such as *"mobly\_other\_phone\_numbers"*. This will come in as a semicolon separated list.

### Company Info

* Company Name
* Company Industry
* Company LinkedIn
* Company Street Address
  * Due to Salesforce's strong policy about street address format, we recommend mapping this to a new field without restrictions called something such as *"mobly\_company\_address"*.
* Company City
* Company State
* Company Zip Code
* Company Country

### Mobly Specific Info

**Mobly Name**

**Description**

**Recommended CRM Name**

**Recommended Field Type**

Description

Open text field to track notes or other required information about the lead from the event

*mobly\_description*

Text Area (Long)

Number of Scans

Total number of scans for the lead across all events

*mobly\_number\_scans*

Number

First Scanned By

Email of first scanner

*mobly\_first\_scanned\_by*

Text

Last Scanned By

Email of last scanner

*mobly\_last\_scanned\_by*

Text

Last Scanned Event

The name of the last scanned event, excludes uploads and manual entries

*mobly\_last\_scanned\_event*

Text

All Scanned Events

Concatenated list of all Mobly events they've been scanned at

*mobly\_all\_events*

Text Area (Long)

Most Recent Mobly Campaign

Campaign ID of the most recent Mobly Campaign

mobly\_most\_recent\_campaign

Text

All Mobly Campaigns

Concatenated string of Mobly Campaign IDs

mobly\_all\_campaigns

Text Area (Long)

***

## Tags

Tags in Mobly help with segmentation, qualification, and automation inside Salesforce.

* **Examples of Tag Categories:**
  * Score (Hot, Medium, Cold)
  * Product Interest
  * Marketing Campaign
  * Segments (Buyer, Decision Maker, Influencer, End-User)
  * Next Steps (Set Meeting, Follow-up)
  * Send Contract (Yes, No)

Each qualifier should have its own field in Salesforce. We can sync to text, picklist, or checkbox values. However, we suggest using text fields to allow for multi-select qualifier values and future-proofing for any changes you make to Mobly qualifiers.

***

## Engagement Logging

Mobly logs all interactions with leads in Salesforce under the activity timeline.

![](//d33v4339jhl8k0.cloudfront.net/docs/assets/67f00b47b96c282fea91b6f6/images/68810d73401e5f22412d7105/file-yQOvZd0kSF.png)

Engagement actions include:

* Calendar invites
* Personal emails
* Calls
* Texts
* Social media connections (LinkedIn, Facebook, X)
* Notes about the interaction

This data is valuable for auditing, reporting, and tracking rep performance and follow-up workflows.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.getmobly.com/help-center/integrations/crm/legacy/salesforce-legacy.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
