# Topics

## Introduction

Les topics de notification permettent de gérer l'inscription et la désinscription de vos utilisateurs à des sujets de notification (ex : Newsletter).

On distingue 2 types de topics :

* Le Broadcast, permet d'envoyer une notification générique à un ensemble de souscripteurs. Exemple : une newsletter.
* La [Collection](#collections), permet d'envoyer une notification concernant seulement un élément d'une collection (catalogue produit...),  à un ensemble de souscripteurs. Exemple : alerte lorsqu'un produit (présent dans un catalogue produit) est à nouveau disponible.

Les topics de type "Collection" sont généralement couplés à des [Workflows](https://docs.captainmetrics.com/marketing-automation/workflows) pour automatiser l'envoi de notification lorsque certains événements se produisent (produit `backInStock`, `priceDrop`...).

Puisque les topics de notification visent à envoyer des notifications multi-canal, vous pouvez activer plusieurs canaux de notification sur votre topic (email, SMS...), et un utilisateur pourra souscrire à tous les canaux disponibles pour ce même topic.

Exemple : vous pouvez créer un topic pour alerter vos utilisateurs des retours en stock d'un produit par email et SMS. L'utilisateur pourra y souscrire par email et par SMS, il recevra donc une notification sur les 2 canaux en même temps.

## Double opt-in

La règlementation oblige à recueillir le consentement de vos utilisateurs pour toutes vos communications marketing.

L'activation du double opt-in dans vos topics enverra une notification de confirmation aux utilisateurs lorsque ceux-ci y souscriront.

{% hint style="info" %}
Lors de la confirmation de leur email / téléphone etc... il seront effectivement inscrits et leur profil utilisateur sera éventuellement [fusionné](https://docs.captainmetrics.com/introduction/unification-des-utilisateurs) si cet email / téléphone existait déjà dans un autre profil utilisateur afin de maintenir une vision unifiée de votre base de clients.
{% endhint %}

### Notification du double opt-in

Il est nécessaire de créer une notification au préalable dans Captain Metrics qui prendra en charge la confirmation du double opt-in.

Les variables qui sont passées aux templates de cette notification sont :

* `user` : objet JSON contenant le profil de l'utilisateur concerné par la notification
* `notificationTopicName` : nom du topic de notification auquel l'utilisateur vient de souscrire
* `url` : URL sur laquelle l'utilisateur doit cliquer pour confirmer son inscription au topic

{% hint style="warning" %}
Vous devez ajouter une URL de redirection avec le paramètre `redirect`, à la fin de la variable `url` pour spécifier la page de confirmation d'inscription.
{% endhint %}

Exemple des variables passées aux templates :

```javascript
{
    "user": {
        "firstName": "John",
        "lastName": "Doe",
        ... etc ...
    },
    "notificationTopicName": "Newsletter",
    "url": "https://photon.captainmetrics.com/optin/?token=xxxxxxx"
}
```

Exemple d'utilisation dans un template :

```javascript
Bonjour {{ user.firstName }}, veuillez visiter le lien suivant pour confirmer 
votre inscription à {{ notificationTopicName }} :
{{ url + '&redirect=https://your-website.com/newsletter-thank-you' }}
```

### Redirection & réconciliation cross-device

Lorsque l'internaute clique sur le lien de confirmation de souscription au topic, il est redirigé vers l'URL de confirmation que vous avez spécifié, et [les paramètres de réconciliation cross-device](https://docs.captainmetrics.com/integrations/agent-web-js#reconciliation-cross-device-and-cross-domain) de Captain Metrics sont automatiquement injectés.

Grâce à ce mécanisme, si un utilisateur souscrit à votre newsletter avec son ordinateur et confirme son inscription via son téléphone, son navigateur mobile sera automatiquement rattaché à son profil ainsi que ses éventuelles sessions web passées.

## Collections

Admettons que vous souhaitez permettre à vos utilisateurs de pouvoir recevoir une alerte lorsqu'un produit out-of-stock est de nouveau disponible.&#x20;

Vous allez devoir créer un nouveau topic "Back in Stock" pour gérer les inscriptions des utilisateurs concernés, mais si votre catalogue contient 1000 produits il va devenir impossible de créer 1000 topics.

Pour vous éviter de créer un topic par produit, nous allons créer un topic de type "Collection" et spécifier notre catalogue produit comme destination.

Ensuite, lorsqu'un utilisateur voudra souscrire aux alertes "Back in Stock" pour un produit donné, il suffira de fournir l'ID du produit (= collection item external ID) lors de la souscription.

## Inscriptions & désinscription

### Via l'agent web JS

Consulter la [documentation ici](https://docs.captainmetrics.com/integrations/agent-web-js#topics-de-notification).

### Via la console Captain Metrics

Vous pouvez inscrire et désinscrire les utilisateurs de vos topics de notification depuis l'interface de Captain Metrics, via le profil de l'utilisateur concerné ou en utilisant un [Workflow](https://docs.captainmetrics.com/marketing-automation/workflows) pour traiter un batch d'utilisateurs.

#### Profil de l'utilisateur

Le profil utilisateur liste l'état actuel des souscriptions à vos topics de notification. Vous pouvez ajouter ou retirer une souscription, par canal (email, sms...), comme ceci :

![Liste l'état des souscriptions aux topics](https://3988754291-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M3qLgc05uobPjWj6gZE%2F-MZmoqdsRkya3vG9VWfQ%2F-MZmqoNlGJvqOgmcX1Ws%2Fuser-notification-topics.png?alt=media\&token=583fc195-bf01-4894-b0aa-9b4e78a24913)

![Formulaire d'ajout d'une souscription](https://3988754291-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M3qLgc05uobPjWj6gZE%2F-MZmoqdsRkya3vG9VWfQ%2F-MZmqvIpVRuVTUdZTA8U%2Fadd-subscription-topic.png?alt=media\&token=5775ff5f-f160-4831-ac63-f0566fe8517e)

#### Workflow

L'utilisation d'un workflow permet d'inscrire ou désinscrire les utilisateurs concernés automatiquement.

![Actions d'inscription et désinscription aux topics](https://3988754291-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M3qLgc05uobPjWj6gZE%2F-MZmoqdsRkya3vG9VWfQ%2F-MZmrokHdXpX4EpRVMuK%2Fworkflow-topics.png?alt=media\&token=439668b1-97da-4556-84d1-c383eedcc8ba)

![Formulaire de configuration du workflow](https://3988754291-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M3qLgc05uobPjWj6gZE%2F-MZmoqdsRkya3vG9VWfQ%2F-MZmrwulT_oMgnTWiEh2%2Fworkflow-add-topic.png?alt=media\&token=efcab3ca-85d9-4af0-8d3b-19303acd89e3)

### Via importation API

Consulter la [documentation ici](https://docs.captainmetrics.com/data-import-api/schemas#notification-topics).

### Lien de désinscription

Lorsqu'une notification est envoyée via un Workflow, en limitant les destinataires avec un filtre de "Topic de Notification", une variable `unsubscribeLink` est automatiquement mise à disposition des templates.

La variable `unsubscribeLink` contient un lien sur lequel l'utilisateur devra cliquer pour se désinscrire du topic. Il est le plus souvent présent en bas de vos emails marketing.

{% hint style="warning" %}
Tout comme le lien de confirmation Double opt-in, vous devrez ajouter une URL de redirection avec le paramètre `redirect`, à la fin de la variable `unsubscribeLink` pour spécifier la page de confirmation de désinscription.
{% endhint %}

Exemple de template :

```javascript
...Contenu de la newsletter...

Veuillez cliquer sur le lien suivant pour vous désinscrire
{{ unsubscribeLink + '&redirect=https://your-website.com/newsletter-goodbye' }}
```
