<aside> 🙏 大変恐縮ながら、GASに関するサポートは行っておりませんのでその点のみご了承くださいませ 😌

</aside>

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

GASとは?

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

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

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

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

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

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

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

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

https://script.google.com

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

https://s3.ap-northeast-2.amazonaws.com/zoyi-ghost/jp/2020/05/https___qiita_image_store_s3_amazonaws_com_0_170905_029dd9c1_cd4f_3bd0_d8f0_1070f6120a27-1589158449345.png

https://s3.ap-northeast-2.amazonaws.com/zoyi-ghost/jp/2020/05/__________2020_05_11_10_26_08-1589160428421.png

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

https://s3.ap-northeast-2.amazonaws.com/zoyi-ghost/jp/2020/05/__________2020_05_11_10_25_56-1589160461467.png

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

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

スクリーンショット 2022-07-03 20.03.48.png

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

function main() {
  const sheet = SpreadsheetApp.openById("YOUR_SPREADSHEET_ID");
  let rows = sheet.getDataRange().getValues();
  let keys = rows.splice(0, 1)[0];

  rows.forEach(function(row) {
    let memberId = row[0];
    let body = {profile: {}};
    row.map(function(item, index) {
      if(index > 0) {
        if(keys[index] == "mobileNumber") {
          if(item) {
            body["profile"]["mobileNumber"] = "+" + item;
          }
        } else {
          body["profile"][String(keys[index])] = item;
        }
      }
    });
    upsertUser(memberId, body);
  });
  return;
}

function upsertUser(memberId, body) {
  // チャネルトークのOpenAPIを利用するための設定
  const url = "<https://api.channel.io/open/v5/users/@>" + memberId;
  const headers = {
    "X-Access-Key": "YOUR_ACCESS_KEY",
    "X-Access-Secret": "YOUR_ACCESS_SECRET",
    "Content-Type": "application/json"
  };
  let options = {
    "method": "PUT",
    "payload": JSON.stringify(body),
    "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 の間の文字列です!

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

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/3255a023-2ee4-40c1-aa03-46060bfadb29/_2020-05-11_15.25.48.png

YOUR_ACCESS_KEY

YOUR_ACCESS_SECRET

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

こちらの発行方法に関しては、こちらのガイドで詳しく掲載しております!

What is Open API