Daten aus Shopify Flow übergeben
Ihr E-Mail-Layout ist wie eine Schablone mit Aussparungen. Variables (JSON) ist der Weg, mit dem Shopify Flow diese Aussparungen füllt.
Das ist der häufigste Fehlerpunkt überhaupt, daher lohnen sich fünf Minuten Lesezeit.
Die zwei Hälften
| Wo | Was Sie schreiben | Beispiel |
|---|---|---|
| Im E-Mail-Layout | Der Platzhalter | Hi {{ variables.firstName }} |
| In der Flow-Aktion | Das JSON, das ihn befüllt | {"firstName": "{{ order.customer.firstName }}"} |
Der Schlüssel auf der linken Seite des JSON muss exakt mit dem Namen nach variables. in Ihrem Layout übereinstimmen - gleiche Schreibweise, gleiche Groß-/Kleinschreibung. firstName und firstname sind zwei unterschiedliche Variablen.
Lassen Sie die App das JSON für Sie schreiben
Sie müssen das nicht von Hand schreiben, und Sie sollten es wahrscheinlich auch nicht.
Öffnen Sie Ihr Layout. In der Seitenleiste (oder im Tab Test Variables im visuellen Editor) finden Sie eine Karte Use in Shopify Flow mit dem exakten JSON für dieses Layout, bei dem bereits alle Schlüssel korrekt sind. Klicken Sie auf Copy JSON und fügen Sie es in das Feld Variables (JSON) Ihrer Send Transactional Email-Aktion ein.
Die App trägt die Flow-Eigenschaft für Felder ein, die sie erkennt - Kundenname, Bestellname, Bestellsumme, Status-Seiten-URL und Ähnliches. Alles, was sie nicht erschließen kann, erscheint als <pick a Flow variable>, damit Sie es ersetzen können.
So muss das JSON aussehen
{
"firstName": "{{ order.customer.firstName }}",
"orderName": "{{ order.name }}",
"statusPageUrl": "{{ order.statusPageUrl }}"
}
Regeln, die man kennen sollte:
- Setzen Sie jeden Flow-Wert in doppelte Anführungszeichen.
"orderName": {{ order.name }}ist ungültiges JSON;"orderName": "{{ order.name }}"ist korrekt. - Kommas zwischen den Einträgen, keines nach dem letzten.
- Die Schlüsselnamen bestimmen Sie selbst. Sie müssen nur zu Ihrem Layout passen. Wenn Ihr Layout
{{ variables.kunde }}verwendet, lautet der Schlüsselkunde. - Werte kommen als Text an. Zahlen und Daten kommen so an, wie Flow sie gerendert hat.

Der häufigste Fehler: Line Items
Eine Bestellung hat mehrere Line Items, es gibt also kein einzelnes variant.title, das man auslesen könnte. Das liefert nichts:
{{ order.lineItems.variant.title }}
Sie haben zwei gute Optionen.
Option 1 - innerhalb des Layouts schleifen. Senden Sie die Liste und iterieren Sie dann darüber. In der Flow-Aktion:
{
"items": "{{ order.lineItems | json }}"
}
Verwenden Sie in Ihrem Layout einen Loop-Block:
{% for item in variables.items %}
<tr>
<td>{{ item.title }}</td>
<td>{{ item.quantity }}</td>
</tr>
{% endfor %}
Option 2 - in Flow abflachen. Wenn Sie nur eine Textzeile brauchen, bauen Sie diese in Flow mit einer for-Schleife und senden Sie den fertigen String:
{
"itemList": "{% for li in order.lineItems %}{{ li.title }} x{{ li.quantity }}{% unless forloop.last %}, {% endunless %}{% endfor %}"
}
Wenn die App eine Variable erkennt, die wie Line-Item-Daten aussieht - alles, was variant, product, item, sku oder quantity heißt - warnt sie Sie davor auf der Karte Use in Shopify Flow.
Testwerte sind keine Live-Werte
Das bringt fast jeden zu Fall.
- Test Variables im Layout-Editor steuern nur die Vorschau und Send test email.
- Ein echter Flow-Lauf ignoriert diese vollständig und verwendet, was die Flow-Aktion tatsächlich sendet.
Eine Testmail, die perfekt aussieht, beweist also, dass Ihr Design funktioniert. Sie beweist nichts über Ihre Flow-Konfiguration. Bestätigen Sie es immer mit einem echten Workflow-Durchlauf.
Wenn eine Variable leer ankommt
Seit 1.10.0 sagt Ihnen die App Bescheid, statt Sie raten zu lassen.
Wenn ein echter Versand eine Variable leer rendert, trägt der Eintrag in History ein Empty variables-Badge, und beim Öffnen sehen Sie genau, welche - unterteilt in zwei Fälle:
| Fall | Bedeutung | Lösung |
|---|---|---|
| Von Shopify Flow gesendet, aber leer | Der Schlüssel war in Ihrem JSON, aber Flow hat keinen Wert erzeugt | Der Flow-Eigenschaftspfad ist falsch, oder für diese Bestellung tatsächlich leer (ein Gast-Checkout hat kein customer.firstName) |
| Gar nicht von Shopify Flow gesendet | Der Schlüssel fehlt komplett in Ihrem JSON | Fügen Sie ihn hinzu - der Copy JSON-Button liefert die vollständige Menge |
Sich gegen leere Werte abschirmen
Geben Sie allem Optionalen im Layout einen Fallback-Wert, damit niemals eine Leerstelle bei einem Kunden ankommt:
Hi {{ variables.firstName | default: "there" }}
Mit einem default:-Filter behandelt die App einen leeren Wert als beabsichtigt und warnt nicht davor.
Checkliste
- Kopieren Sie das JSON aus der Karte Use in Shopify Flow in Ihrem Layout.
- Fügen Sie es in das Feld Variables (JSON) der Flow-Aktion ein.
- Ersetzen Sie jedes
<pick a Flow variable>mit der Variablenauswahl von Flow. - Schleifen Sie über Line Items, statt sie direkt auszulesen.
- Fügen Sie
| default:zu allem Optionalen hinzu. - Führen Sie den Workflow wirklich aus und prüfen Sie History auf ein Empty variables-Badge.
Verwandte Themen
- Variablen und Liquid - die vollständige Vorlagenreferenz.
- Ein E-Mail-Layout erstellen - das Layout selbst gestalten.
- Verlauf und Fehlerbehebung - einen fehlgeschlagenen oder leeren Versand lesen.

