# Salesforce / CM / BI Runtime Candidate Watchlist

Date: `2026-07-07`

## 用法

这份文档只看
`runtime boundary candidate`
。

也就是：

- 现在已经能看到 live trigger / runtime 残余
- 但前面还有明确的 parity 要先清
- 所以**还不能直接说成 `CM 真做不到`**

适合回答：

- `哪些灰区项现在先别升成 runtime`
- `为什么还不能直接叫 CM gap`
- `它们先打哪张报表`

如果要看已经比较确定的真 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)

如果要一页看完
`true runtime` 和 `candidate`
的边界，
再看：

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

## Candidate Watchlist

| 候选面 | Salesforce 现网会做什么 | CM 目前已支持什么 | CM 当前未支持 / 疑似未支持什么 | 为什么现在还不能直接叫 `CM 真 gap` | 先打哪张报表 |
|---|---|---|---|---|---|
| `Trigger_CampaignMember` | 维护 `CampaignMember` response / involvement / first-touch / last-touch，并把 `first_responded_date`、`campaign_member_status`、`has_responded`、`is_contact_involved` 变成 attribution 输入 | 本地已有 `Lead_Set_First_And_Last_CampaignMember*`、`Contact_Set_First_And_Last_CampaignMember*`、`Std_ConvertLeadCampaignPreview`；下游已真实算 `attributed_arr` / `attributed_acv` | `Campaign_Member_Key_Message_Update` 当前仍未补；补完后若仍有 residual trigger 才值得升级 | 因为现在最明确的缺口还是一条 exact-name Flow，先补这条比直接开 runtime 更稳 | 主 front-door：`8c6f30a4-c6fe-4536-ac62-d937d0176ebd`；次级：`fd12e3fc-d36f-4cc5-b2d9-9ed2808489dc` |
| `Contact` live Flow / trigger residuals | 维护 contact 默认值、region/account helper、lead/contact merge 和 attribution stitching 长尾 | Contact 基础对象、公式、`Contact_Set_First_And_Last_CampaignMember*`、lead/contact/campaign member 拼接链已在 | live Contact Flow peer 当前未见本地 peer；Contact trigger surfaces 仍在 live runtime | Contact 证据主要还是通过 attribution / stitching 邻近链显影，直接拔高成独立 runtime 题还偏早 | 主 front-door：`8c6f30a4-c6fe-4536-ac62-d937d0176ebd`；次级：`fd12e3fc-d36f-4cc5-b2d9-9ed2808489dc` |
| `AccountTrigger` residual surfaces | 维护 account-side shared-dimension：`AccountID`、ICP、Segmentation、owner、`account_current_order_type`、contract-valid、tenant/account governance orchestration | `Account_ID__c`、`Current_Order_Type__c`、`Org_Set_Account`、account/org shared-key substrate 已在；`salesforce_accounts`、`dim_org`、`dim_tenant`、`dws_cloud_tenants_basicinfo` 已真实消费这些字段 | `Account_Current_Order_Type`、`Account_Partner_Sales_Owner_Set`、`Account_Contract_Valid_Message` 当前都还没补；清完前不能证明残差一定来自 trigger | 当前先看到的是 account exact-name parity backlog 和 tenant bridge drift，直接升 runtime 会把层级抬早了 | 主 front-door：`58339683-7a7a-4bb6-91bd-14b149572ac9`、`673c89ef-fb02-4303-a9a2-5519a652051c`、`2128769b-9f86-4c7a-a9f4-8cc7491868e3`、`690c8087-0697-4272-b05e-2ee37d728c15` |

## 当前最稳升级条件

| 候选面 | 升级成 runtime 之前必须先清什么 |
|---|---|
| `Trigger_CampaignMember` | `Campaign_Member_Key_Message_Update` |
| `Contact` residuals | Contact live Flow peer parity、attribution stitching 邻近 parity |
| `AccountTrigger` residuals | `Account_Current_Order_Type`、`Account_Partner_Sales_Owner_Set`、`Account_Contract_Valid_Message` |

## 最敏感字段

| 候选面 | 最敏感字段 |
|---|---|
| `CampaignMember` / `Contact` | `first_responded_date`、`campaign_member_status`、`has_responded`、`is_contact_involved`、`contact_response_date`、`attributed_arr`、`attributed_acv` |
| `Account` | `account_id`、`account_number`、`fy26_icp`、`fy26_segmentation`、`account_current_order_type`、`tenant_id`、`tenant_region` |

## 一句话收口

`当前最该谨慎的灰区不是“没有问题”，而是“问题还没被证明是 runtime”；CampaignMember/Contact 和 Account 这两组，都应该先把已知 parity 清掉，再决定是否升级成 CM 真 gap。`
