Lark Report Collector
Collect weekly reports from Lark Reports (oa.larksuite.com), summarize into Lark Docs, and notify.
- Rating
- 4.2 (195 reviews)
- Downloads
- 3,395 downloads
- Version
- 1.0.0
Overview
Collect weekly reports from Lark Reports (oa.larksuite.com), summarize into Lark Docs, and notify.
✨Key Features
Navigate to Reports
Select Report Template
Navigate to Target Week
Extract Submitted Members Data
Get Unsubmitted List
Create Lark Doc
Send Notification
Complete Documentation
View Source →
Lark Report Collector
Collect weekly report data from Lark Reports, summarize into Lark Docs, and send notifications.
When to Use
- "Collect this week's/last week's reports for Photo/Bloom/H&F"
- "Who hasn't submitted their weekly report?"
- "Summarize weekly reports into a Lark doc"
Hard Rules (battle-tested)
- Reports is a SPA — curl/web_fetch returns nothing. Must use
browser(profile=openclaw) - Pagination is reversed — Next = older weeks, Previous = newer weeks
- Always snapshot to confirm week title after pagination (most common error: collecting wrong week)
- One page may show multiple weeks — data is sorted by time, a single page can span 2-3 weeks
- block_type mapping — 12=bullet, 13=ordered (NOT 9/10! Those are heading7/heading8)
- Never restart gateway inside a sub-agent (kills itself)
- Sub-agents need exact URLs and steps — don't let them explore on their own
Complete Workflow
Step 1: Navigate to Reports
browser action=navigate profile=openclaw targetUrl="https://oa.larksuite.com/report/record/entry"
Prerequisites: openclaw browser must have active Lark login session.
Step 2: Select Report Template
Snapshot and click the target template menuitem in the left sidebar "Received by me".
Step 3: Navigate to Target Week
Page defaults to latest data. Week title format: "Feb 2 ~ Feb 8 Submitted: 18"
Pagination (critical):
- Next button = older weeks ⬅️
- Previous button = newer weeks ➡️
- Page display: "2/25" (page 2 of 25), page 1 is newest
Step 4: Extract Submitted Members Data
- Same page may show multiple weeks — only extract rows belonging to target week
- Paginate through all rows for the target week
- Append to local file after each extraction (prevents data loss)
Step 5: Get Unsubmitted List
"Not submitted: N" button has no snapshot ref. Click via JS evaluate:
(() => {
const btns = [...document.querySelectorAll('button')].filter(
b => /Not submitted.*\d/.test(b.innerText)
);
if(btns.length) { btns[0].click(); return 'clicked'; }
return 'not found';
})()
Dialog shows: unsubmitted count + names + departments.
Step 6: Create Lark Doc
Create document via Lark Open API (see lark-api skill for auth).
block_type reference (verified):
| block_type | Type | JSON field |
|---|---|---|
| 2 | Text | "text" |
| 3 | Heading 1 | "heading1" |
| 4 | Heading 2 | "heading2" |
| 5 | Heading 3 | "heading3" |
| 12 | Bullet list ✅ | "bullet" |
| 13 | Ordered list ✅ | "ordered" |
| 22 | Divider | "divider" |
Step 7: Send Notification
Send message via Lark API with doc link.
Lessons Learned (6 real attempts)
| # | Result | Root Cause | Lesson |
|---|---|---|---|
| 1 | ❌ Self-killed | Sub-agent ran gateway restart | Never restart gateway in sub-agent |
| 2 | ⚠️ Wrong week | Collected Feb 10-14 instead of Feb 3-7 | Always confirm week title after pagination |
| 3 | ❌ 200K tokens burned | Tried curl on SPA | Reports is SPA, browser only |
| 4 | ❌ 200K tokens burned | Sub-agent explored on its own | Give exact URLs and steps |
| 5 | ✅ Success | Precise instructions + correct block_types | Template is key |
Known Limitations
- Lark Report Open API unavailable on international version (returns 404) — browser only
- Browser login session may expire — re-login needed
- Export button (Excel) untested — potential alternative
Installation
openclaw install lark-report-collector
💻Code Examples
browser action=navigate profile=openclaw targetUrl="https://oa.larksuite.com/report/record/entry"
Prerequisites: openclaw browser must have active Lark login session.
### Step 2: Select Report Template
Snapshot and click the target template menuitem in the left sidebar "Received by me".
### Step 3: Navigate to Target Week
Page defaults to latest data. Week title format: `"Feb 2 ~ Feb 8 Submitted: 18"`
**Pagination (critical):**
- **Next** button = older weeks ⬅️
- **Previous** button = newer weeks ➡️
- Page display: "2/25" (page 2 of 25), page 1 is newest
⚠️ **Snapshot and confirm the date in the title after every page turn!**
### Step 4: Extract Submitted Members Data
- Same page may show multiple weeks — only extract rows belonging to target week
- Paginate through all rows for the target week
- **Append to local file after each extraction** (prevents data loss)
### Step 5: Get Unsubmitted List
"Not submitted: N" button has no snapshot ref. Click via JS evaluate:(() => {
const btns = [...document.querySelectorAll('button')].filter(
b => /Not submitted.*\d/.test(b.innerText)
);
if(btns.length) { btns[0].click(); return 'clicked'; }
return 'not found';
})()Tags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw — a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.