# Users

## Overview

boardme allows you to propagate your *Users* and track their onboarding process.

{% hint style="success" %}
You are free to choose the amount of User Data you send to boardme. The only mandatory property for tracking users is a **unique user id.**
{% endhint %}

## Setting Up User Tracking&#x20;

{% hint style="info" %}
Setting up User Tracking requires you to have **boardme installed** in the **\<head>** section of your website or application.
{% endhint %}

If you have boardme installed, you can send User Data to boardme by inserting an additional code snippet above the line where boardme is imported.

This code snippet contains a JavaScript object with the `boardmeSettings` title and the `userId` property.

The most minimal form of the code snippet looks like this:

```
<script>
    window.boardmeSettings = { userId: "<UNIQUE_USER_ID>" };
</script>
```

You can choose to propagate the unique identifiers of your users from your database or generate new identifiers specifically for user onboarding, but make sure to set them to the `userId` property.

boardme doesn't care about the format of your identifiers as long as they are unique for each user in your system and they are no more than 250 characters long.

{% hint style="success" %}
Setting up User Tracking allows you to enable the **only show once per user** feature of Flows.
{% endhint %}

{% hint style="danger" %}
The unique user identifier needs to be set to the **userId** property on the boardmeSettings object.
{% endhint %}

###

## Sending User Data

Sending User Data comes in handy when you want to configure intricate filters for your onboarding flows. For example, you only want to show a Flow to users that h*ave a pro account and registered less than 3 months ago*.

This would be a very specific Flow Trigger condition, so boardme will need to know the type of account they have and when they registered.

Not to worry though, boardme allows for sending this data just as easily as User Tracking is enabled. In fact, it's the exact same `json` format and you can choose how much data you want to share.

A minimal code snippet to fit our condition would look like this:

```
<script>
    window.boardmeSettings = {
        userId: "<UNIQUE_USER_ID>",
        accountType: "Pro",
        registeredDate: "2020-07-23T14:06:17.136Z"
    };
</script>
```

With the same format, any number of properties and values can be appended to the `boardmeSettings` object.&#x20;

&#x20;


---

# Agent Instructions: 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:

```
GET https://andreigaspar.gitbook.io/boardme/application/users-1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
