Zapierと連携する方法

Zapierと連携する方法

iPaaSと呼ばれる、SaaSツール同士を繋げられるZapierというサービスを使って、チャネルトークとSalesforce、hubspot、zendeskなど様々なCRMツールと連携できるようになります。

0. Zapierでアカウントが作成してあり、Premiumのツールが使えるプランであることを前提にします

Webhooks by Zapierを使うためにpremium appsが使える必要があります。(Starterプラン以上)

1. Create Zapしましょう!

Zapierの管理画面のZapsメニューにて、Create Zap ボタンを押して、作成開始しましょう

image

2. トリガーにてWebhooks by ZapierCatch Hook を選択してContinueボタンを押します

image

3. 生成されたWebhook urlをコピーして、Continueボタンを押します

image

4. チャネルトーク管理画面にて、チャネルの設定>Webhook>新しいWebhookを作成にて、URLの項目に先ほどコピーしたwebhook urlを貼り付けます。その他も以下のように設定して確認します

※Webhook使用のためには、有料プランをご利用している必要があります。

image

5. こちらのプレビューページを開いて、テストでチャットを送ってみます!

image
こちらのプレビュー画面のチャットボタンを開いて、以下のように何かしらのメッセージを送ってみてください
こちらのプレビュー画面のチャットボタンを開いて、以下のように何かしらのメッセージを送ってみてください

image

6. トリガーのテストで、先ほどのメッセージがwebhook urlに飛んだかをテストします

image

このように表示されれば成功です!👏

Continueボタンを押して、他のCRMとのつなぎこみに入って行きましょう!

image

💡

webhookのpayload一番上のeventには、pushpost の2種類がありますが、 postはdeprecatedされているため、pushのみフィルタリングして活用いただければ幸いです。

この後のアクションは、以下のpayloadサンプルを見ながら実装してみてください

💜

チャネルトーク問い合わせ情報を、hubspot、salesforce、zendesk、slackに連携することができますが、Zapierが万能だとは思わずに、なるべく最小限のプロパティが連携から始めるのをおすすめします! 連携したい情報やプラットフォームによって、連携方法が異なるため、簡単な連携アドバイスとして2つの連携方法例を以下に説明します!

例1) 新しいチャットが生成されると、該当ユーザーのアクション履歴(もしくはチケット)に追加 一番簡単!でtask数も少なく、おすすめ

  1. 新しいチャットのみフィルタリング

【前提知識☕️】

  • type には、userChatmessage の値が存在します
  • userChat は以下の条件でイベント送信されます
    • 新しいチャットが生成された時 (チャットボットのボタン選択は含まず、最初に担当者にプレーンテキストを送信した時)
    • 担当者が終了リクエストをした後に、お客様が「チャットを続ける」をクリックして、さらにプレーンテキストを送信しもう一度チャットを始めた場合

【設定方法⚙】

→ そこで、以下のようにフィルタリングをかける

  • userChatにフィルタリングをかける
  • 上記の2. のパターンを除外して完全に新しいuserChatが開かれた時のみをフィルタリングするために、Entity First Opened At (完全に最初にuserChatが開かれた時)と Entity Opened At (終了リクエスト後にお客様が「チャットを続ける」をクリックしてもう一度チャットを始めた場合更新される)が一致するとき
  • image

2. アクションで、プラットフォームで該当ユーザーを探して、チャット履歴を追加する

【前提知識☕️】

  • プラットフォーム側のチャット履歴の題名をわかりやすいようAya, 内容:こんにちは!のように連携したい場合、以下のように連携できます
  • Entity Name , 内容:Refers Message Plain Text

  • 接客チャットへのリンクを連携するとクリックひとつで該当の問い合わせに飛べるので便利です。以下のように連携できます。
  • https://desk.channel.io/#/channels/Entity Channel id/user_chats/Entity Id

  • (接客チャットのId(Entity Chat Id)も、プラットフォームのプロパティに追加しておくと、検索時に楽になるため連携をおすすめします)
  • (refers.user.profile のオブジェクトの中にチャネルトークのフォーム機能や会員情報連携で取得している顧客プロフィール情報が入っています)
    • (Refers User Profile Email Refers User Profile name Refers User Profile Mobile Number などで取得できます)

