Avortyx 查看完整页面

追踪与归因

表达式与函数

在路由筛选、Webhook 和回传中即时清洗、格式化和计算通话与线索数据。

表达式让 Avortyx 在通话和线索流经时重塑和计算数据:在姓名到达买家前清洗它、计算支付金额、为回传格式化日期。函数可以相互嵌套,小部件组合起来就是真正的逻辑。

它们适用于 Avortyx 填充令牌的任何地方,包括:

  • 联系人字段的默认值
  • Webhook URL 和回传正文
  • 路由规则中的筛选条件

每个表达式都有类型(String、Integer、Float 或 Time),其参数在求值前会转换为该类型。

示例数据

本页示例使用以下数据;每个表达式的结果写在 => 之后

{
  "first_name": "John",
  "last_name": "Smith",
  "birth_year": "1977",
  "yob": 2012,
  "mortgage_amount": 65000,
  "debt_amount": 8283.25,
  "started_at_utc": "2020-06-21 22:35:12 UTC"
}

String 表达式

表达式运行前,参数被视为文本。

[!String! ALPHANUMERIC_DASH(CONCAT([first_name], " ", [last_name])) !!]
=> john-smith

Time 表达式

表达式运行前,参数被视为时间。

[!Time! DATE_FORMAT(DATE_ADD([started_at_utc], 86400), "%Y-%m-%d %M-%S") !!]
=> "2020-06-22T18:35:12"

函数

case(statement)

逻辑

按顺序测试多个条件,返回第一个为真的条件的输出。

参数必填说明
statement必填将被求值的语句。
CASE('apple' WHEN 'apple' THEN 1 WHEN 'banana' THEN 2 ELSE 3 END)
=> 1

if(statement, output_when_true, output_when_false)

逻辑

检查一个条件,成立时返回一个值,不成立时返回另一个值。

参数必填说明
statement必填将被求值的语句。
output_when_true必填语句求值为真时输出的值。
output_when_false必填语句求值为假时输出的值。
IF(15 < 10, 10, 20)
=> 20

avg(*values)

数值

传入数字的平均值。

参数必填说明
*values必填此函数接受任意数量的数值。
AVG(1,2,3,4)
=> 2.5

count(*values)

数值

传入了多少个值。

参数必填说明
*values必填此函数接受任意数量的数值。
COUNT(1,2,3,4)
=> 4

max(*values)

数值

传入数字中的最大值。

参数必填说明
*values必填此函数接受任意数量的数值。
MAX(1,2,3,4)
=> 4

min(*values)

数值

传入数字中的最小值。

参数必填说明
*values必填此函数接受任意数量的数值。
MIN(1,2,3,4)
=> 1

round(value, precision)

数值

按您给定的精度把数字四舍五入到最接近的值。

参数必填说明
value必填要舍入的值。例如:
ROUND(8.8) => 9
ROUND(8.2) => 8
precision可选使用的精度。例如:
ROUND(8.75, 1) => 8.8
ROUND(8.2)
=> 8

rounddown(value, precision)

数值

按您给定的精度把数字向下舍入到较小的值。

参数必填说明
value必填要舍入的值。例如:
ROUND(8.8) => 8
precision可选使用的精度。例如:
ROUND(1.234, 2) => 1.23
ROUNDDOWN(1.234)
=> 1

roundup(value, precision)

数值

按您给定的精度把数字向上舍入到较大的值。

参数必填说明
value必填要舍入的值。例如:
ROUND(8.8) => 9
precision可选使用的精度。例如:
ROUND(1.234, 2) => 1.24
ROUNDUP(1.234)
=> 2

sum(*values)

数值

把传入的数字相加。

参数必填说明
*values必填此函数接受任意数量的数值。
SUM(1,2,3,4)
=> 10

alphanumeric_dash(value)

字符串

只保留字母 (a-z、A-Z) 和数字 (0-9),把空格变为短横线并去除两端空格。适合生成 slug 和 ID。

参数必填说明
value必填
ALPHANUMERIC_DASH(" ./;!!!]  hello waffle world!@#$%^&*($)  ")
=> "hello-waffle-world"

alphanumeric_underscore(value)

字符串

只保留字母 (a-z、A-Z) 和数字 (0-9),把空格变为下划线并去除两端空格。

参数必填说明
value必填
ALPHANUMERIC_UNDERSCORE(" ./;!!!]  hello waffle world!@#$%^&*($)  ")
=> "hello_waffle_world"

base64_decode(value)

字符串

解码 Base64 字符串 (RFC 2045),跳过 Base64 字母表以外的字符。

参数必填说明
value必填
BASE64_DECODE('dGVzdA==')
=> 'text'

base64_encode(value)

字符串

把值编码为 Base64 (RFC 2045),每 60 个编码字符后换行。

参数必填说明
value必填
BASE64_ENCODE('text')
=> 'dGVzdA=='

concat(*values)

字符串
参数必填说明
*values必填此函数接受任意数量的字符串值。
CONCAT('AB', 'CD', 'EF')
=> "ABCDEF"

