Schémas
L'API d'import des datas permet de traiter un batch de 10 items par requête dont voici les différents schémas.
Vous pouvez mixer les différents types de données dans le même batch.
User
Les objets user
doivent pouvoir être manipulés avec finesse, c'est pourquoi l'API vous permet de modifier ou supprimer uniquement certains champs avec des opérateurs dédiés (set
, unset
, addTags
, setTags
, removeTags
, addProperties
, setProperties
, removeProperties
).
La plupart des champs des profils utilisateurs sont standardisés avec des formats ISO (language
, country
, timezone
...) afin d'être exploitables par vos intégrations tierces.
Propriété
Type
Requis
Description
id
string
✓
ID unique qui permet d'identifier les erreurs éventuelles lors du traitement.
kind
string
✓
La valeur doit être "user
".
user
object
✓
Objet contenant les datas.
user.externalId
string
✓
User ID externe de votre base de donnée.
user.isAuthenticated
boolean
✓
user.createdAt
datetime
Date de création initiale du user
dans votre base de donnée, au format ISO.
user.profile
object
Objet contenant les opérations de modification du profil utilisateur.
user.profile.set
object
Objet contenant les champs du profil utilisateur à modifier.
user.profile.set.signupAt
datetime
user.profile.set.firstName
string
Prénom.
user.profile.set.lastName
string
Nom.
user.profile.set.gender
string (male/female)
Sexe (male
ou female
).
user.profile.set.birthday
date
Date d'anniversaire au format 2020-31-01
.
user.profile.set.language
string
Langue préférée pour les communications au format ISO (fr
, en
...)
user.profile.set.photoURL
URL
URL de la photo de profil.
user.profile.set.email
Adresse email. Sert à l'unification des profils utilisateurs.
user.profile.set.emailMd5
string
Hash MD5 de l'adresse email. Calculé automatiquement depuis l'adresse email. Sert à l'unification des profils utilisateurs.
user.profile.set.emailSha1
string
Hash SHA1 de l'adresse email. Calculé automatiquement depuis l'adresse email. Sert à l'unification des profils utilisateurs.
user.profile.set.emailSha256
string
Hash SHA256 de l'adresse email. Calculé automatiquement depuis l'adresse email. Sert à l'unification des profils utilisateurs.
user.profile.set.websiteURL
URL
URL du site web. Sert à l'unification des profils utilisateurs.
user.profile.set.linkedInURL
URL
URL du profil LinkedIn. Sert à l'unification des profils utilisateurs.
user.profile.set.twitterUsername
string
Username du profil Twitter (sans le @). Sert à l'unification des profils utilisateurs.
user.profile.set.facebookUsername
string
Username du profil Facebook. Sert à l'unification des profils utilisateurs.
user.profile.set.facebookId
string
ID du profil Facebook. Sert à l'unification des profils utilisateurs.
user.profile.set.telephone
string
Numéro de téléphone.
user.profile.set.addressLine1
string
Adresse ligne 1.
user.profile.set.addressLine2
string
Adresse ligne 2.
user.profile.set.city
string
Ville.
user.profile.set.region
string
Région.
user.profile.set.postalCode
string
Code postal.
user.profile.set.state
string
État.
user.profile.set.country
string
Pays au format ISO (FR, US...)
user.profile.set.timezone
string
Fuseau horaire au format ISO (Europe/Paris
...).
user.profile.set.latitude
number
Latitude.
user.profile.set.longitude
number
Longitude.
user.profile.unset
[]string
Liste des champs à supprimer.
user.profile.addTags
[]string
Liste des tags à ajouter.
user.profile.setTags
[]string
Remplace l'ensemble des tags du profil utilisateur.
user.profile.removeTags
[]string
Liste des tags à supprimer.
user.profile.addProperties
object
Map des propriétés custom à ajouter.
user.profile.setProperties
object
Remplace l'ensemble des propriétés custom du profil utilisateur.
user.profile.removeProperties
[]string
Liste des propriétés custom à supprimer.
Exemple
Product
Propriété
Type
Requis
Description
id
string
✓
ID unique qui permet d'identifier les erreurs éventuelles lors du traitement.
kind
string
✓
La valeur doit être "product
".
product
object
✓
Objet contenant les datas.
product.externalId
string
✓
Product ID externe de votre base de donnée.
product.createdAt
datetime
✓
Date de création initiale du product
dans votre base de donnée, au format ISO.
product.catalogId
string
✓
La valeur doit être "default
".
product.title
string
✓
Nom du produit.
product.slug
string
✓
Slug du produit.
product.status
string
✓
Statut du produit: active
, archived
, draft
product.descriptionHtml
string
Fiche de description du produit au format HTML.
product.brand
string
Marque du produit.
product.publishedAt
datetime
Date de publication du produit.
product.tags
[]string
Liste de tags.
product.variants
product.images
product.coverExternalId
string
Image ID de l'image de couverture du produit.
product.updatedAt
datetime
Date de mise à jour du produit.
product.props
object
Map des propriétés custom du produit.
Product variant
Propriété
Type
Requis
Description
externalId
string
✓
Variant ID externe de votre base de donnée.
title
string
✓
Nom de la variante.
createdAt
datetime
✓
Date de création initiale de la variante dans votre base de donnée.
prices
upc
string
Universal Product Code.
sku
string
Single Key Unit.
taxable
boolean
Soumis à taxation.
position
int
Position de tri dans le catalogue.
allowBackorder
boolean
Autoriser la vente hors-stock.
stockLevel
int
Niveau du stock.
weight
number
Poids.
weightUnit
string
Unité de poids.
updatedAt
datetime
Date de modification de la variante dans votre base de donnée.
props
object
Map des propriétés custom de la variante.
Product price
Propriété
Type
Requis
Description
price
int
✓
Prix en centimes (ex: 10.15€ -> 1015)
priceCompare
int
Prix barré en centimes (ex: 10.15€ -> 1015). Utilisé lors des promotions.
Product image
Propriété
Type
Requis
Description
externalId
string
✓
Image ID externe de votre base de donnée.
url
URL
✓
URL de l'image.
width
int
✓
Largeur de l'image en px.
height
int
✓
Hauteur de l'image en px.
createdAt
datetime
✓
Date de création initiale de l'image dans votre base de donnée.
position
int
Position de tri dans le catalogue.
alt
string
Texte alternatif lors de l'affichage de l'image.
variantExternalIds
[]string
Liste des Variant ID auxquels l'image est rattachée.
updatedAt
datetime
Date de modification de l'image dans votre base de donnée.
Exemple
Order
Lorsque la commande est mise à jour (statut, panier...) dans votre logiciel eCommerce, vous pouvez l'importer à nouveau par webhook.
Propriété
Type
Requis
Description
id
string
✓
ID unique qui permet d'identifier les erreurs éventuelles lors du traitement.
kind
string
✓
La valeur doit être "order
".
order
object
✓
Objet contenant les datas.
order.externalId
string
✓
Order ID externe de votre base de donnée.
order.externalUserId
string
✓
User ID externe de votre base de donnée.
order.userIsAuthenticated
boolean
✓
order.createdAt
datetime
✓
Date de création initiale de l'order
dans votre base de donnée.
order.updatedAt
datetime
Date de modification de l'order
dans votre base de donnée.
order.domainId
string
✓
Domain ID auquel l'order
est rattaché.
order.country
string
Pays au format ISO (FR, US...).
order.conversionRuleId
string
✓
Conversion Rule ID auquel l'order est rattaché.
order.financialStatus
string
✓
Statut de paiement, la valeur doit être : pending
, authorized
, partially_paid
, paid
, partially_refunded
, refunded
, voided
order.currency
string
✓
Devise au format ISO (EUR
, USD
, GBP
...).
order.revenue
int
Montant de la commande en centimes HT et avant frais de port.
Ex : 10.20€ -> 1020
order.totalTips
int
Montant total en centimes des pourboires.
order.totalTax
int
Montant total en centimes des taxes.
order.totalDiscounts
int
Montant total en centimes des réductions.
order.items
order.discounts
order.refunds
order.fulfillmentStatus
string
Statut de préparation de commande. La valeur doit être : fulfilled
, partial
, restocked
order.publicURL
URL
URL publique de la page de suivi de commande. Cette URL doit pouvoir être envoyée par SMS / Email pour améliorer l'expérience client.
order.closedAt
datetime
Date de clôture de la commande.
order.cancelledAt
datetime
Date d'annulation de la commande.
order.cancelReason
string
Raison d'annulation qui peut être transmise au client.
order.tags
[]string
Liste de tags.
order.props
object
Map des propriétés custom de la commande.
Order item
Propriété
Type
Requis
Description
externalId
string
✓
Item ID externe de votre base de donnée.
name
string
✓
Nom du produit.
sku
string
Single Key Unit.
brand
string
Nom de la marque.
category
string
Nom de la catégorie.
variantTitle
string
Nom de la variante.
imageURL
URL
URL de la photo du produit.
currency
string
Devise au format ISO (EUR
, USD
, GBP
...).
price
int
Montant total en centimes avant application des réductions éventuelles.
quantity
int
Quantité.
props
object
Map des propriétés custom de l'item
.
Order discount
Propriété
Type
Requis
Description
kind
string
✓
Mode de réduction, la valeur doit être : manual
, script
, discountCode
title
string
✓
Nom de la réduction.
valueType
string
✓
Type de réduction, la valeur doit être : fixedAmount
, percentage
value
int
✓
Valeur de la réduction, en cents. Ex : 20€ -> 2000 et 5% -> 500.
code
string
requis si kind == discountCode
Code de réduction.
targetType
string
✓
Cible de la réduction, la valeur doit être : lineItem
, shippingLine
targetSelection
string
✓
Lignes ciblées par la réduction, la valeur doit être :
all
: la réduction s'applique sur toutes les lignesentitled
: la réduction s'applique uniquement sur toutes les lignes habilitéesexplicit
: la réduction s'applique sur toutes les lignes sélectionnées
allocationMethod
string
✓
Méthode d'allocation de la valeur de la réduction :
across
: La valeur est répartie sur toutes les lignes autorisées.each
: La valeur est appliquée sur chaque ligne autorisée.one
: La valeur est appliquée sur une seule ligne.
Order refund
Propriété
Type
Requis
Description
externalId
string
✓
Refund ID externe de votre base de donnée.
items
✓
createdAt
datetime
✓
Date de création initiale du refund
dans votre base de donnée.
updatedAt
datetime
Date de modification du refund
dans votre base de donnée.
note
string
Description éventuelle.
Refund item
Propriété
Type
Requis
externalId
string
✓
Item ID externe de votre base de donnée.
quantity
int
✓
Quantité remboursée.
subtotal
int
✓
Montant total HT en centimes.
totalTax
int
Montant total des éventuelles taxes en centimes.
sku
string
Single Key Unit.
Exemple
Event
Un event
permet de tracker un événément important pour votre business, effectué par un user
. Exemple : un formulaire remplis.
Propriété
Type
Requis
Description
id
string
✓
ID unique qui permet d'identifier les erreurs éventuelles lors du traitement.
kind
string
✓
La valeur doit être "event
".
event
object
✓
Objet contenant les datas.
event.externalId
string
✓
Event ID externe.
event.createdAt
datetime
✓
Date de l'événement.
event.externalUserId
string
✓
User ID externe.
event.userIsAuthenticated
boolean
✓
event.domainId
string
✓
Domain ID auquel l'événement est rattaché.
event.label
string
✓
Nom de l'événement.
event.value
integer
Valeur de l'événement.
event.externalSessionId
string
Requis si event.nonInteractive
n'est pas true
Session ID auquel l'événement est rattaché.
event.nonInteractive
boolean
Mettre à true
si l'événement ne provient d'une interaction du user
.
event.timezoneOffset
integer
Offset du fuseau horaire du user
.
event.props
object
Map des propriétés custom de l'événement.
Lead
Un lead
représente une opportunité (deal, contrat...) qui va changer d'état pour soit convertir ou soit être perdue.
Pour changer le stage
(= état actuel) d'un lead il faut fournir une date createdAt
plus récente que le dernier état connu pour un même identifiant externalId
.
id
string
✓
ID unique qui permet d'identifier les erreurs éventuelles lors du traitement.
kind
string
✓
La valeur doit être "lead
".
lead
object
✓
Objet contenant les datas.
lead.externalId
string
✓
Lead ID externe.
lead.createdAt
datetime
✓
Date de changement d'état (= stageId
) du lead.
lead.externalUserId
string
✓
User ID externe.
lead.userIsAuthenticated
boolean
✓
lead.domainId
string
✓
Domain ID auquel l'événement est rattaché.
lead.conversionRuleId
string
✓
Conversion Rule ID auquel l'order est rattaché.
lead.stageId
string
✓
Stage ID du lead à la date de createdAt
.
lead.publicURL
string
URL publique qui peut être communiquée au client pour suivre l'avancement de son dossier.
lead.revenue
integer
Montant en centime du deal.
lead.currency
string
Devise du revenue
au format ISO.
lead.tags
[]string
Liste de tags.
lead.props
object
Map des propriétés custom de l'événement.
Client
Un client
représente un moyen d'accéder à votre service en ligne, ça peut être un navigateur web, une application native etc... Les interactions (sessions
, pageviews
, timeSpent
...) doivent être rattachées à un client.
Propriété
Type
Requis
Description
id
string
✓
ID unique qui permet d'identifier les erreurs éventuelles lors du traitement.
kind
string
✓
La valeur doit être "client
".
client
object
✓
Objet contenant les datas.
client.externalId
string
✓
Client ID externe.
client.createdAt
datetime
✓
Date de première visite du client
au format ISO.
client.externalUserId
string
✓
User ID externe.
client.userIsAuthenticated
boolean
✓
client.userAgent
string
Requis si les propriétés os
, platform
& device
sont manquantes.
User agent du navigateur web.
client.os
string
Requis si le userAgent
est manquant.
La valeur doit être : Unknown
, WindowsPhone
, Windows
, MacOSX
, iOS
, Android
, Blackberry
, ChromeOS
, Kindle
, WebOS
, Linux
, Playstation
, Xbox
, Nintendo
, Bot
client.platform
string
Requis si le userAgent
est manquant.
La valeur doit être : Unknown
, Windows
, Mac
, Linux
, iPad
, iPhone
, iPod
, Blackberry
, WindowsPhone
, Playstation
, Xbox
, Nintendo
, Bot
client.device
string
Requis si le userAgent
est manquant.
La valeur doit être : Unknown
, Computer
, Tablet
, Phone
, Console
, Wearable
, TV
client.vendor
string
client.resolution
string
Taille d'écran au format largeurxhauteur. Ex: 1920x1080
client.resolutionAvailable
string
Taille d'écran disponible dans la fenêtre du navigateur au format largeurxhauteur. Ex: 1840x970
client.timezone
string
Fuseau horaire du client au format ISO (ex: Europe/Paris
)
client.timezoneOffset
int
Décalage horaire du fuseau par rapport à UTC en minutes du navigateur web. (ex: -60
), déterminé par new Date().getTimezoneOffset()
client.doNotTrack
string
Valeur du navigator.doNotTrack
du navigateur web.
client.language
string
Langue au format ISO (en
, fr
, de
...) du client.
client.languages
[]string
Liste des langues par ordre de préférence au format ISO. Ex: ["en", "fr"]
client.adBlock
boolean
Bloqueur de publicité activé.
Session
Les sessions permettent de regrouper les interactions utilisateurs (pageview
, event
, cart
, order
...) ayant eu lieu lors d'une même visite (web ou POS) et constitue une contribution au parcours de conversion lors de l'attribution des ventes.
Propriété
Type
Requis
Description
id
string
✓
ID unique qui permet d'identifier les erreurs éventuelles lors du traitement.
kind
string
✓
La valeur doit être "session
".
session
objet
✓
Objet contenant les datas de la session.
session.externalId
string
✓
Session ID externe.
session.createdAt
datetime
✓
Date de création de la session au format ISO.
session.externalUserId
string
✓
User ID externe.
session.userIsAuthenticated
boolean
✓
session.domainId
string
✓
Domaine ID.
session.source
string
✓
Source du canal ayant généré la session (=utm_source).
session.medium
string
✓
Medium du canal ayant généré la session (=utm_medium).
session.externalClientId
string
session.timezoneOffset
integer
Offset du fuseau horaire du user
.
session.campaignId
string
ID de la campagne ayant généré la session (=utm_campaign)
session.adId
string
ID de la publicité ayant généré la session (=utm_content)
session.keywordId
string
Mot clé ayant généré la session (=utm_term)
session.landingPage
string
URL de la page d'atterissage ayant généré la session, dans le cas d'une visite web.
session.referrer
string
URL de la page referrer ayant généré la session, dans le cas d'une visite web.
session.customDimension1
string
Dimension custom
Pageview
TimeSpent
Cart
WishList
Notification topics
Inscription
Propriété
Type
Requis
Description
id
string
✓
kind
string
✓
La valeur doit être subscribeToNotificationTopic
subscribeToNotificationTopic
objet
✓
Objet contenant les datas.
subscribeToNotificationTopic.externalUserId
string
✓
User ID externe de votre base de donnée.
subscribeToNotificationTopic.userIsAuthenticated
boolean
✓
subscribeToNotificationTopic.createdAt
datetime
✓
Date de création initiale de l'inscription dans votre base de donnée.
subscribeToNotificationTopic.notificationTopicId
string
✓
ID du topic de notification.
subscribeToNotificationTopic.channel
string
✓
Canal de communication: email
ou sms
rsubscribeToNotificationTopic.recipient
string
✓
Adresse du destinataire. Email pour le canal email
, et numéro de téléphone pour le canal sms
.
subscribeToNotificationTopic.collectionItemExternalId
string
ID externe de l'item concerné si le topic de notification est de type collection
. Exemple: ID du produit pour un topic "Alerte retour en stock".
subscribeToNotificationTopic.skipDoubleOptIn
boolean
true
pour inscrire les utilisateurs au topic sans leur demander de confirmation.
Exemple
Désinscription
Propriété
Type
Requis
Description
id
string
✓
kind
string
✓
La valeur doit être unsubscribeFromNotificationTopic
unsubscribeFromNotificationTopic
objet
✓
Objet contenant les datas.
unsubscribeFromNotificationTopic.externalUserId
string
✓
User ID externe de votre base de donnée.
unsubscribeFromNotificationTopic.createdAt
datetime
✓
Date de création initiale de l'inscription dans votre base de donnée.
unsubscribeFromNotificationTopic.notificationTopicId
string
✓
ID du topic de notification.
unsubscribeFromNotificationTopic.channel
string
✓
Canal de communication à désinscrire: email
ou sms
subscribeToNotificationTopic.collectionItemExternalId
string
ID externe de l'item concerné si le topic de notification est de type collection
. Exemple: ID du produit pour un topic "Alerte retour en stock".
Exemple
Alias
Un alias
permet de fusionner 2 users
ensemble. Lors d'une fusion, tout l'historique (sessions
, pageviews
, events
, orders
...) du user
source est copié vers le user
de destination. Les propriétés du profil du user
source manquantes dans le profil du user
de destination sont également copiées.
Si de nouvelles données importées (anciennes ou futures) concernent le user
source, elles seront alors automatiquement enregistrées pour le user
de destination.
Il n'est pas possible de fusionner 2 users
authentifiés (user.isAuthenticated == true
) ensemble.
En général vous n'aurez jamais à utiliser cette fonction, l'Agent Web JS se charge de déclencher un alias
automatiquement lorsqu'un internaute anonyme se connecte sur votre site.
De plus, lorsque 2 users
possèdent une clé de réconciliation commune (email
, emailMd5
, emailSha1
, emailSha256
, websiteURL
, linkedInURL
, twitterUsername
, facebookUsername
, facebookId
...), Captain Metrics va automatiquement les fusionner et créer un alias
.
Propriété
Type
Requis
Description
id
string
✓
ID unique qui permet d'identifier les erreurs éventuelles lors du traitement.
kind
string
✓
La valeur doit être "alias
".
alias
object
✓
Objet contenant les datas.
alias.externalUserId
string
✓
alias.toExternalUserId
string
✓
User ID externe du user
de destination, qui survrivra à la fusion.
alias.toUserIsAuthenticated
boolean
Exemple
Dernière mise à jour
Cet article vous a-t-il été utile ?