# Punkt-Referenz

Jeder [Punkt](/de/developer/api-reference/customer-journey-api/journey-object/#point) enthält ein `point_data`-Objekt mit genau einem verschachtelten Schlüssel, der dem `point_type` des Punktes entspricht (siehe die [Zuordnung von Punkttyp zu Schlüssel](/de/developer/api-reference/customer-journey-api/journey-object/#point-types-and-point_data)). Diese Seite dokumentiert die Struktur unter jedem Schlüssel.

<Aside type="note">
Eintritts-, Timing-, Aufteilungs-, Aktions- und Conversion-Punkte werden unten vollständig dokumentiert.

Für Messaging-Punkte (`send_*`, `inapp`) behandelt diese Seite nur die strukturellen Felder: auf welches Preset oder welchen Inhalt verwiesen werden soll und welche Kanaleinstellungen zu übergeben sind.
Der Nachrichteninhalt selbst wird im Preset definiert und in der [Presets-API](/de/developer/api-reference/presets-api/) und den kanalspezifischen Dokumentationen dokumentiert.
Einige Felder verweisen auf verschachtelte Objekte, die die Steuerelemente im Customer Journey Builder widerspiegeln.
</Aside>
## Eintrittspunkte

Eine Journey benötigt mindestens einen Eintrittspunkt. Alle Eintrittspunkte haben einen einzigen `default`-Ausgang.

### start_by_segment

Nimmt Benutzer auf, die einem Segment entsprechen. `POINT_TYPE_START_BY_SEGMENT`.

| Feld | Typ | Beschreibung |
|---|---|---|
| `application_code` | string | [Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code). |
| `filter_code` | string | [Segment-/Filter-Code](/de/developer/api-reference/api-identifiers/#segment--filter-code), der die Zielgruppe definiert. |
| `repeat` | `SegmentRepeat` | Optionaler wiederkehrender Eintrittsplan (siehe [SegmentRepeat](#segmentrepeat)). |
| `start_at` | timestamp | Nicht vor dieser Zeit verarbeiten (ISO 8601). |
| `is_deactivated` | bool | Gibt an, ob dieser Eintrittspunkt ausgeschaltet ist. |

### message_bus (Ereignis-Eintritt)

Nimmt Benutzer auf, wenn sie ein Ereignis auslösen. `POINT_TYPE_EVENT`.

| Feld | Typ | Beschreibung |
|---|---|---|
| `event_name` | string | [Ereignisname](/de/developer/api-reference/api-identifiers/#event-name), auf den gehört werden soll. |
| `application_code` | string | [Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code). |
| `event_conditions` | `PointEventCondition[]` | Bedingungen, die mit den Attributen des Ereignisses abgeglichen werden. |
| `active_period` | `Period` | Zeitfenster, in dem der Auslöser aktiv ist. |
| `multi_entry` | `MultiEntry` | Wie ein Benutzer mehr als einmal eintreten kann (siehe [MultiEntry](#multientry)). |
| `attribute_entry` | `AttributeEntry` | Nimmt die Benutzer-IDs auf, die in einem Ereignisattribut enthalten sind, anstatt des Benutzers, der das Ereignis ausgelöst hat (siehe [AttributeEntry](#attributeentry)). |
| `allow_reenter` | bool | Gibt an, ob Benutzer die Journey erneut betreten dürfen. |

##### AttributeEntry

Nimmt die in einem Ereignisattribut enthaltenen [Benutzer-IDs](/de/developer/api-reference/api-identifiers/#user-id) auf, anstatt des Benutzers, der das Ereignis ausgelöst hat. Spiegelt [Benutzer aus einem Ereignisattribut](/de/product/customer-journey/journey-elements/entry-elements/trigger-based-entry/#users-from-an-event-attribute) im Customer Journey Builder wider.

| Feld | Typ | Beschreibung |
|---|---|---|
| `enabled` | bool | Gibt an, ob Benutzer, die in einem Ereignisattribut benannt sind, anstelle des Benutzers, der das Ereignis ausgelöst hat, aufgenommen werden sollen. |
| `attribute_name` | string | Name des Ereignisattributs, das die aufzunehmende(n) Benutzer-ID(s) enthält. |

### start_by_api

Eintrittspunkt, der durch den [Start by API](/de/developer/api-reference/customer-journey-api/start-by-api/)-Aufruf gespeist wird. `POINT_TYPE_START_BY_API`.

| Feld | Typ | Beschreibung |
|---|---|---|
| `application_code` | string | [Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code). |
| `attributes` | string[] | Namen der benutzerdefinierten Attribute, die in den `attribute_values` einer [Start by API](/de/developer/api-reference/customer-journey-api/start-by-api/#request-body)-Anfrage übergeben werden können. |
| `is_deactivated` | bool | Gibt an, ob dieser Eintrittspunkt ausgeschaltet ist. |

## Timing-Punkte

### delay (warten)

Pausiert jeden Benutzer für ein festes oder berechnetes Intervall. `POINT_TYPE_WAIT`. Das `point_data.delay`-Objekt setzt genau einen der folgenden Intervallschlüssel:

| Intervallschlüssel | Typ | Beschreibung |
|---|---|---|
| `sec` | uint64 | Eine feste Anzahl von Sekunden warten. |
| `exact_time` | [`ExactTime`](#time-objects) | Warten bis zu einer bestimmten Tageszeit (`hour`, `minute`). |
| `exact_date_time` | [`ExactDateTime`](#time-objects) | Warten bis zu einem absoluten Datum und einer absoluten Uhrzeit. |
| `exact_week_days_time` | `ExactWeekDaysTime` | Warten bis zu bestimmten Zeiten an bestimmten Wochentagen (Map von Tag `0`=Montag … `6`=Sonntag → `ExactTime`). |
| `dynamic_time` | [`DynamicTime`](#dynamictime) | Warten relativ zu einem Wert aus einem Tag oder Ereignis. |

Ein `dynamic_time` mit `split_branches: true` fügt einen `output1`-Zweig hinzu (siehe [Ausgabeschlüssel](/de/developer/api-reference/customer-journey-api/journey-object/#output-keys)).

#### DynamicTime

| Feld | Typ | Beschreibung |
|---|---|---|
| `from` | enum `DynamicTimeFrom` | Gibt an, ob die Basiszeit von einem Tag oder einem Ereignis stammt. |
| `direction` | enum `DynamicTimeDirection` | Versatz vor oder nach der Basiszeit. |
| `duration` | uint64 | Größe des Versatzes. |
| `unit` | enum `DynamicTimeUnit` | Einheit von `duration` (Minuten, Stunden, Tage, …). |
| `split_branches` | bool | Benutzer in separate Zweige aufteilen, wenn ihre berechneten Zeiten abweichen. |
| `tag_name` | string | Tag, der die Basiszeit enthält (wenn `from` ein Tag ist). |
| `event_name` / `event_attribute` / `point_id` | string | Ereignisquelle der Basiszeit (wenn `from` ein Ereignis ist). |

### wait_event

Wartet, bis Benutzer ein Ereignis auslösen (oder ein Timeout eintritt). `POINT_TYPE_WAIT_EVENT`. Der `default`-Ausgang ist der **nicht ausgelöste** Pfad. Der ausgelöste Pfad ist `output1` oder, mit einem Skript, ein Zweig pro Bedingung.

| Feld | Typ | Beschreibung |
|---|---|---|
| `events` | `PointWaitEventInfo[]` | Ereignisse, auf die gewartet werden soll. |
| `conditions_script` | string | Optionales Skript für komplexe Logik mit mehreren Ereignissen. Die Namen der geparsten Bedingungen werden zu den Ausgabeschlüsseln. |
| `multi_entry` | `MultiEntry` | Wiedereintrittsverhalten. |

## Aufteilungs- und Filterpunkte

### boolean_splitter

Leitet Benutzer basierend auf einer Bedingung in Zweige weiter. `POINT_TYPE_BOOLEAN_SPLITTER`.

| Feld | Typ | Beschreibung |
|---|---|---|
| `application_code` | string | [Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code). |
| `split_strategy` | enum | `SPLIT_FILTER` (nach Segment), `SPLIT_TAGS` (nach Tag-Bedingungen) oder `SPLIT_EVENTS` (nach Ereignisbedingungen). |
| `load_policy` | enum | `ALL` (jedes Gerät des Benutzers kann übereinstimmen) oder `FILTER` (nur das aktuelle Gerät). |
| `filter_code` | string | Segmentcode, wenn `split_strategy` `SPLIT_FILTER` ist. |
| `filter_expressions` | `FilterExpression[]` | Tag-Bedingungen, wenn `split_strategy` `SPLIT_TAGS` ist: ein zusätzlicher `output`-Zweig pro Ausdruck. |
| `event` | `BooleanSplitterEventInfo` | Ereignisbedingungen, wenn `split_strategy` `SPLIT_EVENTS` ist: ein zusätzlicher `output`-Zweig pro Bedingung. |

### ab_splitter

Teilt Benutzer zufällig in gewichtete Varianten auf. `POINT_TYPE_AB_SPLITTER`. Ausgabeschlüssel sind `output0`, `output1`, … (einer pro Eintrag in `split`, indiziert ab 0. Es gibt kein `default`).

| Feld | Typ | Beschreibung |
|---|---|---|
| `split` | uint32[] | Prozentsatz für jeden Zweig. Muss in der Summe 100 ergeben. Index `i` wird dem Ausgabeschlüssel `output{i}` zugeordnet. |
| `auto_select_winner` | bool | Gibt an, ob automatisch ein gewinnender Zweig ausgewählt werden soll. |
| `winner_strategy` | enum | `ANY_GOAL` oder `SPECIFIC_GOAL`. |
| `goal_uuid` | string | Ziel, das zur Bestimmung des Gewinners verwendet wird (mit `SPECIFIC_GOAL`). |
| `winner_split` | uint32 | Nummer des gewinnenden Zweigs (1-basiert, `0` = noch kein Gewinner). |

### filter

Lässt nur übereinstimmende Benutzer weiterlaufen (`default`) und leitet den Rest zu `output1` weiter. `POINT_TYPE_FILTER`.

| Feld | Typ | Beschreibung |
|---|---|---|
| `filter` | enum `Filter` | Eine vordefinierte Prüfung: `EMAIL_EXISTS`, `PUSH_TOKEN_EXISTS`, `SMS_TOKEN_EXISTS`, `WHATSAPP_TOKEN_EXISTS`, `LINE_TOKEN_EXISTS` oder `CUSTOM`. |
| `filter_raw` | string | Benutzerdefinierter Filterausdruck, wenn `filter` `CUSTOM` ist. |

## Aktionspunkte

### set_tags

Aktualisiert Tags für den Benutzer. `POINT_TYPE_SET_TAGS`.

| Feld | Typ | Beschreibung |
|---|---|---|
| `application_code` | string | [Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code). |
| `tags` | [`Tag`](#tag)[] | Zu schreibende Tags. |

#### Tag

| Feld | Typ | Beschreibung |
|---|---|---|
| `name` | string | Tag-Name. |
| `type` | enum `TagType` | Datentyp und Operation: `TYPE_STRING`, `TYPE_INTEGER`, `TYPE_DATE`, `TYPE_BOOLEAN`, `TYPE_LIST`, `TYPE_LIST_APPEND`, `TYPE_LIST_REMOVE`, `TYPE_DYNAMIC`, … |
| _value_ | oneof | Genau ein Werteschlüssel, der mit `type` übereinstimmt: `str`, `int`, `bool`, `date`, `price`, `version`, `timezone`, `list` oder `dynamic`. |

### web_hook

Sendet eine ausgehende HTTP-Anfrage. `POINT_TYPE_WEBHOOK`. Einzelner `default`-Ausgang.

| Feld | Typ | Beschreibung |
|---|---|---|
| `method` | string | HTTP-Methode (`GET`, `POST`, `PUT`, …). |
| `url` | string | Ziel-URL. |
| `request_template` | string | Vorlage für den Anfragekörper. Unterstützt [Liquid](/de/developer/api-reference/messaging-api-v2/payload-reference/)-Templating. |
| `headers` | map&lt;string, string&gt; | HTTP-Header. |
| `disabled` | bool | Schreibgeschützt. `true`, wenn Pushwoosh den Webhook nach wiederholten Fehlern automatisch deaktiviert hat. |
| `reactivate` | bool | Nur Schreiben. Setzen Sie `true`, um einen deaktivierten Webhook wieder zu aktivieren. |

## Conversion-Punkte

### goal_event

Verfolgt ein Conversion-Ziel. `POINT_TYPE_GOAL_EVENT`. Hat keine Ausgänge.

| Feld | Typ | Beschreibung |
|---|---|---|
| `event_name` | string | Name des Zielereignisses. |
| `application_code` | string | [Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code). |
| `event_conditions` | `PointEventCondition[]` | Bedingungen, die mit den Attributen des Zielereignisses abgeglichen werden. |
| `is_throw_out` | bool | Gibt an, ob der Benutzer aus der Journey entfernt werden soll, sobald das Ziel erreicht ist. |
| `is_cancel_event` | bool | Gibt an, ob dies ein negatives (Stornierungs-) Ziel ist. |

## Ausstiegspunkte

### terminator

Beendet die Journey für den Benutzer. `POINT_TYPE_EXIT`. Leeres Objekt (`{}`) und keine Ausgänge.

```json
{ "point_type": "POINT_TYPE_EXIT", "point_data": { "terminator": {} }, "outputs": [] }
```

## Messaging-Punkte

Alle Messaging-Punkte senden über einen Kanal und teilen sich einen gemeinsamen Umschlag. Jeder hat einen einzigen `default`-Ausgang, es sei denn, ein Splitter ist aktiviert (siehe [Ausgabeschlüssel](/de/developer/api-reference/customer-journey-api/journey-object/#output-keys)).

Gemeinsame Felder:

| Feld | Typ | Beschreibung |
|---|---|---|
| `application_code` | string | [Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code). |
| `preset_code` | string | Zu sendendes [Preset](/de/developer/api-reference/presets-api/) (Vorlage). `inapp` verwendet stattdessen `richmedia_code`. |
| `content` / `title` | string | Inline-Nachrichteninhalt, wenn kein Preset verwendet wird (kanalabhängig). |
| `campaign_code` | string | [Kampagnencode](/de/developer/api-reference/api-identifiers/#campaign-code) für das Tracking. Wird automatisch erstellt, wenn er weggelassen wird. |
| `split_params` | [`BehaviorSplitter`](#behaviorsplitter) | Optional: auf eine Interaktion warten und darauf basierend verzweigen. |
| `message_type` | enum | [Marketing- vs. Transaktionsnachrichtentyp](/de/product/messaging-channels/marketing-vs-transactional/) (steuert die Handhabung der Kontrollgruppe). |

Punkttypen und ihre nennenswerten zusätzlichen Felder:

| Punkttyp | `point_data`-Schlüssel | Hinweise |
|---|---|---|
| `POINT_TYPE_SEND_PUSH` | `send_push` | `split_params` (Verhalten) plus ein Zustellungs-Splitter können bis zu drei Ausgänge erzeugen. `send_by_user_id`, `wait_optimal_time`. |
| `POINT_TYPE_SEND_EMAIL` | `send_email` | `liquid_template_params`, `personalise`. Siehe die [E-Mail-API](/de/developer/api-reference/email-api/). |
| `POINT_TYPE_SEND_SMS` | `send_sms` | Siehe [SMS](/de/developer/api-reference/sms/). |
| `POINT_TYPE_SEND_WHATSAPP` | `send_whatsapp` | Ein Schnellantwort-Preset fügt einen Ausgang pro Antwort hinzu (Schlüssel = Antwortwert). Siehe [WhatsApp](/de/developer/api-reference/whatsapp/). |
| `POINT_TYPE_SEND_TELEGRAM` | `send_telegram` | Telegram-Kanal. |
| `POINT_TYPE_SEND_KAKAO` | `send_kakao` | Siehe [Kakao](/de/developer/api-reference/kakao/). |
| `POINT_TYPE_SEND_LINE` | `send_line` | Siehe [LINE-API](/de/developer/api-reference/line-api/). |
| `POINT_TYPE_SEND_DATA` | `send_data` | Stille Datennachricht (keine Benutzeroberfläche). |
| `POINT_TYPE_INAPP` | `inapp` | Verwendet `richmedia_code`, `expire_in_days`, `capping`. |

## Geteilte Typen

### SegmentRepeat

| Feld | Typ | Beschreibung |
|---|---|---|
| `enabled` | bool | Gibt an, ob der wiederkehrende Eintritt aktiviert ist. |
| `frequency` | string | `daily`, `weekly`, `monthly` oder `dates`. |
| `every` | uint32 | Alle N Perioden wiederholen. |
| `dates` | string[] | Spezifische Daten, wenn `frequency` `dates` ist. |
| `time` | `SegmentRepeatTime` | Tageszeit-Konfiguration. |

### Zeitobjekte

- `ExactTime`: `{ "hour": 0–23, "minute": 0–59 }`.
- `ExactDateTime`: `{ "year", "month": 1–12, "day": 1–31, "hour": 0–23, "minute": 0–59 }`.

### BehaviorSplitter

| Feld | Typ | Beschreibung |
|---|---|---|
| `enabled` | bool | Gibt an, ob auf eine Interaktion gewartet und darauf basierend verzweigt werden soll. |
| `interval` | uint64 | Sekunden, die auf die Interaktion gewartet werden soll. |

### MultiEntry

Steuert, wie viele aktive Sitzungen ein Benutzer gleichzeitig in der Journey haben kann. Spiegelt [Steuern, wie viele Sitzungen ein Benutzer gleichzeitig haben kann](/de/product/customer-journey/journey-elements/entry-elements/trigger-based-entry/#control-how-many-sessions-a-user-can-have-at-the-same-time) im Customer Journey Builder wider. Wird vom [Ereignis-Eintrittspunkt](#message_bus-event-entry) und [wait_event](#wait_event) verwendet.

| Feld | Typ | Beschreibung |
|---|---|---|
| `enabled` | bool | Gibt an, ob ein Benutzer mehrere aktive Sitzungen gleichzeitig haben kann. `false`: eine aktive Sitzung pro Benutzer. `true`: mehrere aktive Sitzungen pro Benutzer. |
| `attribute_name` | string | Optional. Ereignisattribut, das den Geltungsbereich jeder Sitzung festlegt. Wenn gesetzt, kann ein Benutzer eine aktive Sitzung pro eindeutigem Wert dieses Attributs haben (z. B. eine pro `order_id`). Ereignisse mit demselben Wert teilen sich eine Sitzung. Leer lassen, um alle Einträge des Benutzers gemeinsam zu bündeln. |

## Verwandte Themen

<CardGrid>
  <LinkCard title="Journey-Objekt" href="/developer/api-reference/customer-journey-api/journey-object/" />
  <LinkCard title="Erstellen und Aktualisieren" href="/developer/api-reference/customer-journey-api/create-update/" />
  <LinkCard title="Presets-API" href="/developer/api-reference/presets-api/" />
</CardGrid>