Formatos de cuerpo y matrices de división
No todos los sistemas envían JSON, y no todas las solicitudes se refieren a un único elemento. Dos ajustes cubren ambos casos.
Formatos de cuerpo
El formato se obtiene del encabezado Content-Type de la solicitud. Sea cual sea el formato, su asignación de campos utiliza las mismas rutas con puntos.
| Tipo de contenido | Se ha analizado como | Remitentes habituales |
|---|---|---|
application/json |
JSON | La mayoría de las API, n8n, Make, Zapier |
application/x-www-form-urlencoded |
Campos del formulario | Twilio, PayPal IPN, formularios HTML sin formato |
multipart/form-data |
Los campos del formulario y las partes del archivo pasan a formar parte del nombre del archivo | Generadores de formularios, puntos de conexión para la carga de archivos |
text/xml, application/xml, *+xml |
XML | Sistemas ERP y de transportistas más antiguos |
Dos detalles que conviene conocer:
- Un cuerpo que sea JSON válido siempre se lee como JSON, incluso cuando el remitente lo etiqueta como otra cosa. Muchas herramientas envían JSON con un tipo de contenido de formulario, y esto hace que sigan funcionando.
- Los cuerpos de los formularios y los archivos XML pueden contener campos que usted no haya asignado. No supone ningún problema: el remitente decide su propia estructura, por lo que dichos cuerpos se saltan la comprobación estricta que se aplica al JSON que usted controla.
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: BodyAtributos XML
Un atributo XML está disponible con su nombre precedido por el prefijo @_, de modo que <order id="7"> se asigna como order.@_id, y <order><name>Bob</name></order> como order.name. Los valores se transmiten como texto, lo que permite mantener la exactitud de los identificadores largos.
División de matrices en secuencias
Cuando una solicitud incluye una lista - por ejemplo, 20 pedidos procedentes de un ERP o un lote de actualizaciones de stock - , lo habitual es que desee que su flujo de trabajo se ejecute una vez por cada elemento, y no una sola vez para todo el lote.
En «Configuración avanzada» -> «Dividir matrices en series», indique la ruta de acceso a la matriz:
| Ruta | Utilícelo cuando |
|---|---|
items |
La matriz es un campo de nivel superior: { "items": [ ... ] } |
data.orders |
Está anidado: { "data": { "orders": [ ... ] } } |
$ |
El propio cuerpo del mensaje es la matriz: [ { ... }, { ... } ] |
| (vacío) | Desactivado. Una ejecución por solicitud; es el valor predeterminado. |
Cada elemento se convierte en su propia ejecución, con ese elemento como payload, por lo que las rutas de asignación son relativas al elemento: asigne sku, y no 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 }Normas y límites
- Un máximo de 100 elementos por solicitud. Se rechazan los lotes más grandes para evitar que un remitente descontrolado sature su flujo de trabajo.
- Si a algún elemento le falta un campo asignado o es demasiado grande para Shopify Flow, se rechaza toda la solicitud y no se envía nada, indicando en el mensaje de error la posición del elemento que ha dado lugar al error. De este modo, el lote se procesa en su totalidad o no se procesa en absoluto, en lugar de aplicarse parcialmente.
- Los elementos que son valores simples, en lugar de objetos, se reciben como
{ "value": ... }. - La división no se puede combinar con una respuesta sincrónica: una llamada no puede ser atendida por varias ejecuciones. Consulte Respuesta síncrona.
- Al volver a ejecutar una ejecución anterior desde el historial, se vuelve a enviar solo ese elemento concreto, no todo el lote.
En Historia
Cada elemento constituye una entrada independiente, por lo que podrá ver, volver a intentar y reproducir cada uno de ellos por separado.

