Événements d’espace de travail
Définissez des événements d’espace de travail et les types de leurs propriétés, pour que les événements w: que vous envoyez soient vérifiés.
Créer un événement d’espace de travail
Définit un événement d’espace de travail : un nom et les propriétés que porte chaque événement de ce type, chacune avec un type. Vous l’envoyez ensuite sous la forme w:<name>, et Emailit rejette les événements qui ne correspondent pas. Nécessite une clé API avec la portée full.
Les événements d’espace de travail sont inclus dans les forfaits Pro, Business et Custom. Un espace de travail peut en définir autant que son forfait compte de types d’événements : 100 sur Pro et 1 000 sur Business, sans limite sur Custom. Les événements personnalisés (c:<name>) ne nécessitent aucune définition. Consultez Événements d’espace de travail.
/workspace/eventsParamètres du corps
namestringobligatoirecustomer.type : de 1 à 100 lettres, chiffres, ., - ou _, en commençant par une lettre ou un chiffre. Vous pouvez aussi l’envoyer avec le préfixe (w:customer.type) ; le préfixe est retiré. Doit être unique dans l’espace de travail.titlestring | nulldescriptionstring | nullpropertiesobject[]Jusqu’à 50 définitions de propriétés. Par défaut : [], ce qui signifie que les événements de ce type ne portent aucune propriété. Chacune comporte :
name(obligatoire) : de 1 à 64 lettres, chiffres,-ou_, en commençant par une lettre ou un chiffre. Les points ne sont pas autorisés, car les filtres de webhook et les modèles utilisent les points pour accéder aux valeurs imbriquées. Les noms doivent être uniques dans la définition.type(obligatoire) :string,number,dateouboolean, quelle que soit la casse.title: un libellé, 120 caractères au maximum.description: 1 000 caractères au maximum.required:truesi chaque événement doit inclure la propriété. Par défaut :false.
Réponse
Renvoie 201 Created avec l’objet événement d’espace de travail.
| Statut | Cas |
|---|---|
403 |
La clé API n’a pas la portée full, ou l’espace de travail est sur Pay as you go : error vaut plan_required et required_plan vaut pro. |
409 |
Un événement d’espace de travail portant ce nom existe déjà. errors.name l’indique. |
422 |
Un champ est invalide : errors est indexé par son chemin, comme name ou properties.1.type, et message reprend le premier problème. Renvoyé aussi avec code: "workspace_events_limit" lorsque l’espace de travail compte déjà autant d’événements d’espace de travail que son forfait le permet, et pour un nom qui commence par c:. |
{
"object": "workspace_event",
"id": "etp_2yHn4Kd8QwE1rT6vBx9LmZ3sPf0",
"name": "customer.type",
"type": "w:customer.type",
"title": "Customer type",
"description": "Set when a customer's account type changes in the shop.",
"properties": [
{ "name": "segment", "type": "string", "title": "Segment", "description": "b2b or b2c", "required": true },
{ "name": "since", "type": "date", "title": null, "description": null, "required": false }
],
"created_at": "2026-10-19T08:00:00.000000+00:00",
"updated_at": "2026-10-19T08:00:00.000000+00:00"
}{
"error": "plan_required",
"required_plan": "pro",
"message": "Workspace and custom events are included with Pro and Business."
}{
"error": "w:customer.type is already defined",
"errors": {
"name": ["is already defined"]
}
}{
"error": "properties.1.type must be one of string, number, date, boolean",
"message": "properties.1.type must be one of string, number, date, boolean",
"errors": {
"properties.1.type": ["must be one of string, number, date, boolean"]
}
}Récupérer un événement d’espace de travail
Récupère la définition d’un événement d’espace de travail : son nom, son titre et les propriétés que doivent respecter les événements envoyés. Nécessite une clé API avec la portée full.
/workspace/events/{id}Paramètres de chemin
idstringobligatoireetp_…), son nom (customer.type) ou son type d’événement (w:customer.type). Encodez le : pour l’URL si votre client ne le fait pas.Réponse
Renvoie l’objet événement d’espace de travail.
objectstringworkspace_event.idstringetp_.namestringtypestringw: suivi du nom.titlestring | nulldescriptionstring | nullpropertiesobject[]Les propriétés que peut porter un événement de ce type, chacune avec :
name: la clé dans lespropertiesde l’événement.type:string,number,dateouboolean. Consultez Types de propriétés.title,description: des libellés facultatifs, ounull.required: indique si chaque événement doit l’inclure.
created_at, updated_atstringRenvoie 404 avec error: "Workspace event not found" si aucune définition ne correspond.
{
"object": "workspace_event",
"id": "etp_2yHn4Kd8QwE1rT6vBx9LmZ3sPf0",
"name": "customer.type",
"type": "w:customer.type",
"title": "Customer type",
"description": "Set when a customer's account type changes in the shop.",
"properties": [
{ "name": "segment", "type": "string", "title": "Segment", "description": "b2b or b2c", "required": true },
{ "name": "since", "type": "date", "title": null, "description": null, "required": false }
],
"created_at": "2026-10-19T08:00:00.000000+00:00",
"updated_at": "2026-10-19T08:00:00.000000+00:00"
}{
"error": "Workspace event not found"
}Mettre à jour un événement d’espace de travail
Met à jour les champs transmis et laisse les autres inchangés. Nécessite une clé API avec la portée full.
La définition ne vérifie que les nouveaux événements. Les événements déjà enregistrés conservent leur type et leurs propriétés : après une modification, des événements plus anciens peuvent donc avoir des propriétés que la définition ne liste plus.
propertiesremplace toute la liste. Pour ajouter une propriété, envoyez la liste actuelle avec la nouvelle.- Renommer change le type à envoyer. Les événements enregistrés sous l’ancien nom le conservent, et les nouveaux événements portant l’ancien nom sont rejetés, sauf si vous le définissez à nouveau.
/workspace/events/{id}Paramètres de chemin
idstringobligatoireetp_…), son nom ou son type d’événement (w:…).Paramètres du corps
namestringtitlestring | nullnull ou une chaîne vide l’efface.descriptionstring | nullnull ou une chaîne vide l’efface.propertiesobject[][] retire toutes les propriétés.Réponse
Renvoie l’objet événement d’espace de travail mis à jour.
| Statut | Cas |
|---|---|
404 |
Aucune définition ne correspond à id. |
409 |
Un autre événement d’espace de travail porte déjà le nouveau nom. |
422 |
Un champ est invalide : errors est indexé par son chemin, et message reprend le premier problème. |
{
"object": "workspace_event",
"id": "etp_2yHn4Kd8QwE1rT6vBx9LmZ3sPf0",
"name": "customer.type",
"type": "w:customer.type",
"title": "Customer type",
"description": "Set when a customer's account type changes in the shop.",
"properties": [
{ "name": "segment", "type": "string", "title": "Segment", "description": null, "required": true },
{ "name": "since", "type": "date", "title": null, "description": null, "required": false },
{ "name": "vat_exempt", "type": "boolean", "title": null, "description": null, "required": false }
],
"created_at": "2026-10-19T08:00:00.000000+00:00",
"updated_at": "2026-10-19T10:12:45.000000+00:00"
}{
"error": "w:customer.segment is already defined",
"errors": {
"name": ["is already defined"]
}
}Lister les événements d’espace de travail
Renvoie les définitions d’événements de l’espace de travail, triées par nom. Nécessite une clé API avec la portée full.
/workspace/eventsParamètres de requête
pageintegerpar défaut : 1limitintegerpar défaut : 100searchstringmatchstringall (par défaut) exige que tous les filtres correspondent. Avec or, il suffit qu’un filtre corresponde. Consultez Filtrage et tri.
orderstringClé de tri de cette liste. Consultez les clés de tri ci-dessous.
directionstringasc ou desc.
Clés de filtre
Les filtres utilisent des paramètres de requête key.condition=value, par exemple name.starts_with=order. ou created_at.after=2026-10-01. Pour les conditions disponibles selon le type, consultez Filtrage et tri.
| Clé | Type | Remarques |
|---|---|---|
name |
chaîne | Le nom sans le préfixe w:. |
title |
chaîne | |
created_at |
date | |
updated_at |
date |
Clés de tri pour order : name, title, created_at, updated_at. Par défaut : name, par ordre croissant.
Réponse
dataobject[]total_recordsintegernext_page_urlstring | nullnull sur la dernière page. Il ne contient que page et limit ; ajoutez de nouveau votre recherche et vos filtres lorsque vous le suivez.previous_page_urlstring | nullnull sur la première page.{
"data": [
{
"object": "workspace_event",
"id": "etp_2yHn4Kd8QwE1rT6vBx9LmZ3sPf0",
"name": "customer.type",
"type": "w:customer.type",
"title": "Customer type",
"description": "Set when a customer's account type changes in the shop.",
"properties": [
{ "name": "segment", "type": "string", "title": "Segment", "description": "b2b or b2c", "required": true },
{ "name": "since", "type": "date", "title": null, "description": null, "required": false }
],
"created_at": "2026-10-19T08:00:00.000000+00:00",
"updated_at": "2026-10-19T08:00:00.000000+00:00"
}
],
"total_records": 1,
"next_page_url": null,
"previous_page_url": null
}Supprimer un événement d’espace de travail
Supprime la définition d’un événement d’espace de travail. Nécessite une clé API avec la portée full.
Les événements déjà enregistrés avec ce type sont conservés, dans le journal des événements et sur les contacts. Les nouveaux événements de ce type sont rejetés avec 422 jusqu’à ce que vous le définissiez à nouveau. Les webhooks abonnés à ce type conservent leur abonnement.
/workspace/events/{id}Paramètres de chemin
idstringobligatoireetp_…), son nom ou son type d’événement (w:…).Réponse
objectstringworkspace_event.idstringnamestringtypestringw: suivi du nom.deletedbooleantrue.Renvoie 404 si aucune définition ne correspond.
{
"object": "workspace_event",
"id": "etp_2yHn4Kd8QwE1rT6vBx9LmZ3sPf0",
"name": "customer.type",
"type": "w:customer.type",
"deleted": true
}