01 / 19
Workshop · SMB · 75 phút

Báo cáo tự động
với Claude Code

Demo trên 1 SMB Việt Nam: 4 phòng ban, 4 file Excel rời rạc trên Google Drive → 1 tin nhắn tổng hợp 6 dòng KPI + 1 dòng nhận xét, gửi mỗi sáng 07:00.
👤 Tuyết Chinh — Chinh Productivity📅 2026🤖 Claude Desktop Routines
A01 — Phone mockup (hero) iPhone tilted 15° right, iOS Messages notification at 07:00, message bubble with 6 emoji rows (📊💰📣🤝📦💡), warm cream background. Generated externally then placed at assets/A01-phone-mockup-hero.png Phone mockup hero
02 / 19
Người trình bày

Về Chinh

  • Giám Đốc Vận Hành tại Lắp Đặt 247
  • Solopreneur tại tuyetchinh.com
  • 8+ năm kinh nghiệm thực chiến quản lý vận hành đa bộ phận
  • Chuyên sâu nền tảng Lark, Google Workspace kết hợp AI & tư duy hệ thống
Tuyết Chinh
03 / 19
Cách làm hiện tại

Sáng nào Sếp
cũng mở
4 file Excel rời rạc.

4 phòng ban xuất 4 format khác nhau. Không có người gộp. Sếp tự đọc số thô từng file, tự nhẩm KPI trong đầu, không có chéo kiểm tra giữa các phòng.

04 / 19
Thực trạng

4 phòng. 4 format. Không ai gộp.

Mỗi cuối ngày, mỗi phòng xuất 1 file Excel thô từ phần mềm khác nhau. Cột tên, schema, đơn vị khác nhau.

PHÒNG 01 💰 Kế toán Export từ Sapo / Nhanh / Haravan. Mỗi nền tảng cột tên khác nhau.
A2a — Excel raw Sapo
PHÒNG 02 📣 Marketing Export FB Ads, Google Ads, TikTok Ads. Mỗi platform 1 schema.
A2b — Excel FB Ads
PHÒNG 03 🤝 Sale File Excel tự chế — đôi khi sale viết tay, đôi khi Google Form.
A2c — Excel sale
PHÒNG 04 📦 Kho Excel kho tồn + nhập xuất. Sheet đếm tay, đôi khi thiếu ngày.
A2d — Excel kho

Chi phí ẩn: thời gian Sếp mở từng file mỗi sáng + sai số do nhẩm tay + không có lịch sử tổng hợp để so sánh tuần / tháng.

05 / 19
Output mục tiêu

1 tin nhắn. 6 dòng KPI + 1 dòng nhận xét.

Cấu trúc cố định: 1 dòng tiêu đề ngày, 4 dòng KPI tóm tắt mỗi phòng, 1 dòng nhận xét do AI viết dựa trên số đã tính.

Mục tiêu là Sếp đọc được tin nhắn này trong <30 giây thay vì mở 4 file Excel.

Đây là output cuối của pipeline. Các phase phía sau giải thích cách dựng từng layer.
Tin nhắn báo cáo tự động trên điện thoại
06 / 19
Kiến trúc tổng thể

Drive → Python → Claude → Điện thoại

Pipeline chạy theo Claude Routine, lịch 07:00 hàng ngày. Không cần can thiệp tay nếu không có lỗi.

A04 — Architecture diagram (export từ Excalidraw/Mermaid) 3 stage: (1) 4 phòng → Drive sync (2) Python pipeline: convert + aggregate → Excel + JSON (3) Claude AI đọc JSON → viết tin nhắn → Sếp xem.
07 / 19
Nguyên tắc thiết kế #1

Tách 2 lớp. Python xử lý số.
AI viết tiếng Việt.

Nếu dùng AI cho cả xử lý số + viết báo cáo: tốn token, chậm, có rủi ro sai số do AI tự tính lại. Tách rõ trách nhiệm 2 lớp.

🐍 Lớp xử lý dữ liệu

Vai trò: Đọc Excel, gộp, tính KPI (doanh thu, CPA, tồn kho...)

Công cụ: Python + pandas

Cần AI? KHÔNG.

→ Deterministic, miễn phí, output số nhất quán.

🤖 Lớp viết báo cáo

Vai trò: Đọc số đã tính sẵn → viết tin nhắn tiếng Việt có nhận xét.

Công cụ: Claude AI (Desktop Routine)

Cần AI? CÓ — phần viết tự nhiên + tóm tắt là việc AI làm tốt.

→ Đầu vào là JSON số đã chốt, AI không tính lại.

Sai cách: AI đọc Excel → tính số → viết báo cáo. Đúng cách: Python tính số → ghi JSON → AI đọc JSON → viết câu.

08 / 19
Lộ trình triển khai

Dựng hệ thống trong 5 phase.

Tổng ~5 giờ làm việc, không tính thời gian thu thập file Excel mẫu thật. Có thể chia 5 buổi hoặc gom 1 ngày.

