今年のSIGNALで発表された新機能・新製品をまとめてみる

# この記事について

この記事は[Qiita Advent Calendar 2022](https://qiita.com/advent-calendar/2022)の[Twilioでできることや、それぞれの製品の使い始め方、Tipsや他システムとの連携方法など、Twilioのことなら何でも共有しよう！](https://qiita.com/advent-calendar/2022/twilio)1日目です。

Twilioでデベロッパーエバンジェリストをしている池原（[@neri78](https://twitter.com/neri78)）です。この記事では本年のSIGNALにおいて基調講演で取り上げられた新機能や新製品をまとめてみました。


https://www.signal2022.com/


なお、機能によってはGA（General Availability）ではなく、Betaとなっているものも存在します。ご注意ください。

# SIGNALとは？

SIGNALは、[Twilio](https://www.twilio.com/ja/)が開催している年次カンファレンスです。基調講演では製品やサービスの発表、会社の方向性などが発表されます。それ以外にもゲストスピーカーによる特別講演、顧客事例講演、技術講演などをメインプログラムとして開催しています。開発者向けにはトレーニングプログラム「Superclass」やライブストリーミング「SIGNAL TV（[1日目](https://www.twitch.tv/collections/LAECr73yIxejMQ)、[2日目](https://www.twitch.tv/collections/Zhs3hZwaJBct5g)）」なども組み込まれており、基礎から最新情報までを学べます。


# SIGNAL 2022基調講演で取り上げられた新機能・新製品

まずは基調講演で取り上げられた新機能・新製品です。順番については個人的に興味があるものを優先して取り上げています。SIGNAL後の11月11日に開催された[TwilioJP-UG Twilio SIGNAL 2022 recap](https://twiliojp-ug.doorkeeper.jp/events/145096)でも同様の発表をしていますのでそちらの資料も参照ください。

<script async class="docswell-embed" src="https://www.docswell.com/assets/libs/docswell-embed/docswell-embed.min.js" data-src="https://www.docswell.com/slide/Z4XPLZ/embed" data-aspect="0.5625"></script><div class="docswell-link"><a href="https://www.docswell.com/s/Neri78/Z4XPLZ-2022-signal-recap-ug">TwilioJP-UG Meetup - SIGNAL recap by @Neri78</a></div>


## Programmable Messaging API - スケジューリング・短縮URL機能

[Programmable Messaging](https://www.twilio.com/ja/messaging/programmable-messaging-api)はSMSやMMS、WhatsAppを取り扱えるメッセージングAPIです。日本の携帯電話番号に向けても米国番号や英数字送信者IDを使う、あるいは[問い合わせ](https://www.twilio.com/ja/help/sales)を行い、日本の番号を使ってSMSを送信できます。

このProgrammable Messagingで利用できる[メッセージングサービス](https://www.twilio.com/docs/messaging/services)に新たな機能が追加されました。


### メッセージのスケジューリング（GA）

これまではAPIを呼び出した際に即時でメッセージの送信が行われていましたが、スケジューリング機能を利用し、15分から7日間の間で送信日時を指定できるようになりました。

[Nodeヘルパーライブラリー](https://www.twilio.com/docs/libraries/node)を利用する場合は下記のように`sendAt`、`scheduleType`を設定し送信日時を指定します。

```js
const accountSid = 'ACxxxxxxxxx' // AccountSidの値
const authToken = 'xxxxxxxxx' // AuthTokenの値
const client = require('twilio')(accountSid, authToken);

client.messages
     .create({
        messagingServiceSid: MESSAGING_SERVICE_SID,
        body: 'SIGNAL 2022に参加いただきましてありがとうございます。楽しめましたか？',
        sendAt: new Date(Date.UTC(2022, 11, 1, 19, 0, 0)),
        scheduleType: 'fixed',
        to: MY_NUMBER
      })
     .then(message => console.log(message.sid));
```

### メッセージ内URLの短縮化とトラッキング（Public Beta）

これまでメッセージの中に短縮URLを埋め込む場合は[bitly](https://bitly.com/)などのサービスを用いてあらかじめ短縮URLを作成し、メッセージの本文として利用する必要がありました。

今回追加された機能を利用すると、__自分自身が保有しているドメイン__ をつかってURLを[短縮](https://www.twilio.com/docs/messaging/services?code-sample=code-send-a-message-with-a-messaging-service&code-language=Node.js&code-sdk-version=3.x#link-shortening-click-tracking)できるようになりました。また、追加機能として短縮URLのクリックをトラッキングできるようにもなっています。

短縮URL機能を利用する場合、あらかじめ[オーガニゼーション](https://www.twilio.com/docs/iam/organizations)をおよび利用する[ドメイン](https://www.twilio.com/docs/iam/organizations/domains)を設定しておく必要があります。

![twilio-organization.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176280/c05d5efa-398e-ac10-a438-db03c8706e02.png)

その後、メッセージングサービスの`Link Shortening`で利用するドメインを設定します。またこの画面で短縮URLがクリックされた際のトラッキングイベントを送信するコールバックURLをオプションとして設定できます。

![twilio-link-shortening.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176280/2778103e-6b31-5f06-426a-d653d7f37442.png)

上記の設定が完了した状態でURLを含む本文、そして`shortenUrls`を`true`と設定すると指定したドメインを利用した短縮URLが自動生成されます。

```js
const accountSid = 'ACxxxxxxxxx' // AccountSidの値
const authToken = 'xxxxxxxxx' // AuthTokenの値
const client = require('twilio')(accountSid, authToken);

const body = '(::) SIGNAL 2022のセッションはオンデマンドで視聴できます。こちらから登録を - https://www.signal2022.com/?reg=APAC';

client.messages.create({
        messagingServiceSid: MESSAGING_SERVICE_SID,
        to: MY_NUMBER,
        body: body,
        shortenUrls: true
}).then(msg => console.log(msg.sid)).catch(err => console.error(err));

```

実行結果は下記のようになります。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176280/8a7aeba8-4be7-55cb-7342-c0c4989812f3.png" width="400px">

## Twilio Verify - サイレントネットワーク認証(Public Beta)とFraud Guard（GA）

二要素認証（Two-Factor Authentication、2FA）機能を提供する[Twilio Verify](https://www.twilio.com/ja/verify)に新たな認証方式、Silent Network Authentication（サイレントネットワーク認証）が追加されました。

この方式は携帯電話で利用しているSIMを用いて認証を行います。通信キャリア経由で認証を行うため、ユーザーへのワンタイムコードの送信や、そのコードの入力を必要としません。

残念ながら現時点では日本の携帯番号には対応していませんが、将来実現するかもしれない認証の形としてこちらの動画でイメージをつかんでおくとよいかもしれません。


https://www.youtube.com/watch?v=28Y2DrgY_Pc

また、今回Twilio Verifyに[トラフィックパンピング](https://www.fcc.gov/general/traffic-pumping)を防止する[Fraud Gaurd](https://www.twilio.com/docs/verify/preventing-toll-fraud/sms-fraud-guard#how-can-i-monitor-sms-fraud-on-my-account)機能が追加され、本来支払う必要のない費用を低減するしくみを利用できるようになりました。

## Twilio Flex/Twilio Voice - Dialogflow CXとのネイティブ連携

Google Cloudが提供するDialogflow CXをコンタクトセンターソリューション[Twilio Flex](https://www.twilio.com/ja/flex)、あるいは音声製品[Twilio Voice](https://www.twilio.com/ja/voice)と連携し、バーチャルエージェントが通話に応答できるようになりました。

セットアップを行うにはGoogle Could側の[ドキュメント](https://cloud.google.com/dialogflow/cx/docs/concept/integration/twilio)、およびTwilio側の[ドキュメント](https://www.twilio.com/docs/voice/virtual-agent)を参照してください。

## Twilio Segment - Twilio Engage（GA）、Profiles Sync、Reverse ETL

[Twilio Segment](https://www.twilio.com/ja/segment-hello)は自社が運営するWebサイト、モバイルアプリケーション、デジタル広告などのさまざまな媒体におけるユーザーのデータを統合し、管理できる顧客データプラットフォーム（Customer Data Platform - CDP）です。

昨年の[Twilio アドベントカレンダー](https://qiita.com/kikutaro/items/f210cd4b2cf6be9b79bc)でも取り上げられています。


今回発表された新製品、[Twilio Engage](https://segment.com/product/twilio-engage)は、このSegmentプラットフォームで収集したユーザーのデータをもとに、あらかじめ定義されたカスタマージャーニーにおいて、特定の地点でTwilioが提供するSMSやEmailといったチャネルを用いてユーザーに働きかけを行える製品です。

https://www.youtube.com/watch?v=nhaKSvfpxIY



併せて、Segmentプラットフォームに今後、ユーザープロファイルをSnowflake、Google BigQuery、AWS Redshiftなどのデータウェアハウスと同期できる[Profile Sync](https://segment.com/product/profiles-sync/)機能や、データウェアハウスから個別のツールやソリューションに対してデータを配信できる[Reverse ETL](https://segment.com/product/reverse-etl/)機能が2022年Q4（12月ごろ？）にPublic Betaとして提供開始されることもアナウンスされました。

![Segment Profiles Sync & Reverse ETL](https://images.ctfassets.net/i8bfc4nr05rq/9zoCnZNbkSg5ieplaqAOB/0ba30aeb5353a11f599a59ad1827f3c6/image3.png)

イメージ出典:

https://segment.com/blog/profiles-sync-reverse-ETL-first-look/

詳細についてはこれからという感じですが、こちらからPublic Betaの招待登録を行えます。

- [Segment - Profiles Sync - Beta Invitation](https://learn.segment.com/profiles-sync-beta-request/)
- [Segment - Reverse ETL - Beta Invitation](https://learn.segment.com/reverse-etl-beta-request/)


# （おまけ）SIGNAL 2022近辺で発表されたプロダクト

ここからは基調講演では取り上げられなかったけれども個人的に開発者が興味を持ちそうな発表を取り上げます。今回、長年ベータ状態だった製品やツールがGAとなりました。

## Twilio Functions & AssetsのGA

Twilioを使ったアプリケーションをホストできるサーバーレス実行環境Twilio FunctionsおよびファイルホスティングサービスTwilio AssetsがともにGAを迎えました。Twilio APIへのアクセスを簡単にできるようなしくみやデプロイ環境の切り替え（Dev/Staging/Production）など、Twilioを用いたアプリケーション開発に特化した実行環境がSLAの対象になります。

https://www.twilio.com/ja/docs/runtime


初期のバージョンである __Classic__ Functions および __Classisc__ AssetsはGAの対象外となる点に注意です。

![functions-assets.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176280/61ed160b-382f-2f83-e16e-569ee7851dd3.png)



## Twilio CLIのGA

TwilioのAPIにコマンドラインからアクセスできる[Twilio CLI](https://www.twilio.com/ja/docs/twilio-cli/quickstart)もGAを迎えました。プラグインをインストールすると上記のTwilio Functions & Assetsを利用したアプリケーションをローカル環境で開発できるようにもなります。

![twilio-cli-ga.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176280/ea7b9ce3-fa40-35ee-b9ae-503100530850.png)


## Twilio Sans Mono

そして、TwilioからTwilio Sans Monoフォントがリリースされました。


https://github.com/twilio/twilio-sans-mono


プログラミング用途として特定のコーディングパターンで見やすいと考えられる合字や、Twilioならではの合字も含まれているフォントです。VSCodeなどの開発環境でも利用できるようになっています。お勧めは (::)!

![Twilio Sans Mono](https://github.com/twilio/twilio-sans-mono/blob/main/screenshots/mono-coding-ligatures-light@2x.png?raw=true)

# まとめ

いかがでしたでしょうか。これまでのSMSや電話といった「チャネルAPI」というよりも「カスタマーエンゲージメント」に関連した製品の発表が目立ったSIGNAL 2022でした。来年こそはオフライン会場に行きたいと思います。

また、一部の機能についてはSIGNALの開催期間とは独立してリリースされています。そのため最新情報を常にキャッチアップしたい！という場合はこちらをフォローいただければ幸いです

- [Twilio changelog（随時・英語）](https://www.twilio.com/changelog)
- [日本担当Product Marketing Managerによる案内（不定期・日本語）](https://www.twilio.com/blog/author/hmasaki)