✓ Verified 💻 Development ✓ Enhanced Data

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

1

Navigate to Reports

2

Select Report Template

3

Navigate to Target Week

4

Extract Submitted Members Data

5

Get Unsubmitted List

6

Create Lark Doc

7

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

text
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:

javascript
(() => {
  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_typeTypeJSON field
2Text"text"
3Heading 1"heading1"
4Heading 2"heading2"
5Heading 3"heading3"
12Bullet list ✅"bullet"
13Ordered list ✅"ordered"
22Divider"divider"
❌ 9=heading7, 10=heading8. NOT lists!

Step 7: Send Notification

Send message via Lark API with doc link.

Lessons Learned (6 real attempts)

#ResultRoot CauseLesson
1❌ Self-killedSub-agent ran gateway restartNever restart gateway in sub-agent
2⚠️ Wrong weekCollected Feb 10-14 instead of Feb 3-7Always confirm week title after pagination
3❌ 200K tokens burnedTried curl on SPAReports is SPA, browser only
4❌ 200K tokens burnedSub-agent explored on its ownGive exact URLs and steps
5✅ SuccessPrecise instructions + correct block_typesTemplate 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

Terminal bash

openclaw install lark-report-collector
    
Copied!

💻Code Examples

browser action=navigate profile=openclaw targetUrl="https://oa.larksuite.com/report/record/entry"

browser-actionnavigate-profileopenclaw-targeturlhttpsoalarksuitecomreportrecordentry.txt
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:
example.js
(() => {
  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

#web_and-frontend-development

Quick Info

Category Development
Model Claude 3.5
Complexity One-Click
Author pengxiao-wang
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install lark-report-collector