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 listThe API currently returns errcode 40035, so log data is temporarily unavailable. You can usedws report template listto 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
- All
dwscommands must include the--yesflag to ensure non-interactive execution - Attendance queries require the user's userId (obtained via
dws contact user get-self) - Sending group messages requires robot-code and openConversationId; guide users to configure them on first use
- Scheduled tasks can only be triggered while the Claude Code process is running
- If you encounter
CLI_ORG_NOT_AUTHORIZEDerror, prompt the user to check the DingTalk Open Platform permission configuration
Known Issues
dws report listreturns errcode 40035 and is currently unavailable. Log data is temporarily skipped, and the "Work Log" section is omitted from the briefing. You can usedws report template list --yes -f jsonto view the configured log templates as alternative information.dws attendance summaryreturns "statistics type error". Attendance statistics summary is temporarily unavailable. You can usedws attendance record get --user "manager6950" --date "YYYY-MM-DD" --yes -f jsonto query personal attendance records by day as an alternative.