contains(search, value)

字符串
参数必填说明
search必填如果 [value] 包含此字符串,则输出 true。
value必填将被检查的字符串。
CONTAINS('ABCD', 'A')
=> true

date_add(value, seconds)

字符串

把日期向后推移若干秒。

参数必填说明
value必填将被修改的日期。
seconds必填将被加上的秒数。
DATE_ADD([started_at_utc], 86400)
=> "2020-06-29 11:34:25 -0400"

date_format(value, format)

字符串

按您选择的格式写出日期。

参数必填说明
value必填将被修改的日期。例如 '2020-06-29 11:22:57 -0400'
format必填指定日期格式。可使用以下字符。

日期(年、月、日):
%Y - 含世纪的年份
%y - 年份 % 100 (00..99)
%m - 月份,补零 (01..12)
%B - 月份全称 (``January'')
%b - 月份缩写 (``Jan'')
%d - 日,补零 (01..31)
%j - 一年中的第几天 (001..366)

时间
%H - 小时,24 小时制,补零 (00..23)
%I - 小时,12 小时制,补零 (01..12)
%P - 上下午标识,小写 (``am'' 或 ``pm'')
%p - 上下午标识,大写 (``AM'' 或 ``PM'')
%M - 分钟 (00..59)
%S - 秒 (00..59)
%L - 毫秒 (000..999)
%N - 秒的小数位,默认 9 位(纳秒)
%z - 相对 UTC 的时区偏移(小时和分钟,例如 +0900)

星期
%A - 星期全称 (``Sunday'')
%a - 星期缩写 (``Sun'')
%u - 星期几(周一为 1,1..7)
%w - 星期几(周日为 0,0..6)

自 Unix 纪元起的秒数
%s - 自 1970-01-01 00:00:00 UTC 起的秒数。
%Q - 自 1970-01-01 00:00:00 UTC 起的毫秒数。
DATE_FORMAT([started_at_utc], "%Y-%m-%d %M-%S")
=> "2020-06-22T18:35:12"

date_parse(value, format)

字符串

读取以自然语言写成的日期或时间,并将其转换为日期。

参数必填说明
value必填日期或自然语言(英文)表达。

简单示例
thursday
november
summer
friday 13:00
mon 2:35
4pm
yesterday
today
tomorrow
last week
next week

复杂示例
3 years ago
a year ago
5 months from now
7 hours ago
7 days from now
in 3 hours

具体日期与时间
22nd of june at 8am
1979-05-27 05:00:00
03/01/2012 07:25:09.234567
2013-08-01T19:30:00.345-07:00
2013-08-01T19:30:00.34-07:00
format可选
DATE_PARSE("30 days from now")
=> "2020-07-29 15:42:57 UTC"

date_subtract(time, time_or_decimal)

字符串

从日期中减去一个时间戳或若干秒。

参数必填说明
time必填将被处理的时间戳。
time_or_decimal必填将从第一个参数 time 中减去的时间戳或小数。
DATE_SUBTRACT([current_time_utc], [started_at_utc])
=> "2020-06-29 11:34:25 -0400"

date_to_time_zone(value, time_zone)

字符串

把日期转换到另一个时区。

参数必填说明
value必填[lead_created_at]
time_zone必填
时区示例:
DATE_TO_TIME_ZONE([lead_created_at], "Eastern Time (US & Canada)")
=> "2020-07-29 15:42:57"

digest_md5(value)

字符串

返回值的 MD5 哈希 (RFC 1321):128 位(16 字节)摘要。

参数必填说明
value必填
DIGEST_MD5('text')
=> 90015098...

digest_sha1(value)

字符串

返回值的 SHA-1 哈希,按 NIST 在 FIPS PUB 180-1 中的定义。

参数必填说明
value必填
DIGEST_SHA1('text')
=> a9993e36...

digest_sha2(value)

字符串

返回值的 SHA-256 哈希:按 512 位块计算的 256 位摘要。

参数必填说明
value必填
DIGEST_SHA2('text')
=> ba7816bf8...

downcase(value)

字符串

把所有字母变为小写。

参数必填说明
value必填
DOWNCASE("HELLO World")
=> "hello world"

find(search, value)

字符串
参数必填说明
search必填查找 [search] 在 [value] 中的整数索引。如果 [value] 中没有 [search],则不输出任何内容。
value必填将被处理的字符串。
FIND('BC', 'ABCD')
=> 2

generate_uuid()

字符串

生成新的通用唯一标识符 (UUID)。

GENERATE_UUID()
=> "518e8221-a29e-72c1-a716-486156481234"

left(value, length)

字符串
参数必填说明
value必填将被处理的字符串。
length必填从左边开始提取的字符数。
LEFT('ABCD', 2)
=> "AB"

len(value, length)

字符串
参数必填说明
value必填将被处理的字符串。
length必填以整数输出字符串长度。
LEN('ABCD')
=> 4

oauth_access_token(oauth_connection_key)

字符串

