企业微信与飞书Webhook机器人打通:周五下午自动推送提醒

封面信息图

在推广周报生成器的过程中,许多担任 Team Lead 或敏捷 Scrum Master 的用户反馈了一个最令人头疼的管理痛点:

“每到周五下午 16:00,组长就得在企业微信群或飞书群里一遍又一遍地人工艾特全员‘大家记得写周报’;然而群消息经常被刷过去,到了 18:00 还是有一半人没交,催周报的过程既尴尬又消耗精力。”

为了让团队周报的收集流程实现**“零人工催办、自动化群播报、一键直达成品生成”**,我在周报生成器中设计并上线了 企业微信(WeCom)与飞书(Feishu/Lark)自定义 Webhook 机器人通知中枢

本文分享如何利用标准 Webhook 协议与定时调度任务,打造一套高触达、高颜值的团队周报自动化催办机器人。

自动化协同流程设计

 ┌─────────────────────────────────────────────────────────────┐
 │                自动化周五催办与提交推送时序                 │
 └──────────────────────────────┬──────────────────────────────┘
                                │
        ┌───────────────────────┴───────────────────────┐
        ▼ (时段 1: 每周五 16:30 自动触发)                ▼ (时段 2: 成员提交后实时触发)
 ┌───────────────────────────┐                 ┌───────────────────────────┐
 │ 定时 Cron 触发催办 Job    │                 │ 成员 A 刚完成了周报生成   │
 │ 机器人向群内推送【富文本卡片│                 │ 机器人群内播报:           │
 │ 包含直达工作台免密链接】  │                 │ "成员 A 已提交本周工作成果│
 └───────────────────────────┘                 │ 当前团队完成度: 6/8 人"   │
                                               └───────────────────────────┘

核心实现一:企业微信机器人 Markdown 卡片消息发送器

企业微信群机器人支持标准的 Markdown 语法(支持绿色/灰色字体标记与直达超链接):

// src/integrations/wecomBot.ts
import axios from 'axios';

export interface WecomMarkdownMessage {
  title: string;
  submittedCount: number;
  totalMembers: number;
  dashboardUrl: string;
}

export async function sendWecomWeeklyReminder(
  webhookUrl: string,
  data: WecomMarkdownMessage
): Promise<boolean> {
  const percentage = Math.round((data.submittedCount / data.totalMembers) * 100);

  const markdownContent = `
### 📢 <font color="info">【周五研发周报提交通知】</font>
各位同学,本周工作即将进入收尾阶段,请及时总结本周技术攻坚成果!

> 📊 **当前收集进度**:<font color="warning">${data.submittedCount} / ${data.totalMembers} 人 (${percentage}%)</font>
> 🚀 **AI 极速生成**:已接入 Git Commit 自动分析,一分钟搞定专业周报

👉 [点击一键生成并提交本周周报](${data.dashboardUrl})
`;

  try {
    const response = await axios.post(webhookUrl, {
      msgtype: 'markdown',
      markdown: {
        content: markdownContent.trim()
      }
    });

    return response.data.errcode === 0;
  } catch (err) {
    console.error('[WecomBot] 发送企微群通知失败:', err);
    return false;
  }
}

核心实现二:飞书(Lark)交互式富文本卡片(Interactive Card)

飞书的“交互式消息卡片”在视觉美感和点击交互上支持更强烈的排版质感:

// src/integrations/feishuBot.ts
import axios from 'axios';

export async function sendFeishuWeeklyCard(webhookUrl: string, data: any): Promise<boolean> {
  const cardPayload = {
    msg_type: 'interactive',
    card: {
      header: {
        template: 'blue',
        title: {
          tag: 'plain_text',
          content: '🚀 本周研发周报收集与提交通知'
        }
      },
      elements: [
        {
          tag: 'div',
          text: {
            tag: 'lark_md',
            content: `**本周研发推进已进入总结阶段!**\n团队周报完成进度:**${data.submittedCount} / ${data.totalMembers} 人**`
          }
        },
        {
          tag: 'action',
          actions: [
            {
              tag: 'button',
              text: {
                tag: 'plain_text',
                content: '⚡ 前往工作台一键生成周报'
              },
              type: 'primary',
              url: data.dashboardUrl
            }
          ]
        }
      ]
    }
  };

  const response = await axios.post(webhookUrl, cardPayload);
  return response.data.code === 0 || response.data.StatusCode === 0;
}

核心实现三:定时调度系统(Cron Job)与防重复触发

在服务端使用轻量的 cron 模块,配置每周五下午定时分发:

// src/jobs/weeklyReminderScheduler.ts
import { CronJob } from 'cron';
import { db } from '../db';
import { teams } from '../db/schema';
import { sendWecomWeeklyReminder } from '../integrations/wecomBot';

// 每周五下午 16:30 准时触发 (秒 分 时 日 月 星期)
export const reminderCronJob = new CronJob('0 30 16 * * 5', async () => {
  console.log('⏰ [Cron] 触发周五周报自动提醒任务...');

  // 1. 查询所有配置了 Webhook 的活跃团队
  const activeTeams = await db.query.teams.findMany({
    where: (teams, { isNotNull }) => isNotNull(teams.webhookUrl)
  });

  for (const team of activeTeams) {
    if (!team.webhookUrl) continue;

    // 2. 统计当前团队提交进度
    const stats = await getTeamSubmissionStats(team.id);

    // 3. 触发推送
    await sendWecomWeeklyReminder(team.webhookUrl, {
      title: `${team.name} 周五周报提醒`,
      submittedCount: stats.submittedCount,
      totalMembers: stats.totalMembers,
      dashboardUrl: `https://weekly-report.example.com/team/${team.id}`
    });
  }
});

团队客户反馈与业务收益

企微与飞书机器人打通后:

  • 组长再也不用在周五充当“催交员”,机器人定点推送极大地降低了人际摩擦成本;
  • 团队整体周报按时提交率从过去的 55% 飙升至 92%
  • 这一特性直接推动了 3 家中型技术团队从个人版升级为每年 399 元的团队企业版,成为了撬动 B 端转化的关键钥匙。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