---
schema_version: "1"
id: 76d447c3d6b86031855491a8650360b978c407ce3efc3ee43bbf3a33f5d96651
title: Launch CRM Analytics Assets with URLs
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/analytics/264-0-0/bi_analytics_launch_from_ios.md
canonical_url: https://help.salesforce.com/s/articleView?id=analytics.bi_analytics_launch_from_ios.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 8548cd1bdf05a4566900fec414513705807c3b1a2e2756f85c12a7aa3f2873b4
description: The CRM Analytics mobile app supports deep linking URL schemes, which allow a user to launch the app from a third-party or web application.
products:
  - CRM Analytics
  - Cross Cloud
release: "264"
---
# Launch CRM Analytics Assets with URLs

The CRM Analytics mobile app supports deep linking URL schemes, which allow a user to launch the app from a third-party or web application.

An administrator or developer can customize a URL scheme to perform one of the following actions when the app launches:

- View a particular asset type in the CRM Analytics app (dashboard, lens, or application)
- Apply a runtime state (selections and filters)

For example, you can create a deep link to a dashboard in the CRM Analytics app. Then when users receive the link in an email, they can click it to go directly to the dashboard.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-analytics-bi-264-0-0-production-enus/ec791473-f5b4-4f64-a656-9104f455d966/images/icon_note.png)

Note Some deep link scheme features, such as passing filters and selections, apply only to dashboards. Support is only for dashboards that are built using the dashboard designer.

URL Scheme Format

Use the following format to make a request to a CRM Analytics app.

`<scheme_name>://<assetType>/<assetID>?orgId=<orgId>&loginHost=<loginHost>&dashboardState=<url-encoded json>`

The following parameters are supported.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:25.03128911138924%">
          <col style="width:19.148936170212767%">
          <col style="width:43.30413016270338%">
          <col style="width:12.51564455569462%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d85981e57">Variable</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d85981e59">Type</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d85981e61">Description</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d85981e63">Required</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Variable" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e57 "><code>scheme_name</code></td>
            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e59 ">String</td>
            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e61 ">The value must be <code>sfanalytics</code>.</td>
            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e63 ">Yes</td>
          </tr>
          <tr class="">
            <td data-label="Variable" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e57 "><code>assetType</code></td>
            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e59 ">String</td>
            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e61 ">
              <p>Supported values: </p>
              <p><code>dashboard</code></p>
              <p><code>lens</code></p>
              <p style="margin-bottom:0;"><code>application</code></p>
            </td>
            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e63 ">Yes</td>
          </tr>
          <tr class="">
            <td data-label="Variable" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e57 "><code>assetID</code></td>
            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e59 ">String</td>
            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e61 ">Unique asset identifier. The identifier is the 18-character code
              beginning with 0FK found in the asset URL.</td>
            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e63 ">Yes</td>
          </tr>
          <tr class="">
            <td data-label="Variable" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e57 "><code>orgID</code></td>
            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e59 ">String</td>
            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e61 ">ID of the organization that contains the content. If users are
              logged in to the same org ID, they are directed to the content. If
              users are not logged in to the same org ID, they are redirected to
              the login screen. </td>
            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e63 ">Yes</td>
          </tr>
          <tr class="">
            <td data-label="Variable" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e57 "><code>loginHost</code></td>
            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e59 ">String</td>
            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e61 ">URL that displays the login screen when the user is not logged in
              to the application.</td>
            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e63 ">Yes</td>
          </tr>
          <tr class="">
            <td data-label="Variable" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e57 "><code>dashboardState</code></td>
            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e59 ">String</td>
            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e61 ">
              <p>Available only when <code>assetType</code> is <code>dashboard</code>. </p>
              <p style="margin-bottom:0;">State of the dashboard and all its
                datasets. The state depends on user selection, start values,
                global filters, and external or initial filters that are
                applicable to the dataset.</p>
            </td>
            <td data-label="Required" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e63 ">No</td>
          </tr>
        </tbody>
      </table>

Example (not including `dashboardState`):

`sfanalytics://dashboard/0FKB00000006TFVOA2?orgId=00DB00000000XXX&loginHost=MyDomainName.my.salesforce.com`

Refer to the information in the following tables when constructing the JSON string for `dashboardState`.

dashboardState

  
| Property Name | Type | Description |
| --- | --- | --- |
| datasets | Map<String, state\[\]> | The list of datasets for which a specific state is applied. The key string is the API name of the dataset. |

state

  
| Property Name | Type | Description |
| --- | --- | --- |
| fields | String\[\] | The list of dimension or measure fields for which selection or filtering is applied. |
| filter | dashboardFilter | The filter that is applied to the dashboard. |
| selection | String\[\] | The list of values that is selected. |

