GASでスプレッドシートの顧客データをCRMに12時間ごとに自動連携
GASでスプレッドシートの顧客データをCRMに12時間ごとに自動連携

GASでスプレッドシートの顧客データをCRMに12時間ごとに自動連携

GASのCS活用術!ということで、 OpenAPIでスプレッドシートの顧客データをCRMに12時間ごとに自動連携する方法についてガイドします✨

GASとは?

Google Apps Scritpというグーグルの無料でサーバーレスにコード(スクリプト)を作成して、プログラムを実行したりバッチ処理ができるサービスです。もっと簡単にいうと開発者でなくても、ぱぱっとコードを書いて、グーグルのクラウドサービス(グーグルスプレッドシートなど)を活用しながら、業務を効率化できてしまうんです。

CS(カスタマーサクセス・カスタマーサポート)でのGAS活用とは?

カスタマーサポートやカスタマーサクセスに関わっている人であれば、日々CRM(顧客管理ツール)やサポートツールを使っていると思います。そんなときに、お客様の情報をみながら問い合わせをしたり、その情報をもとにメールを送ったりすることが多いでしょう。ただし、こうしたデータを扱うとなるとどうしても開発者にお願いをして時間がかかってしまったり、開発者が社内にいない場合には諦めるということもあるでしょう。

そこで、カスタマーサポートやサクセスの人がGASを使ってこうしたデータのやりとりを自身で行えるように、スプレッドシートの顧客データをチャネルトークのCRMに12時間ごとに自動連携するスクリプトの作成方法をガイドします!開発ツールや技術は仕組みを知ることが大きな第一歩です。見ていきましょう!

openAPIでスプレッドシートの顧客データをCRMに12時間ごとに自動連携しましょう!

1. スプレッドシートを作成していきましょう

ガイドを開く

チャネルトークなどサービスに連携するには、サービスの形式に合ったかたちでデータを作る必要があります。チャネルトークの場合には、例えば、以下のように作成すると動くように作成されています。

以下のテンプレートを提供するので、ここからカスタマイズされると楽に作れます。

image

  • テンプレートにそのまま書き込まず、以下の画像を参考に他のワークブックにコピーして使ってください!^^
    image
  • テンプレートの中で連携したい情報は、そのまま活用してください^^
  • 連携したくない情報は列ごと削除してください
  • ただし、memberIDは顧客を識別するためのIDなので、必須です
  • 電話番号とメールどちらかも入力必須です
  • こちらの顧客情報以外にも、任意の顧客情報をカスタムで連携できます。

では、詳しくみていきましょう!

✔️データキーとは?

image
データキーはこちらにも表示されます
データキーはこちらにも表示されます

1行目は、データキーのカラムです。チャネルトークで顧客データの種類を識別するにに使われます。2行目以降にそれぞれのカラムに合った顧客データを入力していってください。

※ カラムに入力する際に、profile. は抜いた値を入力してください!詳しくは上のスプレッドシートを参考にしてくださいませ!

まずはデフォルトで提供されるデータキーから確認していきましょう!

・デフォルトで提供されるデータキーとは?

memberId

  • 顧客IDです

name

  • 顧客名です

email

  • メールアドレスです
  • @のついた正しい形式でないと連携時にエラーが出ます

mobileNumber

  • 携帯電話番号です
  • "819012348832"のように、{国番号}{初めの0を取った電話番号}で入力してください!こちらも正しい形式でないと連携時にエラーが出ます。
  • 文字列として認識する必要がありますが、スプレッドシートでは数字として認識されてうまくいかないことがあります。以下のように試してみてください

avatarUrl

  • 顧客プロフィールの画像urlです
  • 正方形のものを指定してください

・任意で連携できるデータキー

デフォルト以外にも任意のデータキーを連携できます。

✔︎連携できるデータの型とは?

チャネルトークに連携できるデータには以下の種類があります!

  • 文字列 String
  • 数字 number
  • Boolean(TRUE, FALSE)
  • 日付 date

    スプレッドシートを使って連携する場合、文字列と数字、Boolean(TRUE, FALSE)については自動的に適用されますのでほとんど意識する必要がありません!

    💡

    ※ただし、日付のデータ型の場合、少し注意が必要です! テンプレートのH列(registrationDate)を参考にしてください ・ epoch millsという日付を表す数字で連携する必要があります ・関数で入力される場合は、=((H2 -date(1970,1,1)) * 86400 -32400) * 1000 ・手動で入力する際には以下のリンクが便利です ・難しい場合、エンジニアの方に相談するのをおすすめします

    https://currentmillis.com/

    image