从您的某个 OAuth 连接获取访问令牌,用于需认证的 Webhook。

参数必填说明
oauth_connection_key必填创建连接时所选的密钥。
OAUTH_ACCESS_TOKEN('marchex_v2')
=> "sdjf9032fj239fj90sjf90wjf390"

right(value, length)

字符串
参数必填说明
value必填将被处理的字符串。
length必填从右边开始提取的字符数。
RIGHT('ABCD', 2)
=> "CD"

seconds_to_hms(seconds)

字符串

把秒数显示为 HH:MM:SS,例如通话时长。

参数必填说明
seconds必填
SECONDS_TO_HMS(3672)
=> "01:01:12"

split(value, pattern, index)

字符串

按分隔符拆分值,并返回您所要索引处的片段。

参数必填说明
value必填将被修改的文本。
pattern必填pattern 是一个字符串,其内容用作拆分 str 时的分隔符。如果 pattern 是单个空格,则按空白拆分 str,并忽略首尾空白和连续的空白字符。
index必填index 是拆分后要返回的子串索引。示例:

SPLIT([full_name], ' ', 2) 返回 "Smith"
SPLIT("John Andrew Smith", ' ', 0) 返回 "John"
SPLIT("John Andrew Smith", ' ', 1) 返回 "Andrew"
SPLIT("2019-01-12", '-', 1) 返回 "01"
SPLIT("John Smith", " ", 1)
=> "Smith"

strip(value)

字符串

去除值开头和结尾的空白。

这里的空白指 null、水平制表符、换行、垂直制表符、换页、回车和空格。

参数必填说明
value必填
STRIP("    hello world   ")
=> "hello world"

substitute(value, search, replacement)

字符串
参数必填说明
value必填将被处理的字符串。
search必填将被替换的文本。
replacement必填替换用的文本。
SUBSTITUTE('green cat, blue cat, yellow cat', 'cat', 'dog')
=> "green dog, blue cat, yellow cat"

substitute_all(value, search, replacement)

字符串

把某段文本的每一处出现都替换为另一段。

参数必填说明
value必填将被处理的字符串。
search必填将被替换的文本。
replacement必填替换用的文本。
SUBSTITUTE_ALL("green cat, blue cat, yellow cat", "cat", "dog")
=> "green dog, blue dog, yellow dog"

substring(value, start, length)

字符串

返回字符串的一段:您指定范围内的字符。

参数必填说明
value必填将被修改的文本
start必填开始提取的位置。第一个字符的索引为 0。
length必填要提取的字符数。传入 -1 则提取字符串的剩余部分。
SUBSTRING([started_at_offer_time_zone], 0, 9)
=> "2020-09-20"

titleize(value)

字符串

把每个单词的首字母大写。

参数必填说明
value必填
TITLEIZE("  hello world  ")
=> "  Hello World  "

to_currency(value, symbol)

字符串

把数字格式化为带货币符号和千位分隔符的金额。

参数必填说明
value必填要格式化为货币的数值金额。
symbol可选可选的货币符号(例如 $、€、£)。默认为 $。
TO_CURRENCY("1234567.89")
=> "$1,234,567.89"
TO_CURRENCY("1234567.89", "€")
=> "€1,234,567.89"

to_formatted_number(args, **, block)

字符串

按当地写法格式化电话号码。

参数必填说明
args可选
**可选
block可选
TO_FORMATTED_NUMBER(" + 1 719-852-2985 ")
=> "(719) 522-0377"

to_integer(value)

字符串

把值转换为整数。

参数必填说明
value必填
TO_INTEGER(' 15.15 ')
=> 15

to_json(value)

字符串

把值转换为 JSON 字符串。

参数必填说明
value必填
TO_JSON({example: "value"})
=> {"example": "value"}

to_phone_number(value)

字符串

把电话号码规范化为国际格式。

参数必填说明
value必填
TO_PHONE_NUMBER(" 1 (719) 852 2985 ")
=> "+17198522985"

upcase(value)

字符串

把所有字母变为大写。

参数必填说明
value必填
UPCASE("Hello World")
=> "HELLO WORLD"

url_decode(value)

字符串

把百分号编码序列(% 后跟两位十六进制数字)还原为其代表的字符。

参数必填说明
value必填
URL_DECODE("hello%20world%2C%20how%20are%20you%3F")
=> "hello world, how are you?"

url_encode(value)

字符串

对所有非字母和数字的字符进行百分号编码,使值可安全用于 URL。

参数必填说明
value必填
URL_ENCODE("hello world, how are you?")
=> "hello%20world%2C%20how%20are%20you%3F"

usa_zip_code(value)

字符串

只保留前五位数字,把 ZIP+4 转换为标准美国邮编。

参数必填说明
value必填
USA_ZIP_CODE("USA 90210 OR")
=> "90210"

准备好路由您的第一通电话了吗?

把号码指向 Avortyx,通话从第一声铃响起就开始评分、路由和结算。申请访问,或与我们的团队一起梳理您的流量。