
Questetra ではGoogle Workspace と連携する様々な自動工程が用意されています(Advanced 以上)。これらの自動工程を組み合わせることで、Google Workspace のサービスとQuestetra を連携させた業務フローを設計できます。
この記事では Google スプレッドシートで管理されている社員情報を例に、社員情報の追加/取得/更新/削除の操作を行うワークフローアプリを紹介します。
各自動工程について
Google スプレッドシートに関する自動工程には「ファイル作成」「シート追加」「シートコピー」「行追加」「行追加 (テーブル型データ)」「選択肢データの一括取得」「行取得」「行更新」があります。今回はそのうち、「行追加」「行取得」「行更新」「選択肢データの一括取得」の4種を利用しています。併せてワークフロー基盤上の選択肢マスタファイルを更新する「選択肢マスタ更新」も使用します。
まず、各工程について簡単に説明します
Google スプレッドシート: 行追加
シート末尾に1行追加し、その各セルにデータを入力します。必要あれば行領域を拡大します。
Google スプレッドシート: 行取得
Google スプレッドシートから指定された行のデータを取得します。行の指定には文字型データ項目(単一行)を用意し対象となる行番号を入力します。スプレッドシートの各列の入力値はそれぞれに文字型データ項目(単一行)を用意し個別に保存します。

Google スプレッドシート: 行更新
Google スプレッドシートの指定した行のデータを更新します。行の指定には文字型データ項目(単一行)を用意し対象となる行番号を入力します。更新するセルを範囲指定し、セルごとに入力内容を指定します。
Google スプレッドシート: 選択肢データの一括取得
Google スプレッドシートから指定した2列に入っているデータを取得します。2つの文字型(複数行)データ項目を用意し取得したデータを列ごとに保存します。
選択肢マスタ更新
選択型データ項目で定義されている選択肢一覧を、アプリ共有/アプリ固有の選択肢マスタ(アドオン)として登録・更新します。アプリ管理権限をもったユーザが設定する必要があります。選択肢一覧はそれぞれ選択肢ID 、表示ラベルとなる文字型(複数行)データ項目を指定します。
サンプルアプリ
これらの自動工程を使って作成したサンプルアプリのワークフロー図がこちらです。

