[Index de la documentation](https://prescriptio.fr/docs/llms.txt)

# Événements d'alerte

Une automatisation suit une alerte Prescriptio en s'abonnant à ses événements, en les relevant par pages de 100 et en les acquittant après traitement ; la livraison est au moins une fois, et Prescriptio n'envoie pas de webhook.

## Le cycle

1. **Créer l'alerte**

   `evenements_alertes` (ou `alertes.create`) : un nom, des termes, des sources. Un rejeu à l'identique renvoie l'alerte existante ; le même nom avec d'autres critères est refusé. Il n'y a pas de mise à jour : supprimez, puis recréez.

2. **S'abonner**

   `evenements_abonnement_creer` (ou `events.subscribe`) sur une alerte active. Seuls les événements futurs arrivent ; 20 abonnements actifs au plus par compte et organisation.

3. **Relever**

   `evenements_lire` (ou `events.poll`), 100 événements au plus par page.

4. **Acquitter**

   `evenements_acquitter` (ou `events.ack`) avec le jeton d'acquittement, seulement après un traitement réussi.

5. **Révoquer**

   `evenements_abonnement_revoquer` (ou `events.revoke`) : les lectures suivantes sont refusées.

> **Attention :** Créer l’alerte n’envoie pas d’e-mail pendant l’appel. Cela ne garantit pas son exclusion des récapitulatifs ultérieurs : le traitement relit les préférences de notification du compte et du type d’événement. L’absence de contrôle du canal de l’alerte sur ce chemin est déduite du code local, non vérifiée par un essai d’envoi. Vérifiez **Paramètres › Notifications** ; ce réglage concerne le compte, pas seulement cette alerte.

## Deux façons de relever

**Sans point de reprise**

Vous relisez les événements **non acquittés**, et vous acquittez chaque `ack_token` après traitement. C'est le mode des plateformes d'automatisation.

**Avec point de reprise**

Vous relisez **dans l'ordre**, sans acquittement implicite, et vous conservez le point de reprise après traitement. Il est signé et valable 7 jours : passé ce délai, reprenez sans lui, puis dédoublonnez.

## Les garanties

- **Au moins une fois** : un événement peut revenir ; dédoublonnez par `id`.
- `occurred_at` est la date de la notification, `recorded_at` son entrée dans le journal ; aucune n'est la date de publication de la source.
- Un événement naît dans la même transaction que la notification de l'alerte ; il ne recopie ni son corps ni un lien signé.
- Les événements de plus de 30 jours sont purgés par lots, sauf ceux qu'un abonnement actif attend ; les non acquittés restent disponibles.
- Supprimer une alerte arrête la relève de ses abonnements.

## Ce qui déclenche un événement

| Source | L'événement |
|---|---|
| `marche` | Un nouvel avis publié, et un rappel quand la remise approche (J-7) |
| `dce` | Un nouveau dossier de consultation qui cite vos termes |
| `attribution` | Un marché attribué (DECP) qui cite vos termes, dans les départements suivis |
| `permis` | Un permis autorisé dans les 45 derniers jours (Sitadel, publié par lots) |
| `reseaux_sociaux` | Une nouvelle publication observée qui cite vos termes |
| `mairie` | Un nouveau PV de conseil municipal qui cite vos termes |
| `bodacc` | Une nouvelle annonce légale qui cite vos termes |
| `entreprise` | Une nouvelle entreprise de l'annuaire qui cite vos termes |
| `contact` | Un nouveau contact de l'annuaire qui cite vos termes |
| `dvf` | Une vente récente dans les départements suivis (le terme n'y est pas appliqué) |
| `site` | Une nouvelle page d'un site d'entreprise qui cite vos termes |

« Temps réel » veut dire à chaque passage du robot, toutes les trois heures, pas une ingestion instantanée. Aucune exhaustivité des sources n'est promise.

- [events.poll](https://prescriptio.fr/docs/api/events.poll) : Relever, en REST
- [evenements_lire](https://prescriptio.fr/docs/api/evenements_lire) : Relever, par le connecteur
