agentforce flow
好的,收到!我们彻底重来。这应该是你的界面版本非常新,或者遇到了特定的显示问题。我们绕过所有复杂解释,用最绝对可靠、100%通用的方法来重建这个Flow。
这次的方法核心是:全程使用最基础的“赋值(Assignment)”操作来手动处理变量,完全避开Screen组件那些令人困惑的自动绑定逻辑。
🎯 绝对可靠的重建方案
第一步:创建全新的Flow
- Setup → 搜索 “Flows” → “New Flow”。
- 选择 “Screen Flow”,点击 “Create”。
- 将Flow的 API名称 设置为
Create_Note_Flow_V2(避免和旧的冲突)。
第二步:创建四个明确的变量
在左侧 “Manager” 标签页,创建以下变量(Resource Type 都选 Variable):
userInputTitle(数据类型:Text)- 用途:临时存放用户从屏幕输入的标题。
userInputContent(数据类型:Text)- 用途:临时存放用户从屏幕输入的内容。
finalNoteTitle(数据类型:Text)- 用途:经过处理后,最终用于创建记录的标题。
finalNoteContent(数据类型:Text)- 用途:经过处理后,最终用于创建记录的内容。
第三步:设计屏幕(使用最基本的Text组件)
- 从左侧拖一个 “Screen” 到画布,命名为
输入笔记。 - 在屏幕中添加两个最基础的组件:
- 第一个组件:在左侧找 “Text” 组件(图标可能像
T或Abc)。拖进去。- Label:
笔记标题 - API Name:
inputTitleField(仅作为组件标识,不与变量绑定) - Required: 勾选 ✅
- Default Value: 留空不填!
- Label:
- 第二个组件:在左侧找 “Long Text” 或 “Text Area” 组件。拖进去。
- Label:
笔记内容 - API Name:
inputContentField - Required: 勾选 ✅
- Default Value: 留空不填!
- Label:
- 第一个组件:在左侧找 “Text” 组件(图标可能像
关键:现在不要管任何“Store”或“Output”选项,我们下一步手动处理。
第四步:添加“赋值”元素(核心步骤)
这是整个流程的中枢,负责把屏幕输入“搬运”到变量。
- 从Screen元素引出的连线后,立刻添加一个“Assignment”(赋值)元素。命名为
保存用户输入。 - 在这个元素里,添加两条赋值规则:
- 第一条:将变量
{!userInputTitle}设置为{!inputTitleField}。 - 第二条:将变量
{!userInputContent}设置为{!inputContentField}。 - (注意:
inputTitleField和inputContentField是你屏幕上组件的API Name,它们在被屏幕提交后,其值可以被这样引用。)
- 第一条:将变量
第五步:添加决策和创建记录
- 在“赋值”元素后,添加 “Decision” 元素,命名为
检查输入。- 判断条件:
{!userInputTitle} Is Null False且{!userInputContent} Is Null False。
- 判断条件:
- 从Decision的
条件满足分支,连接到一个新的 “Assignment” 元素,命名为准备最终数据。- 在这里,将
{!finalNoteTitle}设置为{!userInputTitle}。 - 将
{!finalNoteContent}设置为{!userInputContent}。
- 在这里,将
- 从“准备最终数据”连接到 “Create Records” 元素。
- Object:
Note__c - 字段映射:
Title__c={!finalNoteTitle}Content__c={!finalNoteContent}OwnerId={!$User.Id}
- Object:
第六步:添加提示并连接回路
- 从“Create Records”后连接一个 “Screen” 元素作为成功提示。
- 添加一个 “Display Text” 组件,内容:
笔记创建成功!。 - 添加一个 “Button” 组件,行为设为
Close this screen。
- 添加一个 “Display Text” 组件,内容:
- 从Decision的
默认分支(即输入为空),连接到一个 “Screen” 元素作为错误提示。- 添加一个 “Display Text” 组件,内容:
标题和内容不能为空,请重新填写。。 - 添加一个 “Button” 组件,行为设为
Navigate to another screen,并选择第一步的输入笔记屏幕,让用户重填。
- 添加一个 “Display Text” 组件,内容:
✅ 这个方法为什么绝对可行?
因为它彻底解耦了屏幕输入和流程逻辑。屏幕只负责显示和收集,Assignment元素作为唯一的、明确的数据搬运工,将值从一个地方搬到另一个地方。逻辑无比清晰,不受任何界面版本或隐藏选项的影响。
🚀 立即行动
现在,请严格按以上步骤操作。完成后,请直接点击右上角的 “Run” 进行测试。
如果在添加“Assignment”元素并试图设置 {!inputTitleField} 时,系统提示该变量不存在,请立即告诉我。这说明你的版本中引用屏幕值的方式不同,但我们可以用另一种通用方法解决(例如,先使用“Choice”组件)。
先按这个做,遇到具体报错我们再具体解决。这次一定能成功。
🎯 所有变量的正确配置
请按照下表设置你的四个变量:
| 变量名 | 数据类型 | Available for input | Available for output | 用途说明 |
|---|---|---|---|---|
userInputTitle |
Text |
✅ 勾选 | ❌ 不勾选 | 接收屏幕标题输入 |
userInputContent |
Text |
✅ 勾选 | ❌ 不勾选 | 接收屏幕内容输入 |
finalNoteTitle |
Text |
✅ 勾选 | ❌ 不勾选(或勾选) | 经过处理后用于创建的最终标题 |
finalNoteContent |
Text |
✅ 勾选 | ❌ 不勾选(或勾选) | 经过处理后用于创建的最终内容 |
第一条:将变量 {!userInputTitle} 设置为 {!inputTitleField}。
第二条:将变量 {!userInputContent} 设置为 {!inputContentField}。
在 “Assignment” 元素中设置这两条规则,需要你进行手动配置,而不是从下拉框选择。请按照以下步骤操作:
🛠️ 详细配置步骤
- 添加 “Assignment” 元素:从左侧工具栏拖拽 “Assignment” 到画布上,将其命名为
保存用户输入。 - 打开规则配置:点击这个元素,在右侧属性面板中找到 “Add Assignment” 或 “Set a variable value” 区域,点击
+ Add或 **+ New Resource**。 - 设置第一条规则:
- 在出现的配置行中,通常有两个输入框。在第一个框(Variable) 里,手动输入
userInputTitle,或者从下拉列表中选择{!userInputTitle}。 - 在第二个框(Value) 里,手动输入
{!inputTitleField}。 - 注意:如果系统在第二个框的下拉列表中找不到
inputTitleField,这是正常且关键的现象!这证明了我之前的预判:你的Flow版本无法直接通过API Name引用屏幕输入值。
- 在出现的配置行中,通常有两个输入框。在第一个框(Variable) 里,手动输入
- 如果第二步的Value框找不到
inputTitleField(大概率发生):- 不要慌,这正是我们需要的信号。
- 这意味着我们必须立即启动备用方案。
- 请暂时停止在此Assignment元素上的配置。
从“准备最终数据”连接到 “Create Records” 元素。
Object: Note__c
字段映射:
Title__c = {!finalNoteTitle}
Content__c = {!finalNoteContent}
OwnerId = {!$User.Id}
“连接”指的是在 Flow 画布上用连线将两个元素逻辑上串起来,而“字段映射”是在 “Create Records”元素内部的配置。这是两步操作。
以下是具体的操作方法:
🔗 第一步:在画布上用箭头连线
- 确保你处于 Flow 画布的编辑模式。
- 点击
准备最终数据这个 Assignment 元素底部中央的白色小点(或箭头图标)。 - 按住并拖拽出一条线,将其拖到
Create Records元素顶部中央的白色小点上,然后松开。 - 这样就建立了逻辑连接,表示一个执行完后自动执行下一个。
🛠️ 第二步:在“Create Records”元素内配置字段映射
- 双击画布上的 “Create Records” 元素,打开其配置面板。
- 在 “Object” 字段中,通过下拉菜单选择 **
Note__c**。 - 找到设置字段值的区域,通常标有 “Set field values for the Note__c” 或 “Add field assignment”。点击
+ Add或 **+ Set a new value**。 - 这时会出现两列:一列选择字段,一列设置值。
- 在第一列(字段)的下拉菜单中,选择 **
Title__c**。 - 在第二列(值)中,手动输入
{!finalNoteTitle}。
- 在第一列(字段)的下拉菜单中,选择 **
- 再次点击 **
+ Add**,添加第二条映射:- 字段:选择
Content__c - 值:输入
{!finalNoteContent}
- 字段:选择
- 再次点击 **
+ Add**,添加第三条映射:- 字段:选择
OwnerId - 值:输入
{!$User.Id}
- 字段:选择
明白了!你要将整个流程改为 Auto-Launched Flow(无屏幕自动流)。这是一个重大的、正确的架构调整,意味着你的 Agent 将直接处理数据,无需与用户进行屏幕交互。
这完全改变了设计思路,下面是为你量身定制的方案。
🔄 架构转变:从交互式到自动化
- 原方案(Screen Flow):用户通过屏幕输入 -> 赋值 -> 创建记录。
- 新方案(Auto-Launched Flow):Agent 直接提供标题和内容 -> Flow 接收并创建记录。
Auto-Launched Flow 需要被其他程序(如Agent的Apex Action)调用,并接收输入参数。
🛠️ Auto-Launched Flow 重建方案
第一步:创建 Flow
- Setup → “Flows” → “New Flow”。
- 这次选择 **
Autolaunched Flow**(无触发器)。 - 将API名称设为
Create_Note_Auto_Flow。
第二步:创建输入变量(从Agent接收数据)
在 “Manager” 标签页,创建以下 **Variable,并务必勾选 Available for input**:
inputNoteTitle(数据类型:Text)- ✅ Available for input
- 用途:接收来自Agent的笔记标题。
inputNoteContent(数据类型:Text)- ✅ Available for input
- 用途:接收来自Agent的笔记内容。
第三步:直接创建记录(核心逻辑)
- 从左侧拖拽 “Create Records” 元素到画布。
- 配置:
- Object:
Note__c - 字段映射:
Title__c={!inputNoteTitle}Content__c={!inputNoteContent}OwnerId={!$User.Id}(或根据业务需求调整)
- Object:
- 从 “Start” 元素直接连接到 “Create Records”。
第四步:保存、激活
- 保存Flow,命名为
Create Note Auto Flow。 - 非常重要:点击
Activate激活。
