# Axiom

Diffusez les événements analytiques du formulaire et, en option, les réponses complètes des répondants vers un jeu de données Axiom.

> ℹ️ **Available on the Free plan.**


## Axiom

Interrogez les événements bruts du formulaire en APL, créez des tableaux de bord et des moniteurs, et envoyez en option les réponses complètes soumises.

<h2 id="connect">Connecter Axiom</h2>

<p>
  Les deux régions possibles sont <strong>US East 1 (AWS)</strong> et <strong>EU Central 1 (AWS)</strong>. Choisissez celle où se trouve
  votre organisation Axiom — Formstep en déduit le point de terminaison d’ingestion, et ingérer dans la mauvaise région est refusé.
</p>

<h2 id="event-stream">Événements analytiques</h2>

<p>
  Connecter Axiom active la transmission d’événements sans réponses pour chaque formulaire de l’espace de travail. Les enregistrements
  utilisent les noms d’événements <code>form_view</code>, <code>form_engaged</code> et <code>form_submit</code>, avec les mêmes paramètres
  documentés dans <a href="/fr/integrations/analytics-streaming#event-contract">Diffusion d’analytiques</a>.
</p>

<pre>
  <code>{`['your-dataset']
| where ['event'] in ('form_view', 'form_engaged', 'form_submit')
| summarize events=count() by ['event']`}</code>
</pre>

<p>
  Chaque enregistrement aplatit les paramètres de l’événement au premier niveau, si bien que <code>form_id</code>, <code>source</code>,{' '}
  <code>device</code> et les autres sont des colonnes ordinaires que vous pouvez filtrer et agréger.
</p>

<p>
  La transmission des événements est best-effort et n’est pas relancée en cas d’échec. Désactivez-la pour un formulaire sous{' '}
  <strong>Paramètres du formulaire → Intégrations → Diffusion Analytics → Transmettre les événements d’analyse</strong>.
</p>

<h2 id="answers">Réponses des répondants</h2>

<p>
  Axiom peut aussi recevoir un enregistrement complet par soumission terminée. Ce flux est <strong>désactivé par défaut</strong> et doit
  être activé séparément pour chaque formulaire avec <strong>Envoyer les réponses des répondants</strong>.
</p>

<p>
  Un enregistrement de réponse est la même enveloppe d’événement que reçoit un <a href="/fr/integrations/webhooks">webhook personnalisé</a>,
  plus un champ Axiom <code>_time</code> : l’id de l’événement, son type, <code>createdAt</code>, <code>apiVersion</code> et{' '}
  <code>test</code>, et sous <code>data</code> le formulaire, la soumission (id, e-mail du répondant, heure de soumission, lien PDF,
  langue), un objet <code>answers</code> indexé par <a href="/fr/requests/field-keys">clé de champ</a> et un objet <code>display</code> avec
  les mêmes clés en texte lisible. Les soumissions qui répondent à une demande portent aussi un bloc <code>request</code> avec votre id
  externe et ses métadonnées. La forme complète est dans la <a href="/fr/developers/webhooks-reference#payload">référence webhook</a>.
</p>

<p>
  Les réponses sont diffusées quand une soumission est terminée, puis à nouveau quand un répondant la modifie. Les brouillons abandonnés
  n’atteignent jamais Axiom par cette voie — la diffusion des réponses n’a pas de fenêtre d’inactivité.
</p>

> ⚠️ **Les enregistrements de réponses contiennent des données personnelles**
> <p>
>     Une soumission complète peut contenir des noms, des e-mails, du texte libre, des fichiers, des signatures et d’autres réponses
>     sensibles. Utilisez un dataset restreint, gardez la portée du jeton étroite, et définissez vos règles de rétention et d’accès avant
>     d’activer ce flux.
>   </p>

<h2 id="delivery">Livraison des réponses et échecs</h2>

<p>
  Les enregistrements de réponses suivent la file de livraison des soumissions : jusqu’à 5 tentatives avec délai exponentiel. Après 20
  échecs consécutifs, la destination cesse d’être mise en file, de sorte qu’un jeton invalide ou un dataset rejeté ne génère pas une
  livraison en échec pour chaque nouvelle soumission. Enregistrer un nouveau jeton API efface l’erreur et reprend la livraison.
</p>

<p>
  La transmission des événements et la diffusion des réponses ont des interrupteurs indépendants. Vous pouvez envoyer des réponses sans
  événements, des événements sans réponses, les deux, ou aucun, pour chaque formulaire.
</p>

<h2 id="troubleshooting">Dépannage</h2>

<h2 id="next-steps">Prochaines étapes</h2>

<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Diffusion d’analytiques](/fr/integrations/analytics-streaming) — Schéma partagé, valeurs par défaut et confidentialité
  - [Santé des intégrations](/fr/integrations/health-monitoring) — Comprendre les nouvelles tentatives et la mise en pause automatique
</div>
