こんにちは、@yuki0101と申します。
普段はRailsやFlutterで開発している都内の学生です。
この記事は、Qiita Advent Calendar 2021 「Twilioを使うためのコツ、TIPSなど、Twilioのことなら何でも共有しよう!」の記事です。
19日目の今日は、
Twilio ⇆ Salesfoce なシステムを非エンジニアの方でも簡単にセットアップできるよう、
ノーコードで行う方法を紹介します!
どうして作ろうと思った?
(実現方法だけ知りたい方は読み飛ばしてください。)
私が所属する組織は営業職の方が多い組織で、オフィスには毎日ひっきりなしに電話がかかってきます。
そんなある日、
「顧客Aさんからお電話なのですが、担当って〇〇さんですよね?あ、でも今日リモートか... 」
「一旦slackで確認するので、顧客Aさんには後ほど折り返しますと伝えます。」
という会話が耳に入りました。
こういった会話は、電話まわりのシステムが完全に最適化されていないオフィスならよくありそうな会話ですよね。
コロナで営業の方のリモートワークが一般化して、さらに以前よりも発生しやすくなった印象です。
そんな会話を聞いた私はなんとなく違和感を感じ、
「Salesforceで顧客管理をしている組織なら、そこら辺のやりとりも削減することができるのでは?」
「Zapierを使えば、エンジニアがいない or 手を貸せない場面でも簡単にシステムの構築ができるんじゃないか?」
という考えにいたりました。
これが、私がこのシステムを作った背景・理由です。
どう作るの?
さて、本題です。
事前準備
- Twilioのアカウント作成
- こちらなどを参考に、Twilioにサインアップしてください。
- Salesforceのアカウント作成 & ユーザ設定
- こちらを参考に各ユーザのSlackのユーザID調べ、Salesforceユーザのどこかのフィールドに記載してください。
-
Zapierのアカウント作成
- こちらからアカウントを作成します。
- connectionsより、TwilioやSalesforce,Slackとの連携を完了してください。
Zap作成
0. 新規のZapを作成する
ZapierのTOP画面にある「Create Zap」から、新たにZapを作成しましょう。
1. 顧客からの着電を検知する
「Create Zap」クリック後、以下のような画面に遷移するので、
検索窓に「Twilio」と入力してTwilioを選択しましょう。
「Choose app & event」で、「New Call」を設定します。
「Choose Account」では、「事前準備」でZapierと連携させたTwilioアカウントを選択してください。
「Set up webhook」では、あるURLが表示されます。
これを以下画像2枚目のように、Twilio側で購入した電話番号の「A CALL COMES IN」(英語版)に設定してください。
最後に「Test Trigger」を実行して、本設定は完了です。
(実行前に一度電話をかける必要がある可能性があります。)
以上の設定で、TwilioからZapierに着電の情報を渡すところまでが完成しました。
2. Salesforceでレコードを取得する
先程追加したTwilioのActionの下にある「+」ボタンを押すと、先程も表示されたようなAction選択画面が開きます。
検索窓に「Salesforce」と入力してSalesforce PREMIUMを選択しましょう。
(無料でも利用できるSalesforce Essentialsを選択しても構築できるそうですが、筆者は試せておりません。)
「Choose app & event」で「Find Record」を設定します。
「Choose account」では「事前準備」で連携させたSalesforceアカウントを選択してください。
「Set up action」では、
- 「Salesforce Object」には検索したいオブジェクト(Leadなど)
- 「Field to Search By」には該当オブジェクトで顧客の電話番号が記載されているフィールド
- 「Search Value」には「Caller: ~」(顧客の電話番号)
を設定してください。
最後に「Test Action」を実行して、本設定は完了です。
こちらの設定で、TwilioがZapierに渡した着電の情報をもとに、SF内のレコードを検索して所有者IDを取得するところまでが完成しました。
3. 取得したレコードの所有者(Owner)情報を取得する
(「2.」と同様に)
「+」ボタンを押して「Salesforce」を検索してSalesforce PREMIUMを選択しましょう。
「Choose app & event」で「Find Record」を設定します。
「Choose account」では「事前準備」で連携させたSalesforceアカウントを選択してください。
(ここからが「2.」とは異なります。)
「Set up action」では、
- 「Salesforce Object」には「ユーザ」(User)
- 「Field to Search By」には「ユーザID」
- 「Search Value」には「事前準備」でSlackのユーザIDを記載したフィールド
を設定してください。
最後に「Test Trigger」を実行して、本設定は完了です。
こちらの設定で、TwilioがZapierに渡した着電の情報をもとに、SF内のレコードを検索して所有者IDを取得し、その所有者IDのSlackのユーザIDを取得するところまで完成しました。
4. 担当者にSlackで通知する
「+」ボタンを押して検索窓に「Slack」と入力してSlackを選択しましょう。
「Choose app & event」で「Send Channel Message」を設定します。
「Choose Account」では「事前準備」で連携させたSlackアカウントを選択してください。
「Set up action」 では、「Channel」にはメッセージを飛ばしたいチャンネルを設定し、「Message Text」にはSlackに投稿したいメッセージを入力します。ここでひと工夫必要です。
以下画像のように「<@ 」+「SlackのユーザID」+「>」と記述することで、メンションが飛ばせます。
また、Slackのメッセージには「電話がありました」という文言や、顧客の電話番号、氏名なども記載されていれば嬉しいですよね。
「SlackのユーザID」は「3. Find Record in Salesforce」をクリックする開く項目一覧から見つけることができます。
電話番号は「1. New Call in Twilio」から、顧客氏名は「2. Find Record in Salesforce」から見つけられます。
それぞれの項目は、カーソルがあるところに挿入されるので、必要なところにカーソルを合わせた上で項目を追加していくと簡単です。
最後に「Test Action」を実行して、本設定は完了です。
実際に、指定したSlackチャンネルにメンション付きのメッセージが飛んでいるはずです。
5. ZapをONにする
最後に、ZapをONにすれば完了です!
試しに、使用したTwilio番号に電話をかけてみてください。
まとめ
本記事では、ZapierによってTwilioとSalesforceを連携させ、ノーコードで顧客からの着信を担当者にslack通知するシステムの構築方法を紹介しました。ZapierやTwilio、Salesforceを用いた各方面との連携はまだまだ深く掘り下げられていないので、今回のようなシステム以外にも実現できることが多そうだなと感じました。また機会があれば、別の使い方で業務上の課題を解決できないか、探ってみたいですね。