dashboardFilter

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:21.05263157894737%">
          <col style="width:26.31578947368421%">
          <col style="width:52.63157894736842%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" id="d85981e232">Property Name</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d85981e234">Type</th>
            <th scope="col" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" id="d85981e236">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Property Name" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d85981e232 ">operator</td>
            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e234 ">String</td>
            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d85981e236 ">
              <p>Supported operators for dimensions: “in”, “not in”, “matches”
              </p>
              <p style="margin-bottom:0;">Supported operators for measures: “==”, “!=”, “&gt;=”, “&gt;”,
                “&lt;=”, “&lt;”</p>
            </td>
          </tr>
          <tr class="">
            <td data-label="Property Name" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d85981e232 ">values </td>
            <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d85981e234 ">String[] or Double[]</td>
            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d85981e236 ">The list of dimension or measure values corresponding to the
              fields.</td>
          </tr>
        </tbody>
      </table>

JSON Examples

The following syntax causes `value1` and `value2` to be selected on `field1`. It also filters on `field2` based on `operator1` with `values3` and `values4`.

```
{'datasets' : {'dataset1': [ {'fields': ['field1'], 'selection': ['$value1', '$value2']}, {'fields': ['field2'], 'filter': { 'operator': 'operator1', 'values': ['$value3', '$value4']}}]}}
```

Example of the `dashboardState` JSON.

```
 {
      "datasets": {
          "Opportunities": [
              {
                  "fields": ["OpptyName"],
                  "selection": ["RelateIQ", "BeyondCore"],
                  "filter": {
                      "operator": "not in",
                      "values": ["Salesforce"]
                  }
              },
              {
                  "fields": ["State", "Country"],
                  "selection": [["TX", "US"]],
                  "filter": {
                      "operator": "in",
                      "values": [["TX, US"], ["AL", "DE"]]
                  }
              }
          ],
          "Accounts": [
              {
                  "fields": ["Revenue"],
                  "selection": [],
                  "filter": {
                      "operator": ">=",
                      "values": [[1000000]]
                  }
              }
          ]
      }
  }
```

The JSON must be rewritten with no whitespace characters.

```
{"datasets":{"Opportunities":[{"fields":["OpptyName"],"selection":["RelateIQ","BeyondCore"],"filter":{"operator":"not in","values":["Salesforce"]}},{"fields":["State","Country"],"selection":[["TX","US"]],"filter":{"operator":"in","values":[["TX, US"],["AL","DE"]]}}],"Accounts":[{"fields":["Revenue"],"selection":[],"filter":{"operator":">=","values":[[1000000]]}}]}}
```

Finally, the JSON must be rewritten with URL encoding.

```
%7B%22datasets%22%3A%7B%22Opportunities%22%3A%5B%7B%22fields%22%3A%5B%22OpptyName%22%5D%2C%22selection%22%3A%5B%22RelateIQ%22%2C%22BeyondCore%22%5D%2C%22filter%22%3A%7B%22operator%22%3A%22not%20in%22%2C%22values%22%3A%5B%22Salesforce%22%5D%7D%7D%2C%7B%22fields%22%3A%5B%22State%22%2C%22Country%22%5D%2C%22selection%22%3A%5B%5B%22TX%22%2C%22US%22%5D%5D%2C%22filter%22%3A%7B%22operator%22%3A%22in%22%2C%22values%22%3A%5B%5B%22TX%2C%20US%22%5D%2C%5B%22AL%22%2C%22DE%22%5D%5D%7D%7D%5D%2C%22Accounts%22%3A%5B%7B%22fields%22%3A%5B%22Revenue%22%5D%2C%22selection%22%3A%5B%5D%2C%22filter%22%3A%7B%22operator%22%3A%22%3E%3D%22%2C%22values%22%3A%5B1000000%5D%7D%7D%5D%7D%7D
```

With this URL encoded JSON, the example earlier in this topic is modified as follows.

```
sfanalytics://dashboard/0FKB00000006TFVOA2?orgId=00DB00000000XXX​&loginHost=MyDomainName.my.salesforce.com&dashboardState=%7B%22datasets%22%3A%7B%22Opportunities%22%3A%5B%7B%22fields%22%3A%5B%22OpptyName%22%5D%2C%22selection%22%3A%5B%22RelateIQ%22%2C%22BeyondCore%22%5D%2C%22filter%22%3A%7B%22operator%22%3A%22not%20in%22%2C%22values%22%3A%5B%22Salesforce%22%5D%7D%7D%2C%7B%22fields%22%3A%5B%22State%22%2C%22Country%22%5D%2C%22selection%22%3A%5B%5B%22TX%22%2C%22US%22%5D%5D%2C%22filter%22%3A%7B%22operator%22%3A%22in%22%2C%22values%22%3A%5B%5B%22TX%2C%20US%22%5D%2C%5B%22AL%22%2C%22DE%22%5D%5D%7D%7D%5D%2C%22Accounts%22%3A%5B%7B%22fields%22%3A%5B%22Revenue%22%5D%2C%22selection%22%3A%5B%5D%2C%22filter%22%3A%7B%22operator%22%3A%22%3E%3D%22%2C%22values%22%3A%5B1000000%5D%7D%7D%5D%7D%7D
```