精品库

n8n 同步飞书公告与日报生成详细教程

2025-10-25 · n8n & 工作流 · 约 42 分钟 · 16748 字

精品库入选 · 宁缺毋滥 · 读完能跑

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]

关键配置项:

1.2 飞书开放平台的应用创建

飞书(Feishu)提供了完整的开放 API,允许第三方应用进行深度集成。[^3]

创建企业应用的步骤:

  1. 访问飞书开放平台,使用企业管理员账户登录
  2. 进入"应用管理"→"创建应用"
  3. 选择应用类型为"企业自建应用"
  4. 填写应用基本信息:应用名称、应用描述、应用分类等
  5. 在"凭证与基本信息"页面获取 App IDApp Secret

获取必要的权限:

配置机器人和 Webhook:

在应用配置页面,创建一个群机器人,并设置其权限为"可向群组/个人发送消息"。这个机器人会被 n8n 用来推送消息。

***

第二部分:飞书 API 核心功能详解

2.1 消息发送 API

飞书的消息 API 支持多种消息类型,包括文本、富文本、卡片消息等。[^4]

核心 API 端点:

消息结构示例(富文本消息):

{
  "receive_id": "oc_xxxxxxxxxxxxxxxxxx",
  "msg_type": "text",
  "content": {
    "text": "这是一条文本消息,包含 @员工ID 提及用户"
  }
}

消息类型支持:

2.2 多维表格 API

飞书的多维表格(Base)是一个强大的数据管理工具。通过 API 可以实现数据的读写和流程自动化。[^5]

核心操作:

数据查询示例:

获取多维表格中特定时间范围的日报数据:

