Y a-t-il un moyen d'ajouter une description au workflow avec l'API n8n

Décrivez le problème/l’erreur/la question

Je veux écrire une description du workflow avec l’API n8n, mais je ne sais pas comment. J’ai essayé d’écrire une variable de description moi-même, dans l’objet meta du workflow, mais cela n’a simplement pas fonctionné. Ma question est donc : comment puis-je écrire ma description avec l’API n8n?

Merci d’avance à celui qui répondra, toute aide est appréciée.

Quel est le message d’erreur (le cas échéant) ?

Veuillez partager votre workflow

(Sélectionnez les nœuds sur votre canevas et utilisez les raccourcis clavier CMD+C/CTRL+C et CMD+V/CTRL+V pour copier et coller le workflow.)

Partagez la sortie retournée par le dernier nœud

Informations sur votre configuration n8n

  • Version de n8n :
  • Base de données (par défaut : SQLite) :
  • Paramètre n8n EXECUTIONS_PROCESS (par défaut : own, main) :
  • Exécution de n8n via (Docker, npm, n8n cloud, application de bureau) :
  • Système d’exploitation :

Bonjour @SE-automations

La raison pour laquelle votre tentative précédente n’a pas fonctionné est que la description doit se trouver au niveau principal de vos données de demande. Vous tentiez de la placer à l’intérieur de l’objet « meta », mais n8n ne la recherche pas là ; il s’attend à ce que la description soit son propre champ séparé dans le corps principal du message.

Vous devez également vous assurer que votre logiciel n8n est à jour. Dans les versions antérieures, il y avait un bug qui bloquait en fait l’API d’accepter les descriptions, ce qui causerait au système de renvoyer un message d’erreur. Ceci a été corrigé dans la version 2.16.0, donc tant que vous utilisez une version plus récente, cela fonctionnera.

Pour corriger cela, envoyez simplement une demande « PATCH » au point de terminaison du workflow et incluez la description comme propriété principale. Au lieu de l’imbriquer, écrivez simplement "description": "votre texte ici" à la racine de votre code JSON, et le système mettra à jour la description du workflow correctement.

Voici un exemple :

curl -X PATCH "https://your-n8n-instance.com/api/v1/workflows/YOUR_WORKFLOW_ID" \
  -H "X-N8N-API-KEY: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"description": "This is my updated workflow description"}'

Bonjour @SE-automations

Pour faire cela directement dans un workflow n8n (sans Postman/cURL), vous pouvez utiliser le nœud « n8n » intégré pour appeler l’API n8n :

  1. Ajouter le nœud n8n

    • Dans l’éditeur, cliquez sur le grand bouton « + » pour ajouter un nouveau nœud.

    • Dans la zone de recherche, tapez n8n.

    • Sélectionnez le nœud simplement appelé « n8n » (catégorie : Core Nodes).

  2. Choisir la bonne action

    • Dans le menu déroulant Resource / Action, choisissez « Workflow » puis « Update a workflow » (ou « Update workflow », selon votre version).

    • Cela indique au nœud que vous voulez appeler le point de terminaison /workflows de l’API n8n.

  3. Sélectionner le workflow à mettre à jour

    • Dans le champ Workflow ID, sélectionnez votre workflow dans le menu déroulant ou collez l’ID manuellement.

    • Si vous ne connaissez pas encore l’ID, vous pouvez d’abord utiliser le même nœud n8n avec l’action « Get a workflow » pour le récupérer.

  4. Fournir l’objet Workflow avec description

    • Changez « Workflow Object » (ou « Body ») en mode JSON.

    • Collez le JSON du workflow actuel et ajoutez le champ description au niveau racine, par exemple :

      json
      

      {
      "name": "My workflow",
      "nodes": [...],
      "connections": {...},
      "settings": {},
      "description": "This is my updated workflow description"
      }

    • Assurez-vous que description n’est pas à l’intérieur de meta, il doit rester au niveau racine de l’objet.

  5. Exécuter le nœud

    • Exécutez le nœud.

    • Si le JSON correspond au schéma du workflow et que votre version de n8n est suffisamment récente pour supporter description dans l’API, la description du workflow dans l’interface utilisateur sera mise à jour.

@kjooleng, je veux le faire directement dans le nœud n8n lui-même car je construis une automatisation qui doit mettre à jour la description d’autres workflows n8n, mais merci quand même de proposer une solution. :smiley:

Bad request - please check your parameters

request/body/settings must NOT have additional properties

J’obtiens cette erreur dans le nœud n8n si j’essaie votre solution, peut-être que je ne l’ai pas bien comprise ? Ou me suis-je trompé quelque part ?

Le message d’erreur
Bad request - please check your parameters
request/body/settings must NOT have additional properties
signifie que dans votre corps de requête, spécifiquement à l’intérieur de l’objet settings du workflow, vous envoyez une ou plusieurs clés qui ne sont pas autorisées par le schéma API de n8n.

