【n8n教程】:n8n API Node节点,自动化工作流管理

n8n API Node 是一个强大的节点,允许您通过n8n本身的REST API在工作流中执行各种自动化操作。无论是管理凭证、控制工作流、追踪执行历史,还是进行安全审计,这个节点都是您的得力助手。本教程将带领初学者从零开始,深入理解n8n API Node的四大操作类别、核心参数配置,并通过实际案例演示如何构建一个完整的工作流审计系统。


什么是n8n API Node?

节点的基本定义

n8n API Node 是一种特殊的核心节点,它允许您在n8n工作流中直接调用n8n平台本身的REST API。想象一下,如果说其他节点是用来连接外部服务的工具,那么n8n API Node就是用来管理n8n自身的工具。

这个节点的独特之处在于:

它能做什么

n8n API Node支持四大主要操作类别,覆盖了n8n平台管理的核心功能:

操作类别主要功能常见用途
Audit(审计)生成安全审计报告检查系统风险、识别弃用工作流
Credential(凭证)创建、删除、获取凭证程序化管理认证信息
Execution(执行)查询、删除工作流执行记录追踪运行历史、清理数据
Workflow(工作流)创建、激活、修改工作流动态生成自动化流程

四大操作详解

1. 审计操作(Audit):系统安全卫士

什么是"生成审计"?

生成审计操作会扫描您的整个n8n实例,识别潜在的安全风险和系统问题。它无需任何参数,但提供两个关键选项来定制审计范围。

核心配置参数

类别选择(Categories):选择要审计的风险类型


    
    
    
  可选项包括:
✓ Credentials(凭证风险)- 审查凭证管理
✓ Database(数据库)- 检查数据存储
✓ Filesystem(文件系统)- 验证文件访问
✓ Instance(实例)- 检查系统配置
✓ Nodes(节点)- 审查节点使用情况

弃用工作流天数(Days Abandoned Workflow):指定多少天没有运行的工作流应被视为"弃用"


    
    
    
  默认值:90天
含义:如果一个工作流90天没有被执行,审计报告会将其标记为可能需要清理

实际使用场景

假设您是n8n平台管理员,需要:

您就可以使用生成审计操作,通过选择相关类别快速获得完整的安全报告。


2. 凭证管理(Credential):安全的钥匙库

凭证的作用

凭证(Credential)是存储在n8n中的敏感信息,用于认证您与外部服务的连接。比如:

三个核心操作

创建凭证(Create Credential)


    
    
    
  参数说明:
1. Name(名称)
   - 输入:凭证的描述性名称
   - 例如:my_github_api_prod

2. Credential Type(凭证类型)
   - 输入:githubApi、notionApi、slackApi等
   - 内置类型取决于您安装的节点

3. Data(数据)
   - 输入:JSON对象,包含该凭证类型所需的所有属性
   - 例如:{"token": "ghp_xxx", "username": "john"}
   - 提示:可通过"获取凭证模式"查看所需格式

删除凭证(Delete Credential)


    
    
    
  参数说明:
- Credential ID(凭证ID)
  需要提供要删除的凭证的唯一标识符

获取凭证模式(Get Credential Schema)


    
    
    
  参数说明:
- Credential Type(凭证类型)
  输入类型名称(如githubApi),系统返回该类型所需的JSON结构

安全最佳实践


    
    
    
  ✓ 永远不要在工作流代码中硬编码凭证
✓ 使用n8n的加密凭证管理器存储敏感信息
✓ 定期审计哪些工作流使用了哪些凭证
✓ 为不同的服务使用不同的凭证(避免单点故障)
✓ 长期未使用的凭证应及时删除

3. 执行追踪(Execution):运行历史的档案库

什么是执行记录?

当一个工作流运行时,n8n会创建一条执行记录,记录下这次运行的所有细节:输入数据、中间结果、最终输出、错误信息等。

核心操作

获取单次执行(Get Execution)


    
    
    
  参数说明:
- Execution ID(执行ID)
  输入想要查询的执行记录的唯一标识符

高级选项


    
    
    
  - Include Execution Details(包含执行详情)
  开启:返回完整的执行数据(包括节点输出)
  关闭:只返回基本信息(执行时间、状态)

获取多个执行记录(Get Many Executions)


    
    
    
  参数说明:
1. Return All(返回全部)
   - 开启:获取所有执行记录
   - 关闭:需要设置数量限制

2. Limit(限制数量)
   - 输入:返回多少条记录
   - 例如:100

3. Filters(过滤条件)
   - 按工作流过滤(From list、By URL、By ID)
   - 按状态过滤(Error、Success、Waiting)

删除执行记录(Delete Execution)


    
    
    
  参数说明:
- Execution ID(执行ID)
  输入要删除的执行记录ID
  
应用场景:清理不需要的历史记录以节省存储空间

实战例子

假设您想追踪某个关键工作流的运行情况:


    
    
    
  步骤1:使用"获取多个执行记录",设置过滤条件
      - 选择指定工作流
      - 只筛选状态为"Error"的记录

