Skip to Content

Notifications externes

Enregistrez les e-mails que votre propre système a envoyés à un client, pour que les collaborateurs les retrouvent dans Tillor

Dernière mise à jour le

Votre système envoie lui-même des e-mails aux clients (newsletter, confirmation de réservation, rappel) ? Enregistrez-les alors dans Tillor. Les collaborateurs les voient sur la fiche du client, sur la facture et dans l'aperçu Notifications, à côté des notifications que Tillor envoie lui-même.

Tillor n'envoie rien : vous enregistrez un message déjà envoyé. Dans l'application, les notifications externes portent toujours l'étiquette Externe avec le nom de votre source, afin de ne jamais passer pour une notification Tillor.

Accès

L'utilisateur derrière la clé API a besoin de l'une de ces permissions dans l'organisation. Un administrateur les attribue dans les permissions des utilisateurs de l'organisation, dans le groupe Notifications (Enregistrer des notifications externes et Gérer les notifications externes des autres).

PermissionCe que vous pouvez faire
notifications:external:writeEnregistrer des notifications et mettre à jour ou supprimer vos propres enregistrements
notifications:external:manage-othersMettre à jour ou supprimer aussi les enregistrements d'autres utilisateurs ou intégrations

Un utilisateur par intégration

La propriété est rattachée à l'utilisateur de la clé API. Utilisez un utilisateur (de service) distinct par intégration, ainsi une intégration ne pourra jamais modifier les notifications d'une autre.

Endpoints

Tous les chemins se trouvent sous /api/orgs/:orgId. Schémas exacts : OpenAPI, tag notifications.

MéthodeCheminDescription
POST/notifications/externalEnregistrer une notification
PATCH/notifications/external/{id}Mettre à jour le statut, les horaires ou le contenu
DELETE/notifications/external/{id}Supprimer définitivement
GET/notifications?source=EXTERNALLister les notifications enregistrées (filtrez aussi sur externalSource, externalReference, customerId, invoiceId)
GET/notifications/{id}Récupérer une notification

Vous ne pouvez ni modifier ni supprimer via ces endpoints les notifications que Tillor a envoyées lui-même ; elles renvoient 404.

Enregistrer

curl -X POST "https://tillor.eu/api/orgs/org_abc123/notifications/external" \
  -H "x-api-key: tkn_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "externalSource": "mailchimp",
    "externalReference": "campaign-42:member-9f3a",
    "name": "Boekingsbevestiging",
    "customerId": "clx789...",
    "channel": "EMAIL",
    "status": "SENT",
    "sentAt": "2026-09-19T08:15:00Z",
    "email": {
      "to": "jan@voorbeeld.nl",
      "from": "Recreatiepark Het Meer <info@recreatiepark-het-meer.be>",
      "subject": "Je boeking is bevestigd",
      "htmlBody": "<p>Dag Jan, ...</p>",
      "attachments": [{ "filename": "bevestiging.pdf", "contentType": "application/pdf", "size": 48211 }]
    }
  }'

Tous les champs et limites figurent dans OpenAPI. Ces champs ont des règles à connaître à l'avance :

ChampRègle
externalSourceNom de votre système en minuscules, chiffres, ., _ ou - (par ex. mailchimp). Les collaborateurs voient ce nom sur la notification
externalReferenceVotre propre identifiant pour ce message, unique au sein de externalSource
nameCourt libellé pour les collaborateurs (par ex. « Confirmation de réservation »). Il peut servir à la recherche
customerId / invoiceIdAu moins l'un des deux. Détermine où la notification apparaît. Si vous n'envoyez que invoiceId, Tillor rattache aussi le client de cette facture. Un identifiant inconnu, ou une facture d'un autre client, renvoie 400
statusSENT, FAILED, BOUNCED ou COMPLAINED. Sans sentAt avec SENT, Tillor utilise le moment de l'enregistrement
sentAt, readAt, clickedAtISO 8601 avec fuseau horaire, par ex. 2026-09-19T08:15:00Z. Les autres valeurs sont refusées
email.attachmentsUniquement des métadonnées (filename, contentType, size). Les fichiers eux-mêmes ne sont pas stockés

