Problème lors de l'exercice workflow de la Section 2 de N8N101 lors de l'envoi du CSV

Bonjour à tous. J’ai besoin d’aide sur la section 2 de N8N101 sur l’exercice de workflow - Étape 4 : Générer et finaliser votre rapport. J’aimerais savoir si quelqu’un pourrait réussir cette étape et ce que je pourrais d’autre faire pour corriger ça.

J’ai rencontré ce problème à l’étape d’envoi d’un fichier CSV à https://learn.app.n8n.cloud/webhook/course/n8n101/send-report, et il continue à répondre de manière vide.

Qu’est-ce que j’ai essayé de corriger ?

  • J’ai réussi deux points de contrôle précédents, donc le workflow fonctionne bien à ces étapes.
  • J’ai double-vérifié pour m’assurer que je suivais exactement les instructions pour cette étape.
  • Ci-dessous se trouve mon workflow jusqu’à présent et le fichier CSV, que j’ai modifiés pour éviter de divulguer la réponse.

average_order_total;region;order_totals;order_count;report_generated;assessment_id
999.5;region1;999;9;2026-06-19 11:49:24;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
999.5;region2;999;9;2026-06-19 11:49:24;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
999;region3;999;9;2026-06-19 11:49:24;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
999.5;region4;999;9;2026-06-19 11:49:24;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Une chose que j’ai remarquée est que le CSV a une colonne assessment_id, donc je suppose qu’il pourrait y avoir un problème de vérification qui pourrait être lié à un post précédent, où assessment_id avait des problèmes lors de l’envoi via en-tête.

Salut @kristinker

Merci de signaler cela, encore une autre typo de ma part dans notre flux de travail. Corrigé et testé.

Amicalement,

Bonjour… Puis-je vous demander comment corriger cela puisque je reçois toujours rien après l’envoi du rapport. Merci

Bonjour asdrt,

Le problème venait de n8n academy qui vérifiait assessment_it dans le CSV que l’étudiant a envoyé à son serveur. Je l’ai relancé et ça fonctionne toujours, donc le problème pourrait venir de votre configuration actuelle.

Au vu de cela, vous pourriez vérifier les étapes précédentes avant d’envoyer le CSV pour voir laquelle ne fonctionne pas. Vous pourriez utiliser mon post initial comme checklist :

  • Avez-vous réussi les deux points de contrôle précédents ?
  • Votre fichier CSV ressemble-t-il à celui que j’ai joint ? Les données réelles sont caviardées, mais les noms de colonnes et le nombre total de lignes sont corrects.
  • Avez-vous suivi toutes les instructions de cette étape (nom du nœud, type de données, nom du champ, etc) ?

Bonne chance

J’ai déjà passé les points de contrôle précédents et suivi les étapes. Je vais juste envoyer ma configuration et tu peux la vérifier ? Mon seul problème est à l’étape 4. Merci de ton aide.

Bien sûr, tu pourrais m’envoyer ton workflow, mais avant cela, essaie ces étapes. Je vois que ton workflow a quelques points à vérifier :

  • Le nœud « SetReportMetaData » a assessment_id avec un wrapper entre crochets [xxxx], veuillez supprimer les crochets. De plus, je vois que cela ne retourne pas les champs du nœud précédent, alors fais défiler le menu de configuration et sélectionne Input Fields to Include sur All

  • Nœud « Convert To File », ouvre ce CSV et vérifie qu’il a 6 colonnes comme je l’ai mentionné précédemment. Je doute qu’il n’en ait que 2.

Bonjour @jamiemadden_n8n

Concernant la vérification du serveur pour le CSV, je vois son comportement actuel lorsque les étudiants envoient un CSV invalide (les étudiants peuvent envoyer un fichier CSV invalide avec seulement 2 colonnes (assessment_id et created_date) ou la vérification de assessment_id échoue dans mon cas original), et le serveur répond toujours avec un 200 et un corps vide, ce qui laisse les étudiants se demander : « Je vois le nœud vert, est-ce que j’ai réussi ? Ou suis-je supposé corriger quelque chose ? ». Je propose donc une petite mise à jour pour rendre les commentaires plus intuitifs :

  • Si l’étudiant envoie un CSV invalide et n’obtient pas de succès, le serveur devrait répondre 4xx et indiquer que le CSV n’est pas correct afin que l’étudiant sache où le corriger.

  • Ou si nous gardons la réponse 200 vide pour une raison quelconque, nous devrions au moins la mentionner dans le point de contrôle ou la section Dépannage afin que l’étudiant soit conscient que quelque chose ne va pas et qu’il n’a pas encore réussi, et qu’il ait un moyen de dépanner par lui-même.

