n8n 同步飞书公告与日报生成详细教程
导语
在现代企业中,人力资源管理和内部沟通的效率直接影响企业的运作效能。每天重复发送公告、汇总日报数据、同步团队信息等工作占据了大量的人力成本。通过 n8n 这个开源的工作流自动化平台与飞书的无缝集成,企业可以实现公告自动分发、日报智能生成和汇总的全流程自动化,大幅提升 HR 和运营团队的效率。
本文将详细介绍如何构建一个完整的自动化系统,包括环境准备、飞书 API 配置、n8n 工作流设计,以及实际案例的具体实现步骤。
***
第一部分:环境准备与基础配置
1.1 n8n 的部署与初始化
n8n 是一个开源的工作流自动化和集成平台,支持本地部署和云端使用。对于企业用户,本地部署能提供更好的安全性和定制化能力。
安装方式选择:
n8n 提供多种部署方式。最常见的是使用 Docker 进行容器化部署。如果您的企业环境中已有 Docker 基础设施,可以快速启动 n8n 实例。
使用 Docker Compose 的基本配置步骤如下:
version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
ports:
- "5678:5678"
environment:
- N8N_PROTOCOL=https
- N8N_HOST=your-domain.com
- N8N_PORT=443
- N8N_EXECUTION_MODE=queue
- N8N_EXECUTIONS_DATA_PRUNE=true
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
部署完成后,访问 https://your-domain.com 进行初始化。系统会引导您创建管理员账户并进行基本配置。[^1]
关键配置项:
- 时区设置:确保设置正确的时区(中国为 UTC+8),这对于定时任务的精确执行至关重要[^2]
- 安全认证:配置 HTTPS 证书和管理员密码,确保数据传输安全
- 执行模式:生产环境建议使用 Queue 模式,支持更高的并发处理
1.2 飞书开放平台的应用创建
飞书(Feishu)提供了完整的开放 API,允许第三方应用进行深度集成。[^3]
创建企业应用的步骤:
- 访问飞书开放平台,使用企业管理员账户登录
- 进入"应用管理"→"创建应用"
- 选择应用类型为"企业自建应用"
- 填写应用基本信息:应用名称、应用描述、应用分类等
- 在"凭证与基本信息"页面获取 App ID 和 App Secret
获取必要的权限:
- 消息权限:
im:message:create_personal和im:message:create_group用于发送消息 - 多维表格权限:
bitable:app用于读写飞书多维表格数据 - 群组权限:
im:chat:list用于获取群组信息 - 通讯录权限:
contact:employee:base用于获取员工信息
配置机器人和 Webhook:
在应用配置页面,创建一个群机器人,并设置其权限为"可向群组/个人发送消息"。这个机器人会被 n8n 用来推送消息。
***
第二部分:飞书 API 核心功能详解
2.1 消息发送 API
飞书的消息 API 支持多种消息类型,包括文本、富文本、卡片消息等。[^4]
核心 API 端点:
- 端点:
POST https://open.feishu.cn/open-apis/im/v1/messages - 功能:向用户或群组发送消息
消息结构示例(富文本消息):
{
"receive_id": "oc_xxxxxxxxxxxxxxxxxx",
"msg_type": "text",
"content": {
"text": "这是一条文本消息,包含 @员工ID 提及用户"
}
}
消息类型支持:
- text:纯文本消息
- rich_text:富文本消息,支持格式化
- post:飞书文档格式消息
- card:交互式卡片消息,可包含按钮、链接等交互元素
- file:文件消息
- image:图片消息
2.2 多维表格 API
飞书的多维表格(Base)是一个强大的数据管理工具。通过 API 可以实现数据的读写和流程自动化。[^5]
核心操作:
- 创建表格:
POST /open-apis/bitable/v1/apps - 读取记录:
GET /open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records - 写入记录:
POST /open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records - 更新记录:
PATCH /open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/{record_id}
数据查询示例:
获取多维表格中特定时间范围的日报数据:
{
"filter": {
"conjunction": "and",
"conditions": [
{
"field_name": "date",
"value": "2025-10-25",
"operator": "is"
}
]
},
"sort": [
{
"field_name": "date",
"desc": true
}
]
}
***
第三部分:n8n 飞书集成节点安装与配置
3.1 飞书节点的安装
n8n 社区为飞书提供了多个集成节点,其中最功能完整的是 n8n-nodes-feishu-lite。[^6]
安装方法:
在 n8n 的 Settings(设置)→ Community Nodes(社区节点)中,搜索并安装 n8n-nodes-feishu-lite 或其他飞书节点包。[^7]
如果您需要更多功能,还可以使用增强版本如 n8n-nodes-feishu-lark,这是基于官方版本的二次开发,提供了 LarkTrigger 和 LarkMCP 节点以及优化的操作。[^8]
3.2 飞书凭证配置
在 n8n 中配置飞书凭证是连接两个系统的关键步骤。
配置步骤:
- 进入 Credentials(凭证)管理页面
- 创建新的 Feishu 凭证
- 填入以下必要信息:
- App ID:从飞书开放平台获取
- App Secret:从飞书开放平台获取
- Tenant Token:自动获取(通过 App ID 和 App Secret)
验证凭证:
n8n 会自动验证凭证的有效性。如果配置正确,您会看到验证成功的提示。这个步骤确保 n8n 能够访问飞书的 API。
***
第四部分:公告同步工作流设计
4.1 工作流架构概述
一个完整的公告同步系统包含以下环节:
- 触发器:定时触发(Schedule Trigger)或外部事件触发(Webhook)
- 数据获取:从飞书多维表格或其他源获取公告数据
- 数据处理:格式化、富文本转换等
- 推送分发:通过飞书消息 API 发送到目标用户或群组
- 日志记录:记录推送状态用于审计
4.2 定时触发配置
为了实现定期推送公告,使用 Schedule Trigger 节点。
配置参数:
- Trigger Interval: Days
- Days Between Triggers: 1
- Trigger at Hour: 09
- Trigger at Minute: 00
- Timezone: Asia/Shanghai
这个配置表示每天上午 9 点触发一次工作流。[^2]
4.3 从飞书多维表格读取公告
添加 Feishu Bitable 节点来读取存储在多维表格中的公告信息。
节点配置:
- Operation:选择 "Get Records"
- App Token:输入多维表格的 App Token
- Table ID:输入表格 ID
- Filter:添加过滤条件,例如
status = "待发布"或date = TODAY()
字段映射:
多维表格中应包含以下关键字段:
| 字段名 | 类型 | 说明 |
|---|---|---|
| 标题 | 文本 | 公告标题 |
| 内容 | 长文本 | 公告正文 |
| 目标群组 | 单选/多选 | 接收群组 ID |
| 发布时间 | 日期 | 计划发布时间 |
| 状态 | 单选 | 待发布/已发布/草稿 |
4.4 消息格式化与富文本处理
使用 Function 或 Code 节点将多维表格的数据转换为飞书支持的消息格式。
示例代码(JavaScript):
// 将多条公告转换为卡片消息
const announcements = $input.all();
const messages = [];
announcements.forEach(announcement => {
const message = {
receive_id: announcement.json.target_group_id,
msg_type: "post",
content: {
"zh_cn": {
"title": announcement.json.title,
"content": [
[
{
"tag": "text",
"text": announcement.json.content
}
]
]
}
}
};
messages.push(message);
});
return messages;
这段代码遍历所有公告,并将每条公告转换为飞书的 post 类型消息,包含标题和内容。
4.5 消息发送与批量处理
使用 Feishu 节点的 Send Message 操作批量发送公告。
配置步骤:
- 选择 Operation 为 "Send Message"
- 配置消息接收对象(可以是用户 ID 或群组 ID)
- 选择消息类型(text、post、card)
- 绑定来自前一个节点的消息内容
- 启用 "Loop Over Items" 来实现批量发送
批量发送优化:
为了处理大量公告而不超时,建议:
- 设置适当的 Batch Size(如每次 10 条)
- 添加延迟节点,在每个批次之间等待 1-2 秒
- 配置错误重试机制,失败后自动重试
4.6 错误处理与成功确认
添加条件判断和错误处理流程。
流程设计:
- 在发送节点后添加 If 节点,检查发送结果
- 如果成功,更新多维表格中对应公告的状态为"已发布"
- 如果失败,记录错误日志或发送告警通知给管理员
- 添加 Catch 节点捕获异常,确保工作流不中断
更新状态示例:
发送成功后,使用 Feishu Bitable 节点的 Update Record 操作:
{
"App Token": "app_token",
"Table ID": "tbl_xxxxx",
"Record ID": "rec_xxxxx",
"Fields": {
"status": "已发布",
"publish_time": "2025-10-25T09:00:00Z"
}
}
***
第五部分:日报自动生成与汇总工作流
5.1 日报数据来源与收集
日报通常包含多个维度的数据:
- 员工日报:来自员工每日提交的日报表单
- 项目进度:来自项目管理系统
- 销售数据:来自 CRM 系统
- 团队指标:KPI、完成率等
数据收集流程:
定时触发 → 从多维表格获取日报表单 → 从 CRM/项目系统获取数据
→ 数据整合 → 生成汇总报告 → 推送分发
5.2 多源数据聚合
在日报生成工作流中,需要整合来自多个源的数据。
数据聚合策略:
- 并行数据获取:同时从飞书和其他系统获取数据,提高效率
- 数据映射:确保不同源的数据字段对应关系正确
- 数据补充:处理缺失数据的补充逻辑
Feishu Bitable 节点配置(获取日报数据):
{
"table_id": "tbl_daily_report",
"filter": {
"field_name": "report_date",
"operator": "is",
"value": "${NOW().format('YYYY-MM-DD')}"
},
"sort": [
{
"field_name": "submit_time",
"desc": true
}
]
}
5.3 AI 辅助的日报内容生成
通过集成 AI 模型(如 ChatGPT、Claude 等),可以智能总结和优化日报内容。
集成步骤:
- 将收集到的原始数据作为 AI 的输入
- 使用 AI 节点(如 OpenAI 节点)进行内容总结和优化
- 生成高质量的日报文本
AI Prompt 示例:
请根据以下日报数据生成一份精炼的中文日报总结,
包括关键成果、遇到的问题和明天的计划。
确保语言简洁专业。
日报数据:
${JSON.stringify(dailyReports)}
请按以下格式输出:
## 今日成果
- ...
## 存在的问题
- ...
## 明天计划
- ...
使用 OpenAI 或其他 AI 节点处理这个 Prompt,获得优化后的日报内容。[^9]
5.4 日报排版与格式化
将结构化的日报数据转换为美观的飞书卡片消息格式。
飞书卡片消息示例(JSON):
{
"msg_type": "card",
"card": {
"config": {
"wide_screen_mode": true,
"enable_forward": true
},
"elements": [
{
"tag": "div",
"text": {
"content": "📊 **{report_date} 日报汇总**",
"tag": "lark_md"
}
},
{
"tag": "hr"
},
{
"tag": "div",
"text": {
"content": "**今日亮点** \n{highlights}",
"tag": "lark_md"
}
},
{
"tag": "div",
"text": {
"content": "**待办事项** \n{pending_items}",
"tag": "lark_md"
}
}
]
}
}
这样生成的卡片在飞书中会呈现为格式化的、带有标题和分组的美观界面。
5.5 定时推送与智能分发
根据不同的接收者类型实现智能分发。
分发规则配置:
- 按部门分发:将日报推送给对应部门的群组或经理
- 按角色分发:管理人员接收汇总日报,普通员工接收个人日报
- 按时间分发:在特定时间(如下午 5 点)推送当日日报,在上午 9 点推送前一天的总结
实现方式:
使用 Switch 或 If 节点创建条件分支,根据接收者的部门或角色选择不同的消息模板和推送目标。
// 根据接收者角色选择日报类型
const role = receiverInfo.role;
if (role === 'manager') {
return generateExecutiveSummary(data);
} else if (role === 'team_lead') {
return generateTeamReport(data);
} else {
return generatePersonalReport(data);
}
5.6 日报存档与查询
在多维表格中建立日报存档库,以便后续查询和分析。
存档流程:
- 日报发送成功后,将完整内容保存到"日报归档"表格
- 记录发送时间、接收者、状态等元数据
- 定期生成日报统计报告
存档字段设计:
| 字段 | 类型 | 说明 |
|---|---|---|
| 日期 | 日期 | 日报日期 |
| 接收者 | 单选 | 目标群组/个人 |
| 内容摘要 | 文本 | 日报内容摘要 |
| 发送时间 | 时间戳 | 实际发送时间 |
| 已读数 | 数字 | 已读人数 |
| 反馈内容 | 长文本 | 接收者反馈 |
***
第六部分:完整工作流示例与实现
6.1 公告同步工作流完整流程
一个从创建到执行的完整公告同步工作流包含以下节点:
[Schedule Trigger: 每天 09:00]
↓
[Feishu Bitable: 获取待发布公告]
↓
[Function: 格式化消息]
↓
[Feishu: 发送消息到群组]
↓
[If: 检查发送状态]
├→ [成功] → [Feishu Bitable: 更新状态为"已发布"]
└→ [失败] → [发送告警给管理员]
↓
[记录执行日志]
6.2 日报生成工作流完整流程
[Schedule Trigger: 每天 17:00]
↓
[Feishu Bitable: 获取员工日报表单]
↓
[HTTP Request: 获取项目管理系统数据]
↓
[HTTP Request: 获取销售数据]
↓
[Function: 数据聚合与清理]
↓
[OpenAI: AI 内容生成]
↓
[Function: 生成飞书卡片]
↓
[Feishu: 推送到不同群组]
↓
[Feishu Bitable: 保存日报存档]
↓
[通知日报已生成完成]
6.3 实际配置案例
场景:一个 50 人的团队每天需要接收公司公告和日报汇总。
公告同步配置:
- 创建 Schedule Trigger,设置每天 09:00 触发
- 配置 Feishu Bitable 读取设置:
- App Token:bascbxxxxxxxxxxxxxx
- Table ID:tblxxxxxx
- Filter:status = "待发布"
- 配置消息格式化函数,将表格数据转换为卡片消息
- 配置 Feishu Send Message 节点,目标为公司通知群组 ID
- 添加更新状态的后续操作
- 设置错误处理和重试机制
预期结果:每天上午 9 点自动推送新公告到公司群,无需人工操作。
***
第七部分:性能优化与监控
7.1 工作流性能优化
批量处理优化:
- 为了提高大规模数据处理的效率,应该配置适当的批量大小
- 对于 1000+ 条日报,建议分批处理,每批 100-200 条
- 在批次间设置 1-2 秒延迟,避免飞书 API 限流
执行时间优化:
使用 Expression 节点而不是 Function 节点,可以减少执行时间。对于简单的数据转换,直接使用 n8n 的内置表达式。
资源优化:
- 为长期运行的工作流配置合适的执行模式(Queue 模式)
- 定期清理执行历史和日志
- 监控 n8n 实例的内存和 CPU 使用情况
7.2 监控与告警
配置执行监控:
- 启用 n8n 的 Webhook 节点监听工作流执行结果
- 配置 Slack 或飞书集成,失败时发送告警
- 定期生成工作流执行报告
关键监控指标:
- 执行成功率:每日成功发送的公告/日报数量占总数的比例
- 平均执行时间:工作流完成所需的平均时间
- API 错误率:调用飞书 API 时的失败比例
- 推送及时性:消息发送的实际时间与计划时间的差异
7.3 日志与审计
为了追踪和调试工作流,应该完整地记录每次执行的细节。
日志记录设计:
{
"workflow_id": "xxx",
"execution_time": "2025-10-25T09:00:00Z",
"status": "success",
"data_processed": {
"announcements_sent": 5,
"recipients": ["oc_xxx", "oc_yyy"],
"errors": []
},
"duration_ms": 2340
}
这样的结构化日志便于后续的问题排查和性能分析。
***
第八部分:常见问题与故障排查
8.1 认证问题
问题:连接飞书时出现"认证失败"错误
解决方案:
- 确认 App ID 和 App Secret 是否正确复制
- 检查应用是否已发布(开发中的应用可能无法调用部分 API)
- 确保应用拥有所需的权限范围
- 重新生成凭证并在 n8n 中更新
8.2 消息发送失败
问题:工作流执行成功但消息未收到
解决方案:
- 验证接收者 ID 是否正确(群组 ID 或用户 ID)
- 检查消息格式是否符合飞书 API 规范
- 确认 bot 在群组中的权限
- 检查飞书 API 的配额限制
8.3 数据格式问题
问题:从多维表格读取的数据格式与预期不符
解决方案:
- 在 Function 节点中打印原始数据,查看实际格式
- 使用 JavaScript 的 Object.keys() 方法确认字段名称
- 根据实际字段名称调整数据映射逻辑
8.4 定时任务未触发
问题:Schedule Trigger 设置无效
解决方案:
- 检查 n8n 实例的时区设置是否正确
- 确保工作流已激活(Active 状态)
- 查看 n8n 实例的系统时间是否准确
- 尝试手动执行工作流来验证其他节点的逻辑
***
第九部分:最佳实践建议
9.1 工作流设计原则
- 模块化设计:将不同功能分离为独立的子工作流,便于维护和重用
- 错误处理:为每个关键节点配置错误捕获和重试逻辑
- 日志记录:记录完整的执行日志用于审计和排查
- 版本控制:定期备份工作流配置,记录版本变更
9.2 安全性考虑
- 凭证管理:使用 n8n 的安全凭证存储,不在代码中硬编码敏感信息
- 权限最小化:应用权限仅配置必要的最小权限集
- 传输加密:确保 n8n 和飞书之间的通信采用 HTTPS 加密
- 访问控制:限制谁可以修改工作流配置
9.3 可扩展性设计
- 考虑未来增长:在设计时预留 API 调用配额和数据处理容量
- 模块化架构:使用子工作流和复用节点,便于扩展新功能
- 监控告警:设置性能阈值告警,及时发现系统瓶颈
***
总结
通过 n8n 与飞书的深度集成,企业可以构建一个高效的内部沟通和自动化平台。公告的自动分发和日报的智能生成不仅大幅减轻了 HR 和运营团队的工作负担,还通过数据化和自动化提升了信息传递的准确性和及时性。
从环境搭建、API 配置、工作流设计到性能优化和故障排查的全流程掌握,将使您能够构建一个稳定、高效且易于维护的自动化系统。随着业务的发展,这个系统还可以不断扩展,集成更多的数据源和自动化流程。[^10][^11][^12][^13][^2]
[^14][^15][^16][^17][^18][^19][^20][^21][^22][^23][^24][^25][^26][^27][^28][^29][^30][^31][^32][^33][^34][^35][^36][^37][^38][^39][^40][^41][^42][^43][^44][^45][^46][^47][^48][^49][^50][^51][^52][^53][^54][^55][^56][^57][^58][^59][^60][^61][^62][^63][^64][^65][^66][^67][^68][^69][^70][^71][^72][^73][^74][^75]
<div align="center">⁂</div>
[^1]: https://www.digitalocean.com/community/tutorials/how-to-setup-n8n
[^2]: https://docs.n8n.io/courses/level-one/chapter-5/chapter-5.7/
[^3]: https://open.feishu.cn
[^4]: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create
[^5]: https://open.feishu.cn/document/server-docs/docs/bitable-v1/bitable-overview
[^6]: https://www.npmjs.com/package/n8n-nodes-feishu-lite
[^7]: https://docs.n8n.io/integrations/community-nodes/installation/
[^8]: https://github.com/zhgqthomas/n8n-nodes-feishu-lark
[^10]: https://community.n8n.io/t/the-n8n-feishu-project-plug-in-is-now-online/162635
[^11]: https://community.n8n.io/t/custom-feishu-node/78169?page=2
[^12]: https://www.youtube.com/watch?v=1Lt_WicQ-4Y
[^13]: https://www.youtube.com/watch?v=cbC9rCEDgJw
[^15]: https://docs-tech.n8n.vn
[^16]: https://socket.dev/npm/package/n8n-nodes-feishu-lark
[^17]: https://n8n.io/workflows/2478-send-a-message-via-a-lark-bot/
[^18]: https://www.feishu.cn/content/7270877743058731036
[^19]: https://community.n8n.io/t/custom-feishu-node/78169
[^20]: https://www.larksuite.com/en_us/blog/workflow-tools-open-source
[^21]: https://github.com/luka-mimi/n8n-nodes-feishu-project
[^22]: https://github.com/other-blowsnow/n8n-nodes-feishu-lite/actions
[^23]: https://n8n.io
[^24]: https://open.feishu.cn/community/articles/7270877743058731036
[^25]: https://dongou.tech/ai/dongou/n8n-notion-vibe-coding-your-automated-daily-papers-hub/
[^26]: https://lobehub.com/mcp/kennteohstorehub-lark-mcp-n8n-automation
[^27]: https://sspai.com/post/73255
[^28]: https://n8n.io/integrations/webhook/
[^30]: https://www.reddit.com/r/n8n/comments/1m7wv4a/whats_the_most_impactful_daily_automation/
[^31]: https://n8n.io/workflows/5405-daily-financial-news-summary-with-ollama-llm-automated-email-report/
[^32]: https://www.feishu.cn/template/ai-administrative-announcement-notice-ai-writing
[^33]: https://www.youtube.com/watch?v=5un84tYReD0
[^34]: https://www.feishu.cn/template/ai-recruitment-announcement-writing
[^35]: https://n8n.io/integrations/dayschedule/and/personal-ai/
[^36]: https://n8n.io/workflows/6460-automatically-send-daily-sales-reports-from-square-via-gmail/
[^37]: https://www.feishu.cn/hc/zh-CN/articles/288089283586-飞书机器人助手介绍
[^38]: https://community.latenode.com/t/how-do-you-utilize-n8n-in-your-daily-routine/12152
[^39]: https://community.n8n.io/t/seeking-workflow-ideas-templates-for-hotel-business-automation/156899
[^40]: https://www.feishu.cn/hc/zh-CN/articles/360040566773-使用飞书提醒
[^41]: https://www.youtube.com/watch?v=SI21ljEQK0M
[^42]: https://bika.ai/zh-CN/help/guide/automation/feishu-webhook-action
[^43]: https://community.n8n.io/t/any-possible-way-to-turn-on-and-off-workflow-based-on-schedule-time/2423
[^44]: https://www.feishu.cn/hc/zh-CN/articles/665088655709-使用多维表格自动化流程
[^46]: https://open.feishu.cn/document/group/upgraded-group-announcement/group-announcement-version-changes
[^47]: https://open.feishu.cn/document/ukTMukTMukTM/uUTNz4SN1MjL1UzM
[^48]: https://open.feishu.cn/document/ukTMukTMukTM/uITNz4iM1MjLyUzM
[^49]: https://github.com/ruilisi/feishu-api
[^50]: https://blog.csdn.net/qq_45476428/article/details/139730906
[^51]: https://open.larkoffice.com/document/home/index
[^52]: https://www.feishu.cn/hc/zh-CN/articles/336307279050-多维表格-api-功能常见问题
[^53]: https://open.feishu.cn/api-explorer
[^54]: https://open.feishu.cn/community/articles/7298446935350231044
[^55]: https://www.feishu.cn/hc/en-US/articles/117082248198-use-current-notifications-in-docs
[^56]: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/bitable/notification
[^57]: https://www.feishu.cn/hc/zh-CN/articles/410063847664-多维表格自动化发送-http-请求功能说明
[^58]: https://open.larkoffice.com/document/introduction
[^59]: https://www.youtube.com/watch?v=4cQWJViybAQ
[^60]: https://docs.n8n.io/try-it-out/quickstart/
[^61]: https://www.youtube.com/watch?v=Fy1UCBcgF2o
[^62]: https://docs.n8n.io/advanced-ai/intro-tutorial/
[^63]: https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/
[^64]: https://docs.n8n.io/hosting/configuration/configuration-examples/
[^65]: https://docs.n8n.io/courses/level-one/
[^66]: https://www.youtube.com/watch?v=lK3veuZAg0c
[^67]: https://docs.n8n.io/hosting/configuration/configuration-methods/
[^68]: https://www.xray.tech/post/n8n-beginner
[^69]: https://docs.n8n.io/workflows/components/nodes/
[^70]: https://www.youtube.com/watch?v=AURnISajubk
[^71]: https://www.youtube.com/watch?v=IvUYJQkf6sA
[^72]: https://www.datacamp.com/tutorial/n8n-ai
[^73]: https://community.n8n.io/t/help-ai-agent-using-webhook-trigger/53364
[^74]: https://www.infyways.com/setup-n8n-locally-npm-nodejs-guide/