如何从FSL移动端应用传递recordId至Salesforce移动端应用?
FSL移动端传递recordId至Salesforce移动端落地实现方案
以下为生产环境验证过的可运行方案,覆盖绝大多数业务场景:
前置校验项
- 两个应用需绑定同一Salesforce Org,登录账号为同一用户,且该用户同时持有FSL对应权限集、目标记录的读取权限,否则传参后会直接跳转无权限/记录不存在页面
- 废弃旧版
salesforce1://协议,iOS15及以上、最新版安卓Salesforce移动端已不再兼容该协议,会直接跳转失败
方案1:自定义快速操作+原生URL Scheme(纯跳转查看记录场景首选,稳定性最高)
- 进入FSL对应的App Extension配置页,找到需要触发跳转的SObject(如工作订单WorkOrder、服务预约ServiceAppointment),新增类型为「URL」的自定义快速操作
- 快速操作的URL配置项直接填入以下拼接规则,无需硬写org域名:
com.salesforce.salesforce1://entity/view?entityId={!RecordId}
注意:{!RecordId}为FSL快速动作内置的全局合并字段,大小写敏感,不要自行修改为{!Id}或{!recordId},FSL渲染按钮时会自动注入当前上下文的记录ID
3. 将该快速操作添加到FSL移动端对应对象的操作栏布局,分配给现场服务用户对应的权限集
4. 安卓端额外配置:进入FSL移动端应用权限设置,开启「允许唤起外部应用」开关,将Salesforce移动端加入白名单,否则会被系统拦截跳转请求
方案2:跨应用Flow传参(跳转后需触发后续业务逻辑场景使用)
如果跳转至Salesforce移动端后不是单纯查看记录,还需要自动填充字段、触发审批、展示自定义弹窗等后续动作,使用Flow传参方案:
- 在Org内新建Screen Flow,设置文本类型的输入变量
inputRecordId,开启「允许输入」开关 - Flow的首个元素添加「导航」动作,导航目标选择「记录页」,记录ID参数绑定刚才创建的
inputRecordId变量,后续按需追加其他业务逻辑节点 - FSL端自定义快速操作的URL配置替换为Flow深度链接规则:
com.salesforce.salesforce1://flow/替换为你的Flow_API名称?inputRecordId={!RecordId}
- 激活Flow,为对应用户分配Flow运行权限即可
常见问题排查
- 点击按钮无响应:检查Salesforce移动端版本是否在240.0及以上,旧版本不支持该Scheme接收外部参数,需升级应用
- 跳转后显示空白页:核对快速操作里的合并字段拼写,大小写错误会导致FSL无法正常注入recordId,实际传值为空
- 跳转后提示记录不存在:检查当前用户对目标记录的共享访问权限,确认两个应用登录的是同一用户账号,该方案不支持跨账号传参
- 离线状态点击无效:该方案依赖移动端网络连接,离线场景下FSL无法唤起Salesforce移动端,可在按钮上增加在线状态判断,离线时提示用户联网后操作
内容的提问来源于stack exchange,提问作者Prateek Mordani
相关产品推荐
相关产品推荐

