# User markers (tags)

This document provides an overview of the three distinct types of tags — **Core: user markers** (core\_tags), **Core: external markers** (core\_external\_markers), and **Core: JS markers** (core\_public\_tags) — used within our CRM automation software.

These markers are pivotal in segmenting users and tailoring campaigns, automation rules, and gamification entities.

<figure><img src="/files/e8rTGOil04sEhWiTijCx" alt=""><figcaption><p>Usage of markers in the segmentation</p></figcaption></figure>

## **Core: user markers (**&#x63;ore\_tag&#x73;**)**

These markers are internally managed within the Smartico system. They should be updated only using Smartico internal mechanics like Campaign and Automation rules on direction from the user profile in CRM tab.<br>

<div data-full-width="false"><figure><img src="/files/FpiKgbDUhjwA7rVd9yGM" alt=""><figcaption><p>Setting/removing markers from the campaign flow</p></figcaption></figure></div>

<figure><img src="/files/bpbKTFIpILvh9iMM3U3b" alt=""><figcaption><p>Markers visibility on the CRM profile screen</p></figcaption></figure>

## **Core: external markers (**&#x63;ore\_external\_marker&#x73;**)**

External Markers are sourced externally via APIs ( or possibly through the DB Replica of Kafka/RabbitMQ). They are never updated with Smartico mechanics, which means that the only source of truth is the integrated platform.

In case you want to update external markers from the API, you can use this type of payload when calling Smartico REST API (you can find full documentation of API and security keys in the Tools \ REST API in the Smartico Back Office)

```json
[
    {
        "eid": "99dcc07c-17f6-418e-b574-c91ffe77d18e",
        "event_date": 1717508861954,
        "ext_brand_id": "spacex",
        "user_ext_id": "test61323352",
        "event_type": "update_profile",
        "payload": {
            "core_external_markers": [
                "Test with API",
                "Marker X"
            ]
        }
    }
]
```

<figure><img src="/files/mny2LrQnPGeZWMp9IPYg" alt=""><figcaption><p>See updates in the markers, and how they are delivered into the Smartico system. The same approach is working for JS Markers and User markers</p></figcaption></figure>

{% hint style="info" %}
In addition to **core\_external\_markers**, Smartico has 2 more similar properties that can be used for the same purpose: **core\_external\_markers2** and **core\_external\_segment**.

Both of them are holding arrays of names (strings), can serve the same needs as original property. Usually they are used when Operator wants to separate different type of markets and not to mix them under one bucket
{% endhint %}

## **Core: JS markers (**&#x63;ore\_public\_tag&#x73;**)**

JS Markers can be manipulated from the front-end using JavaScript and within the Smartico system through campaigns or automation rules.

It is important that these tags are exposed to the front-end, so they can be used to make changes in the front-end UI based on the presence/absence of the specific tags. The APIs to read/update tags are explained in "[Extended Integration](/welcome/technical-guides/front-end-integration/extended-integration.md)"

```javascript
// to get JS markers on the front-end
// if the marker is set from the Campaign/Automation rule
// the callback 'props_change' will be triggered in the realtime
_smartico.on('props_change', function(props) {
    if (props.core_public_tags !== undefined) {
        // note that the passed object is an array 
        // with upper-cased markers of users
        console.log('List of user tags', props.core_public_tags.join(','));
    }
});

// to update tags from the front-end
_smartico.event('core_public_tags_update', { core_public_tags: ['A', 'B'] } );

```

## Summary

<table><thead><tr><th width="247">Marker type</th><th>Source of data</th><th>Usage</th></tr></thead><tbody><tr><td>Core: user markers</td><td>Smartico Campaigns and Rules + manual update from CRM profile</td><td>Segmentation on Smartico side</td></tr><tr><td>Core: external markers</td><td>Integrated platform via API, Replica DB or Kafka/RabbitMQ</td><td>Segmentation on Smartico side</td></tr><tr><td>Core: JS Markers</td><td>Smartico Campaigns and Rules + from the front-end with JavaScript</td><td>Segmentation on Smartico side + Visible in the front-end JavaScript API</td></tr></tbody></table>

{% hint style="info" %}
Note: all users with corresponding markers are available for export from the Smartico Data warehouse, you can read about DWH [here](/welcome/technical-guides/smartico-data-warehouse.md)
{% endhint %}


---

# 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://help.smartico.ai/welcome/products/general-concepts/user-markers-tags.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.
