SuperAPI AI Directory

dingtalk-workflow-morning-brief

Office & productivity

View repository

Updated 10-15 23:59

About this skill

Daily Morning Brief (dingtalk-workflow-morning-brief)

Integrates DingTalk calendar, to-dos, OA approvals, attendance check-in, work logs and other data to generate today's comprehensive brief. Compared with the Feishu version, it adds DingTalk-exclusive features such as OA approval to-dos, attendance check-in reminders, and work log summaries.

Trigger Methods

Automatically triggered when the user's conversation contains the following keywords:

"晨间简报"  "今日安排"  "今天做什么"  "早报"  "今日概览"  "今天的日程"

Data Sources

Required Data Sources

Data Source dws Command Description
Calendar Schedule dws calendar event list --yes -f json Today's meeting schedule
To-dos dws todo task list --yes -f json Tasks due today
OA Approval To-dos dws oa approval list-pending --yes -f json Pending approval list (DingTalk-exclusive)

Optional Data Sources

Data Source dws Command Source Skill Description
Attendee Background dws aitable record query --base-id <crm-base-id> --table-id <contacts-table-id> --yes -f json personal-crm Meeting participant information
Social Data dws aitable record query --base-id <social-base-id> --table-id <snapshots-table-id> --yes -f json social-tracker Yesterday's data performance
Work Log dws report list --yes -f json Built-in ❌ Currently unavailable (errcode 40035), alternative:dws report template list --yes -f json(view log templates)
Attendance Status dws attendance record get --user "manager6950" --date "YYYY-MM-DD" --yes -f json Built-in Today's check-in status (DingTalk-exclusive)

Work Modes

Mode 1: Generate Today's Brief

Trigger: "What's scheduled for today?" / "Help me generate a morning brief"

Workflow:

Step 1: 并行拉取数据
├── dws calendar event list --yes -f json           → 今日日程
├── dws todo task list --status false --yes -f json → 未完成待办
├── dws oa approval list-pending --yes -f json      → OA 审批待办
├── dws report list --yes -f json                   → 工作日志(可选,当前 API 异常,暂时跳过)
└── dws attendance record get --user "manager6950" --date "今天日期" --yes -f json → 考勤(可选)

Step 2: 可选 - 联动数据
├── 如果 CRM Skill 已初始化 → 查询日程参会者背景信息
└── 如果社交追踪已初始化 → 查询昨日数据快照

Step 3: AI 汇总整合,生成简报

Brief Format Template:

## YYYY年MM月DD日 晨间简报(星期X)

### 考勤状态(钉钉独有)
- [已打卡/未打卡] 上班 | [已打卡/未打卡] 下班

### 日程安排(共 N 场会议)
| 时间 | 事件 | 参会人 | 备注 |
|------|------|--------|------|
| HH:MM-HH:MM | 会议标题 | 参会人列表 | 从CRM拉取的背景信息 |

空闲时段:XX:XX-XX:XX、XX:XX-XX:XX

### 待办事项(共 N 项)
- [ ] 待办内容(截止:日期)⚠️ 即将到期
- [ ] 待办内容(截止:日期)
- [x] ~~已完成待办~~

### OA 审批(钉钉独有)
待审批 N 项,其中高优先级 N 项:
| 审批标题 | 发起人 | 时间 |
|---------|--------|------|
| 审批1 | 张三 | HH:MM |

### 工作日志(钉钉独有)
收到 N 份日志:
| 发送人 | 时间 |
|--------|------|
| 张三 | HH:MM |

### 小结
- 共 N 场会议,M 项待办(K 项即将到期)
- 需要关注:[关键提醒]
- 空闲时段建议:[建议]

Mode 2: Send Brief to Group Chat

Trigger: "Send to the group" / "Send the brief to XXX group"

Workflow:

Step 1: 搜索目标群聊
└── dws chat search --query "群名" --yes -f json → 获取 openConversationId

Step 2: 发送简报
└── dws chat message send-by-bot --robot-code "..." --group "<openConversationId>" --title "今日晨间简报" --text "<简报内容>" --yes

Mode 3: DING Urgent Send

Trigger: "DING me" / "Urgently send the brief"

Workflow:

Step 1: 生成简报摘要(精简版,只包含紧急事项)

Step 2: 通过 DING 发送
└── dws ding message send --robot-code "..." --users "manager6950" --content "<精简简报>" --type "1" --yes

Mode 4: Scheduled Auto-Generation

Trigger: CronCreate scheduled task

# 工作日每天 8:00 自动生成简报
CronCreate: cron="57 7 * * 1-5", prompt="帮我生成今天的晨间简报并发送到指定群聊", recurring=true, durable=true

dws CLI Command Reference

Get today's schedule

dws calendar event list --yes -f json

Get incomplete to-dos

dws todo task list --status false --yes -f json

Get pending approval list

dws oa approval list-pending --yes -f json

Get work logs

# ❌ 当前不可用 — 返回 errcode 40035 参数错误
dws report list --yes -f json

# 替代方案:查看可用日志模板
dws report template list --yes -f json

Note: dws report list The API currently returns errcode 40035, so log data is temporarily unavailable. You can use dws report template list to view configured log templates, or skip the log section directly.

Query attendance records

dws attendance record get --user "manager6950" --date "2026-04-06" --yes -f json

Send group message

dws chat message send-by-bot --robot-code "bot_code" --group "openConversationId" --title "晨间简报" --text "简报内容" --yes

Send DING message

dws ding message send --robot-code "bot_code" --users "manager6950" --content "紧急简报内容" --type "1" --yes

Query free time slots

dws calendar busy search --users "manager6950" --start "2026-04-06T00:00:00+08:00" --end "2026-04-06T23:59:59+08:00" --yes -f json

Linked Skills

Linked Skill Data Interaction Description
personal-crm Read contact data Provide background information for calendar attendees
social-tracker Read social snapshot Add yesterday's data performance to the brief

Precautions

  1. All dws commands must include the --yes flag to ensure non-interactive execution
  2. Attendance queries require the user's userId (obtained via dws contact user get-self )
  3. Sending group messages requires robot-code and openConversationId; guide users to configure them on first use
  4. Scheduled tasks can only be triggered while the Claude Code process is running
  5. If you encounter CLI_ORG_NOT_AUTHORIZED error, prompt the user to check the DingTalk Open Platform permission configuration

Known Issues

  1. dws report list returns errcode 40035 and is currently unavailable. Log data is temporarily skipped, and the "Work Log" section is omitted from the briefing. You can use dws report template list --yes -f json to view the configured log templates as alternative information.
  2. dws attendance summary returns "statistics type error". Attendance statistics summary is temporarily unavailable. You can use dws attendance record get --user "manager6950" --date "YYYY-MM-DD" --yes -f json to query personal attendance records by day as an alternative.