# Salesforce / CM / BI Team Brief

Date: `2026-07-07`

## 一句话结论

如果只想拿
`5 到 8 句话`
直接口头复述，
看：

- [salesforce-cm-bi-verbal-summary-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-verbal-summary-2026-07-07.md)

如果要看
`最终固定汇报口径`
，
看：

- [salesforce-cm-bi-final-briefing-sheet-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-final-briefing-sheet-2026-07-07.md)

如果只想看
`报表组一页汇报版`
，
看：

- [salesforce-cm-bi-report-group-summary-matrix-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-report-group-summary-matrix-2026-07-07.md)

当前这批 BI 报表里看到的
`gap`
，
**大多数不该直接读成 `CM 没能力`**。

更准确的读法是：

- 很多是
  `PingCAP L2 parity`
- 一部分是
  `semantic mismatch`
- 一部分是
  `intentional replacement`
- 只有同面 parity 清完以后还残留的
  `Apex trigger / runtime`
  逻辑，
  才更接近
  `CM 真 gap`

## 先统一口径

| 问题 | 当前最稳口径 |
|---|---|
| 报告里的 gap 是不是都等于 `CM 做不到` | `不是` |
| 现在最常见的差异是什么 | `L2 exact-flow parity`、`semantic mismatch`、`activation-state mismatch` |
| 什么最接近 `CM 真边界` | 同面 parity 清完后仍只能靠 live Salesforce `Apex trigger / runtime` 维持的残余逻辑 |
| 默认第一动作 | 先补 parity，不要一上来就开 runtime 题 |

## 8 张 front-door 报表怎么读

| 报表面 | Salesforce 现网主要在做什么 | CM 目前已支持什么 | CM 当前未支持 / 疑似未支持什么 | 当前更像什么 |
|---|---|---|---|---|
| `1733...` `pipeline data quality / cleanup monitor` | 维护 Opportunity 的 stage / forecast / close-date / owner-team，再叠加 Quote service-window / nonstandard-term / cleanup 语义 | `Std_OpportunityStageDerivedFields`、`Opportunity_Cloud_Order_Type_Set`、`Opportunity_Close_Date_Auto_Set` 已在；Quote 字段和 validation substrate 已在 | `Quote_update_nonstandard_conditions_checkbox*`、`OpportunityShareToPersalesOwner*` 未补；quote / opportunity 邻近 validation 仍有 inactive；更后面才是 `OpportunityTrigger` / `QuoteTrigger` | `Opportunity/Quote parity`，不是先叫 runtime |
| `8c6f...` `campaign attribution / contact-opportunity touch` | 维护 `first_responded_date`、response / involvement、lead-contact convert 后 relink、campaign/contact 到 opportunity 的归因 | 本地已有 `Lead/Contact Set First And Last CampaignMember*` 和 `Std_ConvertLeadCampaignPreview` | `Campaign_Member_Key_Message_Update` 未补；Contact live Flow peer 未见本地 peer；更后面才是 `Trigger_CampaignMember` / Contact runtime | `CampaignMember parity`，不是 `Campaign` 主表能力缺口 |
| `fd12...` `lead funnel / ICP path` | 维护 `lead_mql_timestamp`、`lead_iqm_timestamp`、status/lifecycle 时间戳、lead-account stitching、campaign path | `IQM_Completion_Flow`、`Lead_Status_Duration`、`Std_ConvertLeadCampaignPreview` 已在 | `Lead_StatusChangeTimestamp` 语义仍过宽；Lead 长尾 assignment / reminder / notification parity 未清；更后面才是 `LeadTrigger` / `LeadAITrigger` | `Lead semantic mismatch + parity` |
| `583...` `account + current/monthly order MRRARR composite` | 维护 account shared-key、tenant bridge、`account_current_order_type`、`order_product_family`、current-month ARR/MRR | `Org_Set_Account`、`Order_Default_RevRec_Entity`、`Cloud_Registration_Source_from_Org_to_Order` 已在 | `Account_Current_Order_Type`、`Order_Org_Auto_Set_Account_*`、`Order_Set_PLG_BD_Pool` 未补；`Account_Partner_Sales_Owner_Set` 当前更适合作为 `#3707` 的次级回归项；更后面才是 `AccountTrigger` / `OrderTrigger` | `Account/Order parity` |
| `837...` `ARR summary + regional/company forecast` | 维护 ARR/forecast、current-month order finance、revrec helper、`order_product_family` | `Order_Default_RevRec_Entity`、Order 对 `Revenue__c` 的 rollup、line-item 公式/rollup 已在 | `Order_Org_Auto_Set_Account_*`、`Order_Set_PLG_BD_Pool`、`RevRec_Set_PLG_BD_Pool` 未补；`Revenue__c.Name` / line-item `Name` 未补；更后面才是 finance runtime | `Order/RevRec/line-item parity` |
| `f9c4...` `activated-order / monthly revrec by account+tenant` | 维护 activated-order、monthly revrec、tenant/account bridge、collections helper、marketplace / org-to-collection bridge | `Invoice_Collection__c` helper 字段已在；Order 侧 collections rollup 已在；order finance snapshot substrate 已在 | `Collection_Set_PLG_BD_Pool`、`Collection_Amount_and_Payable_Amount_exc_tax*`、`Cloud_Registration_Source_from_Org_to_Collections` 未补；更后面才是 finance runtime | `Collections/Order/RevRec parity` |
| `690...` `PLG signup / billing-capable cloud funnel` | 通过 tenant bridge 把 cloud signup、billing-capable user、tenant identity 串起来；当前 strongest front-door 还是 `tenant_*` + funnel metric | `Account_ID__c` auto-number、`Org_Set_Account`、`dws_cloud_tenants_basicinfo` 已在 | account-side missing names 与 order-side carry-over 都会回流污染这里；但它当前更稳地读成 `583...` 与 `673... / 212...` 清理后的 dependent consumer | `dependent tenant-funnel consumer` |
| `673... / 212...` `account + forecast surfaces` | 维护 `account_number`、ICP、Segmentation、tenant linkage、forecast snapshot、owner / sales-team 邻近治理语义 | `Account_ID__c` auto-number、`Org_Set_Account`、`salesforce_accounts` / `dim_org` / `dim_tenant` 已在 | `Account_Contract_Valid_Message`、`Account_Partner_Sales_Owner_Set` 未补；`Account_Current_Order_Type` 当前不再作为这组主实现范围；更后面才是 `AccountTrigger` | `Account owner / governance parity` |