PHASE 01 Setup hạ tầng Cài Drive, Python, pwsh, Claude Desktop. Tạo venv. 30 phút
PHASE 02 Biểu mẫu chuẩn 4 template Excel — định nghĩa schema cột bắt buộc cho mỗi phòng. 45 phút
PHASE 03 Converter Script Python: raw → chuẩn. Mapping rules thủ công. 90 phút
PHASE 04 Tổng hợp + JSON Ghép 4 phòng → tính KPI → xuất Excel + JSON cho AI. 90 phút
PHASE 05 Wrapper + Routine PowerShell wrapper + Claude Routine 07:00 hàng ngày. 60 phút
09 / 19
Phase 01 · 30 phút

Cài 5 phần mềm nền.

Máy chạy 24/24 cần cài đủ 5 thành phần. Chú ý phiên bản PowerShell — sai bản dễ lỗi UTF-8.

Checklist Phase 01
  1. Google Drive for Desktop — chọn "Stream files" để sync folder G:\My Drive\
  2. Python 3.11+ — tick "Add to PATH" khi cài
  3. PowerShell 7 (pwsh) — KHÔNG dùng PowerShell 5.1 mặc định (lỗi UTF-8 với tiếng Việt)
  4. Claude Desktop — đây là "đầu não" chạy Routines
  5. Tạo venv + cài thư việnpandas openpyxl xlsxwriter
10 / 19
Phase 02 + 03

Template + Converter.

Phase 02 định nghĩa format chuẩn. Phase 03 viết script biến mọi file thô về format đó.

