# Dingtalk Workflow Morning Brief

> 每日晨间简报 — 整合钉钉日历、待办、OA审批、考勤、日志等数据生成今日综合简报，支持发送到群聊或DING

- Skill: `liangdabiao/dingtalk-workflow-morning-brief` (Agent Skill)
- Install (CLI): `npx skillmds@latest add liangdabiao/dingtalk-workflow-morning-brief`
- Raw SKILL.md: https://api.skillmd.com/api/skills/liangdabiao/dingtalk-workflow-morning-brief/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: liangdabiao (https://skillmd.com/u/liangdabiao)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/liangdabiao/dingtalk-workflow-morning-brief

---


# 每日晨间简报 (dingtalk-workflow-morning-brief)

> 整合钉钉日历、待办事项、OA 审批、考勤打卡、工作日志等数据，生成今日综合简报。
> 相比飞书版本，增加了 OA 审批待办、考勤打卡提醒、工作日志摘要等钉钉独有功能。

## 触发方式

用户对话中包含以下关键词时自动触发：

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

## 数据源

### 必选数据源

| 数据源 | dws 命令 | 说明 |
|--------|---------|------|
| 日历日程 | `dws calendar event list --yes -f json` | 今日会议安排 |
| 待办事项 | `dws todo task list --yes -f json` | 今日到期任务 |
| OA 审批待办 | `dws oa approval list-pending --yes -f json` | 待审批列表（钉钉独有） |

### 可选数据源

| 数据源 | dws 命令 | 来源 Skill | 说明 |
|--------|---------|-----------|------|
| 参会人背景 | `dws aitable record query --base-id <crm-base-id> --table-id <contacts-table-id> --yes -f json` | personal-crm | 会议参与者信息 |
| 社交数据 | `dws aitable record query --base-id <social-base-id> --table-id <snapshots-table-id> --yes -f json` | social-tracker | 昨日数据表现 |
| 工作日志 | `dws report list --yes -f json` | 内置 | ❌ 当前不可用（errcode 40035），替代：`dws report template list --yes -f json`（查看日志模板） |
| 考勤状态 | `dws attendance record get --user "manager6950" --date "YYYY-MM-DD" --yes -f json` | 内置 | 今日打卡状态（钉钉独有） |

## 工作模式

### 模式 1: 生成今日简报

**触发：** "今天有什么安排？" / "帮我生成晨间简报"

**工作流：**

```
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 汇总整合，生成简报
```

**简报格式模板：**

```markdown
## 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 项即将到期）
- 需要关注：[关键提醒]
- 空闲时段建议：[建议]
```

### 模式 2: 发送简报到群聊

**触发：** "发到群里" / "发送简报到XXX群"

**工作流：**

```
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
```

### 模式 3: DING 紧急发送

**触发：** "DING给我" / "紧急发送简报"

**工作流：**

```
Step 1: 生成简报摘要（精简版，只包含紧急事项）

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

### 模式 4: 定时自动生成

**触发：** CronCreate 定时任务

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

## dws CLI 命令参考

### 获取今日日程

```bash
dws calendar event list --yes -f json
```

### 获取未完成待办

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

### 获取待审批列表

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

### 获取工作日志

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

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

> **注意：** `dws report list` API 当前返回 errcode 40035，日志数据暂时无法获取。可使用 `dws report template list` 查看已配置的日志模板，或直接跳过日志部分。

### 查询考勤记录

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

### 发送群消息

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

### 发送 DING 消息

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

### 查询空闲时段

```bash
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
```

## 联动 Skill

| 联动 Skill | 数据交互 | 说明 |
|-----------|---------|------|
| personal-crm | 读取联系人数据 | 为日程参会人提供背景信息 |
| social-tracker | 读取社交快照 | 简报中增加昨日数据表现 |

## 注意事项

1. 所有 `dws` 命令必须加 `--yes` 标志，确保非交互执行
2. 考勤查询需要用户的 userId（通过 `dws contact user get-self` 获取）
3. 群消息发送需要 robot-code 和 openConversationId，首次使用时引导用户配置
4. 定时任务需要 Claude Code 进程运行中才能触发
5. 如遇 `CLI_ORG_NOT_AUTHORIZED` 错误，提示用户检查钉钉开放平台权限配置

## 已知问题

1. **`dws report list` 返回 errcode 40035，当前不可用。** 日志数据暂时跳过，简报中省略"工作日志"部分。可使用 `dws report template list --yes -f json` 查看已配置的日志模板作为替代信息。
2. **`dws attendance summary` 返回"统计类型错误"。** 考勤统计汇总暂不可用，可使用 `dws attendance record get --user "manager6950" --date "YYYY-MM-DD" --yes -f json` 按日查询个人考勤记录作为替代。

