# Axiom

Streame Formular-Analytics-Ereignisse und optional vollständige Befragtenantworten in ein Axiom-Dataset.

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


## Axiom

Frage rohe Formularereignisse in APL ab, baue Dashboards und Monitore, und sende optional vollständige eingereichte Antworten.

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

<p>
  Die beiden Regionsoptionen sind <strong>US East 1 (AWS)</strong> und <strong>EU Central 1 (AWS)</strong>. Wähle die, in der deine
  Axiom-Organisation liegt — Formstep leitet daraus den Ingest-Endpunkt ab, und das Einspeisen in die falsche Region wird abgelehnt.
</p>

<h2 id="event-stream">Analytics-Ereignisse</h2>

<p>
  Das Verbinden von Axiom schaltet die antwortfreie Ereignisweiterleitung für jedes Formular im Workspace ein. Datensätze verwenden die
  Ereignisnamen <code>form_view</code>, <code>form_engaged</code> und <code>form_submit</code>, mit denselben Parametern, die unter{' '}
  <a href="/de/integrations/analytics-streaming#event-contract">Analytics-Streaming</a> dokumentiert sind.
</p>

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

<p>
  Jeder Datensatz flacht die Ereignisparameter auf die oberste Ebene ab, sodass <code>form_id</code>, <code>source</code>,{' '}
  <code>device</code> und der Rest gewöhnliche Spalten sind, nach denen du filtern und zusammenfassen kannst.
</p>

<p>
  Die Weiterleitung von Ereignissen ist Best-Effort und wird nicht wiederholt. Deaktiviere sie für ein Formular unter{' '}
  <strong>Formulareinstellungen → Integrationen → Analytics-Streaming → Analytics-Ereignisse weiterleiten</strong>.
</p>

<h2 id="answers">Antworten der Befragten</h2>

<p>
  Axiom kann außerdem einen vollständigen Datensatz pro abgeschlossener Einreichung empfangen. Dieser Stream ist{' '}
  <strong>standardmäßig aus</strong> und muss für jedes Formular separat mit <strong>Antworten der Befragten senden</strong> aktiviert
  werden.
</p>

<p>
  Ein Antwort-Datensatz ist derselbe Ereignis-Umschlag, den ein <a href="/de/integrations/webhooks">individueller Webhook</a> erhält, plus
  ein Axiom-Feld <code>_time</code>: die Ereignis-ID, der Typ, <code>createdAt</code>, <code>apiVersion</code> und <code>test</code>, und
  unter <code>data</code> das Formular, die Einreichung (ID, E-Mail der befragten Person, Zeitpunkt der Einreichung, PDF-Link, Sprache), ein{' '}
  <code>answers</code>-Objekt, das nach <a href="/de/requests/field-keys">Feldschlüssel</a> benannt ist, und ein <code>display</code>-Objekt
  mit denselben Schlüsseln als lesbarer Text. Einreichungen, die eine Anfrage beantwortet haben, tragen außerdem einen <code>request</code>
  -Block mit deiner externen ID und Metadaten. Die vollständige Form steht in der{' '}
  <a href="/de/developers/webhooks-reference#payload">Webhook-Referenz</a>.
</p>

<p>
  Antworten werden gestreamt, wenn eine Einreichung abgeschlossen wird, und erneut, wenn eine befragte Person sie bearbeitet. Abgebrochene
  Entwürfe erreichen Axiom auf diesem Weg nie — das Antwort-Streaming hat kein Leerlauffenster.
</p>

> ⚠️ **Antwort-Datensätze enthalten personenbezogene Daten**
> <p>
>     Eine vollständige Einreichung kann Namen, E-Mail-Adressen, Freitext, Dateien, Unterschriften und andere sensible Antworten enthalten.
>     Verwende ein eingeschränktes Dataset, halte den Token-Umfang eng, und lege Aufbewahrungs-/Zugriffsregeln fest, bevor du diesen Stream
>     aktivierst.
>   </p>

<h2 id="delivery">Antwortzustellung und Fehler</h2>

<p>
  Antwort-Datensätze nutzen die Zustellungswarteschlange für Einreichungen: bis zu 5 Versuche mit exponentiellem Backoff. Nach 20
  aufeinanderfolgenden Fehlern wird das Ziel nicht mehr eingereiht, sodass ein fehlerhaftes Token oder ein abgelehntes Dataset nicht bei
  jeder neuen Einreichung eine fehlschlagende Zustellung erzeugen kann. Das Speichern eines neuen API-Tokens löscht den Fehler und nimmt die
  Zustellung wieder auf.
</p>

<p>
  Die Weiterleitung von Ereignissen und das Antwort-Streaming haben unabhängige Schalter. Du kannst für jedes Formular Antworten ohne
  Ereignisse senden, Ereignisse ohne Antworten, beides oder keins von beidem.
</p>

<h2 id="troubleshooting">Fehlerbehebung</h2>

<h2 id="next-steps">Nächste Schritte</h2>

<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Analytics-Streaming](/de/integrations/analytics-streaming) — Gemeinsames Schema, Standardwerte und Datenschutz
  - [Gesundheit und Überwachung](/de/integrations/health-monitoring) — Wiederholungen und automatische Pausierung verstehen
</div>