Buenas, tengo el mismo problema, estuve leyendo el post, y por lo que interpreto, es un problema del servidor verdad? Porque en el último paso, no me asigna el código de verificación y dentro del curso, me queda como que tengo pendiente esta tarea, si me pueden orientar por favor, tal vez hay algo que no estoy viendo. Revise dos veces todas las instrucciones, no encontre ninguna diferencia, pero aún así, no logro obtener el último código de verificación. Los anteriores si los pude obtener, muchas gracias. Adjunto el JSON de mi workflow.

{

“name”: “Section 2 - Sales Data Pipeline”,

“nodes”: [

{

  "parameters": {},

  "type": "n8n-nodes-base.manualTrigger",

  "typeVersion": 1,

  "position": \[

    0,

    -272

  \],

  "id": "ccdc0a3f-c825-4875-9de9-7d7c2014be2b",

  "name": "TriggerManual"

},

{

  "parameters": {

    "url": "https://learn.app.n8n.cloud/webhook/course/n8n101/sales-data",

    "authentication": "genericCredentialType",

    "genericAuthType": "httpHeaderAuth",

    "sendHeaders": true,

    "headerParameters": {

      "parameters": \[

        {

          "name": "X-Assessment-ID",

          "value": "a2522471826abeaf5b090ee65e56e18c"

        }

      \]

    },

    "options": {}

  },

  "type": "n8n-nodes-base.httpRequest",

  "typeVersion": 4.4,

  "position": \[

    224,

    -272

  \],

  "id": "4ee58409-12fc-4709-ace7-c293e03fa8bf",

  "name": "GetSalesData",

  "credentials": {

    "httpHeaderAuth": {

      "id": "QQcXYH9c9Bjq284o",

      "name": "n8n Academy API Key"

    }

  }

},

{

  "parameters": {

    "fieldToSplitOut": "orders",

    "options": {}

  },

  "type": "n8n-nodes-base.splitOut",

  "typeVersion": 1,

  "position": \[

    448,

    -272

  \],

  "id": "c9297b13-caf6-4bc8-9c42-b62bca11d6c4",

  "name": "SplitOrders"

},

{

  "parameters": {

    "assignments": {

      "assignments": \[

        {

          "id": "0c7b5fc4-920a-4363-9468-c9701ed0b3bf",

          "name": "order_id",

          "value": "={{ $json.order_id }}",

          "type": "string"

        },

        {

          "id": "036a73b7-7896-438a-9ecc-440dc6d571d3",

          "name": "customer_name",

          "value": "={{ $json.customer_name }}",

          "type": "string"

        },

        {

          "id": "9994322b-80ea-436a-941f-73d4b394b692",

          "name": "region",

          "value": "={{ $json.region }}",

          "type": "string"

        },

        {

          "id": "e3eebd43-39e2-4b91-b760-66b7e18f1863",

          "name": "status",

          "value": "={{ $json.status }}",

          "type": "string"

        },

        {

          "id": "cde0d5f0-ff61-4f63-8209-735324c8e3e9",

          "name": "order_total",

          "value": "={{ $json.quantity \* $json.unit_price }}",

          "type": "number"

        }

      \]

    },

    "options": {}

  },

  "type": "n8n-nodes-base.set",

  "typeVersion": 3.4,

  "position": \[

    672,

    -272

  \],

  "id": "a436a191-3500-4f9f-9b3c-de2834021079",

  "name": "SetOrderTotals"

},

{

  "parameters": {

    "aggregate": "aggregateAllItemData",

    "destinationFieldName": "orders",

    "options": {}

  },

  "type": "n8n-nodes-base.aggregate",

  "typeVersion": 1,

  "position": \[

    896,

    -464

  \],

  "id": "4c0c71d2-2f34-49bc-8436-7a0d99ee90b9",

  "name": "AggregateOrders"

},

{

  "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": "a2522471826abeaf5b090ee65e56e18c"

        }

      \]

    },

    "sendBody": true,

    "bodyParameters": {

      "parameters": \[

        {

          "name": "orders",

          "value": "={{ $json.orders }}"

        }

      \]

    },

    "options": {}

  },

  "type": "n8n-nodes-base.httpRequest",

  "typeVersion": 4.4,

  "position": \[

    1120,

    -464

  \],

  "id": "b75a2fd2-94ed-4b73-ae50-bc4b716b67d9",

  "name": "SendOrders",

  "credentials": {

    "httpHeaderAuth": {

      "id": "QQcXYH9c9Bjq284o",

      "name": "n8n Academy API Key"

    }

  }

},

