使用 Zapier 代码将全名拆分为名字姓氏



我们使用webhook将数据从Vimeo提取到Zapier,并将其发送到我们的CRM(InfusionSoft(。

我没有编码经验,并且在Zapier代码中运行简单的JS脚本时遇到问题。目标是将嵌入的客户名称(作为名字和姓氏(拆分为两个输出:名字、姓氏。

我从 Zapier 找到并尝试的代码是这样的:

if ' ' in input['fullName']:
first, last = input['fullName'].split(' ', 1)
else:
first, last = input['fullName'], None # fallback
return {
'firstName': first,
'lastName': last
}

这里的任何帮助都非常感谢!

谢谢 摩根

扎皮尔编码 返回错误

这是你的代码的Javascript版本。您可以将 null 更改为 else 子句中所需的任何值。

let first, last;
if ( input['fullName'].indexOf(" ") != -1 )
[first, last] = input['fullName'].split(' ', 2);
else
[first, last] = [input['fullName'], null];
return {
'firstName': first,
'lastName': last
}

对于你以后的问题。我认为这是因为您将其用作原始而不是在函数中,因此我将为您编写修复程序。对于Zapier,他们的文档说你所有的值和变量都以inputData开头。因此,要应用上面的原始代码而不是在函数调用中,那么您必须这样做。

if ( inputData.fullName ) {
let first, last;
if ( inputData['fullName'].indexOf(" ") != -1 )
[first, last] = inputData['fullName'].split(' ', 2);
else
[first, last] = [inputData['fullName'], null];
return {
'firstName': first,
'lastName': last
}
} else {
// inputData.fullName is not available, do something else.
}

如果要在函数调用中使用它,请按照以下步骤操作:

function getFullName(inputData) {
var first, last;
if ( inputData['fullName'].indexOf(" ") != -1 )
[first, last] = inputData['fullName'].split(' ', 2);
else
[first, last] = [inputData['fullName'], null];
return {
'firstName': first,
'lastName': last
}
}
if ( inputData.fullName ) { 
var someobject = getFullName(inputData);
} else {
// no inputData.fullName
}

您有两个选择,仅供未来的读者使用,因为答案已被接受。

var arr = inputData.fullName;
if (arr != undefined && arr != null) {
var name = arr.concat(" ").split(' ');
var i = 0;
if (i < 2){
name[i] = name[i]; 
i++;
}
return {'firstName': name[0], 'lastName': name[1]};
} 
else {
return {'firstName': 'N/A', 'lastName': 'N/A'} 
}

如果需要,使用此代码,您可以稍后添加中间名。这还将检查null值或零值并提供响应(您可以根据需要进行编辑(。

其次,你可以只使用 Zapier 的格式操作,运行文本事件并选择在 [:space:] 上拆分。

我意识到我的第一篇文章有一个错别字,检查空值引起了混乱(感谢凯文的输入(。它肯定不会更快,但无论输入如何,它都不应该错误我们的 zapier。

最新更新