---
title: Salesforce Integration
description: Salesforce integration
---

[Skip to content](https://support.tiled.co/salesforce-integration#main-content)

English

Show submenu for translations

[Submit a request](https://support.tiled.co/kb-tickets/new)

![logo-horizontal\_w.png\]](https://support.tiled.co/hs-fs/hubfs/logo-horizontal_w.png?height=30&name=logo-horizontal_w.png)

Open main navigation

Close main navigation

- English
  
  Show submenu for translations
- [Submit a request](https://support.tiled.co/kb-tickets/new)

 Hi, how can we help you?

- There are no suggestions because the search field is empty.

1. [Support](https://support.tiled.co/)
2. [Integrations](https://support.tiled.co/integrations)
3. [CRM & Marketing Automation](https://support.tiled.co/integrations#crm-marketing-automation)

# Salesforce Integration

## Tiled can connect to Salesforce to automatically push microapp engagement data and email activity into your org — giving your sales team visibility into prospect activity without leaving Salesforce.

### In Salesforce: Create a External Client App

From Setup, go to **External Client App Manager** and click **New External Client App**.

- Enter a name (example: "Tiled Integration") and your contact email.
- Under **API (Enable OAuth Settings)**, check **Enable OAuth**.

**App Settings**

- Enter a **Callback URL**.
- Under **OAuth Scopes**, add **Manage user data via APIs (api)**.
- Under **Flow Enablement**, check **Enable Client Credentials Flow**.

Create/Save the app, then open it and click the **Policies** tab. Expand **OAuth Policies** and under **OAuth Flows and External Client App Enhancements**, check **Enable Client Credentials Flow**, and set the **Run As** user — this is the user whose permissions govern everything Tiled does in your org, so keep note of who it is; you'll grant this user specific access for each feature you turn on below. Save.

Click the **Settings** tab, expand **OAuth Settings**, and copy the **Consumer Key** and **Consumer Secret** right below App Settings — you'll paste both directly into Tiled in the next step.

### In Tiled: Connect the integration

- Enter your org's base URL under **Salesforce Instance URL**: `https://<your-instance>.my.salesforce.com`
- Paste your **Consumer Key** and **Consumer Secret** into their respective fields.
- Click **Test connection**.

Once the connection succeeds, the **Automatically send session data** and **Email activity** toggles below become available — each is disabled until a Consumer Key and Secret are entered. Turning either one on reveals that feature's own setup steps below.

### Troubleshooting (connection)

- **"Connection failed. Please check your setting."** — Double-check that your Salesforce Instance URL is just your org's base domain (no path after `.my.salesforce.com`), and that the Consumer Key/Secret are copied correctly and Client Credentials Flow is enabled on the Connected App.
- **"Salesforce authentication failed. Check the Consumer Key and Consumer Secret."** — Tiled couldn't exchange your credentials for an access token. Double-check the Consumer Key/Secret are copied correctly (no extra whitespace), that **Enable Client Credentials Flow** is checked on the Connected App, and that a **Run As** user is set under Edit Policies.

---

### Session Data Auto-Send

Before continuing, make sure you've completed the Prerequisites section above — this integration won't work without it.

Tiled can automatically push detailed microapp engagement data — viewer info, active duration, top screens, and completion events (if applicable) — directly into Salesforce as records on a dedicated custom object. Each session also logs an Activity on the matching Contact, so it shows up right in their Activity timeline — not just in the custom related list.

 In Salesforce: Create the Tiled Session Event object

Object Name is filled in automatically as `Tiled_Session_Event`.

Under **Enter Record Name Label and Format**, set:

- **Record Name:** `Tiled Session Event Name`
- **Data Type:** `Auto Number`
- **Display Format:** `TSE-{0000}` (recommended)
- **Starting Number:** `1` (recommended)

Under **Optional Features**, check **Allow Activities** — this lets Tiled log a Task against this object so sessions show up on a Contact's Activity timeline.

Leave the other defaults and click **Save**. You don't need to add any fields here — Tiled adds those automatically the first time you test the connection.

 In Salesforce: Add fields to Event

Tiled logs an Event per session with a few extra details attached — a clickable link, the formatted duration, and (when the session came from a share) who shared it — but Salesforce doesn't allow adding new custom fields to a standard object like Event through the same automated step as your own custom object, so these need to be added by hand. The first two are required, not optional: Tiled always sets them, so without them every session send will fail. The "Shared By" fields are optional — they only ever get set on sessions that came from a share, but Tiled won't fail to send if they're missing.

1. In Setup, go to **Object Manager \> Activity \> Fields & Relationships** and click **New**.
2. Choose **URL** as the data type, set the **Field Label** to `Tiled Pathway Insights URL`, and click through the remaining steps with the defaults to **Save**.
3. Click **New** again. Choose **Text**, set the **Field Label** to `Tiled Active Duration`, set **Length** to `100`, and **Save**.
4. Click **New** again. Choose **Text**, set the **Field Label** to `Tiled Shared By`, set **Length** to `255`, and **Save** — this always holds the sharer's email as plain text, whether or not it matches a Salesforce User.
5. Click **New** again. Choose **Lookup Relationship**, set **Related To** to `User`, set the **Field Label** to `Tiled Shared By User`, and click through the remaining steps with the defaults to **Save** — this is only populated when the sharer's email happens to match an existing Salesforce User.

 In Salesforce: Grant the Run-As user access

Salesforce doesn't automatically grant permissions on new objects or fields — even ones created through the API — so the Run-As user needs to be explicitly given access before Tiled can actually read or write session data. Do this step after running **Test connection** at least once above, since field-level security can only be configured once the fields exist.

1. In Setup, use **Quick Find** to go to **Permission Sets** (or edit the Run-As user's Profile directly, if you manage access that way instead).
2. Create or open the Permission Set assigned to your Run-As user.
3. Under **Apps**, click **Object Settings**, then click **Tiled Session Event**.
4. Click **Edit**. Under **Object Permissions**, check **Read** and **Create**.
5. Scroll down to **Field Permissions** and check both **Read Access** and **Edit Access** for every field on the list.
6. Click **Save**.
7. Repeat the steps above for the standard **Event** object, checking **Read** and **Create** under Object Permissions, and **Read Access**/**Edit Access** on the Tiled Pathway Insights URL, Tiled Active Duration, Tiled Shared By, and Tiled Shared By User fields you added above.
8. If you created a new Permission Set, go back to its main page, click **Manage Assignments \> Add Assignment**, and assign it to the Run-As user.

 In Salesforce: Show session data on the Contact record

A new lookup field doesn't automatically appear as a related list on the record it points to, so you'll need to add it manually to see session data directly on a Contact's page.

1. In Setup, go to **Object Manager \> Contact \> Page Layouts**.
2. Open the page layout used for your Contacts (commonly "Contact Layout").
3. Switch the palette on the left to **Related Lists**.
4. Drag **Tiled Session Events** onto the layout, near your other related lists.
5. Click **Save**.

Every Contact record will now show a "Tiled Session Events" related list containing all sessions linked to that Contact by email.

 What gets created in Salesforce

Once connected, Tiled writes one record per microapp viewing session to the Tiled Session Event object (`Tiled_Session_Event__c`) you created:

 

 

| Field | Description |
| --- | --- |
| Contact | The viewer's Salesforce Contact, matched by email address. |
| Microapp Name | Name of the microapp that was viewed. |
| Location | Approximate location of the viewer. |
| Total Active Duration | Total time (in seconds) the viewer was actively engaged. |
| Total Active Duration Formatted | The same duration, formatted for readability (e.g. "0:57"). |
| Pathway Insights URL | A link to the pathway insights for this specific session. |
| Top Viewed Screens | The session's most-viewed screens, ranked, one per line. |
| Completed Events | The completion events triggered during the session, one per line, if any. |
| Shared By | The sharer's email, as plain text. |
| Shared By User | A link to the sharer's Salesforce User record, only when their email matches an existing User. |

 

 

 

Tiled also logs a completed Event on the matching Contact for each session (only when a Contact is found), so sessions appear directly in that Contact's Activity timeline without any extra setup on the page layout. The Event's Tiled Active Duration, Tiled Pathway Insights URL, and (when applicable) Tiled Shared By / Tiled Shared By User fields surface those same details right on the Event itself.

 Troubleshooting (session data auto-send)

- **Connection fails and you haven't created the Tiled Session Event object yet** — Test connection only adds fields to an existing object; it can't create the object itself. Complete the "Create the Tiled Session Event object" step above first.
- **"The requested resource does not exist" when session data should be sending** — The Run-As user likely doesn't have Read/Create permission on the Tiled Session Event object yet. See "Grant the Run-As user access" above.
- **"No such column '...' on sobject of type Tiled\_Session\_Event\_\_c"** — The object is accessible but a specific field isn't — the Run-As user is missing Field-Level Security on one or more fields. Revisit the Field Permissions step above.
- **Sessions are sending successfully, but you don't see anything on the Contact record** — The data is there; it just isn't on the page layout yet. See "Show session data on the Contact record" above. You can confirm records exist independently via Setup \> Object Manager \> Tiled Session Event, or by querying the object in Developer Console / Workbench.
- **No Contact is linked on a record** — Tiled matches viewers to Salesforce Contacts by email address. If a viewer's email doesn't match any existing Contact, the Contact field will be blank. If multiple Contacts share the same email, Tiled links to one of them arbitrarily.
- **Session records are created, but no Event appears on the Contact** — A few possible causes: (1) Allow Activities wasn't checked on the Tiled Session Event object, (2) the Run-As user doesn't have Read/Create permission on the standard Event object yet, or (3) the Tiled Pathway Insights URL / Tiled Active Duration fields haven't been added to Event yet. Since Tiled sends the session record and its Event in a single all-or-nothing request, any of these also prevents the session record itself from saving.
- **"No such column '...' on sobject of type Event"** — Same root cause as the Tiled Session Event version, just on Event: either the field doesn't exist yet, or the Run-As user is missing Field-Level Security on it.
- **No Shared By / Shared By User value on a record** — Expected if the session wasn't from a share (these fields are only ever set for shared sessions). If it *was* a shared session and Shared By is still blank, the sharer's email may not have resolved — check `sessions.sharer_id` for that session. Shared By User being blank is expected/normal whenever the sharer's email doesn't match an existing Salesforce User.

- [Getting Started](https://support.tiled.co/getting-started#main-content)

    - [Intro to Tiled](https://support.tiled.co/getting-started#intro-to-tiled)
    - [Tiled Library](https://support.tiled.co/getting-started#tiled-library)
- [Tiled Builder](https://support.tiled.co/tiled-builder#main-content)

    - [Tiled Builder](https://support.tiled.co/tiled-builder#tiled-builder)
    - [Microapp Tiles](https://support.tiled.co/tiled-builder#microapp-tiles)
    - [Personalization](https://support.tiled.co/tiled-builder#personalization)
    - [Asset Library](https://support.tiled.co/tiled-builder#asset-library)
    - [Best Practices](https://support.tiled.co/tiled-builder#best-practices)
- [Tiled Tiles](https://support.tiled.co/tiled-tiles)
- [Settings](https://support.tiled.co/settings#main-content)

    - [Account Settings](https://support.tiled.co/settings#account-settings)
    - [Library Settings](https://support.tiled.co/settings#library-settings)
    - [Microapp Settings](https://support.tiled.co/settings#microapp-settings)
- [Sharing & Analytics](https://support.tiled.co/sharing-analytics#main-content)

    - [Microapp Analytics](https://support.tiled.co/sharing-analytics#microapp-analytics)
    - [Personalization](https://support.tiled.co/sharing-analytics#personalization)
    - [Sharing Microapps](https://support.tiled.co/sharing-analytics#sharing-microapps)
- [Useful Resources](https://support.tiled.co/useful-resources#main-content)

    - [Additional Guides](https://support.tiled.co/useful-resources#additional-guides)
    - [Developer Tools](https://support.tiled.co/useful-resources#developer-tools)
    - [Accessibility](https://support.tiled.co/useful-resources#accessibility)
    - [Tiled Mobile App](https://support.tiled.co/useful-resources#tiled-mobile-app)
    - [Seismic](https://support.tiled.co/useful-resources#seismic)
    - [Authentication & Security](https://support.tiled.co/useful-resources#authentication-security)
- [Builder 2.0](https://support.tiled.co/builder-2-0#main-content)

    - [Tiled Builder 2.0](https://support.tiled.co/builder-2-0#tiled-builder-2-0)
    - [Microapp Tiles 2.0](https://support.tiled.co/builder-2-0#microapp-tiles-2-0)
    - [Personalization 2.0](https://support.tiled.co/builder-2-0#personalization-2-0)
    - [Asset Panel 2.0](https://support.tiled.co/builder-2-0#asset-panel-2-0)
    - [Layers & Settings 2.0](https://support.tiled.co/builder-2-0#layers-settings-2-0)
    - [FAQ](https://support.tiled.co/builder-2-0#faq)
- [Tiled Plugins](https://support.tiled.co/tiled-plugins#main-content)

    - [Figma Plugin](https://support.tiled.co/tiled-plugins#figma-plugin)
    - [Adobe XD Plugin](https://support.tiled.co/tiled-plugins#adobe-xd-plugin)
    - [Sketch Plugin](https://support.tiled.co/tiled-plugins#sketch-plugin)
- [Integrations](https://support.tiled.co/integrations#main-content)

    - [CRM & Marketing Automation](https://support.tiled.co/integrations#crm-marketing-automation)
    - [Content & Asset Management](https://support.tiled.co/integrations#content-asset-management)
    - [Collaboration & Communication](https://support.tiled.co/integrations#collaboration-communication)
- [New Releases](https://support.tiled.co/new-releases#main-content)

    - [v66.0.0](https://support.tiled.co/new-releases#v66-0-0)
    - [v65.0.0](https://support.tiled.co/new-releases#v65-0-0)
    - [v64.0.0](https://support.tiled.co/new-releases#v64-0-0)
    - [v63.0.0](https://support.tiled.co/new-releases#v63-0-0)
    - [v62.0.0](https://support.tiled.co/new-releases#v62-0-0)
    - [v61.0.1](https://support.tiled.co/new-releases#v61-0-1)
    - [v60.0.0](https://support.tiled.co/new-releases#v60-0-0)
    - [v59.0.0](https://support.tiled.co/new-releases#v59-0-0)
    - [v58.0.0](https://support.tiled.co/new-releases#v58-0-0)
    - [v57.0.0](https://support.tiled.co/new-releases#v57-0-0)
    - [v56.0.0](https://support.tiled.co/new-releases#v56-0-0)
    - [v55.0.1](https://support.tiled.co/new-releases#v55-0-1)
    - [v54.0.0](https://support.tiled.co/new-releases#v54-0-0)
    - [v53.0.0](https://support.tiled.co/new-releases#v53-0-0)
    - [v52.0.0](https://support.tiled.co/new-releases#v52-0-0)
    - [v51.0.0](https://support.tiled.co/new-releases#v51-0-0)
    - [v50.0.0](https://support.tiled.co/new-releases#v50-0-0)
- [Uncategorized](https://support.tiled.co/uncategorized)

[![logo-horizontal\_k-3](https://support.tiled.co/hs-fs/hubfs/logo-horizontal_k-3.png?width=100&height=21&name=logo-horizontal_k-3.png "logo-horizontal_k-3")](https://tiled.co)

Copyright © 2026, Tiled