ブログ

Platioオススメ機能 ―Webhookを使ったGoogleスプレッドシートとの連携―

Platioオススメ機能

Platioの便利な機能や新しくリリースした機能などをPlatioオススメ機能として紹介していきます。

今回はPlatioのWebhookを使って、Platioアプリで入力した情報をGoogleスプレッドシートに連携する方法を紹介します。

アプリサンプル
勤怠管理202307

Webhookとは、特定のイベントが発生したタイミングで、別のWebアプリケーションなどに通知や情報を提供する仕組みです。

PlatioのWebhook機能を使うことで、Platioアプリで情報入力などを行ったタイミングでそれらの情報を、他のWebアプリケーションやサービスに登録/通知することができるようになります。
今回は勤怠連絡の業務を例に、Platioアプリで入力した情報をGoogleスプレッドシートに連携させるための設定などについて説明します。

本記事では、Platioアプリに入力された情報をGoogleスプレッドシートに登録するための設定に限定して紹介いたします。

※ 本記事はあくまでもWebhookの設定イメージを把握いただくための例であり、実際の設定などに関するお問い合わせには対応しておりませんので、ご了承ください。

※ 連携先のサービスまたはWebアプリケーションの設定などについては、サービスまたはWebアプリケーションの開発/提供元にお問い合わせください。

Webhookの編集

1. Platioミニアプリの作成

「勤怠連絡」ミニアプリは、ミニアプリテンプレートから作成します。「勤怠連絡」ミニアプリの詳細については、こちらにてご確認ください。

以下は、「勤怠連絡」ミニアプリにある「勤怠連絡」データポケットで入力・閲覧できる項目の構成です。(()内はPlatioのフィールドタイプ)

  • 取得申請日(日付フィールド)
  • 報告内容(テキスト選択フィールド)
    選択項目:テレワーク/全日休暇/午前半休/午後半休/早退/遅刻
  • 出社予定時間(時刻フィールド)
    報告内容フィールドで”遅刻”が選択された場合のみ表示、それ以外は非表示
  • 理由(テキスト選択フィールド)
    選択項目:その他の理由/体調不良/電車遅延
  • 詳細(複数行フィールド)
  • 作業内容(複数行フィールド)
    報告内容フィールドで”テレワーク”が選択された場合のみ表示、それ以外は非表示
  • 報告ユーザー(レコード選択フィールド)
    「社員リスト」データポケットの[ユーザー]フィールドを選択
    初期値:入力時のユーザー/変更不可
  • 報告者(テキストフィールド)
    初期値:レコード選択、[報告ユーザー]フィールドの値より「社員リスト」データポケットの[氏名]フィールドの値を設定/変更不可
勤怠連絡

2. Googleスプレッドシートでの準備

Googleスプレッドシート側に「勤怠連絡」データポケットで入力された「取得申請日」、「報告者」、「報告内容」、「出社予定時間」、「理由」、「詳細」、「作業内容」を登録するためのシートを作成します。

1行目には項目名を設定します。ここではスプレッドシート名を「勤怠管理-202307」とします。

勤怠管理-202307

3. GoogleスプレッドシートでのApps Scriptの作成

Googleスプレッドシートの「機能拡張」より「Apps Script」を選択します。
Google Apps Scriptは、GmailやGoogleスプレッドシートなどのGoogleの提供するサービスと連携して利用するためのプログラミング言語です。

拡張機能-Apps Script

ここではプロジェクトの名前を「勤怠管理」とし、[コード.gs]にGoogleスプレッドシートにレコードを追加するための処理をGoogle App Scriptで記述します。

Apps Script-コード-プロジェクトを保存

記述が完了したら、プロジェクトを保存します。

参考までに、今回作成したGoogle App Scriptは以下となります。

// POSTリクエスト
function doPost(e){
  let postContent = e.postData.getDataAsString();  // POSTされたデータの取得
  main(postContent);  // 主処理
}

// 主処理
function main(message){
  let json = JSON.parse(message);  //キーバリューをデータに変換
  let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');  // 追加するシートを取得
  let headerRow = sheet.getDataRange().getValues()[0];  // ヘッダー行の取得

  insertRows(sheet, headerRow, json);  // データの追加
}

// データの追加
function insertRows(sheet, headerRow, jsonMessage){
  for(let row of jsonMessage.rows){  // データの行数分ループ
    let rowArray = [];
    for(let colName of headerRow){  // ヘッダーの項目数分ループ
      rowArray.push(row[colName]);// ヘッダーと同じ項目の値を追加
    }
    sheet.appendRow(rowArray);    // シートに行を追加
  }
}

次に「デプロイ」をクリックし、「新しいデプロイ」をクリックします。

Apps Script - デプロイ - 新しいデプロイ

「新しいデプロイ」で「種類の選択」の歯車アイコンをクリックし、”ウェブアプリ”を選択します。