【設定方法⚙】

  • 顧客プロフィール情報の中で、プラットフォームで該当ユーザーを探すキーになるものをFind(検索)して、Createしましょう (もしくは単純にチケットをcreateしましょう)
  • 💡

    プラットフォームによって方法が異なりますので、プラットフォームに合う方法で設定しましょう。Find アクションやCreate アクションがあるプラットフォームの場合可能です。※ チャネルトークでは把握しきれていないため、ご自身でのリサーチをお願いいたします!🙇‍♀️🙇‍♀️

例2) チャネルトークのフォーム機能でemailや電話番号などの情報を取得したらカスタマーを追加する方法

  1. 顧客プロフィールにemailなどの情報が入っているときのみフィルタリング

【前提知識☕️】

  • チャネルトークのフォーム機能にて顧客情報が追加されると、Refer User Profile EmailRefer User Profile Mobile Number などのプロフィール情報が送られるようになります

【設定方法⚙】

  • Refer User Profile Email が存在する場合

もしくは

  • Refer User Profile Mobile Number が存在する場合

をフィルタリング

image

2. Find or Create CustomerやContactなどのアクションで検索しましょう。検索結果がない場合は、新規でCreateするようにしましょう

  • Find or Create Customer in Shopify
  • Find or Create Contact in Hubspot

などのアクションを使いましょう

3. 2.にて検索結果がある場合は、最新情報にUpdateしましょう

  • Update Customer in Shopify
  • Update Contact in Hubspot

などのアクションを活用しましょう

例3) チャットをチケットに追加して、ステータス管理

  1. ステータス管理に便利なチャットのみフィルタリング

【前提知識☕️】

  • チャネルトークではuserChatmessage の2種類のイベントを連携できるが、含まれるデータが異なるため、それぞれのZapを作成(計2つのZap)して連携をするとわかりやすい
  • チャネルトークでは、チャットのステータスとして以下のように管理します
  • unassigned :担当者なし

    assigned :担当者あり

    holding :保留中

    solved :終了リクエスト済み

    closed :終了済み

    trash:削除済み

  • ステータス管理には必要ないbotが実際の送ったメッセージ(「保留にしました」などのlog以外)は除外する
  • 接客チャット中のみ連携するため、State プロパティがあるときだけ連携する

【設定方法⚙】

message TypeとuserChat Type でそれぞれのZapを作成していく

  • message Typeの場合、
    • Typemessage と等しい
    • Refers User Chat State が存在するときだけ
    • Entity Person Typeuser と等しい
    • → これにより接客チャットが始まってからのuserからのメッセージは全て受け付ける

      もしくは、

    • Typemessage と等しい
    • Refers User Chat State が存在するときだけ
    • Entity Log Action が存在するときだけ
    • → これにより接客チャットが始まってからのlogメッセージは全て受け付ける

  • userChat Typeの場合、Type
    • Entity Message Person Typebot と等しくない
    • TypeuserChat と同じ
    • Entity State が存在するときだけ
    • → これにより接客チャットが始まってからのuserChat Typeのイベントは全て受け付ける

message typeの場合
message typeの場合
userChat typeの場合
userChat typeの場合

2. Code by Zapierを使って、チャネルトークとプラットフォームのステータスIDをマッチング

【前提知識☕️】

  • チャネルトークで提供するステータス(unassigned assigned holding solved closed trash )とプラットフォームで提供するステージIDが異なるため一致させる必要があります