{

  "parameters": {

    "conditions": {

      "options": {

        "caseSensitive": true,

        "leftValue": "",

        "typeValidation": "strict",

        "version": 3

      },

      "conditions": \[

        {

          "id": "84d523d2-884a-44f6-bc84-1c7a9788ced5",

          "leftValue": "={{ $json.status }}",

          "rightValue": "delivered",

          "operator": {

            "type": "string",

            "operation": "equals"

          }

        }

      \],

      "combinator": "and"

    },

    "options": {}

  },

  "type": "n8n-nodes-base.if",

  "typeVersion": 2.3,

  "position": \[

    896,

    -176

  \],

  "id": "b74fb43d-2d94-4af1-b3a5-fc17c2f8678a",

  "name": "FilterDelivered"

},

{

  "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": \[

    1120,

    -272

  \],

  "id": "b79acb85-1eee-4b10-ae31-634770ac3503",

  "name": "SummarizeByRegion"

},

{

  "parameters": {

    "keys": {

      "key": \[

        {

          "currentKey": "sum_order_total",

          "newKey": "order_totals"

        },

        {

          "currentKey": "count_order_total",

          "newKey": "order_count"

        },

        {

          "currentKey": "average_order_total",

          "newKey": "avarege_order_total"

        }

      \]

    },

    "additionalOptions": {}

  },

  "type": "n8n-nodes-base.renameKeys",

  "typeVersion": 1,

  "position": \[

    1344,

    -272

  \],

  "id": "0a89ddb6-6598-45a7-82e7-8535f2e4749c",

  "name": "UpdateFieldNames"

},

{

  "parameters": {

    "aggregate": "aggregateAllItemData",

    "destinationFieldName": "regions",

    "options": {}

  },

  "type": "n8n-nodes-base.aggregate",

  "typeVersion": 1,

  "position": \[

    1568,

    -368

  \],

  "id": "e4d2ff81-11e5-4994-991b-008b91d87062",

  "name": "AggregateRegions"

},

{

  "parameters": {

    "method": "POST",

    "url": "https://learn.app.n8n.cloud/webhook/course/n8n101/validate-analysis",

    "authentication": "genericCredentialType",

    "genericAuthType": "httpHeaderAuth",

    "sendHeaders": true,

    "headerParameters": {

      "parameters": \[

        {

          "name": "X-Assessment-ID",

          "value": "a2522471826abeaf5b090ee65e56e18c"

        }

      \]

    },

    "sendBody": true,

    "bodyParameters": {

      "parameters": \[

        {

          "name": "regions",

          "value": "={{ $json.regions }}"

        }

      \]

    },

    "options": {}

  },

  "type": "n8n-nodes-base.httpRequest",

  "typeVersion": 4.4,

  "position": \[

    1792,

    -368

  \],

  "id": "504d6d3e-3914-408d-a0bf-b30b328c298f",

  "name": "SendAnalysis",

  "credentials": {

    "httpHeaderAuth": {

      "id": "QQcXYH9c9Bjq284o",

      "name": "n8n Academy API Key"

    }

  }

},

{

  "parameters": {

    "assignments": {

      "assignments": \[

        {

          "id": "3471e8c4-6494-4d87-8c27-fcd8f626a2f7",

          "name": "report_generated",

          "value": "={{ $now.format('yyyy-MM-dd HH:mm:ss') }}",

          "type": "string"

        },

        {

          "id": "797e341f-6d34-4e56-b428-1644a78d3915",

          "name": "assessment_id",

          "value": "a2522471826abeaf5b090ee65e56e18c",

          "type": "string"

        }

      \]

    },

    "includeOtherFields": true,

    "options": {}

  },

  "type": "n8n-nodes-base.set",

  "typeVersion": 3.4,

  "position": \[

    1568,

    -176

  \],

  "id": "a1638fbf-f6fd-403a-8ce9-d73f965985b7",

  "name": "SetReportMetadata"

},

{

  "parameters": {

    "binaryPropertyName": "report",

    "options": {}

  },

  "type": "n8n-nodes-base.convertToFile",

  "typeVersion": 1.1,

  "position": \[

    1792,

    -176

  \],

  "id": "28660eaa-4cb1-4952-ac18-2c4bb28fcbe3",

  "name": "ConvertToCSV"

},