## 哪些更像 `CM 真 gap`

当前最值得保留成
`runtime boundary`
的只有 3 组：

| 组 | Salesforce 现网会做什么 | CM 目前已支持什么 | CM 当前未支持 / 疑似未支持什么 | 先打哪张报表 |
|---|---|---|---|---|
| `Lead runtime` | `LeadTrigger` / `LeadAITrigger` 承担部分 lifecycle 收口、assignment/reminder/notification 长尾 | lead lifecycle、IQM、convert、campaign preview 主链都已在 | parity 清完后仍只能靠 live trigger 的 residual lead runtime | `fd12...` |
| `Opportunity / Quote runtime` | `OpportunityTrigger` / `QuoteTrigger` 承担机会质量、owner-team 残余、quote residual orchestration | opportunity stage/forecast/cloud-order-type 和 quote substrate 已在 | parity 清完后仍残留的 opp/quote trigger-only drift | `1733...` |
| `Finance runtime` | `OrderTrigger` / `RevenueTrigger` / custom line-item trigger surfaces 承担 finance residual carry-over、revrec orchestration、line-item drift | order/revenue/collections/line-item substrate 已在 | parity 清完后仍只能靠 live trigger 维持的 finance runtime | `837...`、`f9c4...` |

## 最值得先排的 4 张 front-door

默认顺序：

1. `fd12...`
2. `1733...`
3. `837...`
4. `f9c4...`

对应最敏感字段：

- `fd12...`
  `lead_mql_timestamp`、`lead_iqm_timestamp`、`lead_status`
- `1733...`
  `stage_name`、`forecast_category`、`quote_service_start_date`、`quote_service_end_date`、`owner_team`
- `837...`
  `arr_amount_usd`、`accurate_acv_amount`、`order_product_family`、`Recognized_Revenue_Amount__c`
- `f9c4...`
  `tenant_id`、`account_current_order_type`、`collections_status_c`、`payable_amount_usd_2_exc_tax_c`、`marketplace_c`

## 推荐动作

1. 先按报表面修 parity，不要先从对象抽象层开大题。
2. 同一报表面的 exact-name Flow、semantic mismatch、auto-number parity 清完以后，再决定是否升级成 runtime。
3. 如果需要开 runtime 题，维持 3 组拆法：
   `Lead runtime`
   `Opportunity/Quote runtime`
   `Finance runtime`

## 参考入口

- 快速读：
  [salesforce-cm-bi-canonical-matrix-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-canonical-matrix-2026-07-07.md)
- 真边界判断：
  [salesforce-cm-bi-capability-boundary-map-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-capability-boundary-map-2026-07-07.md)
- 真 runtime 清单：
  [salesforce-cm-bi-runtime-boundary-shortlist-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-runtime-boundary-shortlist-2026-07-07.md)
- 超短执行版：
  [salesforce-cm-bi-frontdoor-execution-sheet-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-frontdoor-execution-sheet-2026-07-07.md)

## 一句话收口

`这批问题当前更像“CM 已有 substrate，但 PingCAP L2 和 live Salesforce 还没完全对齐”，而不是“CM 普遍没有能力”；真正更像 CM 真 gap 的，主要还是 parity 清完以后残留的 trigger/runtime 逻辑。`
