如何通过Zapier Push从URL提取指定开头的Salesforce记录ID?
从URL中提取Salesforce记录ID(Zapier Push实现)
Alright, let's figure out how to pull that Salesforce record ID from your URL using Zapier Push. I've got two solid methods for you—one that requires zero code, and another for when you need a bit more flexibility:
方法1:用Zapier Formatter快速提取(无代码)
这是最省心的方式,适合大多数场景:
- 在你的Zap流程里,添加一个 Formatter by Zapier 步骤,选择「Text」分类下的「Extract Pattern」操作。
- 在「Input」字段中,选择触发Zap时获取到的URL数据(也就是你示例里的
https://useindio.lightning.force.com/lightning/r/Opportunity/006f400000AiVufAAF/view这类链接)。 - 重点来了,在「Pattern」框里填入正则表达式:
006[a-zA-Z0-9]{15}- 解释一下:
006是Opportunity对象的ID前缀(不同对象前缀不同,比如Account是001,Lead是00Q),[a-zA-Z0-9]{15}匹配后面固定的15位字符,加起来正好是Salesforce标准的18位唯一ID。
- 解释一下:
- 点击测试,Zapier就会精准提取出
006f400000AiVufAAF这个ID啦。
方法2:用Zapier Code步骤自定义提取(适合多前缀场景)
如果你的Zap需要处理多种Salesforce对象(比如同时提取Opportunity、Account的ID),可以用JS脚本实现通用提取:
- 添加一个 Code by Zapier 步骤,选择「JavaScript」作为运行语言。
- 在「Input Data」区域,新增一个字段(比如命名为
url),把要处理的URL数据关联进来。 - 填入下面的脚本:
const url = inputData.url; // 匹配任意3位Salesforce对象前缀开头的18位ID const idRegex = /[A-Z0-9]{3}[a-zA-Z0-9]{15}/; const matchedId = url.match(idRegex); // 输出提取到的ID,没有匹配到则返回null output = { extractedSalesforceId: matchedId ? matchedId[0] : null };
- 运行测试后,脚本会自动识别URL里的18位Salesforce ID,不管前缀是什么。如果需要提取15位ID,只需要把
{15}改成{12}就行。
小提示:如果你的URL里可能存在多个ID(虽然这种情况很少见),可以调整代码取第一个匹配结果,或者根据前缀筛选特定对象的ID。
内容的提问来源于stack exchange,提问作者Nathan Bruning
相关产品推荐
相关产品推荐