{

  "parameters": {

    "method": "POST",

    "url": "https://learn.app.n8n.cloud/webhook/course/n8n101/send-report",

    "authentication": "genericCredentialType",

    "genericAuthType": "httpHeaderAuth",

    "sendHeaders": true,

    "headerParameters": {

      "parameters": \[

        {

          "name": "X-Assessment-ID",

          "value": "a2522471826abeaf5b090ee65e56e18c"

        }

      \]

    },

    "sendBody": true,

    "contentType": "binaryData",

    "inputDataFieldName": "report",

    "options": {}

  },

  "type": "n8n-nodes-base.httpRequest",

  "typeVersion": 4.4,

  "position": \[

    2016,

    -176

  \],

  "id": "194d9159-bc73-453b-8e18-8c9b0278d31e",

  "name": "SendReport",

  "credentials": {

    "httpHeaderAuth": {

      "id": "QQcXYH9c9Bjq284o",

      "name": "n8n Academy API Key"

    }

  }

},

{

  "parameters": {},

  "type": "n8n-nodes-base.noOp",

  "typeVersion": 1,

  "position": \[

    1120,

    -80

  \],

  "id": "af17a61f-e8d1-4290-9724-7d113bd9124c",

  "name": "IgnoreNonDelivered"

}

],

“pinData”: {},

“connections”: {

"TriggerManual": {

  "main": \[

    \[

      {

        "node": "GetSalesData",

        "type": "main",

        "index": 0

      }

    \]

  \]

},

"GetSalesData": {

  "main": \[

    \[

      {

        "node": "SplitOrders",

        "type": "main",

        "index": 0

      }

    \]

  \]

},

"SplitOrders": {

  "main": \[

    \[

      {

        "node": "SetOrderTotals",

        "type": "main",

        "index": 0

      }

    \]

  \]

},

"SetOrderTotals": {

  "main": \[

    \[

      {

        "node": "FilterDelivered",

        "type": "main",

        "index": 0

      },

      {

        "node": "AggregateOrders",

        "type": "main",

        "index": 0

      }

    \]

  \]

},

"AggregateOrders": {

  "main": \[

    \[

      {

        "node": "SendOrders",

        "type": "main",

        "index": 0

      }

    \]

  \]

},

"FilterDelivered": {

  "main": \[

    \[

      {

        "node": "SummarizeByRegion",

        "type": "main",

        "index": 0

      }

    \],

    \[

      {

        "node": "IgnoreNonDelivered",

        "type": "main",

        "index": 0

      }

    \]

  \]

},

"SummarizeByRegion": {

  "main": \[

    \[

      {

        "node": "UpdateFieldNames",

        "type": "main",

        "index": 0

      }

    \]

  \]

},

"UpdateFieldNames": {

  "main": \[

    \[

      {

        "node": "AggregateRegions",

        "type": "main",

        "index": 0

      },

      {

        "node": "SetReportMetadata",

        "type": "main",

        "index": 0

      }

    \]

  \]

},

"AggregateRegions": {

  "main": \[

    \[

      {

        "node": "SendAnalysis",

        "type": "main",

        "index": 0

      }

    \]

  \]

},

"SetReportMetadata": {

  "main": \[

    \[

      {

        "node": "ConvertToCSV",

        "type": "main",

        "index": 0

      }

    \]

  \]

},

"ConvertToCSV": {

  "main": \[

    \[

      {

        "node": "SendReport",

        "type": "main",

        "index": 0

      }

    \]

  \]

}

},

“active”: false,

“settings”: {

"executionOrder": "v1",

"binaryMode": "separate"

},

“versionId”: “13d25ae4-5903-4e5d-96fd-c31460bd9e79”,

“meta”: {

"instanceId": "54f686cd8025e96d283c85699adf4945c234670c29097dcbc346f6794485ee6a"

},

“nodeGroups”: [],

“id”: “zHhggcePiczrgYaw”,

“tags”: [

{

  "name": "n8n101",

  "id": "ANRJX0kNx03bHS7k",

  "updatedAt": "2026-06-23T03:07:48.986Z",

  "createdAt": "2026-06-23T03:07:48.986Z"

}

]

}

Bonjour @EzeMorales

À l’avenir, veuillez démarrer vos propres sujets et partager votre flux de travail complet afin que nous puissions vous aider.

cheers,

Euh, d’accord, désolé, j’étais pas au courant, j’ai pensé que c’était le même sujet, désolé. Là j’ouvre un nouveau fil, merci beaucoup et désolé.