新しいデプロイ-設定-ウェブアプリ

右側の「設定」にて、「説明」に任意の説明文を入力し、「ウェブアプリ」の「次のユーザーとして実行」を”自分(任意のGmailのアドレス)”、「アクセスできるユーザー」を”全員”に設定し、「デプロイ」をクリックします。

新しい説明文、次のユーザーとして実行、アクセスできるユーザー

しばらくすると、「新しいデプロイ」画面が表示されるので、「アクセスを承認」をクリックします。

アクセスを承認

「Googleにログイン」画面が表示されるので、Googleスプレッドシートを作成したユーザーを選択します。

ログイン-Googleアカウント

次の画面が表示されたら、「詳細」をクリックします。

このアプリはGookeで確認されていません-詳細

さらに次の画面が表示されたら、「勤怠管理(安全ではないページに移動)」をクリックします。(「勤怠管理」の部分には自身が設定したプロジェクトの名前が表示されます。)

勤怠管理(安全ではないページ)に移動)

作成したプロジェクトがGoogleアカウントへのアクセスのリクエスト確認画面が表示されるので、「許可」をクリックします。

勤怠管理(安全ではないページ)に移動)

「新しいデプロイ」画面が表示され、”デプロイを更新しました。”と表示されていれば、完了です。「ウェブアプリ」のURLの「コピー」をクリックし、しメモ帳などに保存します。

新しいデプロイ-コピー

4. PlatioミニアプリでのWebhook機能の設定

Platio Studioで「勤怠連絡」ミニアプリを開き、画面右側にある[Webhook]をクリックします。

勤怠管理-Webhook

表示された画面に上部にある[Webhookを追加]ボタンをクリックして、Webhookを設定します。

勤怠管理-Webhookを追加

なお、Webhookには、設定できる数の上限(1ミニアプリあたり30個)や1時間あたりの呼び出し回数も設けられていますので、注意が必要です。

表示された設定画面で、[名前]にはWebhookの名前を設定します。Webhookの一覧画面で表示されるので、どのような処理を行っているのか分かりやすい名前を設定することをおすすめします。

[データポケット]には連携元のデータポケットを、[モード]は”クイック”を指定します。なお、スタンダード環境の場合、指定できるモードはクイックのみとなります。

[モード]についての詳細は「Webhookプログラミングガイド」にある「モードとエラー処理」にてご確認ください。

今回はレコードが登録されたときにWebhookを動作させるため、[イベント]は”レコードの挿入”にチェックを入れます。

[URL]には、さきほどコピーしたGoogle App ScriptのウェブアプリのURLを設定します。

Googleスプレッドシートにレコードを登録するため、[HTTPメソッド]には”POST”を、[タイプ]には”JSON”を指定します。

[変換]には、以下の書式でGooglesプレッドシートの項目とデータポケットのフィールドの対応づけを行います。

Googleスプレッドシートの「勤怠管理-202307」に登録するための書式

{
  "rows": [
  {"取得申請日": formatDateTime(parseDate(c1111111 /* 取得申請日フィールドのID */),"YYYY/MM/DD"),
  "報告者": c2222222 /* 報告者フィールドのID */,
  "報告内容": c3333333 /* 報告内容フィールドのID */,
  "出社予定時間": c4444444 /* 出社予定時間フィールドのID */,
  "理由": c5555555 /* 理由フィールドのID */,
  "詳細": c6666666 /* 詳細フィールドのID */,
  "作業内容": c7777777 /* 作業内容フィールドのID */}
  ]
}

※ 上記のコードをコピーし、斜体部分を変更してください。

Webhookの設定イメージ
Webhookの設定イメージ
Webhookの設定イメージ

これで、Platioの「勤怠連絡」データポケットで情報を登録すると、Googleスプレッドシートに自動でその内容が反映されるようになります。

Platioでの勤怠入力(1)
Platioでの勤怠入力(1)
Platioでの勤怠入力(2)
Platioでの勤怠入力(2)
Googleスプレッドシート
Googleスプレッドシート

PlatioのWebhookの実行回数やログについては、Webhookの一覧画面から確認することができます。

Webhookの一覧画面
Webhookの一覧画面
Webhookのログ
Webhookのログ

今回はPlatioのWebhook機能を使ったGoogleスプレッドシートへの連携について紹介しました。Webhookをお使いいただくことで、Platioで情報登録などを行ったタイミングで他のWebアプリケーションやサービスにデータの登録や通知を行なうことができ、より作業の効率化が可能になりますので、ぜひ、試してみてください!

※ 記載している会社名、商品名は各社の商標または登録商標です。

関連キーワードから探す

           

Platio体験セミナー

モバイルアプリ作成体験セミナー

クリック操作で
簡単アプリ作成!

気軽に無料お試し!まずは実際に触ってみよう

サービス詳細や効率化課題など
お気軽に相談できます

オンライン相談