Phase 02 — Template chuẩn (45')

4 template Excel .xlsx đặt trong 99_Templates\. Mỗi phòng có sheet + cột bắt buộc:

  • KeToan: ngay, ma_don, kenh, doanh_thu, so_luong, trang_thai
  • Marketing: ngay, platform, da_chi, conversions, impressions, clicks
  • Sale: sale_phu_trach, ten_kh, so_dt, ngay_chot, doanh_so
  • Kho: ma_sp, ten_sp, so_luong_ton, ngay, loai, so_luong

+ Demo data 7 ngày + edge cases.

Phase 03 — Converter (90')

Script Python đọc file thô (Sapo / Nhanh / FB Ads...) → biến thành đúng template.

  • Đọc mapping-rules.json (định nghĩa cột thô → cột chuẩn)
  • Map → ghi ra 02_Normalized\
  • QA: check số đơn, validate không âm
  • Fail → ghi FAILED_<ngày>.json

→ Mapping viết tay rõ ràng, không để AI đoán schema.

11 / 19
Phase 04 · 90 phút

Tổng hợp + sinh JSON cho AI.

4 file chuẩn → ghép → tính KPI → xuất 2 output: Excel cho người đọc, JSON cho AI đọc.

Pipeline 5 bước

  1. Đọc 4 file normalized
  2. Aggregator riêng mỗi phòng (KPI)
  3. Cross-check (Sale vs Kế toán có khớp?)
  4. Insight generator — 3-5 câu nhận xét (heuristic)
  5. Ghi BaoCao_Ngay.xlsx + summary.json

Nguyên tắc: Excel cho người. JSON cho AI. Để AI đọc Excel qua xlsx tool có thể nhầm số ở cell merge / format.

A07 — summary.json (pretty) Screenshot VS Code mở file summary-2026-05-16.json, syntax highlight, ~25 dòng.
12 / 19
Phase 05 · 60 phút

Đóng gói thành 1 wrapper PowerShell.

1 file run-daily.ps1 gọi 2 bước Python tuần tự. Routine của Claude bấm nút này lúc 07:00.

# run-daily.ps1
$ROOT     = "G:\My Drive\_BaoCao_TuDong"
$PYTHON   = "D:\BaoCaoTuDong-venv\Scripts\python.exe"
$YESTERDAY = (Get-Date).AddDays(-1).ToString("yyyy-MM-dd")

# Bước 1: Convert raw → standard
& $PYTHON "skills\convert-raw-to-standard\scripts\run-convert.py" `
    --phongban all --ngay $YESTERDAY --mode daily

# Bước 2: Tổng hợp báo cáo
& $PYTHON "skills\generate-summary-report\scripts\run-report.py" `
    --mode daily --ngay $YESTERDAY
Claude Routines chạy theo lịch
13 / 19
Phân vai 2 trình chạy lịch

Task Scheduler vs Claude Routines.

Cả 2 đều chạy được theo lịch. Khác nhau ở chỗ ai làm phần "đọc số → viết câu nhận xét tiếng Việt".

CÔNG CỤ 01 ⏰ Windows Task Scheduler
✅ Chạy Python theo lịch
✅ Đọc/ghi file
❌ Không tự gọi LLM viết tin nhắn
❌ Không hiểu ngữ cảnh số liệu
Lớp xử lý (Python)
CÔNG CỤ 02 🤖 Claude Desktop Routines
✅ Chạy Python qua Bash tool
✅ Đọc JSON
Viết tin nhắn tiếng Việt + nhận xét
⚠️ Cần mở Claude Desktop sẵn
Lớp AI (Claude)
Setup khuyến nghị: Task Scheduler chạy Python (đảm bảo Excel luôn có dù Claude Desktop tắt), Claude Routine viết tin nhắn lúc 07:00.
14 / 19
Tạo Routine qua MCP tool

Tạo Routine bằng prompt, không cần vào UI.

Claude Desktop có MCP tool scheduled-tasks. Yêu cầu Claude dùng tool đó để tạo Routine, thay vì bấm tay trong UI.

Bạn gõ:

"Tạo cho tôi 1 routine
chạy 07:00 hằng ngày
với prompt sau: [paste prompt từ
file huong-dan.md phần 2.3]"

Claude tự làm:

  • Gọi tool mcp__scheduled-tasks__create_scheduled_task
  • Routine xuất hiện trong sidebar Scheduled
  • Bấm Run now 1 lần để approve tools
Bài học: AI có tool nhưng không tự nhớ ra dùng. Phải biết tool tên gì + chủ động yêu cầu Claude dùng đúng tool đó.
15 / 19
9 bẫy — Nhóm 01 / 03

Bẫy kỹ thuật.

3 lỗi cấu hình hay gặp khi setup lần đầu — mỗi cái tốn từ 15 phút đến nửa ngày debug nếu chưa biết.

BẪY #3 pwsh.exe ≠ powershell.exe
❌ Sai: Gọi powershell -File run.ps1 → lỗi UTF-8 khi gặp tiếng Việt + em dash, exit code 1 không log.
✅ Đúng: Luôn dùng "C:\Program Files\PowerShell\7\pwsh.exe".
~30 phút debug
BẪY #5 PowerShell flag syntax
❌ Sai: -StartWhenAvailable $true → lỗi "positional parameter".
✅ Đúng: -StartWhenAvailable (cờ flag, không cần $true).
~15 phút
BẪY #8 Remote agent không thấy local file
❌ Sai: Dùng Anthropic CCR (cloud agent) → CCR không truy cập được G:\My Drive\.
✅ Đúng: Dùng Claude Desktop chạy local trên máy có Drive sync.
~nửa ngày
16 / 19
9 bẫy — Nhóm 02 / 03

Bẫy workflow.

4 lỗi thiết kế hay gặp khi build pipeline data + AI lần đầu.

BẪY #1 Không tách 2 lớp
❌ Sai: Dùng AI cho cả xử lý số + viết.
✅ Đúng: Python số, AI tiếng Việt.
BẪY #2 Chờ data thật mới test
❌ Sai: Chờ data thật → kẹt nhiều ngày vì 4 phòng chậm gửi.
✅ Đúng: Sinh demo data 7 ngày trước, test pipeline xong rồi gắn data thật.
BẪY #4 AI đọc Excel trực tiếp
❌ Sai: AI dùng xlsx tool đọc file → dễ nhầm số ở merge cell / format.
✅ Đúng: Excel cho người đọc, JSON cho AI đọc.
BẪY #9 Không có kill-switch
❌ Sai: Đi vắng máy hỏng → routine ngập báo cáo lỗi gửi liên tục.
✅ Đúng: File .disable-routines kiểm tra ở đầu wrapper để tắt nhanh.
17 / 19
9 bẫy — Nhóm 03 / 03

Bẫy cách AI hành xử.

2 bẫy về cách AI "phản ứng" với prompt — hay gặp khi mới ráp AI vào pipeline tự động.

BẪY #6 Tưởng Task Scheduler là đủ
❌ Sai: Chỉ dùng Task Scheduler chạy Python → có Excel nhưng không có tin nhắn nhận xét.
✅ Đúng: TS chạy Python (data), Claude Routine viết tin nhắn (AI). Dùng song song.
BẪY #7 AI có tool nhưng không tự nhớ ra dùng
❌ Sai: Hỏi mơ hồ "làm sao tạo routine" → Claude trả lời hướng dẫn vào UI bấm tay.
✅ Đúng: Biết tool scheduled-tasks tồn tại → yêu cầu cụ thể: "dùng tool đó tạo routine cho tôi".

Khi làm việc với Claude: liệt kê tool/skill có sẵn và yêu cầu Claude dùng đúng tool — đừng để AI tự đoán.

18 / 19
Bonus — nếu còn thời gian

2 demo nhanh khác với Claude Code.

Cùng một công cụ, áp cho 2 việc văn phòng hằng ngày.

DEMO 01 🖼️ Resize hình ảnh bằng Claude Code
DEMO 02 📄 Soạn thảo & chuyển format tờ trình với Claude Code
19 / 19
Tài liệu — tải về

Mang hệ thống về
thử trong tuần.

  • Folder demo — file Excel + script + prompt: (QR/link Drive)
  • File hướng dẫnhuong-dan-step-by-step-cho-nguoi-khong-biet-code.md
  • Routine prompt mẫu — daily + weekly
  • Tuyết Chinh — Chinh Productivity · Lark Implementer · báo cáo automation

Bị kẹt → nhắn. Khi nhắn AI hỗ trợ: nói rõ tool/skill cần dùng, đừng để AI tự đoán.

01 / 19