# Dashboard The customer dashboard reads `客户信息汇总表` as the single customer source of truth. It does not read legacy channel sheets unless they have first been imported into the summary table with `scripts/common/build_customer_summary.py`. ## Required Metrics - Total unique customers. - Contactable customers. - Outreach status distribution. - Customer attribute distribution. - Customer type distribution. - Lead grade distribution from `线索等级`. - Manual review count from `需人工确认` values other than blank or `否`. - Email sent count and bounced/failed count. - Facebook sent count, unified reply count, reply rate, latest reply customers, and pending manual-review reply count when `Facebook对话记录` exists. - Daily target progress. Default daily outreach target is 20 customers. ## Facebook Reply Metrics Facebook reply metrics use the unified reply definition. Do not segment Facebook replies by quality, cooperation intent, or deal probability. - `Facebook sent customers`: unique customers with our Facebook DM records. - `Facebook replied customers`: unique customers with at least one customer-side real reply. - `Facebook reply rate`: `Facebook replied customers / Facebook sent customers`. - `Pending reply review customers`: customers with a Facebook reply that should be manually reviewed. System messages, read receipts, our messages, automated prompts, and standalone reactions are not replies. ## Source Fields Use these summary-table fields: `公司姓名`, `国家`, `城市`, `客户类型`, `官网链接`, `联系人`, `职位`, `个人邮箱`, `联系人电话`, `Facebook主页链接`, `linkined主页链接`, `google map链接`, `公共电话/WhatsApp`, `公共邮箱`, `客户属性`, `线索等级`, `需人工确认`, `建联状态`, `下次跟进`, `备注` ## Output Generate dashboard artifacts under `runs/YYYYMMDD//` and optionally update `dashboards/latest/`. Do not copy real customer JSON back into `assets/dashboard_template.html`; the template must keep the `{{dashboard_json}}` placeholder. Dashboard generation does not modify Excel and does not trigger Feishu sync by itself.