アプリテンプレート(通常のアプリケーション)

Microsoft Forms連携のサンプル

いつもお世話になっております。カスタマーサクセス部の橋本です。
APIを使ってどんなことができますか?連携できますか?といった
ご相談をいただく機会がございますので、サンプルでご紹介させていただきます。

 

今回は第2弾として、Microsoft Forms連携です。
(Google Forms連携のサンプルは、こちらをご覧ください)

 

本記事では、以下を目的としてご案内させていただきます。

 

・API利用した連携の全体像やイメージをご理解いただくこと。
・API利用した連携の難易度をご理解いただくこと。
・自動化/連携を行うための開発ツールが別途必要であること。

 

なお、連携先や開発ツールの仕様変更により正しく動作出来ない可能性があることもご理解いただき、合わせて、連携先や開発ツールの操作についてはサポート範囲外となりますので、お取引のあるSi業者様などへご相談をお願いいたします。

 

[サンプルの概要]
1. Microsoft Formsに回答を送信
2. Power Automateでフォームの回答を受け取り、AppSuiteのAPIへアクセス
3. AppSuiteのアプリケーションにデータが追加される

 

Microsoft Forms、Power Automate、AppSuiteの3つのアイコンが左から順に並び、矢印でつながれた連携イメージ図。Formsからの「フォーム送信通知」をPower Automateが受け取り、AppSuiteへ「データを追加」する自動化の流れを示している。

 

[事前準備]

 

1.Microsoftアカウントを用意する
Microsoftアカウントを用意してサインアップし、Microsoft FormsおよびPower Automateを使用できるようにします。
Power Appsの開発者向けプランにサインアップするまたは有料のライセンスを取得するか、Power Automateの有料のライセンスを取得してください。

 

2.AppSuiteのアクセスキーを用意する
AppSuiteのAPIを使用するため、アクセスキーが必要になります。
[個人設定>アクセスキー設定]から発行し、コピーしておいてください。
※使用するアプリケーションのデータ変更権を持つユーザーで発行してください。

 

desknet's NEOの個人設定メニューから「アクセスキー設定」を選択する手順と、アクセスキーの発行画面。右側の画面では、オレンジ色の枠で囲まれた長い文字列の「アクセスキー」が表示されている様子。

 

[手順]
1. Microsoft Formsを用意する
2. アプリケーションを用意する
3. フローを用意する
4. 動作確認を行う

 

 


1:Microsoft Formsを用意する


AppSuiteと連携させるMicrosoft Formsを用意します。
すでに作成されたものでも構いません。
※本資料で使用するフローは、一部の質問形式に対応していません。
(詳しくは文末の「制限事項」をご覧ください。)

 

 


2:AppSuiteのアプリケーションを用意する


・Microsoft Formsから入力した回答を保存するアプリケーションを作成します。
・Microsoft Formsの各質問に対して、対応する部品を一つずつ作成します。
※すでに作成されたアプリケーションでも構いません。
また、部品タイプは、Microsoft Formsの質問形式と合わせてください。

 

Microsoft Formsの質問形式 AppSuiteの部品タイプ
選択肢 ラジオボタン
選択肢(複数回答) チェックボックス
選択肢(ドロップダウンリスト) プルダウン
テキスト 文字(一行)
テキスト(長い回答) 文字(複数行)
評価 ラジオボタン
日付 日付
ランキング ※未対応
リッカート ※未対応
ファイルのアップロード ※未対応
Net Promoter Score ラジオボタン

 

 

例)

Microsoft FormsとAppSuiteの項目紐付けイメージ。左側のFormsにある「会社名」「製品区分」「その他ご意見」の各質問が、オレンジ色の矢印で右側のAppSuiteにある対応する入力項目へとマッピングされている様子。

 

「API設定」から、アプリケーション識別子を設定しコピーしておきます。
本サンプルでは、ms_formsとします。

 

 

AppSuiteのアプリケーション設定メニュー画面。右上の「オプション機能」グループ内にある「API設定」がオレンジ色の枠で強調されており、外部連携のための設定箇所を示している。

 

 

