Problemas con los Sendorders en el ejercicio del curso Foundation de n8n

Describe el problema/error/pregunta

Al enviar una orden al sitio de n8n, obtengo los siguientes errores. Verifiqué espacios, cálculos, etc., pero no puedo encontrar la fuente del error. Todos mis nodos se ejecutan perfectamente cuando se hacen individualmente

¿Cuál es el mensaje de error (si hay alguno)? Tu solicitud es inválida o no pudo ser procesada por el servicio. Los totales de tu orden son incorrectos. Por favor asegúrate de que estés calculando los totales correctamente.

Por favor comparte tu flujo de trabajo

{
  "nodes": [
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "6e58682d-4337-46a8-a36f-a6047502bfe7",
              "name": "order_id",
              "value": "={{ $json.order_id }}",
              "type": "string"
            },
            {
              "id": "2a009df0-7d77-43e6-9e91-a70e004bb17f",
              "name": "customer_name",
              "value": "={{ $json.customer_name }}",
              "type": "string"
            },
            {
              "id": "c36c31fc-c9a7-4dcb-8002-c7434369ea78",
              "name": "region",
              "value": "={{ $json.region }}",
              "type": "string"
            },
            {
              "id": "a6ad9769-cf53-4e2d-b27f-8869ec1506d3",
              "name": "status",
              "value": "={{ $json.status }}",
              "type": "string"
            },
            {
              "id": "ea21f188-1793-4fbc-80b4-14d080492695",
              "name": "order_total",
              "value": "={{Math.round($json.quantity * $json.unit_price)}}",
              "type": "number"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        16,
        -112
      ],
      "id": "e5206f2a-e49f-4f97-a253-f42bbdee3f20",
      "name": "SetOrderTotals"
    },
    {
      "parameters": {
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "orders",
        "options": {}
      },
      "type": "n8n-nodes-base.aggregate",
      "typeVersion": 1,
      "position": [
        608,
        -320
      ],
      "id": "f4a9b2b7-cbb5-4092-adae-82a31b6faadf",
      "name": "AggregateOrders"
    },
    {
      "parameters": {
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "C0BEZ3AKS9E",
          "mode": "list",
          "cachedResultName": "test"
        },
        "text": "=\"Canalización de ventas completada. 50 órdenes procesadas, 38 entregadas.\"\n\"Total de orden Norte:\" {{ $json.region[0].average_order_total }}\n\"Total de orden Sur:\" {{ $json.region[2].average_order_total }}\n\"Total de orden Oeste:\" {{ $json.region[1].average_order_total }}\n\"Total de orden Este:\" {{ $json.region[3].average_order_total }}",
        "otherOptions": {}
      },
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.5,
      "position": [
        816,
        -416
      ],
      "id": "27fbb4f2-ab2a-4977-bef1-5350b8a52c03",
      "name": "SendToSlack",
      "webhookId": "5a4cba28-edf6-40b0-b14f-d68952cccf47",
      "credentials": {
        "slackApi": {
          "id": "JsMFdrKSTabhvlb7",
          "name": "Slack account"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://learn.app.n8n.cloud/webhook/course/n8n101/process-orders",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "x-assessment-id",
              "value": "dcaececa5196aa91d2a41fc5b5b53ec8"
            }
          ]
        },
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "orders",
              "value": "={{ $json.orders }}"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position": [
        816,
        -224
      ],
      "id": "2a053049-1a4b-46f0-abf1-3787c72a1297",
      "name": "SendOrders",
      "credentials": {
        "httpHeaderAuth": {
          "id": "Ga9QOladMz18EL6I",
          "name": "n8n Academy API Key"
        }
      }
    },
    {
      "parameters": {
        "fieldsToSummarize": {
          "values": [
            {
              "aggregation": "sum",
              "field": "order_total"
            },
            {
              "field": "order_total"
            },
            {
              "aggregation": "average",
              "field": "order_total"
            }
          ]
        },
        "fieldsToSplitBy": "region",
        "options": {}
      },
      "type": "n8n-nodes-base.summarize",
      "typeVersion": 1.1,
      "position": [
        208,
        -320
      ],
      "id": "91cd6ef5-16d0-4ea0-89a6-b5d2499b1681",
      "name": "SummarizebyRegion"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "c271aab4-45e9-4cd8-bc1e-5fee1682718a",
              "name": "sum_order_total",
              "value": "={{ Math.round($json.sum_order_total *100)/100}}",
              "type": "number"
            },
            {
              "id": "8a43ca44-257c-4d5e-9240-396005282a88",
              "name": "count_order_total",
              "value": "={{ $json.count_order_total }}",
              "type": "number"
            },
            {
              "id": "4e9f85c6-ec6e-4a80-bd09-024fadd61c5f",
              "name": "average_order_total",
              "value": "={{ Math.round($json.average_order_total*100)/100 }}",
              "type": "number"
            }
          ]
        },
        "includeOtherFields": true,
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        416,
        -320
      ],
      "id": "ea9206a9-c0e7-4836-9194-9a07c0826961",
      "name": "Edit Fields"
    }
  ],
  "connections": {
    "SetOrderTotals": {
      "main": [
        [
          {
            "node": "SummarizebyRegion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AggregateOrders": {
      "main": [
        [
          {
            "node": "SendToSlack",
            "type": "main",
            "index": 0
          },
          {
            "node": "SendOrders",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "SummarizebyRegion": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "AggregateOrders",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "7134812ff1766ac00dec6d0b790eac6d9b713a9539f0e1c05a87cf2a2442a32d"
  }
}

Tu solicitud es inválida o no pudo ser procesada por el servicio
Los totales de tu orden son incorrectos. Por favor asegúrate de que estés calculando los totales correctamente.

Información sobre tu configuración de n8n

  • Versión de n8n: Community
  • Base de datos (predeterminado: SQLite):
  • Configuración EXECUTIONS_PROCESS de n8n (predeterminado: own, main):
  • Ejecutando n8n a través de (Docker, npm, n8n cloud, aplicación de escritorio):
  • Sistema operativo: Windows

Hola Venu,

El error “Your order totals are incorrect” casi siempre apunta a un problema con el formato de la carga útil JSON en tu nodo SendOrders (HTTP Request).

Cuando usas ={{ $json.orders }} en el campo de valor, n8n a menudo por defecto pasa los datos como una cadena de texto, pero el endpoint de la API de n8n Academy específicamente espera un Objeto JSON que contenga el array de pedidos.

Aquí es cómo solucionarlo:

  1. Cambia el Tipo de Contenido del Body: En tu nodo SendOrders, asegúrate de que la opción Send Body esté habilitada, pero busca una opción como “JSON” o “Body Parameters” y asegúrate de que no esté forzando los datos a un formato de cadena de texto.

  2. Usa el Expression Editor correctamente: En el campo Value para tu parámetro body orders, intenta usar una expresión que fuerce la estructura del objeto JSON: ={{ JSON.stringify($json.orders) }} o, mejor aún, si el nodo lo soporta, cambia el tipo de Body Parameters a JSON y usa {{ $json.orders }} directamente sin comillas.

  3. Verifica tu nodo SetOrderTotals: Estás usando Math.round($json.quantity * $json.unit_price). Verifica dos veces que tus datos de entrada no tengan cadenas de texto ocultas o valores null. Si quantity o unit_price se están interpretando como cadenas de texto, las matemáticas podrían estar fallando silenciosamente o produciendo tipos inesperados. Intenta envolverlos en Number(): ={{ Math.round(Number($json.quantity) * Number($json.unit_price)) }}

    Para ver exactamente qué es lo que la API está “viendo”, añade un nodo Webhook o usa un servicio como Webhook.site para inspeccionar la carga útil exacta que sale de tu nodo SendOrders. Si la API devuelve un error 400, es casi con certeza porque recibió una cadena de texto en lugar del array JSON esperado.

    ¡Avísame si eso resuelve el error de validación!

    Un saludo, Swapnil swapnilailabs.com

Hola Swapnil

Gracias por tu respuesta tan rápida. Déjame explicarte qué hice antes de publicar este problema

  1. Verifiqué todos los nodos para asegurarme de que el tipo de dato para el total del pedido sea correcto. Está configurado como números
  2. En el Nodo Enviar,
    1. En body, el tipo de contenido del Body es JSON
    2. Especificar Campos:
      Nombre: orders
    3.     Valor: {{ $json.orders }}
      

Todos los nodos se ejecutan perfectamente sin errores.

También probé el Webhook y no hay errores allí.

A continuación se muestra el resultado del webhook

{“orders”:[{“sum_order_total”:5348,“count_order_total”:16,“average_order_total”:334.25,“region”:“north”},{“sum_order_total”:2507,“count_order_total”:10,“average_order_total”:250.7,“region”:“west”},{“sum_order_total”:2353,“count_order_total”:14,“average_order_total”:168.07,“region”:“south”},{“sum_order_total”:2263,“count_order_total”:10,“average_order_total”:226.3,“region”:“east”}]}

Hola @venu_nair,

Puede que necesites comparar tu flujo de trabajo con las instrucciones nuevamente, ya que veo que tu rama anterior tiene algunos nodos más que la última vez que lo hice.

Hola a todos,

Estoy obteniendo un error similar para el mismo flujo de trabajo que se comparte en la URL Course | n8n Platform

A continuación se muestran mi flujo de trabajo y el mensaje de error.

¡Cualquier ayuda para identificar el problema sería muy apreciada! :slight_smile:

Flujo de trabajo

Código del flujo de trabajo

Section 2 - Sales Data Pipeline.json (5.6 KB)

Error obtenido en el último nodo - SendOrders

{
“errorMessage”: “Tu solicitud no es válida o no pudo ser procesada por el servicio”,
“errorDescription”: “Los totales de tu pedido son incorrectos. Por favor, asegúrate de que estés calculando los totales correctamente.”,
“errorDetails”: {
“rawErrorMessage”: [
“422 - “{\“error\”:\“Los totales de tu pedido son incorrectos. Por favor, asegúrate de que estés calculando los totales correctamente.\”}””
],
“httpCode”: “422”
},
“n8nDetails”: {
“nodeName”: “SendOrders”,
“nodeType”: “n8n-nodes-base.httpRequest”,
“nodeVersion”: 4.4,
“itemIndex”: 0,
“time”: “03/07/2026, 14:12:47”,
“n8nVersion”: “2.27.5 (Self Hosted)”,
“binaryDataMode”: “filesystem”,
“stackTrace”: [
“NodeApiError: Tu solicitud no es válida o no pudo ser procesada por el servicio”,
" at ExecuteContext.execute (C:\Users\Jaideep Satghare\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-nodes-base\nodes\HttpRequest\V3\HttpRequestV3.node.ts:869:16)“,
" at WorkflowExecute.executeNode (C:\Users\Jaideep Satghare\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-core\src\execution-engine\workflow-execute.ts:1067:8)”,
" at WorkflowExecute.runNode (C:\Users\Jaideep Satghare\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-core\src\execution-engine\workflow-execute.ts:1367:11)“,
" at C:\Users\Jaideep Satghare\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-core\src\execution-engine\workflow-execute.ts:1829:27”,
" at C:\Users\Jaideep Satghare\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-core\src\execution-engine\workflow-execute.ts:2521:11"
]
}
}

Hola @Jaideep_Satghare, por favor verifica la configuración del campo «order_total» de tu nodo «SetOrderTotals» según las instrucciones. Veo que es diferente.

Además, tu problema es un poco diferente, así que vale la pena abrir otro post para que otros también puedan ayudarte, gracias.

@kristinker , gracias por tu respuesta. :smiley:

Intencionalmente modifiqué el campo “order_total” usando la función Math rounding para forzar la conversión a entero.

Sin embargo, pude encontrar el problema: era un espacio al final en el nombre del campo order_total. Estaba usando "order_total " en lugar de “order_total”. Lo corregí y ha funcionado perfectamente.

Gracias por pedirme que revisara el nodo nuevamente. :smiley:

Este problema puede cerrarse en lo que a mí respecta. Abriré un nuevo hilo en el futuro para problemas similares.