【設定方法⚙】

  • Code by Zapierをアクションで追加し、Run Javascriptを選択する
  • Input Dataに
    • 一つ目の入力欄に stateと入力
    • 二つの目の入力欄は、
      • message Typeの場合、Refers User Chat State
      • image
      • userChat Typeの場合、Entity State
      • image

  • コードは以下のように記入する
  • コードサンプル
    // this is wrapped in an `async` function
    // you can use await throughout the function
    
    let hsStateId = 0;
    
    switch (inputData.state) {
      case "unassigned":
        hsStateId = 1; // 担当者なし 数字はプラットフォームで異なります。御社に合わせて入れてください
        break 
      case "assigned":
        hsStateId = 2319375; // 担当者あり 数字はプラットフォームで異なります。御社に合わせて入れてください
        break
      case "holding":
        hsStateId = 2319470; // 保留 数字はプラットフォームで異なります。御社に合わせて入れてください
        break
      case "solved":
        hsStateId = 4; // 終了リクエスト済み 数字はプラットフォームで異なります。御社に合わせて入れてください
        break
      case "closed":
        hsStateId = 14023357; // 完了済み 数字はプラットフォームで異なります。御社に合わせて入れてください
        break
      case "trash":
        hsStateId = 2319339; // 削除済み 数字はプラットフォームで異なります。御社に合わせて入れてください
        break
    }
    
    output = {hsStateId: hsStateId};
    image

3. すでに該当の問い合わせのチケットが存在するか検索してObject IDを取得する、なければチケットをCreate(作成する)

【前提知識☕️】

  • Find Ticket アクション(hubspotの場合、Find Ticket in Hubspotアクション)などを活用するのがおすすめ
  • Find(検索)結果がある場合は、プラットフォーム側のチケットのIDであるObject IDを取得でき、次のアクションでこのObject IDに対してUpdate(更新)ができる
  • Find(検索)結果がない場合に、Create Ticketをしてくれるオプション設定があるためこれを利用する
  • プラットフォーム側でチャネルトークの Chat Id を連携するためのプロパティをカスタム追加しておくことで、重複なく正確にチケットの追加と更新ができます
💡

チャネルトーク以外のプラットフォームのアクションは、該当プラットフォームのガイドやサポートチームに問い合わせください。チャネルトークでは全てを把握しておりません🙇‍♀️🙇‍♀️

【設定方法⚙】

  • プラットフォームにchat_idなどのプロパティを追加しておきます(追加方法はプラットフォーム側のガイドやサポートチームにお問い合わせください🙇‍♀️)
  • Find(検索)する際は、プラットフォームにカスタム追加したchat_id プロパティとチャネルトークのChat Id が一致するチケットを探します
  • message Typeの場合、

    image

    userChat Typeの場合、

    image

  • Find(検索結果)がない場合に、チケットをCreateするかというオプションをオンにしてください
  • image
  • Createする場合の設定は以下のようにする
  • message Typeの場合、

    userChat Typeの場合、

4. 検索したチケットがある場合、最新のステータスに更新する

【前提知識☕️】

  • 3. で検索結果があり、Object IDが取得できたら、このObject ID のチケットに対してUpdate(更新)をかけられる
  • 2. でチャネルトークのState とマッチングさせたステージIDをUpdate(更新)する

【設定方法⚙】

  • 以下のように設定しましょう
image

⚠️

ZapierのProfessional以上を使っている場合、処理が遅れたり失敗するとZap Historyページにて、waiting(Scheduled)ステータスになり、AUTOPLAY(一定時間待機後に自動で再実行)がされますが、上記のようにステータスの変更を連携したい場合、順番が狂ってしまうためオフにしておくのをおすすめします。 もしくは、遅れがちな処理の間にDelay by Zapierを噛ませて、待機してから実行するのも方法かもしれません

image

💜

このほかZapierを使って、担当者idや顧客のプロフィール情報など様々な連携ができます。 ただし、異なるプラットフォームを繋げるため上記連携のように、チャットリンクと顧客名、最初のメッセージ(本文)のみなどなるべくシンプルに連携されるのをおすすめします。 チャネルトークがwebhookから提供している情報をほかにも見たい場合は、こちらをご覧ください