乐于分享
好东西不私藏

AI+飞书:搭建智能日报助手,自动收集整理团队工作汇报

AI+飞书:搭建智能日报助手,自动收集整理团队工作汇报

还在为每天催收团队成员日报而头疼吗?试试用AI+飞书,30分钟搭建智能日报系统,让机器人替你完成90%的催收、收集、整理工作。

引言:团队管理者的日报痛点

如果你是中小企业的管理者,每天可能要面对这样的场景:

  • 催收困难
    :群里@所有人,总有几个成员“忘记”提交日报
  • 格式混乱
    :有人用文字,有人截图,还有人直接发语音
  • 整理耗时
    :手动汇总10人团队的工作进展,至少要花30分钟
  • 分析困难
    :想了解本周整体进度?得自己整理数据、画图表
  • 反馈延迟
    :等到周会上才发现某个项目已经卡了一周

更痛苦的是:这些重复性工作每天都要做,但价值感极低——你本可以用这些时间思考战略、谈客户、优化业务流程。

好消息是:飞书开放平台 + 基础编程能力,就能让你搭建一套“智能日报助手”,实现:

  1. 自动提醒
    :每天定时催收日报,机器人比你还准时
  2. 标准化收集
    :统一格式,结构化数据,方便后续分析
  3. 智能整理
    :自动汇总、分类、提取关键词
  4. 可视化看板
    :团队进展一目了然
  5. 个性化反馈
    :基于日报内容提供改进建议

最重要的是:不需要专业开发团队,只要你了解基础的API概念,就能在30分钟内完成搭建。

下面,我将用最直白的语言,手把手教你如何实现。

第一部分:飞书开放平台快速入门指南

1.1 飞书开放平台是什么?

简单说,就是飞书官方提供的“连接器”,允许你把外部系统(比如自己写的程序)连接到飞书内部,实现自动化操作。

举个例子:

  • 你写的程序 → 通过飞书开放平台 → 向某个飞书群发消息
  • 飞书群里的消息 → 通过飞书开放平台 → 传给你的程序处理

核心概念大白话解释

  • 应用(App)
    :可以理解成你在飞书里“注册”的一个机器人账号,它有自己独立的身份
  • App ID / App Secret
    :这个机器人的“身份证号”和“密码”,用于证明“我是我”
  • API接口
    :飞书开放平台提供的各种“功能按钮”,比如“发消息”、“读消息”、“创建表格”等
  • 权限
    :你这个机器人能做什么,需要管理员授权,比如“读取群消息”、“发送消息”等

1.2 第一步:创建你的第一个飞书应用

操作路径(跟着截图做,5分钟搞定):

  1. 登录开发者后台
    :打开浏览器,访问 https://open.feishu.cn/app
  2. 创建应用
    :点击“创建企业自建应用”,填写基本信息
    • 应用名称:建议用“智能日报助手_你的名字”
    • 应用描述:可选填
    • 应用图标:选个你喜欢的(后续可以改)
  3. 记住关键信息
    :创建成功后,系统会生成App ID和App Secret,保存好它们

1.3 第二步:开通必要的权限

你的机器人需要“权力”才能工作,主要涉及两大类:

  1. 机器人权限
    :允许你的应用以“机器人”身份在群里发言
  2. 消息权限
    :读取群消息、发送消息、@成员等

具体操作

  • 进入应用详情页 → 左侧“权限管理”
  • 搜索并开通以下权限:
    • im:message
      (消息相关权限)
    • im:resource
      (资源相关)
    • 根据实际需求,可能还需要contact:user(读取用户信息)

重要提醒:开通权限后,必须点击“发布版本”,等待管理员审批(如果是企业自建应用,通常管理员就是你本人)。

1.4 第三步:获取访问凭证(Access Token)

这是一个技术步骤,但理解后很简单:

  • 问题
    :每次你的程序想调用飞书API时,都需要证明“我是合法的那个机器人”
  • 解决方案
    :先用App ID和App Secret换一个“临时通行证”(Access Token)
  • 有效期
    :2小时(所以你的程序需要定期刷新)

代码示例(Python):

import requests# 你的应用凭证APP_ID = "你的App ID"APP_SECRET = "你的App Secret"# 获取tenant_access_tokendef get_access_token():    url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal"    headers = {"Content-Type""application/json; charset=utf-8"}    data = {        "app_id": APP_ID,        "app_secret": APP_SECRET    }    response = requests.post(url, headers=headers, json=data)    return response.json().get("tenant_access_token")# 后续所有API调用都带上这个tokenaccess_token = get_access_token()

