Power Automateを使って、問い合わせ→リスト→ファイル保存→通知まで自動化できます。
この記事は、SharePointサイトから問い合わせする社内問い合わせシステムの作成手順です。
Power Automateで自動化するフローの作成手順が中心になります。
フローが長くなるので、JSON、式をこの記事からコピーして作成してください(アクション名は、同じにしないとフローはエラーになります)。
※作り方の手順は、YouTubeの方がわかりやすいので、動画を視聴した後にブログから式などをコピーして作成してください。
※フォーム、リスト、ドキュメントライブラリ、チャネルなどの作成手順については、動画を視聴してください(ブログでの手順が長くなるため動画にしています)。
目次
はじめに
第1章 SharePoint Onlineとは?
|SharePoint Onlineって何ができるの?
|SharePoint Online導入のメリットと注意点
|SharePoint Onlineの費用
|SharePoint Onlineで覚えておくこと
|SharePointに関連するアプリ
第2章 サイト構築
|社内ポータルサイトリニューアルプロジェクト事例
|少ない人数で効率的に運用できる体制を考えよう!
|サイトマップを作って全体像を把握しよう
第3章 サイト作成手順
|サイト作成のポイント
|コミュニケーションサイトの作成手順
|チームサイトの作成手順
第4章 自動化
|社内連絡を自動化
|情報共有を自動化
|申請(承認フロー)を自動化
おわりに
本の説明
会社の社内ポータルサイトをこれから構築する為のサイト作成〜自動化までの参考書です。この1冊に少人数で社内ポータルサイトを構築したノウハウをまとめました。中小企業でどのようにサイトを構築したか実体験が書いてあります。
-
【電子書籍】SharePointポータルサイト作り方
続きを見る
本記事の内容
- システム構成
- フォーム、リスト、チャネルの準備
- 社内問い合わせフロー作成手順
式、JSONをコピーすることができるので、Power Automateが得意でなくても作ることができます。
システム構成
社内問い合わせシステムの構成の流れは下記になります。
簡単な流れ
- フォームから問い合わせ(内容、添付ファイル)→フローが実行
- 添付ファイル(スクショ画像など)があればSharePointに保存
- 添付ファイルがあれば、新しくフォルダーを作成し、SharePointにファイルを移動
- リストに問い合わせ内容とフォルダーのリンクを記録
- Teamsの問い合わせチャネルに、チームメンションして投稿
- 問い合わせした人に自動返信メール
フローを中心にして、アプリケーションを連携させて自動化しています。
フローのアクションが進むことで、色々な処理をすることができます。
フォーム、リスト、チャネルの準備
フォーム、リスト、ドキュメントライブラリ、チャネルの準備をします。
例として情報システム部のITサポート問い合わせにしました。
問い合わせ業務は、どの部署でもあるのでその部署にあったフォーム、リスト、ドキュメント、チャネルを作成してください。
準備のフォーム、リストの作り方を間違えるとフローがエラーになるのでご注意ください。
YouTubeでご確認ください。
問い合わせフォーム
問い合わせリスト(一元管理)
問い合わせライブラリ(ファイル保存)
問い合わせチャネル(通知)
社内問い合わせフロー作成手順
手順の説明はブログよりYouTubeの方が分かりやすいので、動画を見ながら構築してください。
フォームの質問の動的なコンテンツの式は、コピペでできないので外しています(最後のメールのところのみあり)。
また、式をコピーして簡単にできるようにしているので、データ操作の「作成」に値を追加するアクションなどがあります。
アクション名を変更している箇所があるので、同じアクション名にしてください(式がエラーになります)。
Power Automate社内問い合わせフロー
step
1フロー作成(トリガー)
自動化したクラウドフローから「新しい応答が送信されるとき」を選択して、フローを作成します。
「応答の詳細を取得する」のアクションを追加しないと、回答を取得することができないので忘れないようにしてください。
①「作成」→「自動化したクラウドフロー」をクリックします。
②フロー名『ITサポート社内問い合わせフロー』を入力し、「新しい応答が送信されるとき」を選択、「作成」をクリックします。
③フォームIDに「カスタム値の入力」をクリックし、「フォームID」を追加します。
step
2フォームの回答を取得
④「新しいステップ」→「応答の詳細を取得する」のアクションを追加します。フォームIDに「カスタム値の入力」をクリックし、「フォームID」を追加します。応答IDに「応答ID」を追加ます。
step
3ユーザープロフィールの取得
問い合わせのユーザー情報を取得して、フォルダー名、リストへの記録、アップロードしたファイルの取得、自動返信メールに追加します。
⑤「新しいステップ」→「ユーザープロフィールの取得(V2)」のアクションを追加します。ユーザー(UPN)に「Responders's Email」を追加します。
step
4変数を初期化する
ContentとSubjectの変数を2つ初期化します。この変数は、Teamsの投稿の件名、内容の値を格納する変数になります。
⑥「新しいステップ」→「変数を初期化する」を追加します。名前に『Content』、種類「文字列」を選択します。
※アクション名は、「Content変数を初期化する」に変更しました。
⑦「新しいステップ」→「変数を初期化する」を追加します。名前に『Subject』、種類「文字列」を選択、値に下記式と動的なコンテンツから値を追加します。
※アクション名は、「Subject変数を初期化する」に変更しました。
※この値が、Teamsチームへの投稿の「件名」になります。
convertFromUtc(utcNow(), 'Tokyo Standard Time', 'yyyy-MM-dd')
step
5条件(添付ファイルがあるか)
条件を追加して、添付ファイルがあればフォルダーを作成、添付ファイルが無ければリストにアイテムを作成します。
⑧「新しいステップ」→「条件」を追加します。左側の「値の選択」に「ファイルをアップロードしてください。」を追加します。真ん中は、「次の値に等しくない」を選択し、右側の「値の選択」は空白にします。
※アクション名は、「添付ファイルがあるか判断」に変更しました。
step
6フォルダーの作成と移動
アップロードするファイルがある場合は、問い合わせのドキュメントライブラリにフォルダーを作成し、ファイルを移動します。フォルダー名は、フォームの応答IDを0から始まる3桁にして、システム名と問い合わせユーザー名にします。
⑨「はいの場合」の中の「アクションの追加」→「新しいフォルダーの作成」を追加します。サイトのアドレス、一覧またはライブラリ「ITSupportDoc」を選択、フォルダーのパスに下記式と動的なコンテンツから値を追加します。
formatNumber(triggerOutputs()?['body/resourceData/responseId'],'d3','ja-jp')
⑩「アクションの追加」→「ファイルの取得(プロパティのみ)」を追加します。サイトのアドレス、ライブラリ名「ドキュメント」、エントリをフォルダーに制限するに「ドキュメントのアプリ内の質問のフォルダーのパス」、フィルタークエリに下記を追加します。
Author/EMail eq '@{outputs('ユーザー_プロフィールの取得_(V2)')?['body/mail']}'
⑪「アクションの追加」→「ファイルの移動」を追加します。現在のサイトアドレス、移動するファイル「識別子」、送信先サイトアドレス、インストール先フォルダー「完全パス」、別のファイルがすでに存在する場合「Move with a new name」を追加、選択します。
※「完全パス」は、新しいフォルダーの作成の「完全パス」です。
※ファイルの取得(プロパティのみ)から「識別子」を追加すると「Apply to each」が自動で追加されます。
step
7リンク有りのアイテムを作成
問い合わせリストに作成した「フォルダー」のリンク付きでアイテムを作成します。
「項目の作成」のアクションにはハイパーリンクの列に「代替テキスト」が追加できないので、「SharePointにHTTP要求を送信します」のアクションを使って、アイテムを部分更新します。
⑫「アクションの追加」→「項目の作成」を追加します。サイトのアドレス、リスト名、Titleに変数「Subject」、System Valueに「カスタム値の入力」で「システムを選択してください」、Contentに「お問い合わせ内容を詳細に入力してください」、Name Claimsに「カスタム値の入力」で「メール」を選択、追加します。
※アクション名は「リンク有りでアイテムを作成」に変更しました。
⑬「アクションの追加」→「SharePointにHTTP要求を送信します」を追加します。サイトのアドレス、方法「PATCH」、URIとヘッダーとボディーは下記をコピーして貼り付けします。
※ヘッダーはTのマークをクリックしてテキストモードにしてください。
※URIのリスト名は、リストに表示されているリスト名です。
※アクション名は「リンクを追加してアイテムを更新」に変更しました。
_api/web/lists/getbytitle('ITSupport')/items(@{outputs('リンク有りでアイテムを作成')?['body/ID']})
{ "content-type": "application/json;odata=verbose", "IF-MATCH": "*" }
{ "__metadata": { "type": "SP.Data.ITSupportListItem" }, "Link": { "__metadata": { "type": "SP.FieldUrlValue" }, "Description": "Link", "Url": "@{outputs('新しいフォルダーの作成')?['body/{Link}']}" } }
step
8投稿内容の変数の設定(リンク付き)
問い合わせ内容とフォルダーのリンクをチームへ投稿するために、変数Contentに値を追加します。
⑭「アクションの追加」→「変数の設定」を追加します。名前に「Content]、値に下記を追加します。
※アクション名は、「Content変数の設定リンク有り」に変更しました。
誰からの問い合わせだったかなど追加する場合は、式の前に追加してください。
詳しくは、YouTubeを視聴してください。
@{uriComponentToString(replace(uriComponent(outputs('リンク有りでアイテムを作成')?['body/Content']), '%0A', '<br>'))}<br><a href=\"@{outputs('新しいフォルダーの作成')?['body/{Link}']}\" rel=\"noreferrer noopener\" target=\"_blank\" title=\"\">クリックしてファイルを確認する</a>
step
9リンク無しのアイテムを作成
アップロードするファイルが無い場合(いいえの場合)、リンク無しでアイテムを作成します。「はいの場合」の中にあるアクションをコピーして追加することができます。
それから変数にはリストのContent(内容)を改行する式を追加してください。
⑮「アクションの追加」→「項目の作成」を追加します。サイトのアドレス、リスト名、Titleに変数「Subject」、System Valueに「カスタム値の入力」で「システムを選択してください」、Contentに「お問い合わせ内容を詳細に入力してください」、Name Claimsに「カスタム値の入力」で「メール」を選択、追加します。
※アクション名は「リンク無しでアイテムを作成」に変更しました。
⑯「アクションの追加」→「変数の設定」を追加します。名前に「Content]、値に下記を追加します。
※アクション名は、「Content変数の設定リンク無し」に変更しました。
誰からの問い合わせだったかなど追加する場合は、式の前に追加してください。
詳しくは、YouTubeを視聴してください。
uriComponentToString(replace(uriComponent(outputs('リンク無しでアイテムを作成')?['body/Content']), '%0A', '<br>'))
step
10チームID、チャネルID、チーム名の値を格納
JSONをコピペでチームのチャネルにメンション投稿するために、データ操作の作成に(チームID、チャネルID、チーム名)を追加します。
チームID、チャネルIDの場所は、YouTubeでご確認ください。
⑰一番下(条件の下)にある「+新しいステップ」→データ操作「作成」を追加します。入力にTeamsアプリからコピーしたチームIDを追加します。
※アクション名は、「teamID」に変更しました。
⑱「+新しいステップ」→データ操作「作成」を追加します。入力にTeamsアプリからコピーしたチャネルIDを追加します。
※アクション名は、「channelID」に変更しました。
⑲「+新しいステップ」→データ操作「作成」を追加します。入力にTeamsアプリで確認したチーム名を追加します。
※アクション名は、「teamName」に変更しました。
step
11Teamsにチームメンションして投稿
チームメンションしてチャネルに投稿するアクションが無いので、graph apiを使って投稿します。
⑳「+新しいステップ」→Office 365 Groups「HTTP要求を送信します」を追加します。URI、メソッド「POST」、「本文」に選択、追加します。
※URIと本文は、下記を追加してください。
※2024/10/25現在、このアクションは表示されません。
「Microsoft Graph HTTP 要求を送信する」が代替アクションです。
https://graph.microsoft.com/v1.0/teams/@{outputs('teamID')}/channels/@{outputs('channelID')}/messages
{ "subject": "@{variables('Subject')}", "body": { "contentType": "html", "content": "<div><at id=\"0\">@{outputs('teamName')}</at><br>@{variables('Content')}</div>" }, "mentions": [ { "id": 0, "mentionText": "@{outputs('teamName')}", "mentioned": { "conversation": { "id": "@{outputs('teamID')}", "displayName": "@{outputs('teamName')}", "conversationIdentityType": "team" } } } ], "reactions": [] }
step
12問い合わせユーザーにメール送信
問い合わせのユーザーに対して、自動返信メールを送信します。内容を改行する式を本文に追加していますが、フォームの質問を変更すると式が変わってくるのでご注意ください。
㉑「+新しいステップ」→「メールの送信(V2)」を追加します。宛先に「メール」、件名に「◯◯へ送信...のお問い合わせ」、本文に下記を追加します。
※差出人を空白にしておくとフロー作成者のメールボックスるから送信されるので、共有メールボックスのメールアドレスを追加してください。
※本文にある「問い合わせ内容詳細を改行する式」は、コピーして貼り付けるだけではエラーになるので、動画を視聴してください(outputsの式を変更する必要があります)。
@{outputs('ユーザー_プロフィールの取得_(V2)')?['body/department']}<br> @{outputs('ユーザー_プロフィールの取得_(V2)')?['body/displayName']}さん<br> <br> お疲れさまです。<br> 下記お問い合わせが送信されました。<br> 情シス担当者からの連絡をお待ち下さい。<br> ※添付ファイルも送信されています。<br> --------------------------------------------<br> @{uriComponentToString(replace(uriComponent(outputs('応答の詳細を取得する')?['body/re000515f198a4a979d6be07fa47a02d1']), '%0A', '<br>'))}<br>
㉒「保存」をクリックします。
フロー全体
まとめ
今回は、SharePointに社内問い合わせシステムを構築する仕組みを説明しました。
Teamsしか使っていなくて、SharePointポータルサイトをこれから構築したいという人も多いと思います。
SharePointの使い方は、情報共有、ファイル管理の他にも自動化することで、承認ワークフロー、社内連絡など簡単に作ることができます。
社内問い合わせシステムは、SharePointサイトにフォームの問い合わせのリンクを貼り、問い合わせ業務を一本化するSharePointの使い方として活用してください。
まだ、SharePointポータルサイトを構築されていない方は、電子書籍の「SharePointポータルサイト作り方」をご一読ください。
目次
はじめに
第1章 SharePoint Onlineとは?
|SharePoint Onlineって何ができるの?
|SharePoint Online導入のメリットと注意点
|SharePoint Onlineの費用
|SharePoint Onlineで覚えておくこと
|SharePointに関連するアプリ
第2章 サイト構築
|社内ポータルサイトリニューアルプロジェクト事例
|少ない人数で効率的に運用できる体制を考えよう!
|サイトマップを作って全体像を把握しよう
第3章 サイト作成手順
|サイト作成のポイント
|コミュニケーションサイトの作成手順
|チームサイトの作成手順
第4章 自動化
|社内連絡を自動化
|情報共有を自動化
|申請(承認フロー)を自動化
おわりに
本の説明
会社の社内ポータルサイトをこれから構築する為のサイト作成〜自動化までの参考書です。この1冊に少人数で社内ポータルサイトを構築したノウハウをまとめました。中小企業でどのようにサイトを構築したか実体験が書いてあります。
無料体験でも読むことができます。