AutomationFlowsAI & RAG › Auto Document n8n Workflows with AI

Auto Document n8n Workflows with AI

Original n8n title: Auto Document Your N8n Workflows

ByMarvin Wu @marvinwu on n8n.io

This workflow is designed for n8n users and developers who need to automate the documentation process of their n8n workflows. It's particularly useful for teams looking to streamline their documentation efforts and ensure consistency across their workflow documentation.

Webhook trigger★★★★☆ complexityAI-powered5 nodesOpenAIForm Trigger
AI & RAG Trigger: Webhook Nodes: 5 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #2173 — we link there as the canonical source.

This workflow follows the Form Trigger → OpenAI recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "nodes": [
    {
      "id": "8b6d8462-1fe5-478b-aa15-7d10ff799aae",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        980,
        900
      ],
      "parameters": {
        "fields": {
          "values": [
            {
              "name": "prompt",
              "stringValue": "\"\"\"PROMPT: The above is a n8n workflow json, please create workflow documentation for the user:. you are the master of brevity, be as concise and brief as possible, output generated documentation only.      ## Guidelines for the documentation  - **Provide a detailed description**: Provide a concise and informative description outlining the template's functionality and expected outcomes. Include a brief setup guide for user convenience. A detailed description not only clarifies the template's purpose but also enhances its discoverability through SEO. It\u2019s advised to use these sections in your description:     - Who is this for?     - What problem is this workflow solving? / use case     - What this workflow does     - Setup     - How to customize this workflow to your needs   Here is an example  ``` # Who is this template for?  This workflow template is designed for **Sales** and **Customer Success** professionals seeking alerts when potential high-value users, prospects, or existing customers register for a Discourse community. Leveraging Clearbit, it retrieves enriched data for the new member to assess their value.  ### Example result in Slack  ![Screenshot 20240221 at 13.51.29.png](https://n8niostorageaccount.blob.core.windows.net/n8nio-strapi-blobs-prod/assets/Screenshot_2024_02_21_at_13_51_29_030961dc1b.png)  # How it works  - Each time a new member is created in Discourse, the workflow runs (powered by Discourse's native Webhooks feature). - After filtering out popular private email accounts, we run the member's email through Clearbit to fetch available information on the member as well as their organization. - If the enriched data meets certain criteria, we send a Slack message to a channel. This message has a few quick actions: `Open LinkedIn profile` and `Email member`  # Set up instructions  Overview is below. Watch this [\ud83c\udfa5 quick set up video](https://www.loom.com/share/d379895004374ddc85dc9171ca37c139?sid=bb28df29-bc91-4d32-a657-0bfbaaf50cc7) for detailed instructions on how to get the template running, as well as how to customize it.  1. Complete the `Set up credentials` step when you first open the workflow. You'll need a Discourse (admin user), Clearbit, and Slack account. 2. Set up the Webhook in Discourse, linking the `On new Discourse user` Trigger with your Discourse community. 3. Set the correct channel to send to in the `Post message in channel` step 4. After testing your workflow, swap the Test URL to Production URL in Discourse and activate your workflow  Template was created in n8n `v1.29.1`  ``` \"\"\""
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "9d1e972c-e737-4221-bd8b-dfd8115b9948",
      "name": "OpenAI",
      "type": "n8n-nodes-base.openAi",
      "position": [
        1400,
        900
      ],
      "parameters": {
        "prompt": {
          "messages": [
            {
              "content": "={{ $json.input }}"
            }
          ]
        },
        "options": {},
        "resource": "chat",
        "chatModel": "gpt-4-1106-preview"
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "3071e7e7-e0d6-4fad-a6ee-fbb5b722f344",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1620,
        900
      ],
      "parameters": {
        "options": {
          "responseCode": 200,
          "responseHeaders": {
            "entries": [
              {
                "name": "Content-Type",
                "value": "text/html; charset=UTF-8"
              }
            ]
          }
        },
        "respondWith": "text",
        "responseBody": "=<!DOCTYPE html>\n<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <title>Markdown to HTML</title>\n    <style>\n      main {\n        font-family: Arial, sans-serif;\n        margin: 0;\n        display: flex;\n        justify-content: center;\n        height: 100vh;\n        background-color: #f5f5f5;\n        font-size: 24px;\n      }\n\n      .content-container {\n        text-align: center;\n        border: 1px solid #ddd;\n        border-radius: 8px;\n        padding: 20px;\n        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n        background-color: #fff;\n        max-width: 600px;\n        width: 100%;\n        margin: 20px;\n      }\n\n      #markdown-content {\n        text-align: left;\n        margin-top: 20px;\n      }\n    </style>\n  </head>\n  <body>\n    <main>\n      <div class=\"content-container\">\n        <div id=\"markdown-content\"> {{ $json.message.content?.replace(/\\n/g,'<br/>') }}</div>\n      </div>\n    </main>\n  </body>\n</html>\n"
      },
      "typeVersion": 1
    },
    {
      "id": "1740cef8-d25b-46f2-a63d-50b86599dbf2",
      "name": "n8n Form Trigger",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        760,
        900
      ],
      "parameters": {
        "path": "c61492e5-73ce-40d4-b758-d5f09da0fb6c",
        "formTitle": "Workflow Documenter",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Workflow Title",
              "requiredField": true
            },
            {
              "fieldLabel": "Workflow Json",
              "requiredField": true
            }
          ]
        },
        "responseMode": "responseNode",
        "formDescription": "Automatically document your n8n workflow"
      },
      "typeVersion": 2
    },
    {
      "id": "fde56941-46a8-4340-b099-f7e75950b336",
      "name": "Create input to open ai",
      "type": "n8n-nodes-base.set",
      "position": [
        1180,
        900
      ],
      "parameters": {
        "fields": {
          "values": [
            {
              "name": "input",
              "stringValue": "=Workflow Title:  {{ $json['Workflow Title'] }}\n\nWofklow JSON: ```{{ $json['Workflow Json'] }}```\n\n{{ $json.prompt }}  "
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    }
  ],
  "connections": {
    "OpenAI": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Create input to open ai",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "n8n Form Trigger": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create input to open ai": {
      "main": [
        [
          {
            "node": "OpenAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow is designed for n8n users and developers who need to automate the documentation process of their n8n workflows. It's particularly useful for teams looking to streamline their documentation efforts and ensure consistency across their workflow documentation.

Source: https://n8n.io/workflows/2173/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Your automated multilingual support assistant that translates, generates AI responses, and translates back to the customer's language with comprehensive error handling.

DeepL, OpenAI, Form Trigger +1
AI & RAG

Openai Form. Uses openAi, respondToWebhook, formTrigger. Webhook trigger; 5 nodes.

OpenAI, Form Trigger
AI & RAG

This powerful n8n automation workflow is designed to execute advanced B2B lead enrichment and hyper-personalization for cold email outreach. By orchestrating a complex chain of data scraping, AI analy

OpenAI, HTTP Request, Airtable
AI & RAG

Eu Clara – Funil Kiwify Completo. Uses postgres, openAi, httpRequest, gmail. Webhook trigger; 70 nodes.

Postgres, OpenAI, HTTP Request +1
AI & RAG

Note: Now includes an Apify alternative for Rapid API (Some users can't create new accounts on Rapid API, so I have added an alternative for you. But immediately you are able to get access to Rapid AP

Form Trigger, Google Sheets Trigger, OpenAI +2