AppSuiteのAPI設定画面。「アプリケーション識別子」の入力欄に「ms_forms」と入力され、オレンジ色の枠で強調されている様子。下部には「部品識別子」のリストが表示されている。

 

 


3:フローを用意する


フローとは、Power Automateにおけるプロジェクトの単位です。
一つのMicrosoft Formsに対して、複数のフローを作成することもできますが、本件では割愛いたします。

 

 

3-1 フローを作成する

①以下のURLからPower Automateのサイトを開き、「マイフロー」からフローの一覧画面を開きます。

https://make.powerautomate.com/

 

Microsoft Power Automateのサイドメニュー画面。オレンジ色の枠で「マイ フロー」が強調されており、作成済みのフロー確認や新規作成へ進むための操作箇所を示している。

 

 

②インポート > パッケージのインポート (レガシ) を選択し、インポートするパッケージファイルを選択します。

 

Power Automateの画面で「インポート」メニューを開き、「パッケージのインポート(レガシ)」を選択する様子

 

ここに必要なパッケージサンプルについては、下記のダウンロードボタンから入手をお願いいたします。
※アンケート回答後に、ダウンロードできます。

 

ダウンロード

 

 

③アップロードボタンをクリックし、パッケージサンプルを選択してください。
ファイル名:MicrosoftForms連携フローテンプレート.zip

 

「パッケージのインポート」画面で、右側の「アップロード」ボタンを選択する様子

 

 

④下記の画面が表示されましたら、インポートをクリックしてください。

 

「パッケージ コンテンツの確認」画面で、アップロード完了を確認し、右下の「インポート」ボタンを選択する様子

 

 

⑤インポート完了後に、下記のメッセージが表示されます。
「フローを開く」をクリックし、フローの設定画面を開きます。

 

「すべてのパッケージ リソースが正常にインポートされました。」という完了メッセージが表示された画面

 

 

3-2 Microsoft Formsと連携する

①フローの一番上の「フローを手動でトリガーする」を右クリックして「削除」をクリックし、削除します。

 

「フローを手動でトリガーする」ステップのメニューを開き、赤枠で囲まれた「削除」を選択する様子

 

 

②「フローを手動でトリガーする」から「トリガーの追加」に変わりますので、「トリガーの追加」をクリックします。

 

フロー編集画面の先頭にある、赤枠で囲まれた「トリガーの追加」ボタンを選択する様子

 

 

③キーワードで検索で「Microsoft Forms」を入力すると、下記の画面が表示されますので、「新しい応答が送信されるとき」を選択します。

 

「トリガーの追加」ダイアログの検索欄に「Microsoft Forms」と入力し、候補から「新しい応答が送信されるとき」を選択する様子

 

Power AutomateとMicrosoft Formsの連携をするのが初めての場合、サインインが必要になります。
※連携済みの場合は「サインイン」ボタンは表示されません。

 

 

④サインイン後、または連携済みの場合は以下の画面になります。
「フォームID」のプルダウンから、Microsoft Formsを選択します。

 

「新しい応答が送信されるとき」トリガーの詳細設定で、赤枠で囲まれた「フォーム ID」から対象のフォーム(AppSuite連携テストフォーム)を選択した様子

 

 

⑤「新しい応答が送信されるとき」の下にある「+」をクリックし、「アクションの追加」を選択します。

 

「新しい応答が送信されるとき」と「基本設定を保存する」の間の「+」アイコンをクリックし、赤枠で囲まれた「アクションの追加」を選択する様子

 

 

⑥「Microsoft Forms」の「応答の詳細を取得する」を選択します。

 

「アクションの追加」ダイアログの検索欄に「Microsoft Forms」と入力し、候補から「応答の詳細を取得する」を選択する様子

 

 

⑦「フォームID」は「新しい応答が送信されるとき」のときと同じ値を選択してください。

 

「応答の詳細を取得する」アクションの設定で、赤枠で囲まれた「フォーム ID」に「AppSuite連携テストフォーム」を選択する様子

 

 

⑧「応答ID」は「応答ID」を選択します。

 

雷マークをクリックすることで、下のダイアログを開けます。

 

