> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rxscale.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Customer.io-Integration

> Rezept- und Apothekenbestellungs-Events eines Shops an Ihren Customer.io-Workspace senden

# Customer.io-Integration

RxScale kann Events zu den Rezepten und Apothekenbestellungen Ihrer Patientinnen und Patienten an Ihren eigenen [Customer.io](https://customer.io)-Workspace senden. Damit lösen Sie Kampagnen und Transaktionsnachrichten aus, zum Beispiel „Ihr Rezept wurde ausgestellt“ oder „Ihre Bestellung ist unterwegs“.

Die Integration wird **pro Shop** eingerichtet. Jeder Shop kann an einen eigenen Customer.io-Workspace senden. Shops ohne Integration senden nichts.

## Voraussetzungen

* Ein Customer.io-Workspace mit seiner **Site-ID** und seinem **Tracking-API-Key**. Sie finden beide in Customer.io unter **Workspace Settings → API and Webhook Credentials → Tracking API Keys**.
* Die Region, in der Ihr Customer.io-Konto gehostet ist: **EU** (`track-eu.customer.io`) oder **US** (`track.customer.io`).
* Ein Workspace, der **Personen per E-Mail identifiziert**. RxScale identifiziert jede Patientin und jeden Patienten über die E-Mail-Adresse der Bestellung. Prüfen Sie in Customer.io unter **Workspace Settings → Workspace → Identifiers**, dass die Identifikation per E-Mail erlaubt ist („Email or ID“).

> [!WARNING]
>
> Sind Zugangsdaten oder Region falsch, lehnt Customer.io die Anfrage ab und das Event wird nicht gesendet. Events werden nicht für einen späteren Versuch gespeichert. Prüfen Sie die Integration deshalb nach der Einrichtung mit einer Testbestellung.

## Einrichtung im Admin-Tool

1. Öffnen Sie **Einstellungen → Shops**.
2. Klicken Sie in der Zeile des Shops auf die Aktion **Marketing-Integration** (Megafon-Symbol).
3. Wählen Sie die **Region** und geben Sie **Site-ID** und **Tracking-API-Key** ein.
4. Lassen Sie **Events an Customer.io senden** aktiviert und speichern Sie.

Der API-Key wird verschlüsselt gespeichert und nie wieder angezeigt. Um Region oder Site-ID zu ändern, öffnen Sie den Dialog erneut und lassen das Feld für den API-Key leer. Der gespeicherte Key bleibt dann erhalten. Geben Sie nur dann einen neuen Key ein, wenn Sie ihn ersetzen möchten.

Um die Integration zu pausieren, deaktivieren Sie **Events an Customer.io senden**: Die Zugangsdaten bleiben gespeichert, es werden aber keine Events gesendet. Um die Zugangsdaten zu löschen, verwenden Sie **Customer.io entfernen** im Aktionsmenü des Shops.

## So werden Events gesendet

Für jedes Event ruft RxScale die Customer.io Track API zweimal mit Ihrer Site-ID und Ihrem API-Key auf:

1. Die Patientin oder der Patient wird per E-Mail **identifiziert**. So existiert die Person in Ihrem Workspace, auch wenn Customer.io sie noch nicht kennt.
2. Das **Event wird** bei dieser Person **erfasst**.

Events werden nur gesendet, wenn die Bestellung zu dem Shop mit aktiver Integration gehört und eine gültige E-Mail-Adresse hat.

Ist Customer.io vorübergehend nicht erreichbar, wiederholt RxScale die Zustellung automatisch.

## Events

Events enthalten nur Kennungen und Statusinformationen. Sie enthalten keine Adressen, Produkte oder medizinischen Informationen.

### `prescription_signed`

Wird gesendet, wenn eine Ärztin oder ein Arzt ein Rezept zu einer Bestellung des Shops signiert.

```json theme={null}
{
  "name": "prescription_signed",
  "data": {
    "prescription_uid": "8b1f6c1e-2d4a-4c55-9a0e-3f7d2b9c4e11",
    "order_uid": "c3a9e5d2-7b8f-4e61-a2c4-91d0f6b3e7a8",
    "shop_order_name": "#1001",
    "status": "signed",
    "prescription_type": "digital"
  }
}
```

### `prescription_printed_for_patient`

Wird gesendet, wenn ein digitales Rezept an die Apotheke übermittelt wurde. Papierrezepte lösen dieses Event nicht aus.

```json theme={null}
{
  "name": "prescription_printed_for_patient",
  "data": {
    "prescription_uid": "8b1f6c1e-2d4a-4c55-9a0e-3f7d2b9c4e11",
    "order_uid": "c3a9e5d2-7b8f-4e61-a2c4-91d0f6b3e7a8",
    "shop_order_name": "#1001",
    "pharmacy_name": "Apotheke am Markt"
  }
}
```

### `pharmacy_order_updated`

Wird bei jeder Statusänderung einer Apothekenbestellung gesendet, zum Beispiel wenn die Apotheke mit der Bearbeitung beginnt oder die Bestellung versendet.

```json theme={null}
{
  "name": "pharmacy_order_updated",
  "data": {
    "pharmacy_order_uid": "5e2d8a7c-1f4b-4b93-8c6e-0a9d3f2b7c15",
    "order_uid": "c3a9e5d2-7b8f-4e61-a2c4-91d0f6b3e7a8",
    "shop_order_name": "#1001",
    "status": "in_progress",
    "pharmacy_name": "Apotheke am Markt"
  }
}
```

### Felder

| Feld | Typ | Beschreibung |
| - | - | - |
| `prescription_uid` | string | RxScale-ID des Rezepts |
| `pharmacy_order_uid` | string | RxScale-ID der Apothekenbestellung |
| `order_uid` | string | RxScale-ID der Bestellung |
| `shop_order_name` | string oder `null` | Bestellname Ihres Shops, zum Beispiel die Shopify-Bestellnummer `#1001` |
| `status` | string | `signed` bei `prescription_signed`; der Status der Apothekenbestellung bei `pharmacy_order_updated` |
| `prescription_type` | string oder `null` | `digital` oder `physical` |
| `pharmacy_name` | string oder `null` | Anzeigename der Apotheke; `null`, wenn keine Apotheke bekannt ist |

## Events in Customer.io verwenden

Legen Sie in Customer.io eine Kampagne mit dem Trigger **„Person performs event“** an und geben Sie den Event-Namen ein, zum Beispiel `pharmacy_order_updated`. In Filtern und Nachrichtenvorlagen können Sie `event.status` oder `event.shop_order_name` verwenden.

> [!NOTE]
>
> Klaviyo wird separat eingerichtet. Sendet Ihre Organisation bereits Events an Klaviyo, bleiben diese unverändert.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.