lark-report-collector

Collect weekly reports from Lark Reports (oa.larksuite.com), summarize into Lark Docs, and notify. Use when: (1) collecting weekly reports from specific teams/templates, (2) checking who hasn't submitted reports, (3) generating report summaries as Lark documents. Requires browser automation (Reports is a SPA, API not available on international Lark).

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "lark-report-collector" with this command: npx skills add Pengxiao-Wang/lark-report-collector

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)

  1. Reports is a SPA — curl/web_fetch returns nothing. Must use browser (profile=openclaw)
  2. Pagination is reversed — Next = older weeks, Previous = newer weeks
  3. Always snapshot to confirm week title after pagination (most common error: collecting wrong week)
  4. One page may show multiple weeks — data is sorted by time, a single page can span 2-3 weeks
  5. block_type mapping — 12=bullet, 13=ordered (NOT 9/10! Those are heading7/heading8)
  6. Never restart gateway inside a sub-agent (kills itself)
  7. 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

⚠️ 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';
})()

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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

M3U8 Downloader

Download encrypted m3u8/HLS videos using parallel downloads. Use when given an m3u8 URL to download a video, especially encrypted HLS streams with AES-128.

Registry SourceRecently Updated
General

Data Analyst Cn

数据分析助手 - 数据清洗、统计分析、可视化建议。适合:数据分析师、产品经理、运营。

Registry SourceRecently Updated
General

QuantumOS

Install and manage QuantumOS, an AI command center dashboard for OpenClaw. Use when the user wants to set up QuantumOS, start/stop the dashboard, troubleshoo...

Registry SourceRecently Updated