「応答 ID」の入力欄を選択し、右側に表示される「動的なコンテンツを追加」アイコン(稲妻マーク)を選択する様子

 

 

動的なコンテンツの選択肢から、赤枠で囲まれた「新しい応答が送信されるとき」の「応答 ID」を選択する様子

 

 

⑨最終的な入力状況は以下のようになります。

 

Microsoft Power Automateの「応答の詳細を取得する」アクションの設定画面。フォームIDに「AppSuite連携テストフォーム」、応答IDに動的コンテンツの「応答 ID」が設定されている様子。

 

 

3-3 基本設定を行う

上から三つ目にあるアクション「基本設定を保存する」をクリックし、以下の値をJSON形式で設定します。

 

Power Automateの「基本設定を保存する」アクションの設定画面。Value欄に、access_key、app_id、urlを含むJSONオブジェクトが入力され、オレンジ色の枠で強調されている。

 

※「Value」のみ変更します。ほかの入力は変更しないでください。
※access_keyと、urlはお客様側の情報に変更してください。
※Power Automateでは「@」は特殊文字として扱われます。
アプリケーション識別子を使用する場合は、「@@」と二つ繋げてエスケープしてください。

 


[コードサンプル]


{
"access_key": "sample",
"app_id": "@@ms_forms",
"url": "https://xxxx.com/cgi-bin/dneo/appsr.cgi"
}


 

 

プロパティ
access_key AppSuiteのAPIを実行するユーザーのアクセスキー
app_id 「@」を先頭に付けたアプリケーション識別子
url モジュール「appsr.cgi」のURL

<例:クラウド版の場合>
https://xxxx.dn-cloud.com/cgi-bin/dneo/appsr.cgi
xxxxの箇所はお客様ごとのサブドメインになります。

 

 

3-4 AppSuiteのアプリケーションに保存する回答を設定する

①「テキストを回答情報に追加」の下にある「+」ボタンをクリックし、「アクションの追加」を選択します。

 

Power Automateのフロー作成画面。「各設問の回答情報を記録していく」というスコープ(またはループ)内で、「アクションの追加」ボタンをオレンジ色の矢印と枠で強調している様子。

 

 

②「ランタイム」で「組み込み」を選択し、Variableを選択します。

 

アクション一覧から「Variable」を選択する手順。上部のランタイム設定を「組み込み」に切り替える箇所も強調されている。

 

 

③Variable内にある[配列変数に追加]を選択します。

 

Power Automateの「アクションの追加」画面。Variable(変数)のアクション一覧から、「配列変数に追加」をオレンジ色の枠で強調して選択している様子。

 

 

④「Name」には「MS_Forms_answers」を選択してください。

 

⑤「Value」は以下の値をJSON形式で指定します。

 

キー
is_checkbox Microsoft Formsの質問形式が
「選択肢(複数回答)」であれば「true」、そうでなければ「false」
AppSuite_part アプリケーションの、回答を保存する部品名。または部品識別子。
MS_Forms_answer 「AppSuite_part」で指定した部品に保存したい、

Microsoft Formsの回答。

 


[コードサンプル(会社名)]


{
"is_checkbox": false,
"AppSuite_part": "会社名",
"MS_Forms_answer": ""
}


 

 

⑥雷マークをクリックし、どの質問の回答を使用するか選択します。

 

「配列変数に追加(会社名)」アクションの設定画面。Value欄にJSON形式で「会社名」などの情報を入力中であり、動的コンテンツを挿入するための「雷アイコン」と入力位置がオレンジ色の矢印で強調されている。

カーソルを合わせてから、ご選択ください。

 

 

ここでは、[会社名をご記入ください]を選択します。

 

Power Automateの動的コンテンツ選択画面。「応答の詳細を取得する」の一覧から、フォームの設問項目である「会社名をご記入ください。」をオレンジ色の枠で強調して選択している様子。

 

入力状況は以下のようになります。

 

「配列変数に追加(会社名)」アクションの設定完了画面。Value欄の「MS_Forms_answer」に対して、Microsoft Formsの動的コンテンツ「会社名をご記入...」が正しく挿入されている様子。

 

 

