GoogleDocsフォームへの入力があった際にワークフローを自動起動する

 

Googleフォームの入力データでワークフローを起動する

Message Start diagram

Googleドキュメントの「フォーム」は非常に強力なWebフォームです。『アンケート受付』や『キャンペーン受付』など、様々なデータ収集が可能です。ワークフローをGoogle「フォーム」とデータ連携させると、例えば「お問い合わせ」の受け付け直後に、自動的に「問合対応フロー」が開始されるようになります。 ※ Google SpreadSheet Form

 

受信側の設定

業務データを受信するワークフローには「メッセージ開始イベント」(右図で「HTTP」と書かれたアイコン)を配置します。この例では業務データを受信すると、仕事『Task-2』が自動的に起動されます。

受信側の設定は非常に簡単です。概ね以下の手順となります。

  1. ワークフロー(プロセスモデル)定義を完了させる
  2. ワークフローを稼働(アクティベート)させる
  3. 自動起動用の「URL」と「受信データのパラメータ」をメモする

 

送信側の設定

Google Spreadsheet apps script

業務データを送信する側のGoogle Spreadsheet では、

  • 自動起動用のURL
  • 自動起動時に送信すべきデータ

を自動送信する設定を行います。

 

具体的には、Google Spreadsheet の「ツール>スクリプト>スクリプトエディタ」にて、データ送信用のスクリプトを書きます。(Google apps script)

「受信側の設定」でメモした「自動起動用のURL」や「受信データのパラメータ」にあわせて、以下のイタリック文字部分を書き換えて下さい。

なおスクリプトを保存後、フォーム入力時にスクリプトが作動する設定を行います。スクリプトエディタを開いた状態で「トリガー>Current Scripts Triggers」を選択し、スクリプト「startWorkflow」が「From spreadsheet」「On form submit」を選んで下さい。

function startWorkflow(e) {
var longurl = "https://s.questetra.net/12345678/System/Event/MessageStart/start";
var payload = "processModelInfoId=123&nodeNumber=123&key=12345678901234567890123456789012";
payload += '&title=' + encodeURIComponent(e.values[1]);
payload += '&data[0].input=' + encodeURIComponent(e.values[2]);
payload += '&data[1].input=' + encodeURIComponent(e.values[3]);
var params = {
method: 'post',
payload: payload
};
UrlFetchApp.fetch(longurl, params);
}

注意)この時、一部のデータ型(※)では「input」と書かれた部分が「selects」や「upload」に変わります。 ※ 選択肢型[selects]、日時型[time]、ファイル型[upload]、ユーザ型[email]、掲示板型[console] 詳細は「リファレンス:データ受信仕様」「リファレンス:設定可能なデータ型」を参照ください。

 

Googleフォームとのデータ連携活用シーン

  • Googleフォームで「問合受付フォーム」を作成し、入力と同時に「問合対応プロセス」を開始する
  • Googleフォームで「資料請求フォーム」を作成し、入力と同時に「資料郵送プロセス」を開始する
  • Googleフォームで「検収時の不具合フォーム」を作成し、入力と同時に「不具合対応プロセス」を開始する
  • Googleスプレッドシートにある「固定資産リスト」を用いて、「調査プロセス」を一括して起動する

 

関連ページ

 

関連ページ(Workflow-Sample.net)