
# Déclencheurs d'enregistrement et de commentaire

Les deux déclencheurs qui naissent de l'activité _à l'intérieur_ de votre application : une ligne qui change, et quelqu'un qui parle d'une ligne.

## Déclencheur d'enregistrement

Se déclenche lorsque des enregistrements changent dans une table surveillée.

```yaml
trigger:
  type: record
  table: orders
  events: [create, update]
  watchFields: [status]
  condition:
    conditions:
      - field: '{{trigger.data.record.status}}'
        operator: equals
        value: paid
```

| Propriété     | Description                                                                                               |
| ------------- | --------------------------------------------------------------------------------------------------------- |
| `table`       | Nom de la table à surveiller. **Obligatoire**, non vide.                                                  |
| `events`      | Tableau de `create` / `update` / `delete`. **Obligatoire**, au moins une entrée.                          |
| `watchFields` | Sur `update`, ne se déclenche que si l'un de ces champs change. Au moins une entrée si présent.           |
| `condition`   | Un [groupe de conditions](/fr/docs/automation-flow-control) — ne se déclenche que si la ligne correspond. |

`watchFields` et `condition` répondent à deux questions différentes. `watchFields` demande _ce qui a changé_ ; `condition` demande _à quoi ressemble la ligne désormais_. L'exemple ci-dessus ne se déclenche que si `status` a été touché **et** que le statut résultant est `paid` : une commande passée de `pending` à `paid` déclenche, une commande dont l'adresse de livraison est corrigée non.

### Contexte de l'enregistrement

La ligne est à **`{{trigger.data.record.*}}`** (également accessible via `{{trigger.record.*}}`). Elle n'est pas aplatie : `{{trigger.data.status}}` ne se résout donc pas. Deux autres chemins sont disponibles :

| Chemin                              | Disponible sur      | Contient                         |
| ----------------------------------- | ------------------- | -------------------------------- |
| `{{trigger.data.record.*}}`         | tous les événements | La ligne après le changement.    |
| `{{trigger.data.previousRecord.*}}` | `update` seulement  | La ligne avant le changement.    |
| `{{trigger.data.records}}`          | écritures par lot   | L'ensemble des lignes affectées. |

`previousRecord` est ce qui rend « notifier quand le statut _quitte_ `draft` » exprimable sans conserver d'état entre deux exécutions.

## Déclencheur de commentaire

Se déclenche lorsqu'un commentaire est créé sur un enregistrement d'une table où les commentaires sont activés.

```yaml
trigger:
  type: comment
  table: tickets
  when: created
  filter: { mentionsOnly: true }
```

| Propriété                | Description                                                                                                     |
| ------------------------ | --------------------------------------------------------------------------------------------------------------- |
| `table`                  | Nom de la table avec commentaires activés. **Obligatoire**, non vide.                                           |
| `when`                   | `approved` (modérés approuvés uniquement), `created` (tout nouveau commentaire) ou `any`. Par défaut `created`. |
| `filter`                 | `{ topLevelOnly, repliesOnly, mentionsOnly }` — `topLevelOnly` et `repliesOnly` s'excluent mutuellement.        |
| `respectReadPermissions` | Ne se déclenche que si l'**auteur du commentaire** peut lire l'enregistrement. Par défaut `true`.               |

:::callout
**`respectReadPermissions` est actif par défaut, pas opt-in.** Il vaut `true` et honore le prédicat `read.when` de la table contre l'auteur du commentaire. Passez-le à `false` délibérément — et uniquement si l'automatisation doit se déclencher pour chaque commentaire, quel qu'en soit l'auteur.
:::

Choisissez `when` selon ce que fait l'automatisation. `approved` convient à tout ce qui est visible des utilisateurs, car un commentaire modéré ne devrait pas alerter un canal avant qu'un humain ne l'ait validé. `created` convient aux notifications internes qui veulent le commentaire dès son arrivée.

Les déclencheurs de commentaire exposent `$trigger.comment.*`, `$trigger.record.*`, `$trigger.threadParticipants` et `$trigger.mentions` — de quoi notifier les participants d'un fil sans requête supplémentaire.

## Pages connexes

- [Présentation des déclencheurs](/fr/docs/automation-triggers) — les neuf types en un coup d'œil.
- [Contrôle de flux](/fr/docs/automation-flow-control) — le modèle de groupe de conditions employé par `condition`.
- [Actions sur les enregistrements](/fr/docs/automation-record-actions) — réécrire des lignes depuis une automatisation.
- [Historique des enregistrements](/fr/docs/record-history) — la piste de révisions derrière `previousRecord`.
- [Permissions de table](/fr/docs/table-permissions) — le prédicat `read.when` honoré par `respectReadPermissions`.