说明:这段代码可以保存为token_manager.py,后续所有程序都会用到

第二部分:智能日报系统完整设计与配置

2.1 系统架构设计(先理解全貌)

整个系统的工作流程如下:

plaintext成员提交日报 → 飞书群消息 → 你的程序监听并处理 → 存入多维表格 → 定时生成汇总报告 → 推送至管理群

各模块职责

  1. 消息监听模块
    :实时接收群里的日报消息
  2. 数据解析模块
    :从消息中提取结构化信息(今日完成、明日计划、问题等)
  3. 存储模块
    :将解析后的数据存入飞书多维表格
  4. 分析模块
    :对历史数据进行统计分析
  5. 推送模块
    :生成可视化报告并定时推送

2.2 创建日报收集群与机器人

操作步骤

  1. 建立专用群
  1. :在飞书中创建“团队日报提交群”,邀请所有成员加入
  2. 添加你的机器人:
    • 应用详情页 → 左侧“凭证与基础信息” → 复制“机器人名称”
    • 在群里点击“添加成员/机器人” → 粘贴机器人名称 → 添加成功
  3. 设置群规
    (通过机器人自动发送):
    # 发送群规说明def send_group_rules(chat_id):    url = f"https://open.feishu.cn/open-apis/im/v1/messages"    headers = {        "Authorization"f"Bearer {get_access_token()}",        "Content-Type""application/json"    }    content = {        "text""""📋 **团队日报提交规范**请按以下格式提交日报:【今日完成】1. 任务1(完成度%)2. 任务2(完成度%)【明日计划】1. 计划12. 计划2【问题/风险】(如有问题请说明)【其他】(可选)示例:今日完成:1. 完成产品需求文档初稿(80%)2. 与设计部门对接UI方案(100%)明日计划:1. 完善需求文档评审2. 开始技术方案设计问题/风险:设计资源紧张,可能影响进度"""    }    data = {        "receive_id": chat_id,        "msg_type""text",        "content": json.dumps(content)    }    requests.post(url, headers=headers, json=data)

2.3 设计飞书多维表格结构

这是系统的“数据库”,在飞书里创建:

  1. 新建多维表格:在飞书文档中点击“+” → “多维表格” → 从空白创建
  2. 设计字段结构:
字段名
类型
说明
提交人
成员
提交日报的团队成员
提交日期
日期
日报对应的日期
今日完成
文本
结构化文本,可包含多个条目
完成条目数
数字
自动统计今日完成的任务数量
明日计划
文本
明日的工作计划
计划条目数
数字
自动统计明日计划的任务数量
问题/风险
文本
遇到的问题或风险提示
关键词
多选
自动从日报中提取的关键词
提交时间
创建时间
系统自动记录
状态
单选
已处理/待处理/需跟进
  1. 获取表格关键信息
    (后续编程要用到):
    • app_token
      :表格所属应用的token
    • table_id
      :表格的ID获取方法:打开表格 → 右上角“…” → “获取app_token和table_id”

2.4 设置自动化提醒规则

使用飞书“机器人指令”功能(零代码方案):

  1. 打开飞书机器人助手(在飞书搜索框输入“飞书机器人助手”)
  2. 点击“我的指令” → “新建机器人指令”
  3. 设置触发器
    :选择“定时触发” → 每天下午17:30
  4. 设置操作
    • 发送消息到“团队日报提交群”
    • 消息内容:@所有人 请提交今日日报,格式见群规
  5. 保存并启用

高级方案(编程实现,更灵活):

import scheduleimport timedef daily_reminder():    # 发送提醒消息    chat_id = "你的群聊ID"    send_message(chat_id, "📢 日报提醒:请在今天18:00前提交日报")# 设置定时任务:每天17:30执行schedule.every().day.at("17:30").do(daily_reminder)# 保持程序运行while True:    schedule.run_pending()    time.sleep(60)

第三部分:数据收集、分析与可视化实现

3.1 消息监听与解析程序

核心代码(监听群消息):

