# Salesforce / CM / BI Runtime Overview Map

Date: `2026-07-07`

## 用法

这份文档是
`最终总览图`
。

目标只有一个：

- 一眼看清
  `哪些已经能直接叫 runtime boundary`
- 哪些还只是
  `runtime boundary candidate`
- 它们分别先打哪张报表

如果要看详细证据链，
再看：

- [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-runtime-candidate-watchlist-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-runtime-candidate-watchlist-2026-07-07.md)

## 总图

| 类别 | 组 | Salesforce 现网会做什么 | CM 目前已支持什么 | CM 当前未支持 / 疑似未支持什么 | 先打哪张报表 | 当前最稳动作 |
|---|---|---|---|---|---|---|
| `True runtime` | `Lead runtime` | `LeadTrigger` / `LeadAITrigger` 承担 lifecycle 收口、assignment/reminder/notification 长尾 | lead lifecycle、IQM、convert、campaign preview 主链已在 | parity 清完后仍只能靠 live trigger 的 residual lead runtime | 主：`fd12...`；次级：`salesforce_leads` / `dws_lead_timeline` / `dws_icp_summary` | 可以准备 runtime issue，但要显式排除 `Lead_StatusChangeTimestamp` 这类 parity 项 |
| `True runtime` | `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...`；次级：`837...`、`0f2...`、`aadb...`、`d916...` | 可以准备 runtime issue，但要显式排除 Quote cleanup / owner-team parity backlog |
| `True runtime` | `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...`；次级：`583...` | 可以准备 runtime issue，但要显式排除 carry-over / collections / auto-number parity backlog |
| `Candidate` | `CampaignMember runtime candidate` | `Trigger_CampaignMember` 继续维护 response / involvement / first-touch / last-touch | `Lead/Contact Set First And Last CampaignMember*`、`Std_ConvertLeadCampaignPreview` 已在 | `Campaign_Member_Key_Message_Update` 还没补；补完后再判断残余 trigger | 主：`8c6f...`；次级：`fd12...` | 先补 exact-name Flow，不先开 runtime |
| `Candidate` | `Contact runtime candidate` | Contact live Flow / trigger 维护 contact 默认值、merge、stitching 长尾 | Contact 基础对象、公式、contact-adjacent campaign flow 已在 | live Contact Flow peer 未见本地 peer；但仍主要通过 attribution/stitching 邻近链显影 | 主：`8c6f...`；次级：`fd12...` | 先清 contact stitching parity，再决定要不要升 runtime |
| `Candidate` | `Account runtime candidate` | `AccountTrigger` 继续维护 shared-dimension：owner、current-order-type、contract-valid、tenant/account governance | `Account_ID__c`、`Current_Order_Type__c`、`Org_Set_Account`、shared-key substrate 已在 | `Account_Current_Order_Type`、`Account_Partner_Sales_Owner_Set`、`Account_Contract_Valid_Message` 都还没补 | 主：`583...`、`673... / 212...`、`690...` | 先清 account exact-name parity，不先把残差叫成 true runtime |

## 先别搞混的两条线

| 线 | 当前最稳读法 |
|---|---|
| `True runtime` | 已经足够稳定，可以单列成 runtime issue，但 issue 里必须显式排除同面 parity backlog |
| `Candidate` | 现在只能说 `疑似 runtime`，要先把已知 parity 清掉，再决定是否升级 |

## 默认使用顺序

1. 先看：
   [salesforce-cm-bi-team-brief-2026-07-07.md](/Users/amber/ai/nexuscrm-pingcap-pack/docs/salesforce-cm-bi-team-brief-2026-07-07.md)
2. 再看：
   [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)
3. 如果问题已经进入 runtime 边界讨论：
   看这张总览图。

## 一句话收口

`现在已经能直接开 runtime 讨论的，主要是 Lead / Opportunity-Quote / Finance 三组；CampaignMember-Contact 和 Account 这两组还应该继续留在 candidate 桶里，先把已知 parity 清掉。`