Conformément à la documentation de l’API, settings n’accepte qu’un ensemble spécifique de champs. Un exemple raccourci ressemble à ceci :

"settings": {
"saveExecutionProgress": true,
"saveManualExecutions": false,
"saveDataErrorExecution": "all",
"saveDataSuccessExecution": "all",
"executionTimeout": 3600,
"errorWorkflow": "VzqKEW0ShTXA5vPj",
"timezone": "America/New_York",
"executionOrder": "v1",
"callerPolicy": "workflowsFromSameOwner",
"callerIds": "14, 18, 23",
"timeSavedPerExecution": 5,
"redactionPolicy": "none",
"availableInMCP": false,
"customTelemetryTags": [
{ "key": "env", "value": "prod" }
]
}

Si votre objet settings contient des clés supplémentaires ou personnalisées (par exemple myCustomSetting, ou des champs ajoutés par des versions antérieures / des métadonnées d’interface utilisateur qui ne font pas partie du schéma actuel), l’API répondra exactement par :

request/body/settings must NOT have additional properties

Comment corriger cela :

  1. Vérifiez le JSON que vous envoyez (via le nœud n8n, un nœud HTTP Request, ou un client externe).

  2. À l’intérieur de "settings": { ... }, supprimez les clés qui ne sont pas listées dans la documentation de l’API.

  3. Renvoyez la requête avec un objet settings « propre ».

Si vous prenez le JSON de GET /workflows/{id} et que vous l’utilisez ensuite pour PUT/Update, assurez-vous que :

  • Au niveau racine, vous ne conservez que des champs valides tels que name, nodes, connections, settings, staticData, tags, description, etc.

  • À l’intérieur de settings, vous ne conservez que les champs définis dans le schéma API actuel, sinon vous continuerez à rencontrer l’erreur « must NOT have additional properties ».

Vous êtes très proche ; une fois que vous aurez supprimé les clés non prises en charge de settings, la même requête devrait fonctionner comme prévu. Si vous souhaitez coller votre JSON actuel, je serais heureux de vous indiquer exactement quelles propriétés posent problème.

Non, je n’ai rien envoyé de personnalisé dans le champ settings du JSON, comme tu l’as dit, j’ai simplement défini le champ description du JSON au niveau racine, est-ce que j’oublie quelque chose, ou je ne fais pas la bonne chose?

Peux-tu envoyer le JSON de ton nœud d’erreur n8n ? Je vois clairement le problème.

Sure, here you go,

Let try with this:

Non, la description est toujours vide, elle ne s’est pas mise à jour, je suis sur la dernière version de n8n, qu’est-ce que je fais de mal ? Est-ce que n8n prend en charge la modification de la description via le nœud ?

@SE-automations

Essayez ceci

Vous devez configurer le nœud « Set Parameters » avec votre workflowId, apiKey et baseUrl.

Bad request - please check your parameters

request/body/settings must NOT have additional properties

C’est l’erreur du dernier nœud de requête HTTP, est-ce que je fais quelque chose de mal ?

@SE-automations

J’ai apporté des modifications aux 2 derniers nœuds. Ça fonctionne maintenant

La description ne fait pas partie de meta — c’est son propre champ à la racine de l’objet workflow, situé aux côtés de name, nodes, connections et settings. Donc : GET le workflow depuis /api/v1/workflows/{id}, ajoutez « description »: « votre texte » au niveau racine (pas à l’intérieur de meta, pas à l’intérieur de settings), puis renvoyez l’objet entier avec un PUT vers le même endpoint.

Deux choses qui m’ont piégé quand j’ai fait ça : l’API publique est stricte et veut l’objet workflow complet en retour, donc un PATCH avec seulement { « description »: « … » } peut échouer la validation du schéma — GET → ajouter le champ → PUT l’ensemble. Et si l’endpoint public /api/v1 ne l’accepte toujours pas, l’endpoint interne que l’éditeur utilise lui-même (/rest/workflows/{id}) accepte la description sans protester. Ça devrait la sauvegarder.

Description

Des descriptions claires aident les autres utilisateurs et les clients MCP à comprendre l’objectif de votre flux de travail

La description est toujours vide, mais le flux de travail que vous m’avez fourni s’est exécuté sans erreur.

Merci pour votre solution, je l’ai essayée, je pense que vous faisiez juste référence au flux de travail que @kjooleng a fourni, je suis extrêmement désolé, mais je ne l’ai pas compris, j’ai essayé le flux de travail de @kjooleng qui s’est exécuté avec succès mais il n’a pas mis à jour la description du flux de travail, vouliez-vous dire une autre solution ou avez-vous suggéré des modifications au flux de travail ?

Vous devez ouvrir le workflow directement depuis le tableau de bord.
Il n’apparaîtra pas si le workflow est actuellement ouvert

Ouais, ça a marché ! Merci @kjooeng pour la solution, et merci à tout le monde d’avoir essayé de résoudre le problème !