面倒な仕事はBOTに! AppSheet Automation を使いこなして君のクリスマスを守れ! 〜クラスメソッド Google Cloud Advent Calendar 2021〜

2021.12.25

このブログはネタで AppSheet Automation の間違った使い方をしていますので絶対に真似しないでください。

タナカ君「今日は順調だな・・・クリスマスだし・・・早く帰るぞ・・・!」

カタカタカタカタ・・・

カチョー「タナカ君ちょっといいかな?」

タナカ君「(嫌な予感がする・・・)なんでしょうかカチョー。」

カチョー「〇〇アプリ、最新バージョンが今日の夕方にデプロイされたんだけど結合テストまだなんだよね。」

タナカ君「(嫌な予感しかしないぞ・・・)アッハイ。」

カチョー「結合テスト、期限が今日までなんだよね。」

タナカ君「(なんでクリスマスを期限にするんだよ・・・)アッハイ。」

カチョー「というわけでよろしくー。俺はこの後予定あるから先に失礼するわ。」

タナカ君「嘘でしょ。」

カチョー「本当にやってるか心配だから、結合テストの結果は1件ずつ報告してね。」

タナカ君「くぁwせdrftgyふじこlp;」

はじめに

どーも、CX事業本部 MAD事業部の 田中孝明 です。

本エントリは クラスメソッド Google Cloud Advent Calendar 2021 の 25日目 の記事です。

最終日の今日はクリスマスも頑張って働くタナカ君の仕事っぷりをカチョーに逐次報告できような仕組みを構築してみます。

AppSheet Automation

AppSheet Automation は任意のデータベースに対して何かしらのイベントを検知して処理する BOT をノーコードで使えるサービスです。

上記のブログには 新入社員のオンボーディング をBOT化するサンプルが手順つきで紹介されています。

利用できるデータソース

データソースには以下のものを選択できます。

  • Google Sheet and Form
  • Excel on Office 365
  • Excel on Dropbox
  • Smartsheet
  • Salesforce
  • Excel on Box

イベントタイプ

BOTを起動させる条件には以下のものがあります。

  • Data Change
  • Schedule

Data Change はデータソースに対する特定の操作を指定することができます。

たとえば、 Updates only などを指定すれば、データソースの変更を検知すると BOT が起動します。 condition で特定のセルの操作などを指定することもできます。

Schedule を指定すれば定期的にBOTを起動できます。

プロセス

BOT の処理を定義したものです。後述する タスク を組み合わせて作成します。

タスク

プロセスのタスクには以下の種類があります。

  • Run a task
  • Run a data action
  • Branch on a condition
  • Wait
  • Call a process
  • Return Values

Run a task には Email の送信、SMS の送信、ファイルの作成など、ある程度必要そうなものが揃ってます。Webhook 呼び出しが可能なので、ある程度のカスタムが可能です。

Run a data action には行の追加、行の削除、行へのデータのセットなど、セルに対する操作が定義されています。

以上のようなタスクを組み合わせて画面操作のみで BOT が作成できます。

業務報告BOT

データソース

カチョーに提出しなければいけない結合テスト結果の Google Sheet をデータソースに選択しましょう。

BOTの作成

My Apps から Make a new app を選択しましょう。

Start with your own data を選択すれば、既存の Google Sheet と連携することができます。

とりあえず、適当なアプリ名を追加しておきましょう。

BOTの作成

さあ、いよいよ BOT を作成していきましょう。Automation を選択し、 New bot を選びましょう。

BOT が作成できたら、起動するイベントを選択しましょう。Configure event を選択しましょう。

今回は結果を早くみたいので、とりあえず Data Change > Adds and updates を選んでみます。

プロセス・タスクの作成

いよいよ画面ぽちぽちしながら BOT のプロセスを作っていきましょう。Add a step を選択してください。

仕事している風にしたいので、テストの結果がOKの時とNGの時で カチョー への報告を変えたいと思います。

Branch on a condition で特定のセルの値で条件を分岐させたいと思います。

とりえあえず、「結果」のセルの値が OK かそれ以外かで分岐させましょう。

このように分岐するステップが定義できました。

ではカチョーのSlackに結合テストの成功・失敗を逐次報告するタスクを作成してみましょう。Run a taskCreate new task を選択してください。

Call a webhook で Slack の Incoming Webhook を呼び出すタスクを作成しましょう。

Preset に Slack Hook が用意されていますので、Incoming Webhook のUrl とテキストメッセージを入力すれば Slack に通知するタスクは完成します。簡単ですね。 

同じ要領で失敗時の Slack 通知も作ってみましょう。

テスト開始

あとはガンガン結合テストをやっていきましょう。

やってますよ!カチョー!

カスタムの Webhook も使えますので、 Cloud Functions にデプロイした HTTP API を叩くことも可能です。

オチ

この記事は 12/25 丸々使って書き切りました。爆発したのは僕のクリスマスというオチです。

ちなみに、このブログの登場人物や団体はすべて架空のものです。そもそも弊社に カチョー という役職は無いですのでご安心を(?)

Console を触らないので「これ Google Cloud なの?」というツッコミはあると思います。