Dataformater og opdeling af matricer
Ikke alle systemer sender JSON, og ikke alle anmodninger vedrører én enkelt ting. To indstillinger dækker begge tilfælde.
Kropsformater
Formatet hentes fra anmodningens »Content-Type«-header. Uanset hvilket format der er tale om, bruger din feltmapping de samme punkt-stier.
| Indholdstype | Analyseret som | Typiske afsendere |
|---|---|---|
application/json |
JSON | De fleste API’er, n8n, Make, Zapier |
application/x-www-form-urlencoded |
Formularfelter | Twilio, PayPal IPN, almindelige HTML-formularer |
multipart/form-data |
Formularfelter og fildele bliver til filnavnet | Formularværktøjer, upload-endepunkter |
text/xml, application/xml, *+xml |
XML | Ældre ERP- og transportørsystemer |
To detaljer, der er værd at vide:
- Et indhold, der er gyldigt JSON, tolkes altid som JSON, selvom afsenderen angiver det som noget andet. Mange værktøjer sender JSON med indholdstypen »form«, og det sikrer, at de fortsat fungerer.
- Formularer og XML-indhold kan indeholde felter, som du ikke har tilknyttet. Det er ikke noget problem: Afsenderen bestemmer selv formatet, så disse indholdsdele undgår den strenge kontrol, der gælder for JSON, som du har kontrol over.
curl -X POST https://your-app-url/webhook/ab12cd34 \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "X-Api-Key: your-token" \
--data-urlencode "From=+15551234567" \
--data-urlencode "Body=Where is my order?"
# Map fieldOne to: From
# Map fieldTwo to: BodyXML-attributter
Et XML-attribut er tilgængeligt under sit navn med præfikset @_, så <order id="7"> kortlægges som order.@_id, og <order><name>Bob</name></order> som order.name. Værdierne leveres som tekst, hvilket sikrer, at lange id’er bevares nøjagtigt.
Opdeling af arrays i sekvenser
Når en forespørgsel indeholder en liste - f.eks. 20 ordrer fra et ERP-system eller et parti lageropdateringer - vil man normalt have, at arbejdsgangen kører én gang pr. post og ikke én gang for hele partiet.
Under Avancerede indstillinger -> Opdel arrays i serier skal du angive stien til arrayet:
| Sti | Anvendes, når |
|---|---|
items |
Arrayet er et felt på øverste niveau: { "items": [ ... ] } |
data.orders |
Den er indlejret: { "data": { "orders": [ ... ] } } |
$ |
Selve brødteksten udgør arrayet: [ { ... }, { ... } ] |
| (tom) | Fra. Ét kørsel pr. anmodning - standardindstillingen. |
Hvert element udgør sin egen kørsel med det pågældende element som payload, så kortlægningsstierne er relative i forhold til det enkelte element: kortlæg sku, ikke items.0.sku.
{
"items": [
{ "sku": "ABC-1", "qty": 2 },
{ "sku": "ABC-2", "qty": 1 },
{ "sku": "ABC-3", "qty": 7 }
]
}
// Split path: items
// Map fieldOne to: sku
// Map fieldTwo to: qty
// Response: { "runs": 3, "blocked": 0 }Regler og begrænsninger
- Højst 100 poster pr. anmodning. Et større parti afvises, så en ureguleret afsender ikke kan overbelaste din arbejdsgang.
- Hvis et element mangler et tilknyttet felt eller er for stort for Shopify Flow, afvises hele anmodningen, og der sendes intet, idet det fejlramte elements position angives i fejlmeddelelsen. På den måde sikres det, at en batch behandles som »alt eller intet« i stedet for at blive delvist behandlet.
- Elementer, der er simple værdier og ikke objekter, vises som »
{ "value": ... }«. - Opdeling kan ikke kombineres med et synkront svar: én opkaldende kan ikke besvares af flere kørsler. Se Synkron respons.
- Når man afspiller et tidligere løb fra historikken, sendes kun det enkelte element igen, ikke hele batchen.
I historie
Hvert element udgør en separat post, så du kan se, prøve igen og afspille hvert enkelt af dem hver for sig.