{
  "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 中配置飞书凭证是连接两个系统的关键步骤。

配置步骤:

  1. 进入 Credentials(凭证)管理页面
  2. 创建新的 Feishu 凭证
  3. 填入以下必要信息:

- App ID:从飞书开放平台获取
- App Secret:从飞书开放平台获取
- Tenant Token:自动获取(通过 App ID 和 App Secret)

验证凭证:

n8n 会自动验证凭证的有效性。如果配置正确,您会看到验证成功的提示。这个步骤确保 n8n 能够访问飞书的 API。

***

第四部分:公告同步工作流设计

4.1 工作流架构概述

一个完整的公告同步系统包含以下环节:

  1. 触发器:定时触发(Schedule Trigger)或外部事件触发(Webhook)
  2. 数据获取:从飞书多维表格或其他源获取公告数据
  3. 数据处理:格式化、富文本转换等
  4. 推送分发:通过飞书消息 API 发送到目标用户或群组
  5. 日志记录:记录推送状态用于审计

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 节点来读取存储在多维表格中的公告信息。

节点配置:

字段映射:

多维表格中应包含以下关键字段:

字段名类型说明
标题文本公告标题
内容长文本公告正文
目标群组单选/多选接收群组 ID
发布时间日期计划发布时间
状态单选待发布/已发布/草稿

4.4 消息格式化与富文本处理

使用 FunctionCode 节点将多维表格的数据转换为飞书支持的消息格式。

示例代码(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 操作批量发送公告。

配置步骤:

  1. 选择 Operation 为 "Send Message"
  2. 配置消息接收对象(可以是用户 ID 或群组 ID)
  3. 选择消息类型(text、post、card)
  4. 绑定来自前一个节点的消息内容
  5. 启用 "Loop Over Items" 来实现批量发送

批量发送优化:

为了处理大量公告而不超时,建议:

4.6 错误处理与成功确认

添加条件判断和错误处理流程。

流程设计:

  1. 在发送节点后添加 If 节点,检查发送结果
  2. 如果成功,更新多维表格中对应公告的状态为"已发布"
  3. 如果失败,记录错误日志或发送告警通知给管理员
  4. 添加 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/项目系统获取数据 
→ 数据整合 → 生成汇总报告 → 推送分发

5.2 多源数据聚合

在日报生成工作流中,需要整合来自多个源的数据。

数据聚合策略:

  1. 并行数据获取:同时从飞书和其他系统获取数据,提高效率
  2. 数据映射:确保不同源的数据字段对应关系正确
  3. 数据补充:处理缺失数据的补充逻辑

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 等),可以智能总结和优化日报内容。

集成步骤:

  1. 将收集到的原始数据作为 AI 的输入
  2. 使用 AI 节点(如 OpenAI 节点)进行内容总结和优化
  3. 生成高质量的日报文本

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 定时推送与智能分发

根据不同的接收者类型实现智能分发。

分发规则配置:

  1. 按部门分发:将日报推送给对应部门的群组或经理
  2. 按角色分发:管理人员接收汇总日报,普通员工接收个人日报
  3. 按时间分发:在特定时间(如下午 5 点)推送当日日报,在上午 9 点推送前一天的总结

实现方式:

使用 SwitchIf 节点创建条件分支,根据接收者的部门或角色选择不同的消息模板和推送目标。

// 根据接收者角色选择日报类型
const role = receiverInfo.role;
if (role === 'manager') {
  return generateExecutiveSummary(data);
} else if (role === 'team_lead') {
  return generateTeamReport(data);
} else {
  return generatePersonalReport(data);
}

5.6 日报存档与查询

在多维表格中建立日报存档库,以便后续查询和分析。

存档流程:

  1. 日报发送成功后,将完整内容保存到"日报归档"表格
  2. 记录发送时间、接收者、状态等元数据
  3. 定期生成日报统计报告

存档字段设计:

字段类型说明
日期日期日报日期
接收者单选目标群组/个人
内容摘要文本日报内容摘要
发送时间时间戳实际发送时间
已读数数字已读人数
反馈内容长文本接收者反馈

***

第六部分:完整工作流示例与实现

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 人的团队每天需要接收公司公告和日报汇总。

公告同步配置:

  1. 创建 Schedule Trigger,设置每天 09:00 触发
  2. 配置 Feishu Bitable 读取设置:

- App Token:bascbxxxxxxxxxxxxxx
- Table ID:tblxxxxxx
- Filter:status = "待发布"

  1. 配置消息格式化函数,将表格数据转换为卡片消息
  2. 配置 Feishu Send Message 节点,目标为公司通知群组 ID
  3. 添加更新状态的后续操作
  4. 设置错误处理和重试机制

预期结果:每天上午 9 点自动推送新公告到公司群,无需人工操作。

***

第七部分:性能优化与监控

7.1 工作流性能优化

批量处理优化:

执行时间优化:

使用 Expression 节点而不是 Function 节点,可以减少执行时间。对于简单的数据转换,直接使用 n8n 的内置表达式。

资源优化:

7.2 监控与告警

配置执行监控:

  1. 启用 n8n 的 Webhook 节点监听工作流执行结果
  2. 配置 Slack 或飞书集成,失败时发送告警
  3. 定期生成工作流执行报告

关键监控指标:

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 认证问题

问题:连接飞书时出现"认证失败"错误

解决方案

  1. 确认 App ID 和 App Secret 是否正确复制
  2. 检查应用是否已发布(开发中的应用可能无法调用部分 API)
  3. 确保应用拥有所需的权限范围
  4. 重新生成凭证并在 n8n 中更新

8.2 消息发送失败

问题:工作流执行成功但消息未收到

解决方案

  1. 验证接收者 ID 是否正确(群组 ID 或用户 ID)
  2. 检查消息格式是否符合飞书 API 规范
  3. 确认 bot 在群组中的权限
  4. 检查飞书 API 的配额限制

8.3 数据格式问题

问题:从多维表格读取的数据格式与预期不符

解决方案

  1. 在 Function 节点中打印原始数据,查看实际格式
  2. 使用 JavaScript 的 Object.keys() 方法确认字段名称
  3. 根据实际字段名称调整数据映射逻辑

8.4 定时任务未触发

问题:Schedule Trigger 设置无效

解决方案

  1. 检查 n8n 实例的时区设置是否正确
  2. 确保工作流已激活(Active 状态)
  3. 查看 n8n 实例的系统时间是否准确
  4. 尝试手动执行工作流来验证其他节点的逻辑

***

第九部分:最佳实践建议

9.1 工作流设计原则

  1. 模块化设计:将不同功能分离为独立的子工作流,便于维护和重用
  2. 错误处理:为每个关键节点配置错误捕获和重试逻辑
  3. 日志记录:记录完整的执行日志用于审计和排查
  4. 版本控制:定期备份工作流配置,记录版本变更

9.2 安全性考虑

  1. 凭证管理:使用 n8n 的安全凭证存储,不在代码中硬编码敏感信息
  2. 权限最小化:应用权限仅配置必要的最小权限集
  3. 传输加密:确保 n8n 和飞书之间的通信采用 HTTPS 加密
  4. 访问控制:限制谁可以修改工作流配置

9.3 可扩展性设计

  1. 考虑未来增长:在设计时预留 API 调用配额和数据处理容量
  2. 模块化架构:使用子工作流和复用节点,便于扩展新功能
  3. 监控告警:设置性能阈值告警,及时发现系统瓶颈

***

总结

通过 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

[^9]: https://n8n.io/workflows/3579-automated-research-report-generation-with-ai-wiki-search-and-gmailtelegram/

[^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

[^14]: https://n8n.io/workflows/8733-aws-news-monitoring-and-linkedin-content-automation-with-claude-3-and-feishu/

[^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/

[^29]: https://n8n.io/workflows/6370-generate-daily-sales-reports-from-google-sheets-with-formatted-email-summaries/

[^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-使用多维表格自动化流程

[^45]: https://community.n8n.io/t/how-to-schedule-a-workflow-to-run-on-specific-days-such-as-every-day-except-sundays/34870

[^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/

[^75]: https://www.youtube.com/watch?v=Hn2JsIpiJfs