步骤2:检查这些失败的执行
      - 查看错误信息
      - 分析失败原因

步骤3:根据问题修复工作流
      - 更新节点配置
      - 测试修复效果

4. 工作流管理(Workflow):自动化流程的灵魂

工作流是什么?

工作流是一系列节点的组合,这些节点按特定的连接方式组织,自动执行某个业务流程。

工作流的四种基本操作

激活和停用(Activate / Deactivate)


    
    
    
  选择工作流的方式:
1. From list(从列表选择)
   - 直接从下拉菜单中选择

2. By URL(通过URL)
   - 输入工作流的完整URL

3. By ID(通过ID)
   - 输入工作流的唯一标识符(通常是URL末尾的字符串)

获取工作流(Get Workflow)


    
    
    
  用途:以JSON格式获取工作流的完整定义
返回内容:节点、连接、设置等所有配置信息

删除工作流(Delete Workflow)


    
    
    
  参数:选择要删除的工作流(方式同上)
警告:删除操作不可撤销!请谨慎使用。

创建工作流(Create Workflow)


    
    
    
  参数说明:
Workflow Object(工作流对象)
必需字段:
{
  "name": "My First Workflow",           // 工作流名称
  "nodes": [...],                         // 节点数组
  "connections": {...},                   // 连接关系
  "settings": {...}                       // 工作流设置
}

详见:n8n API参考文档

更新工作流(Update Workflow)


    
    
    
  参数说明:
1. Workflow(选择工作流)
2. Workflow Object(更新的配置对象)

用途:
- 添加新节点
- 修改现有连接
- 更新工作流设置

获取多个工作流(Get Many Workflows)


    
    
    
  参数说明:
1. Return All(返回全部)
2. Limit(返回数量限制)

过滤选项:
- Return Only Active Workflows(仅显示激活的工作流)
- Tags(按标签筛选)
  输入:逗号分隔的标签列表

凭证配置:前置准备工作

为什么需要认证?

n8n API Node 必须能够证明您有权访问您的n8n实例。这就需要认证信息(通常是API令牌)。

获取API令牌

在自托管n8n中


    
    
    
  步骤1:进入n8n界面
      左侧菜单 → Settings → API

步骤2:创建新API令牌
      点击"Create New API Token"按钮
      
步骤3:配置令牌
      - 取消勾选"Non-Expiration"使令牌永不过期(或保留过期期限)
      - 点击"Save"

步骤4:复制令牌
      令牌只会显示一次,务必立即保存到安全位置

在n8n API Node中使用令牌


    
    
    
  操作步骤:
