# Qualaroo

[Qualaroo](https://qualaroo.com/) is a customer survey and user feedback platform. It lets you survey your users to understand how they are using your product and what they think of it.

## Connection compatibility

{{< destination-config >}}

## Get started

Once you have confirmed that the source platform supports sending events to Qualaroo, follow these steps:

1. From your [RudderStack dashboard](https://app.rudderstack.com/), add the source. Then, from the list of destinations, select **Qualaroo**.
2. Assign a name to your destination and click **Continue**.

## Connection settings

To successfully configure Qualaroo as a destination, you will need to configure the following settings:

- **Customer ID**: Enter your Qualaroo customer ID.
- **Site Token**: Enter your Qualaroo site token.

{{< info >}}
For more information on obtaining your Qualaroo customer ID and site token, refer to the [FAQ]({{< ref "#faq" >}}) section below.
{{< /info >}}

- **Record Qualaroo Events**: Enable this setting to allow RudderStack to automatically record your Qualaroo callback events as `track` events. You can then view and analyze these events using other tools (connected to the same source in RudderStack). For more information, refer to the [Recording Qualaroo callback events]({{< ref "#recording-qualaroo-callback-events" >}}) section below.
  - **List of Events**: Select the list of events from dropdown which RudderStack automatically records as `track` events.
  - **Update Event Name in track call**: Enable this setting to update the event name in the `track` call.
    - **Mapping to update the Event Name in track call**: Use this setting to map your events with the standard Qualaroo callback events.
- **Client-side Events Filtering**: This setting lets you specify which events should be blocked or allowed to flow through to Qualaroo. For more information on this setting, refer to the [Client-side Events Filtering]({{< ref "sources/event-streams/sdks/event-filtering.md" >}}) guide.
- **Use device mode to send events**: As this is a [web device mode]({{< ref "destinations/rudderstack-connection-modes.md#device-mode" >}})-only destination, this setting is enabled by default and cannot be disabled.
- **Consent management settings**: Configure the consent management settings for the specified source by choosing the **Consent management provider** from the dropdown and entering the relevant consent category IDs. See [Consent Management in RudderStack]({{< ref "data-governance/consent-management/overview.md" >}}) for more information on this feature.

## Identify

You can use the [`identify`]({{< ref "event-spec/standard-events/identify.md" >}}) call to send user-related information to Qualaroo.

A sample `identify` call is shown below:

```javascript
rudderanalytics.identify("alex@example.com", {
  name: "Alex Keener",
  age: 25
})
```

RudderStack uses Qualaroo's [Identity API](https://help.qualaroo.com/hc/en-us/articles/201956628-Using-the-Identity-API-call) method to send the user information.

{{< info >}}
If an empty string is passed as an identifier, Qualaroo considers the user to be an unknown visitor or a user with no account.
{{< /info >}}

### Supported mapping

The following table lists the mappings between the RudderStack and Qualaroo properties:

| RudderStack property | Qualaroo property  |
|:---------------------|:-------------|
| `userId` <br/> `context.traits.email` <br/> `context.traits.userId` <br /> `context.traits.id` | `identify` | 
| `context.traits` | `traits` |

## Track

You can use the [`track`]({{< ref "event-spec/standard-events/track.md" >}}) call to track user activities and send this information to Qualaroo.

A sample `track` call is shown below:

```javascript
rudderanalytics.track("Product Viewed")
```

RudderStack maps the event name to Qualaroo's `Triggered event` property. It then calls the `_kiq.push(['set', ...])` method and passes the trait as `Triggered event: event`.

{{< warning >}}
Qualaroo does not accept any `track` event properties.
{{< /warning >}}

### Recording Qualaroo callback events

You can use the **Record Qualaroo Events** dashboard setting to allow RudderStack to automatically record your specified Qualaroo callback events as `track` events. You can then view and analyze these events using other tools (connected to the same source in RudderStack). 

Use the **List of Events** dashboard setting to specify the callback events to be automatically recorded:

{{< image src="images/event-stream-destinations/qualaroo-event-list.webp" alt="List of Qualaroo events to be recorded automatically" >}}

<br/>

RudderStack supports recording the following [Qualaroo callback events](https://help.qualaroo.com/hc/en-us/articles/201447336-Using-Event-Handler-Callbacks):

| Event name | Description |
| :-----| :-----| 
| `show` | When a survey is displayed. |
| `close` | When a visitor submits the survey. |
| `submit` | When a visitor replies to a question. |
| `noTargetMatch` | When no surveys are set to fire. |

You can also map your `track` events to the standard Qualaroo callback events using the **Mapping to update the Event Name in track call** dashboard setting:

{{< image src="images/event-stream-destinations/qualaroo-update-event-name.webp" alt="Map events to standard Qualaroo events" >}}

## Page

You can use the [`page`]({{< ref "event-spec/standard-events/page.md" >}}) call to send any page-related information to Qualaroo.

A sample `page` call is shown below:

```javascript
rudderanalytics.page("Home")
```

RudderStack concatenates the page's `name` and `category` and maps it to Qualaroo's `Viewed Page` property. It then calls the `_kiq.push(['set', ...])` method and passes the trait as `Viewed Page: name+category`.

{{< warning >}}
Qualaroo does not accept any `page` event properties.
{{< /warning >}}

## FAQ 

#### Where can I find the Qualaroo customer ID and site token?

To get your Qualaroo customer ID and site token, follow these steps:

1. Log into your [Qualaroo dashboard](https://app.qualaroo.com/dashboard).
2. Click the **Install Code** option:

{{< image src="images/event-stream-destinations/qualaroo-install-code.webp" alt="Install code option in Qualaroo dashboard" >}}

3. Click **Paste code in website source code or GTM**.
4. In the **Copy the Code** section, look for `s.src` and note the mentioned URL:

{{< image src="images/event-stream-destinations/qualaroo-js-url.webp" alt="Qualaroo JavaScript URL" >}}

Suppose your URL is `https://cl.qualaroo.com/ki.js/12345/j8N.js`, then `12345` is the customer ID and `j8N` is the site token.