2. Google Apps Scriptを設定しましょう

1. プロジェクトを作成しましょう

グーグルにログインした状態でこちらのページに移動して、プロジェクトを作りましょう!

image
image

プロジェクト名を編集します。プロジェクト名はわかりやすい名前をつけてください。ここでは仮に"channelautousers_integration"としてみます。

image

また、コード.gsとなっているスクリプトファイルの名前をわかりやすく変更しましょう。ここでは、ユーザー情報をチャネルトークのCRMに挿入するという意味で、仮に"upsertUsers"としてみます!

2. コードを作成していきましょう!

image

上のイメージを参考に、以下のコードを貼り付けましょう!

function getData() {
  const sheet = SpreadsheetApp.openById("YOUR_SPREADSHEET_ID");
  let rows = sheet.getDataRange().getValues();
  let keys = rows.splice(0, 1)[0];
  let data = {};
  rows.forEach(function(row) {
    data[row[0]] = {};
    row.map(function(item, index) {
      if(index > 0) {
        if(keys[index] == "mobileNumber") {
          data[String(row[0])]["mobileNumber"] = "+" + item;
        } else {
          data[String(row[0])][String(keys[index])] = item;
        }
      }
    });
  });
  return data;
}

function upsertUsers() {
  // チャネルトークのOpenAPIを利用するための設定
  const url = "https://api.channel.io/open/v3/users";
  const headers = {
    "X-Access-Key": "YOUR_ACCESS_KEY",
    "X-Access-Secret": "YOUR_ACCESS_SECRET",
    "Content-Type": "application/json"
  };
  let options = {
    "method": "POST",
    "payload": JSON.stringify(getData()),
    "headers": headers
  };
  
  // チャネルトークのOpenAPIに顧客情報を更新するリクエストを送信
  let response = UrlFetchApp.fetch(url, options);
  Logger.info(url + ":responscode>>>" + response.getResponseCode() + ":body>>>" +response.getContentText());
}

貼り付け後、太文字になっている3箇所を書き換えます!

YOUR_SPREADSHEET_ID

一行目のこちらには、スプレッドシートのIDを入力してください!スプレッドシートのIDは、

作成中のスプレッドシートのURLの/d/と/edit の間の文字列です!

以下のちょうど赤線の部分ですのでコピペしましょう!

image

YOUR_ACCESS_KEY

YOUR_ACCESS_SECRET

この二つは、チャネルトークの管理画面から作成します!

こちらで紹介しているのと同じ手順で発行し、それぞれコピペしてください!

🗝
Open APIの利用方法

image

こちらのボタンを押して保存しましょう!

🎉コードの作成は以上です!

3. コードをテストしましょう!

こちらまで実行したら、一度テストするのをおすすめします!

💡

一度に誤った大量の情報が入ってしまうと、一つ一つ削除してなくてはならず、大変なので、まず少ないデータでテストされるのをおすすめします!!

image

"関数を選択">"UpsertUsers"を選択した後、矢印の実行ボタンを押します。

エラーがない場合、

  • チャネルトークの"連絡先管理"メニューに行って、データが挿入されているか確認しましょう👏もし、連携した情報が見当たらないばあいは、右上のアイコンを押して、連携した情報にチェックを入れて表示しましょう!
    image

  • (また、表示させるの名前を日本語に変更したい際には、顧客プロフィール情報の画面から修正が可能です!)
    image

エラーがある場合

  1. AppsScriptダッシュボードを以下の手順で開きましょう
    image
    image

2. "失敗しました" となっている行をクリックして、ログを確認しましょう!

ログをみても全く検討がつかない場合にはこちらのページのキャプチャを撮影して、チャネルトークに問い合わせください

image

4. 12時間ごとに自動更新されるように設定しましょう!

image

スクリプトを作成したページに戻ってタイマーボタンを押します!

image

"トリガー追加"ボタンを押してください

image

このように設定をして、保存を押したら完了です!!

12時間ごとにきちんと更新しているかは、先ほどエラーを確認したAppsScriptダッシュボードから確認が可能です!

これからはスプレッドシートの情報を更新しておくと、12時間ごとに自動更新されます!!🥳

以上です!お疲れ様でした!!👏