1. 创建新Credential
2. 选择"n8n API"类型
3. 输入参数:
   - URL:您的n8n实例地址(如 http://localhost:5678)
   - API Token:刚才复制的令牌
4. 点击"Create"保存

SSL相关注意事项

n8n API Node 不支持SSL连接。如果您的n8n服务器需要SSL连接,有两个解决方案:

方案一:使用HTTP Request节点代替n8n API Node

方案二:在代理层面处理SSL


完整案例:构建工作流审计系统

案例需求

假设您管理着一个n8n实例,希望自动执行以下任务:

  1. 1. 定期生成安全审计报告
  2. 2. 识别未使用的凭证
  3. 3. 检查弃用工作流
  4. 4. 将结果发送到指定邮箱

工作流JSON代码

以下是一个完整的、可直接导入n8n的工作流示例:


    
    
    
  {
  "name"
: "n8n Instance Audit & Report",
  "active"
: false,
  "nodes"
: [
    {

      "parameters"
: {
        "rule"
: {
          "interval"
: [
            {

              "days"
: 7
            }

          ]

        }

      }
,
      "id"
: "c0f5f0f1-0000-0000-0000-000000000000",
      "name"
: "Schedule Trigger",
      "type"
: "n8n-nodes-base.scheduleTrigger",
      "typeVersion"
: 1,
      "position"
: [
        250
,
        300

      ]

    }
,
    {

      "parameters"
: {
        "method"
: "POST",
        "url"
: "=http://localhost:5678/api/v1/audit/generate",
        "authentication"
: "predefinedCredentialType",
        "nodeCredentialType"
: "n8nApi",
        "options"
: {}
      }
,
      "credentials"
: {
        "n8nApi"
: {
          "id"
: "n8n_api_credential",
          "name"
: "n8n Instance Credential"
        }

      }
,
      "id"
: "n8n-api-node-audit",
      "name"
: "Generate Audit Report",
      "type"
: "n8n-nodes-base.n8n",
      "typeVersion"
: 1,
      "position"
: [
        450
,
        300

      ]

    }
,
    {

      "parameters"
: {
        "operations"
: "getMany",
        "returnAll"
: true,
        "filters"
: {
          "returnOnlyActiveWorkflows"
: false,
          "tags"
: ""
        }

      }
,
      "credentials"
: {
        "n8nApi"
: {
          "id"
: "n8n_api_credential",
          "name"
: "n8n Instance Credential"
        }

      }
,
      "id"
: "get-workflows-node",
      "name"
: "Get All Workflows",
      "type"
: "n8n-nodes-base.n8n",
      "typeVersion"
: 1,
      "position"
: [
        650
,
        300

      ]

    }
,
    {

      "parameters"
: {
        "jsCode"
: "let activeCount = 0;\nlet inactiveCount = 0;\n\nconst workflows = $input.all();\n\nfor (const workflow of workflows) {\n  if (workflow.active) {\n    activeCount++;\n  } else {\n    inactiveCount++;\n  }\n}\n\nreturn {\n  totalWorkflows: workflows.length,\n  activeCount: activeCount,\n  inactiveCount: inactiveCount,\n  timestamp: new Date().toISOString()\n};"
      }
,
      "id"
: "code-analyze-workflows",
      "name"
: "Analyze Workflows",
      "type"
: "n8n-nodes-base.code",
      "typeVersion"
: 1,
      "position"
: [
        850
,
        300

      ]

    }
,
    {

      "parameters"
: {
        "fromEmail"
: "automation@example.com",
        "toEmail"
: "admin@example.com",
        "subject"
: "Weekly n8n Audit Report",
        "textOnly"
: false,
        "htmlEmail"
: "=<h2>n8n Weekly Audit Report</h2>\n<p>Generated: {{ $json.timestamp }}</p>\n<ul>\n  <li>Total Workflows: {{ $json.totalWorkflows }}</li>\n  <li>Active Workflows: {{ $json.activeCount }}</li>\n  <li>Inactive Workflows: {{ $json.inactiveCount }}</li>\n</ul>"
      }
,
      "id"
: "send-email-report",
      "name"
: "Send Email Report",
      "type"
: "n8n-nodes-base.emailSend",
      "typeVersion"
: 1,
      "position"
: [
        1050
,
        300

      ]

    }

  ]
,
  "connections"
: {
    "Schedule Trigger"
: {
      "main"
: [
        [

          {

            "node"
: "Generate Audit Report",
            "type"
: "main",
            "index"
: 0
          }

        ]

      ]

    }
,
    "Generate Audit Report"
: {
      "main"
: [
        [

          {

            "node"
: "Get All Workflows",
            "type"
: "main",
            "index"
: 0
          }

        ]

      ]

    }
,
    "Get All Workflows"
: {
      "main"
: [
        [

          {

            "node"
: "Analyze Workflows",
            "type"
: "main",
            "index"
: 0
          }

        ]

      ]

    }
,
    "Analyze Workflows"
: {
      "main"
: [
        [

          {

            "node"
: "Send Email Report",
            "type"
: "main",
            "index"
: 0
          }

        ]

      ]

    }

  }
,
  "settings"
: {}
}

导入和配置步骤

第一步:复制工作流JSON


    
    
    
  1. 复制上面的完整JSON代码
2. 进入n8n主界面
3. 左上角菜单 → Import Workflow
4. 粘贴JSON代码
5. 点击Import

第二步:配置凭证


    
    
    
  1. 打开新导入的工作流
2. 找到所有带警告符号的节点(通常是红色!)
3. 对每个节点:
   - 点击node配置
   - Credentials部分点击"Create New"
   - 填入您的n8n API信息
   - 保存

第三步:配置邮件发送


    
    
    
  1. 编辑"Send Email Report"节点
2. 连接您的邮件服务(SMTP、Gmail等)
3. 设置发件人和收件人邮箱

第四步:激活并测试


    
    
    
  1. 点击"Save"保存工作流
2. 点击"Execute Workflow"进行测试
3. 检查执行日志确保各步骤成功
4. 如无问题,点击"Activate"启用自动化

工作流的运作流程


    
    
    
  每周定时触发
    ↓
调用n8n Audit API 生成审计报告
    ↓
获取所有工作流列表
    ↓
用Code节点分析统计
    ↓
生成报告并发送邮件

常见问题解答

Q1:n8n API Node和HTTP Request节点有什么区别?

n8n API Node

HTTP Request Node

使用建议:调用n8n自身API用前者,调用外部API用后者。

Q2:API令牌应该如何安全保管?


    
    
    
  最佳实践:
✓ 令牌必须立即保存到密钥管理系统或密码管理器
✓ 不要在代码中硬编码令牌
✓ 定期轮换(更新)令牌
✓ 为不同的场景使用不同的令牌
✓ 过期时间设置应遵循安全策略(通常30-90天)
✓ 发现泄露立即撤销

Q3:可以在一个工作流中调用另一个工作流吗?

是的,使用 Execute Workflow 节点而非n8n API Node。这样更简洁,数据传递也更清晰。


总结

何时使用n8n API Node

✓ 需要程序化管理工作流(创建、修改、删除)
✓ 进行系统审计和合规性检查
✓ 批量管理凭证
✓ 查询执行历史用于分析和调试
✓ 构建n8n的自动化管理平台


官方文档[1]
n8n系列教程[2]

引用链接

[1] 官方文档: https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.n8n/
[2] n8n系列教程: https://www.undsky.com/blog/?category=n8n%E6%95%99%E7%A8%8B#