import jsonimport requestsfrom flask import Flask, request, jsonifyapp = Flask(__name__)# 验证飞书回调(必须,否则无法接收消息)@app.route('/webhook', methods=['POST'])def webhook():    # 1. 验证请求是否来自飞书(安全校验)    verification_token = request.headers.get('X-Lark-Verification-Token')    timestamp = request.headers.get('X-Lark-Request-Timestamp')    signature = request.headers.get('X-Lark-Signature')    # 你的Verification Token(在应用的事件订阅页面查看)    MY_VERIFICATION_TOKEN = "你的Verification Token"    if verification_token != MY_VERIFICATION_TOKEN:        return jsonify({"error""Invalid token"}), 403    # 2. 获取事件数据    data = request.json    event_type = data.get("header", {}).get("event_type")    # 3. 处理接收消息事件    if event_type == "im.message.receive_v1":        event_data = data.get("event", {})        message = event_data.get("message", {})        message_type = message.get("message_type")        # 只处理文本消息        if message_type == "text":            content = json.loads(message.get("content""{}"))            text = content.get("text""")            # 解析日报内容            parsed_data = parse_daily_report(text)            # 存入多维表格            save_to_feishu_table(parsed_data)            # 自动回复确认            reply_message(message.get("message_id"), "✅ 日报已收到,正在处理...")    return jsonify({"ok"True}), 200def parse_daily_report(text):    """解析日报文本,提取结构化信息"""    # 简单示例:按【今日完成】等标签分割    sections = {        "今日完成""",        "明日计划""",        "问题/风险"""    }    current_section = None    for line in text.split('\n'):        line = line.strip()        if not line:            continue        # 判断是否是章节标题        for section in sections:            if section in line:                current_section = section                break        else:            if current_section:                sections[current_section] += line + "\n"    # 统计条目数    today_items = len([x for x in sections["今日完成"].split('\n'if x.strip()])    tomorrow_items = len([x for x in sections["明日计划"].split('\n'if x.strip()])    # 提取关键词(简单实现)    keywords = extract_keywords(sections["今日完成"] + sections["问题/风险"])    return {        "today_completed": sections["今日完成"],        "today_item_count": today_items,        "tomorrow_plan": sections["明日计划"],        "tomorrow_item_count": tomorrow_items,        "issues": sections["问题/风险"],        "keywords": keywords    }

3.2 存储到飞书多维表格

import jsonimport requestsfrom flask import Flask, request, jsonifyapp = Flask(__name__)# 验证飞书回调(必须,否则无法接收消息)@app.route('/webhook', methods=['POST'])def webhook():    # 1. 验证请求是否来自飞书(安全校验)    verification_token = request.headers.get('X-Lark-Verification-Token')    timestamp = request.headers.get('X-Lark-Request-Timestamp')    signature = request.headers.get('X-Lark-Signature')    # 你的Verification Token(在应用的事件订阅页面查看)    MY_VERIFICATION_TOKEN = "你的Verification Token"    if verification_token != MY_VERIFICATION_TOKEN:        return jsonify({"error""Invalid token"}), 403    # 2. 获取事件数据    data = request.json    event_type = data.get("header", {}).get("event_type")    # 3. 处理接收消息事件    if event_type == "im.message.receive_v1":        event_data = data.get("event", {})        message = event_data.get("message", {})        message_type = message.get("message_type")        # 只处理文本消息        if message_type == "text":            content = json.loads(message.get("content""{}"))            text = content.get("text""")            # 解析日报内容            parsed_data = parse_daily_report(text)            # 存入多维表格            save_to_feishu_table(parsed_data)            # 自动回复确认            reply_message(message.get("message_id"), "✅ 日报已收到,正在处理...")    return jsonify({"ok"True}), 200def parse_daily_report(text):    """解析日报文本,提取结构化信息"""    # 简单示例:按【今日完成】等标签分割    sections = {        "今日完成""",        "明日计划""",        "问题/风险"""    }    current_section = None    for line in text.split('\n'):        line = line.strip()        if not line:            continue        # 判断是否是章节标题        for section in sections:            if section in line:                current_section = section                break        else:            if current_section:                sections[current_section] += line + "\n"    # 统计条目数    today_items = len([x for x in sections["今日完成"].split('\n'if x.strip()])    tomorrow_items = len([x for x in sections["明日计划"].split('\n'if x.strip()])    # 提取关键词(简单实现)    keywords = extract_keywords(sections["今日完成"] + sections["问题/风险"])    return {        "today_completed": sections["今日完成"],        "today_item_count": today_items,        "tomorrow_plan": sections["明日计划"],        "tomorrow_item_count": tomorrow_items,        "issues": sections["问题/风险"],        "keywords": keywords    }