このあと、同じ処理を行いますので、名称は任意に変更してください。
※本サンプルでは、[配列変数に追加(会社名)]としています。

 

以上で設問1セットとなります。「配列変数に追加」を、保存したい部品の分だけ繰り返します。

 

 

【2つ目の設問:製品区分】

①「テキストを回答情報に追加」の下にある「+」ボタンをクリックし、「アクションの追加」を選択します。

 

Power Automateのフロー編集画面。「配列変数に追加(会社名)」アクションの直後に、次の項目を追加するための「アクションの追加」ボタンをオレンジ色の枠で強調している様子。

 

 

(ここからは、同じ作業となりますので②~④の画面ショットは割愛します)

 

②「ランタイム」で「組み込み」を選択し、Variableを選択します。

 

③Variable内にある[配列変数に追加]を選択します。

 

④「Name」には「MS_Forms_answers」を選択してください。

 

 

⑤「Value」は以下の値をJSON形式で指定します。

 


[コードサンプル(製品区分)]


{
"is_checkbox": false,
"AppSuite_part": "製品区分",
"MS_Forms_answer": ""
}


 

 

⑥雷マークをクリックし、どの質問の回答を使用するか選択します。

 

「配列変数に追加(製品区分)」アクションの設定画面。Value欄のJSONで「AppSuite_part」に「製品区分」と指定されており、動的コンテンツ(雷アイコン)の挿入位置がオレンジ色の矢印で強調されている。

カーソルを合わせてから、ご選択ください。

 

 

ここでは、[製品区分]を選択します。

 

Power Automateの動的コンテンツ選択画面。「応答の詳細を取得する」の一覧から、フォームの設問項目である「製品区分」をオレンジ色の枠で強調して選択している様子。

 

入力状況は以下のようになります。

 

Power Automateの「配列変数に追加」アクションの設定画面。変数名 MS_Forms_answers に、is_checkbox、AppSuite_part、MS_Forms_answer の各項目を含むJSON形式の値を指定している様子。

 

 

【3つ目の設問:ご意見】

①「テキストを回答情報に追加」の下にある「+」ボタンをクリックし、「アクションの追加」を選択します。

 

Power Automateのフロー編集画面。「各設問の回答情報を記録していく」という名前のスコープ内に、「テキストを回答情報に追加」「配列変数に追加(会社名)」「配列変数に追加(製品区分)」の3つのアクションが並び、その下に「アクションの追加」ボタンが強調されている様子。

 

 

(ここからは、同じ作業となりますので②~④の画面ショットは割愛します)

 

②「ランタイム」で「組み込み」を選択し、Variableを選択します。

 

③Variable内にある[配列変数に追加]を選択します。

 

④「Name」には「MS_Forms_answers」を選択してください。

 

 

⑤「Value」は以下の値をJSON形式で指定します。

 


[コードサンプル(ご意見)]


{
"is_checkbox": false,
"AppSuite_part": "ご意見",
"MS_Forms_answer": ""
}


 

 

⑥雷マークをクリックし、[その他ご意見等]を使用するか選択します。

 

Power Automateの「配列変数に追加(ご意見)」設定画面。Value欄の「MS_Forms_answer」の値にカーソルを合わせ、右側に表示される「動的なコンテンツを追加」アイコンをクリックしようとしている様子。オレンジ色の矢印と丸枠で操作箇所が強調されている

カーソルを合わせてから、ご選択ください。

 

 

ここでは、[その他ご意見等がございましたら、ご記入ください。]を選択します。

 

Power Automateの編集画面。左側に「配列変数に追加(ご意見)」の設定パネル、右側に「動的なコンテンツ」の一覧が表示されている。一覧の中からMicrosoft Formsの回答項目「その他ご意見等がございましたら、ご記入ください。」がオレンジ色の枠で強調されており、これを選択する手順を示している。

 

 

入力状況は以下のようになります。

 

Power Automateの「配列変数に追加(ご意見)」設定画面。Value欄の JSON 内「MS_Forms_answer」の値として、Microsoft Forms の動的コンテンツ『その他ご意見等...』が正しく挿入された状態。

 

