# Integrating Amplify with web applications

{% hint style="warning" %}
This documentation references external sources. Nexthink does not have control over the accuracy of third-party documentation, nor any external updates or changes that might create inconsistencies with the information presented on this page. Please report any errors or inconsistencies to [Nexthink Support](https://support.nexthink.com/).
{% endhint %}

This page describes the generic process of integrating Amplify with web applications.

{% hint style="info" %}
The example demonstrates the process in ServiceNow Helpdesk, which differs from that in other web applications. However, the process is similar and will work for most web applications.
{% endhint %}

## **Integrating the Amplify extension with web applications**

Integrate the Amplify extension with web-based applications for a specific device.

This local configuration does not apply to other Amplify user devices until you add the web application configurations to the [Nexthink platform](https://docs.nexthink.com/platform/configuring_nexthink/bringing-data-into-your-nexthink-instance/deploying-nexthink-in-non-vdi-environment/configure-amplify/configuring-amplify-in-the-nexthink-web-interface).

To integrate web application configuration locally:

1. Open the browser where you installed the Amplify extension (Google Chrome or Microsoft Edge).
2. Right-click on the Amplify extension in the browser extension bar.
3. From the drop-down, click **Options** to open the **Nexthink Amplify configuration** page.
4. Select the **Local** tab under **Web application configuration**.
5. Click **Add web application**.

{% hint style="info" %}
The Amplify extension only displays the **Local** and **Central** tabs in case of a single instance configuration.
{% endhint %}

<figure><img src="https://268444917-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxJSUDk9NTtCHYPG5EWs3%2Fuploads%2Fgit-blob-b5737a63bed159e3fd954e5577792975052c1a2b%2Fimage-20240312-120502.png?alt=media" alt="image-20240312-120502.png" width="760"><figcaption></figcaption></figure>

6. Fill in the **Web application URL** field, and use the **User or device identifier** and **String selector** according to the desired behavior for Amplify:

| Enable the Amplify button on all pages of the web application                                                                                                                                                                                                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <p>To enable the Amplify button on all pages of the web application, without reading the webpage for device or user identification fields:</p><ol start="1"><li>Add the base URL of the application in the <strong>Web application URL</strong> field.</li><li>Leave the <strong>User or device identifier value</strong> field blank.</li></ol> |

| Enable the Amplify button on pages specific to a module of the web application                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p>To enable the Amplify button on pages specific to a module of the web application, without reading the webpage for device or user identification fields:</p><ol start="1"><li><p>Add the URL specific to the application module in the <strong>Web application URL</strong> field.</p><ul><li>For example, place the Amplify button on all pages of the ServiceNow incidents module by entering the web application URL: <code><https://your-service-now.com/nav_to.do?uri=%2Fincident.do></code></li></ul></li><li>Leave the <strong>User or device identifier value</strong> field blank.</li></ol> |

| Enable Amplify to read identifiers from specific fields of the web application                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p>Some web applications may no support the Amplify web application configuration using specific field identifiers due to differences in UI designs/fields.</p><p>To enable Amplify to read identifiers from specific fields of the web application:</p><ol start="1"><li>Open a new tab on your browser with the web application page URL with the populated device/user field. Copy the entire page URL.</li><li><strong>Add web application</strong> in Amplify and paste the copied URL in the <strong>Web application URL</strong> field.</li><li><strong>Select identifier</strong> in Amplify to open the web application URL using the <strong>Field selector</strong> pop-up.</li><li>Use the highlighter to choose the field of interest on the page. Once selected, the system loads the element into the <strong>Field selector</strong> pop-up. See the image below.</li></ol> |

{% hint style="info" %}
When configuring a **String selector** using a regular expression, you can optionally define a [substitution pattern](#transforming-matched-values-using-substitution) to reformat the matched text. This is useful when a field contains values that need to be reordered or cleaned before matching with Nexthink records.
{% endhint %}

<figure><img src="https://268444917-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxJSUDk9NTtCHYPG5EWs3%2Fuploads%2Fgit-blob-59c796c3ba69094cfbc6056297e2afa2e514776f%2Fimage-20240312-120909.png?alt=media" alt=""><figcaption></figcaption></figure>

| <ol start="5"><li><p>If pop-ups from the web application prevent you from selecting the correct fields:</p><ul><li>Switch on the <strong>Disable selector</strong> toggle in the <strong>Field selector</strong> pop-up and navigate to the webpage of interest.</li><li>Once on the correct page, switch off the <strong>Disable selector</strong> toggle and pick the correct field.</li></ul></li><li><p>If needed, select a specific part of the string from the device or user identifier field using the <strong>String selector</strong>\* on the <strong>Field selector</strong> pop-up:</p><ul><li>Enter the relevant regular expression in the <strong>String selector</strong> field.</li><li>Click the <strong>Fill field value</strong> button to verify the selected field value.</li><li>Click <strong>Save</strong> to modify the relevant device or user identifier.</li></ul></li></ol><p>\*Amplify <strong>Field selector</strong> supports the use of regular expressions for partial text matching. This enables the selection of specific parts of the string from the <strong>Selected field value</strong>. See the image below.</p><p>Refer to the <a href="https://en.wikipedia.org/wiki/Regular_expression">Regular expression</a> documentation from Wikipedia for more information.</p> |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

<figure><img src="https://268444917-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxJSUDk9NTtCHYPG5EWs3%2Fuploads%2Fgit-blob-dc01b59e149aba96979c6fbc2a4109cc8c8c0b4d%2Famplify-1705076721.png?alt=media" alt=""><figcaption></figcaption></figure>

7. **Save** the web application configuration.

{% hint style="info" %}
Nexthink recommends pushing the single Nexthink instance configuration on all target devices using group policy, configuration management solution or remote actions.
{% endhint %}

### Transforming matched values using substitution

With this feature, you can match users or devices even when values appear in a different order. For example, if a name is shown as `Smith John` in a third-party system but appears as `John, Smith` in Nexthink, **substitution** allows you to realign the values for a successful match.

Substitution is an option you can use when matching text with a **String selector**. It lets you change the matched value before Amplify uses it. For example, reordering names or removing extraneous text.

<figure><img src="https://268444917-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxJSUDk9NTtCHYPG5EWs3%2Fuploads%2Ft6LcT5FtBg6VO9WgiPSY%2Fimage.png?alt=media&#x26;token=30f0ecda-1ff0-4de3-916a-36393d5ed45c" alt=""><figcaption></figcaption></figure>

You can use substitution when:

* The selected field contains extra text you want to remove
* You want to reorder parts of the matched value
* You only want to keep specific captured segments of the match

#### **How it works**

To do this, use capturing groups in your regex pattern. Then, in the **Substitution** field, refer to those groups using:

* `$1` for the first group
* `$2` for the second group
* `$3`, and so on

Amplify will apply the substitution before trying to match the value against Nexthink records.

Click **Fill field value** to preview how the transformation will look before saving.

<figure><img src="https://268444917-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxJSUDk9NTtCHYPG5EWs3%2Fuploads%2FFxpox3j1oxD2g9YXkHVD%2Fimage.png?alt=media&#x26;token=91dfaa26-27aa-477c-8437-58a8b65cc1f3" alt=""><figcaption></figcaption></figure>

#### **Example**

Suppose the field value is:

```
Smith John
```

But Nexthink expects:

```
John, Smith
```

You can transform the format by doing the following:

1. Enter the following regex pattern, which captures two word segments separated by whitespace:

   ```
   ^(\S+)\s+(\S+)$
   ```

   This pattern captures:

   * `$1` → Smith
   * `$2` → John
2. In the **Substitution** field, enter:

   ```
   $2, $1
   ```
3. Click **Fill field value** to verify that the result matches the expected format.

Once confirmed, click **Save** to apply the configuration.

#### Other examples

The following table provides examples of regular expressions used to normalize user data formats between third-party platforms and Nexthink, enabling Amplify to identify relevant users regardless of format.

| Original value       | Nexthink value      | Regex pattern       | Substitution |
| -------------------- | ------------------- | ------------------- | ------------ |
| Firstname Lastname   | Lastname Firstname  | `/^(\S+)\s+(\S+)$/` | $2 $1        |
| Lastname Firstname   | Firstname, Lastname | `/^(\S+)\s+(\S+)$/` | $2, $1       |
| Firstname.Lastname   | Lastname Firstname  | `/^(\S+).(\S+)$/`   | $2 $1        |
| username\@deviceName | deviceName          | `/^(\S+)@(\S+)$/`   | $2           |
| username\@deviceName | username            | `/^(\S+)@(\S+)$/`   | $1           |

## Managing web application configurations

Amplify reads the values of the fields in a sequence of configurations.

To change the selection sequence of the configured web applications, hover over the relevant row and open the action menu to switch the order: **Move up** or **Move down**.

You can also **Edit** or **Delete** the web application configuration from the action menu.

<figure><img src="https://268444917-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxJSUDk9NTtCHYPG5EWs3%2Fuploads%2Fgit-blob-292b9baebe891747c58fc3344b17f71bd94f45b2%2Fimage-20240312-122731.png?alt=media" alt="image-20240312-122731.png" width="760"><figcaption></figcaption></figure>

Once done, **Save** your configurations.

Optionally, **Download configuration** to [export the web application configuration](https://docs.nexthink.com/platform/configuring_nexthink/bringing-data-into-your-nexthink-instance/deploying-nexthink-in-non-vdi-environment/extension-deployment#installationandconfiguration-exportingtheconfigurationdetailsfromtheamplifyextensionexportingconfigu) as a `.reg` registry file.

## Integrating Amplify with specific web applications <a href="#installationandconfiguration-configuringamplifyforspecificitsmsolutions" id="installationandconfiguration-configuringamplifyforspecificitsmsolutions"></a>

For ITSM solutions that do not support the out-of-the-box selector configuration due to version incompatibility or user interface design, refer to the following pages:

* [configuring-amplify-for-servicenow-agent-workspace](https://docs.nexthink.com/platform/configuring_nexthink/bringing-data-into-your-nexthink-instance/deploying-nexthink-in-non-vdi-environment/configure-amplify/installation-and-configuration/integrating-amplify-with-web-applications/configuring-amplify-for-servicenow-agent-workspace "mention")
* [configuring-amplify-for-servicenow-operations-workspace](https://docs.nexthink.com/platform/configuring_nexthink/bringing-data-into-your-nexthink-instance/deploying-nexthink-in-non-vdi-environment/configure-amplify/installation-and-configuration/integrating-amplify-with-web-applications/configuring-amplify-for-servicenow-operations-workspace "mention")