Réessayer en toute sécurité

POST est idempotent sur externalSource + externalReference. Si vous renvoyez la même combinaison (par exemple après un délai d'expiration), vous récupérez la notification existante et rien n'est modifié. Pour changer quelque chose, utilisez PATCH.

Pas de données personnelles dans externalReference ou name

externalSource, externalReference et name sont stockés non chiffrés car ils servent à la recherche. Utilisez un identifiant technique, pas une adresse e-mail ni un nom. Une externalReference contenant @ est refusée. Le destinataire, l'objet, le contenu et les pièces jointes, eux, sont stockés chiffrés.

Mettre à jour et supprimer

Avec PATCH, n'envoyez que les champs qui changent, par exemple quand un e-mail rebondit après coup :

curl -X PATCH "https://tillor.eu/api/orgs/org_abc123/notifications/external/NOTIFICATION_ID" \
  -H "x-api-key: tkn_xxx" \
  -H "Content-Type: application/json" \
  -d '{ "status": "BOUNCED", "errorMessage": "Mailbox bestaat niet" }'

DELETE supprime définitivement la notification, contenu compris. Utilisez-le aussi pour répondre à une demande de suppression (RGPD).

Un PATCH qui ne change rien ne fait rien : ni modification, ni événement. Si vous modifiez le contenu (libellé, destinataire, expéditeur, objet, texte, HTML ou pièces jointes) ou supprimez une notification, cela figure dans le journal d'activité du client ou de la facture, avec l'utilisateur qui l'a fait. Les mises à jour du statut, de readAt ou de clickedAt n'y figurent pas, pour que vous puissiez continuer à synchroniser les ouvertures et les clics.

HTML et confidentialité

Tillor affiche le HTML aux collaborateurs tel que le client l'a reçu, mais le traite comme un contenu non fiable :

  • Lors de l'enregistrement, les scripts, formulaires, iframes, éléments intégrés et attributs d'événement (onclick, ...) sont supprimés. Les liens s'ouvrent dans un nouvel onglet
  • L'aperçu s'exécute dans un cadre isolé, sans scripts et sans accès à la session Tillor
  • Les images et polices externes ne se chargent pas automatiquement, de sorte qu'ouvrir une notification n'active aucun pixel de suivi. Le collaborateur peut charger les images notification par notification

Ne comptez donc pas sur le déclenchement du suivi « ouvert » dans votre système lorsqu'un collaborateur consulte la notification.

Ce que Tillor ne fait pas avec les notifications externes

  • Ne les (ré)envoie pas et ne les réessaie pas automatiquement
  • Ne récupère pas de mises à jour de statut chez votre fournisseur de messagerie : c'est vous qui tenez le statut à jour avec PATCH
  • Ne les compte pas dans les listes Notifications échouées, Notifications rejetées et Notifications en attente ni dans les compteurs en haut de l'aperçu des notifications, car Tillor ne peut pas vérifier votre statut. Elles figurent bien sous Communications récentes

Webhooks et SSE

ÉvénementQuand
notification-delivery:updatedÀ l'enregistrement et à chaque PATCH qui modifie quelque chose. Contient la notification complète
notification-delivery:deletedLors d'un DELETE. Contient uniquement id, source, externalSource, externalReference, customerId et invoiceId

Le champ source vaut EXTERNAL pour vos enregistrements et INTERNAL pour les notifications de Tillor. Filtrez dessus si vous voulez ignorer vos propres événements. Voir Webhooks et SSE.

Voir aussi

  • API HTTP - Clés API, en-têtes et limites de débit
  • Webhooks - Recevoir des événements via HTTP POST
  • OpenAPI - Schémas complets
Cette page t'a-t-elle été utile ?

Sur cette page