最初から登録してあった「テキストを回答情報に追加」はサンプルです。
右クリックして「削除」をクリックし、削除します。

 

Power Automateのフロー編集画面。「テキストを回答情報に追加」アクションのメニューから「削除」項目を選択しようとしている様子。オレンジ色の枠で「削除」メニューが強調されている。

 

最終的な入力状況は以下のようになります。
※名称は[配列変数に追加(会社名)][配列変数に追加(製品区分)][配列変数に追加(ご意見)]としています。

 

Power Automateのフロー全体図。上から「フォームの回答を格納する変数を宣言する」アクションがあり、その下に「各設問の回答情報を記録していく」というスコープが続く。スコープ内には、会社名、製品区分、ご意見をそれぞれ配列変数に追加する3つのアクションが並び、最後に「フォーム回答情報を解析する」アクションへと繋がっている様子。

 

設定しましたら、フローを保存してください。

 

Power Automate の画面右上にあるツールバー。「保存」ボタンがオレンジ色の枠で強調されており、隣には「テスト」や「Copilot」などのメニューが並んでいる様子。

 

 

画面上部の「戻る」をクリックし、マイフローの一覧に戻ります。

 

Power Automate のフロー編集画面左上にある「戻る」ボタン。オレンジ色の枠で強調されており、クリックするとフローの詳細画面へ戻ることを示している。

 

 


3-5 フローを有効にする


画面上部の「オンにする」からフローを有効にします。

 

Power Automateのフロー詳細画面。上部のメニューバーにある「オンにする」ボタンがオレンジ色の枠で強調されており、フローを有効化する操作を示している

 

 

以上で設定は終了です。

 

 


4:動作確認を行う


Microsoft Formsに回答を入力して送信し、アプリケーションにデータが追加されることを確認してください。

 

Microsoft FormsとAppSuiteの連携結果。左側には「ネオネオ株式会社」などの回答を入力したForms画面があり、オレンジ色の矢印が右側のAppSuite画面を指している。AppSuite側では、Formsの回答内容が一覧画面および詳細画面の各項目(会社名、製品区分、ご意見)に正しく登録されている様子

 

 


制限事項


・選択肢の「その他」に対応していません。
AppSuiteのチェックボックス、ラジオボタン、プルダウンには、Microsoft Formsの
「選択肢」形式の質問にあるような「その他」の選択肢がございません。
Microsoft Formsを用意する際に、「選択肢」形式では「その他」オプションを使用しないでください。

 

・対応していない質問形式がございます。
・AppSuiteには、Microsoft Formsにある「リッカート」がございません。
「リッカート」に対応したい場合、ラジオボタン部品を複数並べ、疑似的にリッカートを作成する必要があります。
・AppSuiteには、Microsoft Formsにある「ランキング」がございません。
・Microsoft Formsにある「ファイルのアップロード」形式の質問は未検証です。本資料で使用しているフローでは対応していません。

 

■本件に関するお問い合わせ
株式会社ネオジャパン カスタマーサクセス部
TEL:045-640-5921 Email:csuccess@desknets.com

WRITER
カスタマーサクセス部 橋本
WRITER
カスタマーサクセス部 橋本
2004年入社のプロパ社員。元営業の視点を生かし、 カスタマーサクセス部としてお客様の成功に情熱を注いでいます。 プライベートは野球一筋。学童野球のコーチとして子どもたちの成長に伴走。長男・次男も野球に打ち込み、週末は家族でグラウンドにいることが多い日々。仕事も野球も、チームの力を信じて全力で取り組むのが私のスタイルです。
2004年入社のプロパ社員。元営業の視点を生かし、 カスタマーサクセス部としてお客様の成功に情熱を注いでいます。 プライベートは野球一筋。学童野球のコーチとして子どもたちの成長に伴走。長男・次男も野球に打ち込み、週末は家族でグラウンドにいることが多い日々。仕事も野球も、チームの力を信じて全力で取り組むのが私のスタイルです。
  • X
  • facebook
  • Pocket
  • はてな