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) だけを残し、スペースをハイフンに置き換え、両端のスペースを取り除きます。スラッグや 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)

文字列

NIST が FIPS PUB 180-1 で定義した、値の SHA-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必須[value] 内の [search] の位置を整数で返します。[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)

文字列

認証付き Webhook のために、OAuth 接続の 1 つからアクセストークンを取得します。

引数必須説明
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 が半角スペース 1 つの場合、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)

文字列

パーセントエンコードされたシーケンス(% の後に 16 進数 2 桁)を、元の文字に戻します。

引数必須説明
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)

文字列

最初の 5 桁だけを残し、ZIP+4 を標準的な米国の郵便番号にします。

引数必須説明
value必須
USA_ZIP_CODE("USA 90210 OR")
=> "90210"

最初のコールをルーティングしてみませんか?

番号を Avortyx に向ければ、最初の呼び出しからコールのスコアリング、ルーティング、精算が始まります。アクセスをリクエストするか、チームと一緒にトラフィックを確認しましょう。