3.3 数据分析与可视化报告

每周自动生成汇总报告

def generate_weekly_report():    """生成本周团队工作汇总报告"""    # 1. 查询本周数据    start_date = "2024-03-25"  # 周一    end_date = "2024-03-31"    # 周日    records = query_table_records(start_date, end_date)    # 2. 计算关键指标    total_reports = len(records)    avg_completion_items = sum(r["完成条目数"for r in records) / total_reports    total_issues = sum(1 for r in records if r["问题/风险"].strip())    # 3. 生成可视化数据    daily_completion = []    for day in range(7):        date = calculate_date(start_date, day)        day_records = [r for r in records if r["提交日期"] == date]        completion = sum(r["完成条目数"for r in day_records)        daily_completion.append(completion)    # 4. 生成Markdown报告    report = f"""# 📊 团队本周工作汇总报告({start_date} ~ {end_date}## 📈 核心数据- **提交日报人数**:{total_reports}- **平均每日完成任务数**:{avg_completion_items:.1f}- **问题反馈次数**:{total_issues}## 📅 每日完成情况| 日期 | 完成任务总数 ||------|-------------|"""    for i, count in enumerate(daily_completion):        date = calculate_date(start_date, i)        report += f"| {date} | {count}项 |\n"    report += """## 🔍 本周高频关键词"""    # 提取高频关键词    all_keywords = []    for r in records:        all_keywords.extend(r["关键词"])    from collections import Counter    keyword_counts = Counter(all_keywords)    top_keywords = keyword_counts.most_common(5)    for keyword, count in top_keywords:        report += f"- **{keyword}**(出现{count}次)\n"    report += """## 🎯 下周建议1. **重点关注**:本周进度较慢的项目需要提前介入2. **资源调整**:根据问题反馈情况,调整相关资源支持3. **效率提升**:对高频任务考虑自动化工具支持"""    # 5. 发送报告到管理群    send_report_to_management(report)    return report

3.4 部署与运行

简单部署方案(使用云服务器):

  1. 准备环境

    # 安装Python和相关库sudo apt-get updatesudo apt-get install python3 python3-pippip3 install flask requests schedule
  2. 上传代码

    • 将上面的所有Python文件上传到服务器
    • 配置文件(包含App ID、Secret等敏感信息)
  3. 启动服务

    # 运行主程序python3 main.py# 或者使用后台运行nohup python3 main.py > daily_report.log 2>&1 &

  4. 设置开机自启(可选):

    # 创建systemd服务sudo nano /etc/systemd/system/daily-report.service# 内容:[Unit]Description=Daily Report SystemAfter=network.target[Service]User=ubuntuWorkingDirectory=/path/to/your/codeExecStart=/usr/bin/python3 main.pyRestart=always[Install]WantedBy=multi-user.target# 启用服务sudo systemctl enable daily-report.servicesudo systemctl start daily-report.service

第四部分:实际应用案例与效果验证

4.1 案例背景:某科技公司产品研发团队

  • 团队规模
    :15人(产品经理2人,开发8人,测试3人,设计2人)
  • 原有日报流程
    :每天18:00在群里手动提交,格式混乱
  • 问题
    :PM每天花45分钟整理日报,周报需要半天时间
  • 实施目标
    :自动化日报收集,自动生成周度汇总报告

4.2 实施步骤与时间投入

步骤
内容
时间
备注
1
创建飞书应用,配置权限
15分钟
包含管理员审批
2
设计多维表格结构
10分钟
按团队需求定制字段
3
编写消息监听与解析程序
45分钟
包含调试
4
部署到云服务器
20分钟
首次部署需要配置环境
5
配置定时任务与自动化提醒
10分钟
使用飞书机器人指令功能
总计 完整搭建时间 100分钟
约1.5小时

4.3 实施效果数据对比

实施前(手动模式)

  • PM时间投入
    :日报45分钟/天,周报3-4小时/周
  • 提交准时率
    :平均70%(经常需要反复催促)
  • 数据准确性
    :人工整理容易出错,格式不一致
  • 分析深度
    :只能做基础统计,缺乏趋势分析

实施后(自动化模式)

  • PM时间投入
    :日报5分钟/天(仅查看报告),周报10分钟/周
  • 提交准时率
    :提升至95%(机器人定时提醒)
  • 数据准确性
    :100%结构化,无人工转录错误
  • 分析深度
    :自动生成趋势图、关键词分析、问题聚类

