--- title: "Users" slug: "intelligence-smart-pixel-users" description: "Track user data with the Smart Pixel: customer ID, user categories and Mapp Engage registration fields such as email, country, language and time zone." status: "update" updated: 2026-11-02T15:44:32Z published: 2026-11-02T15:44:32Z canonical: "docs.mapp.com/intelligence-smart-pixel-users" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.mapp.com/llms.txt > Use this file to discover all available pages before exploring further. # Users ## 1 Overview This page explains how to track and enrich user information in Mapp Intelligence. There are three primary use cases: - **Improve user identification**: Transmit a customer ID (e.g. hashed email address) to improve long-term and cross-device user recognition. This helps reduce fragmentation caused by cookie restrictions or device changes. - **Enable user matching with Mapp Engage**: IDs and attributes can be shared between Mapp Intelligence and Engage, enabling cross-system user understanding. - **Send additional user-specific information**: Attributes such as opt-in status or gender can be tracked and used for segmentation and analysis in Mapp Intelligence. ## 2 Configurable Properties The following table shows all supported properties, their descriptions, request parameters, and data types. | Parameter | Description | Data available | Data type (Default value) | **Request Parameter** | | --- | --- | --- | --- | --- | | id | A unique identifier of the user (e.g., a hashed email address). To comply with data protection requirements, data must be encrypted and ensured unreadable (e.g., using the MD5 or SHA256 hash). > [!NOTE] > If you use an unhashed e-mail address as customer ID, the Smart Pixel automatically generates a SHA256 hash and uses that as the customer ID. | Mapp Intelligence | String | `cd` | | emailRID | The email receiver ID of the user serves as a link between Mapp Intelligence and your email tool (e.g., Mapp Engage). > [!NOTE] > If you are using Mapp Engage, it gets automatically filled with the Mapp Engage Contact ID when a user clicks an email. This allows for identifying users between Mapp Intelligence and Mapp Engage. | String | `uc701` | | emailOptin | The e-mail opt-in status of the user (True \| False). Only relevant if you are not using Mapp Engage. > [!NOTE] > If you are using Mapp Engage, it gets automatically filled with the Mapp Engage Contact ID when a user clicks an email. This allows for identifying users between Mapp Intelligence and Mapp Engage. | Boolean (false) | `uc702` | | registrationEmail | The Email address used to identify the user in Mapp Engage. | Mapp Engage | String | `er1` | | registrationGroupId | Provide the group ID in case of a new registration for the user in Mapp Engage. | String | `er2` | | registrationMode | Provide the registration method used to register for marketing activities. - **c** (CONFIRMED OPT IN) New contacts receive a welcome message via email when they are added to the group. The contact does not need to confirm the subscription. - **d** (DOUBLE OPT IN) New contacts receive an invitation to join the group via email. The contact must accept the invitation before they are added to the group. Learn more here: [Set up Double Opt-in with the Email Channel](https://docs.mapp.com/v1/docs/set-up-double-opt-in-with-the-email-channel). - **o** (OPT IN) (default) New contacts are added to the group without notification. | String | `er3` | | registrationFirstName | First name of the user to be used in Mapp Engage. | String | `er4` | | registrationLastName | Last name of the user to be used in Mapp Engage. | String | `er5` | | registrationGender | Gender of the user. - **u:** undisclosed - **f:** female - **m:** male | String | `er6` | | registrationTitle | The title of the user to be used in Mapp Engage. | String | `er7` | | registrationIsoCode | Country of the user to be used in Mapp Engage, as a two-letter ISO 3166-1 country code, for example `DE`. | String | `er8` | | registrationIsoLanguage | Language of the user to be used in Mapp Engage, as a two-letter ISO 639-1 language code, for example `de`. | String | `er9` | | registrationTimezone | Time zone of the user to be used in Mapp Engage, as an IANA time zone name, for example `Europe/Berlin`. | String | `er10` | | registrationOptin | Provide information that the user consented to use their data. - **true:** User consent - **false:** No consent > [!WARNING] > Only when set to ‘true’, data will be sent to Mapp Engage. | - | Boolean (false) | | | category | Custom user information, e.g. hashed identifiers or behavioral segments. Requires setup. > [!NOTE] > It is recommended to transmit hashed personal data that is not evaluated in terms of content (e.g. with the SHA256 hash). If you would like to collect this data for analytical reasons, we recommend that you transmit the data in encrypted form (see [How to Implement Server-Side Encryption in Mapp Intelligence](/v1/docs/server-side-encryption)). | Mapp Intelligence | Object | `uc[ID]` | ### 2.1 User Categories User categories allow you to track additional information for user segmentation and analysis. These must be configured in advance. You can track values like hashed newsletter IDs, login types, or marketing segments. - The ID and data type (text/number) are defined during setup. - These values are analyzed in *Visitors > User Categories* if the type is text, or as metrics if they are numbers. - Values are stored long-term and updated when new values are submitted. > [!WARNING] > Best practice: Use hashed or encrypted data if personal information is transmitted. Avoid using readable names for sensitive data. For setup instructions: [How to Set Up Categories](https://docs.mapp.com/v1/docs/how-to-set-up-categories) --- ## 3 Objects and Methods Mapp Intelligence provides two tracking objects for user data: - **data**: Use this object to configure the entire user setup. - **category**: Use this object to manage user categories independently. Each object supports four methods: | **Method** | **Description** | | --- | --- | | set() | Overwrites all existing values. | | add() | Adds or updates values. Existing values remain unchanged unless replaced. | | get() | Returns the current configuration. | | remove() | Deletes the entire configuration or selected values. | ### 3.1 data – Full User Configuration **Set** ```javascript /** * @param {{ *      [id=""]: string, *      [emailRID=""]: string, *      [emailOptin=false]: boolean, *      [registrationEmail='']: string, *      [registrationGroupId=""]: string, *      [registrationMode=""]: string, *      [registrationFirstName=""]: string, *      [registrationLastName=""]: string, *      [registrationGender=""]: string, *      [registrationTitle=""]: string, *      [registrationIsoCode=""]: string, *      [registrationIsoLanguage=""]: string, *      [registrationTimezone=""]: string, *      [registrationOptin=false]: boolean, *      [category={}]: {[number]: string} * }} data * * @returns {wtSmart.customer.data} */ wtSmart.customer.data.set(data); ``` **Add** ```javascript /** * @param {{ *      [id]: string, *      [emailRID]: string, *      [emailOptin]: boolean, *      [registrationEmail='']: string, *      [registrationGroupId=""]: string, *      [registrationMode=""]: string, *      [registrationFirstName=""]: string, *      [registrationLastName=""]: string, *      [registrationGender=""]: string, *      [registrationTitle=""]: string, *      [registrationIsoCode=""]: string, *      [registrationIsoLanguage=""]: string, *      [registrationTimezone=""]: string, *      [registrationOptin=false]: boolean, *      [category]: {[number]: string} * }} data * * @returns {wtSmart.customer.data} */ wtSmart.customer.data.add(data); ``` **Get** ```javascript /** * @returns {{ *      id: string, *      emailRID: string, *      emailOptin: boolean, *      registrationEmail: string, *      registrationGroupId: string, *      registrationMode: string, *      registrationFirstName: string, *      registrationLastName: string, *      registrationGender: string, *      registrationTitle: string, *      registrationIsoCode: string, *      registrationIsoLanguage: string, *      registrationTimezone: string, *      registrationOptin: boolean, *      category: {[number]: string} * }} */ wtSmart.customer.data.get(); ``` **Remove** ```javascript /** * @param {string[]} [removeList] * * @returns {wtSmart.customer.data} */ wtSmart.customer.data.remove(removeList); ``` **Example** ```javascript // set customer data wtSmart.customer.data.set({ id: 'user5684798169', emailRID: '', emailOptin: true, registrationEmail: 'john.doe@mapp.com', registrationGroupId: '123456', registrationMode: 'o', registrationFirstName: 'John', registrationLastName: 'Doe', registrationGender: 'm', registrationTitle: '', registrationIsoCode: 'DE', registrationIsoLanguage: 'de', registrationTimezone: 'Europe/Berlin',    registrationOptin: true, category: { 5: 'login' } }); // add customer data wtSmart.customer.data.add({ emailRID: 'foo.bar' }); // get customer data var data = wtSmart.customer.data.get();   // remove all customer data wtSmart.customer.data.remove(); // remove only registrationFirstName, and registrationLastName from customer data wtSmart.customer.data.remove(['registrationFirstName', 'registrationLastName']); ``` ### 3.2 category – User Classification **Set** ```javascript /** * @param {{[number]: string}} data * * @returns {wtSmart.customer.category} */ wtSmart.customer.category.set(data); ``` **Add** ```javascript /** * @param {{[number]: string}} data * * @returns {wtSmart.customer.category} */ wtSmart.customer.category.add(data); ``` **Get** ```javascript /** * @returns {{[number]: string}} */ wtSmart.customer.category.get(); ``` **Remove** ```javascript /** * @param {number[]} [removeList] * * @returns {wtSmart.customer.category} */ wtSmart.customer.category.remove(removeList); ``` **Example** ```javascript // set customer category wtSmart.customer.category.set({    1: 'login' }); // add customer category wtSmart.customer.category.add({    7: 'foo.bar' }); // get customer category var data = wtSmart.customer.category.get();   // remove all customer category wtSmart.customer.category.remove(); // remove only customer category 7 wtSmart.customer.category.remove([7]); ``` --- ## 4 Code Generator Use the code generator to create tracking code for user-related data that you can directly integrate into your website. [Embedded content](https://static.webtrekk.com/pixel/wtsmart-gui/data/customer/?nohelp=1)