Envoyer vos champs de session
Envoyez vos propres données par session pour les retrouver dans les dashboards NiaOne.
Vos dashboards peuvent suivre vos propres indicateurs métier. Par exemple, pour un SIA de support client : « ticket créé », « résolution proposée par l'IA », « client aidé ». Cette page explique comment envoyer ces données.
Le principe
- Chaque session porte vos champs.
- NiaOne repère ces champs tout seul, sans configuration.
- Vous les retrouvez dans les dashboards : KPI, répartitions, courbes et assistant IA.
Une règle par type de valeur
Choisissez le canal selon le type de la valeur. Gardez le même canal pour un champ donné.
| Type de valeur | Comment l'envoyer | Exemple |
|---|---|---|
| Oui / non | Label x.<nom>, valeur "true" ou "false" (texte) | x.ticket_cree = "true" |
| Liste de valeurs | Label x.<nom>, valeurs courtes et stables | x.client_aide = "oui" | "non" | "partiel" |
| Nombre | Métrique : nom, valeur, unité | duree_traitement_s = 184, unité "s" |
Pourquoi ces choix :
- Un label n'accepte que du texte. Un booléen JSON (
truesans guillemets) est refusé à l'envoi. Écrivez donc"true"ou"false". - Les labels servent à trier et regrouper. C'est ce qu'il faut pour un taux ou une répartition.
- Une métrique porte un vrai nombre et son unité. NiaOne peut en faire une moyenne ou un total.
Où les envoyer
Une session regroupe plusieurs tours. Chaque tour est un flow, et tous les tours partagent le même
session_id (voir Sessions et traçage distribué).
Deux façons de faire, au choix :
- Sur le flow de chaque tour, avec le même
session_id. Les labels du flow sont hérités par toutes ses étapes et tous ses événements. - Sur un flow de fin de session, envoyé une fois quand la session se termine, avec le même
session_id. C'est le plus simple quand les valeurs ne sont connues qu'à la fin.
La dernière valeur compte
Si un champ est envoyé plusieurs fois dans une session, NiaOne garde la dernière valeur reçue.
Vous pouvez donc envoyer "false" au début, puis "true" quand le ticket est créé.
Exemple complet : un SIA de support
Cet exemple envoie un flow de fin de session. Il combine des appels déjà documentés :
start_flow/startFlowaveclabels(voir Labels et annotations) ;- le paramètre
session_id/sessionId(voir Sessions) ; metricsur une étape, puisend_stepetend_flow(voir Capturer les données et Instrumenter).
def fin_de_session(session_id: str, ticket_cree: bool, resolution_proposee: bool, client_aide: str, duree_traitement_s: float): # Les labels sont du texte : "true" / "false", jamais un booléen. flow = start_flow(client, flow_definition_id="support_bot", name="support_bot_main", session_id=session_id, labels={ "x.ticket_cree": "true" if ticket_cree else "false", "x.resolution_proposee": "true" if resolution_proposee else "false", "x.client_aide": client_aide, # "oui", "non" ou "partiel" }) # Le nombre passe par une métrique, sur une étape de ce flow. step = start_step(flow, asset=asset, flow=Flow(name="support_bot_main")) metric(step, "duree_traitement_s", duree_traitement_s, unit="s") end_step(step, "success") end_flow(flow, "success")fin_de_session("conv_8421", ticket_cree=True, resolution_proposee=True, client_aide="partiel", duree_traitement_s=184)Pour envoyer les champs sur chaque tour, ajoutez les mêmes labels au flow de chaque tour. Mettez-y
les valeurs connues à ce moment-là.
Envoyez le champ sur chaque session
Un taux comme « sessions avec ticket créé » se calcule sur toutes les sessions de la période.
Une session sans le champ compte dans la base, mais jamais comme « oui ». Envoyez donc aussi
"false" quand la réponse est non.
Ce que vous obtenez dans NiaOne
NiaOne déduit le type de chaque champ à partir des valeurs reçues. Il propose alors des blocs adaptés. Le nom affiché est un nom lisible, sinon la clé.
| Type de champ | Blocs proposés |
|---|---|
| Oui / non | Taux de sessions à « oui » (avec la base : « sur N sessions »), courbe par jour |
| Liste de valeurs | Répartition des sessions par valeur |
| Nombre | Moyenne, total, courbe par jour |
- Combiner deux champs : demandez-le à l'assistant IA du dashboard. Par exemple : « taux de clients aidés parmi les sessions où l'IA a proposé une résolution ».
- Voir les sessions derrière un chiffre : cliquez sur un chiffre, un jour ou une valeur. La liste des sessions concernées s'ouvre. Chaque ligne ouvre le détail de la session.
- Les jours suivent le fuseau horaire de votre navigateur.
Bonnes pratiques et limites
| Règle | Détail |
|---|---|
| Pas de données personnelles en label | Pas d'identifiant, d'e-mail ni de texte libre. Ces champs ne sont pas proposés dans les dashboards, et les données personnelles sont masquées dans la liste des sessions. |
| Valeurs courtes et stables | Quelques valeurs possibles, toujours écrites pareil : "oui", pas "Oui" un jour et "oui !" le lendemain. |
| Clés en minuscules | Préfixe x., minuscules, sans accent, avec . ou _ : x.ticket_cree, x.client_aide. |
| Clés réservées | environment est réservé : NiaOne le remplit avec l'environnement de la clé API et écrase toute valeur envoyée. Les labels système (env, tenant, product, team…) le sont aussi. |
| Taille d'un envoi | 256 Ko au plus par envoi (valeur par défaut), 100 enregistrements au plus par lot. |
| Données de test à part | Utilisez une clé API par environnement. Vos tests restent séparés des chiffres de production. |
Vérifier que ça marche
- 1
Envoyer une session de test
Lancez une session avec vos champs, avec la clé API de votre environnement de test.
- 2
Contrôler la session
Dans Explore › Sessions, ouvrez la session, puis l'onglet Metadata. Vos champs apparaissent dans Labels. Vous pouvez aussi afficher un champ en colonne via Colonnes › champs custom (voir Exploiter les metadata).
- 3
Retrouver le champ dans un dashboard
Dans un dashboard, ouvrez Ajouter des blocs › Vos champs. Vos champs y sont listés après les premiers envois, avec les blocs proposés pour leur type.
Le champ n'apparaît pas
Vérifiez d'abord l'onglet Metadata de la session. Si le champ n'y est pas, il n'a pas été
envoyé : contrôlez le session_id et le type de la valeur (du texte pour un label). Un envoi
refusé pour un booléen non converti ne crée aucune donnée.