量化收益

  • PM时间节省
    :每周约8小时 → 每年节省400+小时
  • 团队效率提升
    :标准化格式减少理解成本,沟通效率提升30%
  • 管理决策优化
    :数据驱动,实时了解团队状态

4.4 常见问题与解决方案

Q1:团队成员不按格式提交怎么办?

  • 方案
    :程序增加容错处理,识别多种常见格式
  • 示例
    :无论写“今日完成”还是“今天完成”,都能识别
  • 长期
    :通过培训+机器人自动纠正,培养良好习惯

Q2:日报内容涉及敏感信息怎么办?

  • 方案
    :飞书多维表格支持权限分级
    • 普通成员:只能看到自己的日报
    • 管理者:可以看到团队汇总数据
    • 详细隐私数据:单独加密字段存储

Q3:服务器宕机或网络中断怎么办?

  • 方案
    :多重保障
    1. 本地备份:每天自动备份数据到本地
    2. 监控告警:程序异常时发送飞书告警
    3. 冗余部署:有条件可部署双机热备

第五部分:扩展功能建议

5.1 从日报到周报、月报的延伸

逻辑关系

  • 日报 → 每日工作记录
  • 周报 → 自动汇总本周所有日报 + 补充整体进展
  • 月报 → 整合四周周报 + KPI完成情况

实现方案

def generate_weekly_report_auto():    """每周五自动生成周报"""    # 1. 汇总本周日报数据    # 2. 提取关键进展和问题    # 3. 生成图文并茂的报告    # 4. 发送到团队周会群

5.2 与项目管理系统集成

常见场景

  • 日报中提到“完成用户登录模块开发80%”
  • 自动同步到Jira/Tapd,更新对应任务进度
  • 反向同步:项目任务状态变化,自动在日报中提醒

技术实现

  • 调用Jira/Tapd API
  • 建立任务名称与日报关键词映射关系

5.3 智能分析与预警

进阶功能

  1. 进度预警
    :某个任务连续3天进度无变化 → 自动@负责人+PM
  2. 情绪分析
    :从日报文本中分析成员工作状态
  3. 协作网络
    :分析成员间的依赖关系和协作效率

代码示意

def analyze_team_status(records):    """分析团队状态,识别潜在风险"""    # 检查进度停滞任务    stagnant_tasks = []    for task in all_tasks:        if task.progress_stagnant_for_days() >= 3:            stagnant_tasks.append(task)    # 发送预警    if stagnant_tasks:        send_alert(f"⚠️ 发现{len(stagnant_tasks)}个任务进度停滞超过3天")

5.4 移动端优化

使用飞书小程序

  1. 创建日报提交小程序,更友好的提交界面
  2. 语音转文字功能,直接说工作内容
  3. 拍照上传工作成果截图

优势

  • 无需安装额外APP,在飞书内即可使用
  • 与企业微信/钉钉相比,飞书开放平台更友好

结语:从工具使用者到创造者

通过这个项目,你不仅获得了一个智能日报系统,更重要的是:

1. 掌握了企业数字化改造的基本能力

  • 理解API、Webhook等核心技术概念
  • 学会将业务流程转化为自动化系统
  • 具备快速验证、迭代优化的方法论

2. 建立了技术自信

  • 原来“高大上”的自动化系统,自己也能搭建
  • 从“工具使用者”升级为“工具创造者”
  • 为团队创造真实价值,提升管理影响力

3. 开启了AI应用探索之路

  • 这是你接触企业级AI应用的第一个案例
  • 同样的技术栈,可以扩展到:
    • 智能会议纪要系统
    • 自动周报生成器
    • 项目风险预警平台
    • 团队效能分析工具

启动你的第一个自动化项目

  1. 今天下午
    :花15分钟创建飞书应用,体验开放平台界面
  2. 明天上午
    :按本文步骤,完成基础版本搭建(预计1.5小时)
  3. 本周内
    :在团队内部小范围试点,收集反馈
  4. 下周开始
    :根据实际需求,逐步扩展功能

最后提醒:技术是工具,目的是提升管理效率和团队幸福感。在实施过程中,多与团队沟通,找到最适合你们的平衡点。

所有代码示例均为简化版本,实际部署时需根据具体需求调整。如有技术问题,欢迎在评论区交流。