配置Salesforce Opportunity StageName:默认值+用户只读、API/Apex可编辑
Salesforce Opportunity Stage 配置方案:默认值设置+人工只读控制
一、设置创建Opportunity时的默认StageName(含记录类型场景)
1. 无记录类型的情况
- 进入设置 → 对象和字段 → 对象管理器 → 找到Opportunity对象
- 点击字段和关系 → 找到StageName字段
- 编辑字段,在默认值区域选择「Initial Outreach」,保存即可
2. 存在记录类型的场景
如果需要给所有记录类型统一设置默认值:
- 按上述步骤给StageName字段设置全局默认值「Initial Outreach」,所有记录类型创建时都会继承该默认值
如果需要给特定记录类型单独设置默认值:
- 进入设置 → 对象和字段 → 记录类型 → 找到Opportunity的目标记录类型
- 点击编辑 → 滚动到字段默认值区域,找到Stage字段,选择「Initial Outreach」
- 保存后,该记录类型下创建的Opportunity会使用这个单独设置的默认值,优先级高于字段全局默认值
二、实现人工用户只读,允许集成/API/Apex更新的方案
核心思路:用验证规则拦截人工修改,配合自定义权限给集成/自动化工具开白名单,同时结合字段级安全+页面布局强化UI层面的只读控制。
步骤1:创建自定义权限
- 进入设置 → 用户 → 自定义权限 → 点击新建
- 标签填
Allow Edit Opportunity Stage,名称自动生成Allow_Edit_Opportunity_Stage,描述填「允许更新Opportunity的Stage字段」,保存
步骤2:给集成用户/自动化工具分配自定义权限
- 找到需要允许更新Stage的集成用户、自动化工具对应的用户(比如Flow运行的系统用户、Apex类的运行用户)
- 给这些用户所在的权限集或配置文件添加上述自定义权限:进入权限集/配置文件 → 自定义权限 → 点击编辑,勾选
Allow Edit Opportunity Stage,保存
步骤3:创建验证规则拦截人工修改
- 进入Opportunity对象的验证规则 → 点击新建
- 规则名称:
Prevent Manual Stage Edit - 错误条件公式:
公式说明:当StageName被修改,且当前用户没有自定义权限,且不是新建记录时,触发验证AND( ISCHANGED(StageName), NOT($Permission.Allow_Edit_Opportunity_Stage), NOT(ISNEW()) ) - 错误信息:
Stage字段不允许人工修改,请通过集成或自动化工具更新 - 错误位置:选择Stage字段
- 激活验证规则
补充:UI层面强化只读(避免用户看到可编辑入口)
- 字段级安全:给所有人工用户的配置文件/权限集设置StageName字段为只读
- 页面布局:在Opportunity的所有页面布局中,将StageName字段设置为只读,并移除内联编辑权限
- 列表视图:编辑所有Opportunity列表视图,取消StageName字段的内联编辑权限
这样组合配置后,人工用户无论在UI、内联编辑、列表视图都无法修改Stage,而拥有自定义权限的集成用户、Apex/自动化工具可以正常更新Stage。
内容的提问来源于stack exchange,提问作者Mohammad Fanni
相关产品推荐
相关产品推荐