実行する操作によって、開始ポイントが分かれています。社員情報の取得/更新は同じポイントから開始して、情報を取得した上で改変し更新します。
なお、このアプリでは2つの「社員リスト」を扱います。
- 社員の詳細情報を記録している Google スプレッドシート(Google ドライブ上に保存)
- 個々の社員情報を記載している スプレッドシートの、「行番号」と対応している[社員マスタ XML ファイル](Questetra 基盤上に保存)
この2つのリストの区別を明確にしたうえで、以降の説明を読み進めてください。
対象となるスプレッドシート
操作対象となるスプレッドシートの例として、下図のような社員一覧を想定しています。
A列に注目してください。A列には行番号と同じ数字が入力されています。各自動工程が対象レコードを指定するために「行番号」を利用していますので、この A列の数字を取得し、情報の取得/更新/削除の対象となる行の指定に利用します。
B列以降は、B列:社員番号、C列:氏名、D列:メールアドレス、E列:所属チームとなっています。G列は、社員マスタファイルの表示ラベルとなる文字列(所属チーム / 氏名 / メールアドレス)が入力されています。
Google と Questetra の連携設定
Google との連携設定については「Google スプレッドシートにテーブルの値を追記し集計値を取得する」の「Google と Questetra の連携設定」の記述を参照してください。
[行取得][選択肢データの一括取得]と[行追加]では Google でのスコープが異なるので、個別の認証が必要です。
データ項目の設定
データ項目は以下のように設定します。
データ項目名 | フィールド名 | データ型 | 説明 |
件名 | – | – | プロセスの件名です。 |
社員マスタ(更新用) | q_master_staff | 選択型(セレクト) | [選択肢マスタファイル]の更新時に参照されます。操作画面には表示されず、確認画面で表示のみされます。 |
選択肢ID | q_item_value | 文字型(複数行) | [社員マスタ(更新用)]の選択肢IDとなります。 |
表示ラベル | q_item_display | 文字型(複数行) | [社員マスタ(更新用)]の表示ラベルとなります。 |
社員マスタ(参照用) | q_staff | 選択型(検索セレクト) | 取得/更新する対象社員を指定します |
行番号 | q_line_num | 文字型(単一行) | 社員マスタ(参照用)で選択された選択肢の ID が保存されます。スプレッドシートでの行の指定に利用されます。 |
社員番号 | q_staff_id | 文字型(単一行) | スプレッドシートから取得したデータを格納します。 |
メールアドレス | q_staff_email | 文字型(単一行) | スプレッドシートから取得したデータを格納します。 |
氏名 | q_staff_name | 文字型(単一行) | スプレッドシートから取得したデータを格納します。 |
チーム名 | q_staff_team | 文字型(単一行) | スプレッドシートから取得したデータを格納します。 |
新規社員番号 | q_new_staff_id | 文字型(単一行) | 新規追加時に追加する社員情報を入力します。 |
新規社員メールアドレス | q_new_staff_email | 文字型(単一行) | 新規追加時に追加する社員情報を入力します。 |
新規社員氏名 | q_new_staff_name | 文字型(単一行) | 新規追加時に追加する社員情報を入力します。 |
新規社員所属チーム名 | q_new_staff_team | 選択型(セレクト) | 新規追加時に追加する社員情報を選択入力します。 |
(追加行番号) | q_row_number | 文字型(単一行) | 新規追加時に追加された行番号を保存します。 |
(マスタ用ラベル) | q_master_id | 文字型(単一行) | [マスタ用ラベル生成]工程で合成された文字列が保存されます。 |
[(マスタ用ラベル)]は[社員マスタ(参照用)](選択型(検索セレクト))で、より容易に検索入力できるように「チーム名 / 氏名 / メールアドレス」となっています。こうすることで、チーム名、氏名、メールアドレスのいずれかの数文字をタイプするだけで候補者を絞り込めます。
自動工程での設定の要点
(下記以外の設定については「Google スプレッドシートにテーブルの値を追記し集計値を取得する」を参照してください)
[マスタ用ラベル生成](データ更新)
- 設定対象のデータ項目:[(マスタ用ラベル生成)]
- 式:#{#q_new_staff_team} / #{#q_new_staff_name} / #{#q_new_staff_email}
[社員情報登録](Google スプレッドシート: 行追加)
- C4: 追加した行の行番号を保存するデータ項目:[(追加行番号)]
- C-A から C-G:各列に挿入されるデータ項目の参照式(#{#q_new_staff_id} など)
[行番号追記](Google スプレッドシート: 行更新 )
- C4. 更新する行:[(追加行番号)]
- C5. 更新する列範囲:A:A
- C6_1: 列範囲のうち 1 列目の更新後の値:#{#q_line_num}
[選択肢データ取得](Google スプレッドシート: 選択肢データの一括取得)
- C4: 選択肢 ID の領域情報 :A:A
- C5: 選択肢ラベルの領域情報:G:G
- C6: 選択肢 ID の一覧を保存するデータ項目:[選択肢ID]
- C7: 選択肢ラベルの一覧を保存するデータ項目:[表示ラベル]
[マスタ更新](選択肢マスタ更新)
- 選択肢一覧を保存する選択型データ項目 :[社員マスタ(更新用)]
[社員情報削除](Google スプレッドシート: 行更新 )
- C4: 更新する行:[行番号]
- C5: 更新する列範囲:B:G
- C6_1: 列範囲のうち 1 列目の更新後の値:(deleted) など
- C6_2 から C6_6 :「-」など
[社員情報取得](Google スプレッドシート: 行取得)
- C4: 取得する行:[行番号]
- C5: 取得する列範囲:B:E
- C6_1 から C6_4:それぞれ[社員番号][氏名][メールアドレス][チーム名]
[社員情報更新](Google スプレッドシート: 行更新)
- C4: 更新する行:[行番号]
- C5: 更新する列範囲:B:G
- C6_1 から C6_4:それぞれ[社員番号][氏名][メールアドレス][チーム名]の参照式
- C6_6:[(マスタ用ラベル)]の参照式
「新規追加」のフロー

新規に社員を追加登録するフロー部分について説明します。
「社員登録」から開始し、登録する社員の情報を入力し終了します。
次のデータ更新[マスタ用ラベル生成]工程で、G列に挿入される文字列が合成されます。データ項目[新規社員所属チーム名][新規社員氏名][新規社員メールアドレス]がそれぞれ参照されます。
続く自動工程[社員情報登録]では、スプレッドシートの末尾行の次行の B列から G列までのセルに開始工程で入力された情報が挿入されます。また、挿入された行の行番号が取得され[(追加行番号)]データ項目に保存されます。
次の[行番号追記]工程で A列に[(追加行番号)]の値が挿入されます。
「社員マスタ更新」のフロー

更新されたスプレッドシートからデータを取得して、取得したデータで[社員マスタ]を更新するフロー部分について説明します。
このフローは、スプレッドシート上での「社員情報の追加/更新/削除」の各フローから接続されていて、スプレッドシートへの変更をワークフロー基盤上の[社員マスタ]に反映します。また、スプレッドシートが手動で直接変更を加えられた場合は、[社員マスタ更新]工程から開始して[社員マスタ]を更新します。
[社員マスタ更新]工程では、各フローでの入力を確認します。手動開始した場合は何もせず終了して次の工程へと進みます。
[選択肢取得]工程ではスプレッドシートにアクセスしデータを取得します。A列のデータが全て取得され、[選択肢ID]データ項目に格納されます。同様に G列のデータが全て取得され、[表示ラベル]データ項目に格納されます。格納されるデータは行ごとに改行されています。
次の[選択肢確認]工程では、取得されたデータを確認します。[選択肢ID][表示ラベル]の各行が対応する選択肢データとなります。
[マスタ更新]の自動工程では、選択肢マスタ XMLファイルが[選択肢ID]に格納された A列データと[表示ラベル]に格納された G列データで上書きされます。
[マスタ更新確認]工程で[社員マスタ(更新用)]の選択型データ項目の内容を見て更新を確認します。
[Google スプレッドシート: 選択肢データの一括取得]を使って[選択肢マスタ XMLファイル]を作成/更新する詳細については以下のページを参考にしてください。
Google スプレッドシートの顧客データを選択肢として使用する
「社員削除」のフロー

登録されている社員情報を削除するフローについて説明します。
[社員削除]工程で、削除する対象となる社員を選択型データ項目にて指定します。この時、選択型データ項目は[社員マスタ]を参照しています。
次の[取得行セット]自動工程で、選択された選択肢の選択肢IDである A列の値(行番号と一致)が[行番号]データ項目にセットされます。
続く[社員情報削除]工程で、[行番号]データ項目にセットされた値の行番号の行を、削除するのではなく上書きします。上書きの対象は B列から G列で、「(deleted)」や「-」で上書きされます。
こうすることでスプレッドシート上で削除された社員の行が保持され、以降の行の行番号が変わってしまう(A列の値とずれる)ことを防ぎます。

「社員取得/更新」のフロー

登録されている社員情報を取得/更新するフローについて説明します。
[社員取得/更新]工程で、対象となる社員を選択型データ項目にて指定します。この時も選択型データ項目は[社員マスタ]を参照しています。「削除フロー」と同様に、[取得行セット]工程で[行番号]データ項目に行番号となる値がセットされます。
次の[社員情報取得]工程で、スプレッドシートの[行番号]にセットされた値の行のデータが取得され、[社員番号][メールアドレス][氏名][チーム名]のデータ項目にそれぞれセットされます。
[確認 / 編集]工程で取得されたデータを確認します。何もしない場合は[終了する]ボタンで終了します。
別の社員情報を確認する場合は[社員を再選択]ボタンで最初の工程に戻ります。
社員情報を変更して更新する場合は、[社員番号][メールアドレス][氏名][チーム名]の値を編集します。(例えばチームが異動になった場合[チーム名]を「Bチーム」などと書き換えます。)全ての編集が終われば、[社員情報を更新する]ボタンでスプレッドシートを更新するフローへと進みます。
[マスタ用ラベル生成]工程では更新された内容で文字列が合成されます。続く[社員情報更新]で、スプレッドシートの[取得行]の値の行のデータが上書きされます。
上記の設定は Advanced エディションで動作するためのものです。
Professional エディションでは、アドオン自動工程を利用し、社員番号やメールアドレスをキーにして行番号を特定する設定も可能です。この場合は、削除時に行ごとレコードを削除できます。
このように Questetra の自動工程を組み合わせることで、外部サービスの操作を Questetra から行えるようになります。Questetra で操作することで、行った操作の記録が履歴として Questetra に保存されるようになります。
Google Workspace だけでなく、Box や kintone などと連携する自動工程も用意されています。組み合わせを工夫して、業務の自動化にお役立てください。