2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Microsoft Formsに回答があったらMicrosoft Flowへ連携する

Posted at

Formsに回答がきたらメール通知したいけどできるか?と聞かれ、そういえばどこまで出来るんだろう、と調べたところ、これぐらいならFormsの標準機能で出来るようだった。
しかし、もっと発展したやり方は今時は出来るはずだと思い、掲題の件で調べた。

やりたいこと

Formsに回答があったら、回答毎に(Flowで出来る範囲の)任意の形で連携できるかどうかを試した。

軽く調べた所、そういったテンプレートがあるので大体出来そうだ、というのは分かっていました。
ただ、主観ですがFlowは微妙にかゆいところに手が届かないモノもあったので、実用的かどうかも判断してみます。

やりかた

適当に「test」というフォームを用意します。

Microsoft Formsのイメージ図

こんな感じにFlowを組みます。フォーム名を指定している点に注意してください。

Formsの結果を連携するFlowのイメージ図

一応、文字起こしすると以下のように作っています。

  • (トリガー)Forms: 新しい応答が送信されるとき
  • 制御: Apply to Each
    • Forms: 応答の詳細を取得する
    • Yammer: 投稿メッセージ

Formの応答は配列になっているため、Apply-to-Eachする必要があります。
(同タイミングに複数回答があると複数入ると予想してますが、実際には見たことはないです...)

今はYammerに投稿メッセージとして送っていますが、ここは好きに組み替えることができます。
また、見ての通り、Formで設定している質問項目に対する回答を「応答の詳細を取得する」によりちゃんと取れています。(項目名がいい加減すぎました)

さて、回答して動作をみます。

Formsの回答イメージ図

Yammerを見るとこんな感じになっていればよいです。

Formsの回答結果をFlowで連携されYammerに投稿されているイメージ図

今回はYammerでしたが、Formsのメール通知をカスタマイズしたり、Teamsに通知したり、HTTPで送りつける事で独自のシステムと連携することもできます。

ということで、Formsはちゃんと使えるものになっていそうです。ここから先が大変だと思いますが。

なお、Yammerの「フォームに投稿がありました」の文言は、Flowの投稿メッセージの詳細設定で仕込んでいるものです。

Flowの日時の罠

Flowで日時の扱いをちょっと変えたいと思うたびに、いつも引っかかるので。

まず、見ての通り、Formsに記録される日時がUTCなので日本時間なら9時間足す必要があります。そういうとこやぞ。

というわけで、以下の式で置き換えるとよいでしょう。bodyのAction名は適当に併せてください(デフォルトだとこのまま。)

convertTimeZone(body('応答の詳細を取得する')?['submitDate'], 'UTC', 'Tokyo Standard Time', 'yyyy-MM-dd HH:mm:ss')

4つ目の引数で使える日時フォーマットのドキュメントはこちらです。

UTCと分かっているならconvertFromUtcという打ってつけな感じのものがありますがこれは使えません。騙されないように。convertTimeZoneだけです。convertTimeZoneだけが我々を救ってくれます。

TimeZoneの指定もクセがあります。Flowにおいては'UTC', 'Tokyo Standard Time'の2つを覚えておけばよいです。'JST'ではないです。
もしそれ以外のタイムゾーンの対応を行う場合は、こちらがお役立ちドキュメントです。

convertTimeZoneのタイムゾーンは見ての通り、名前を文字列を指定する必要があります。ドキュメントにはIDは数字で振られており、数値でも行けそうと思うと騙されます。関数のヘルプもIDと出てきますが、文字列でIDを指定してもダメです。悲しいな。

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?