Power AutomateのクラウドフローでJSONから値取得の事例です。kintoneのWebhookで受信したJSONから必要な値を抽出します。
なお、PowerAutomateのライセンスは「Power Automate for Office 365」です(Microsoft 365 Business Standard を利用しています)。
内容:
事例の前提
kintoneのWebhookで受信したJSONから値を取得します。
具体的には次のフローで取得したJSONの内容を抽出し、Teamsに投稿します。
JSONから値取得と活用例
1.JSONの内容確認
前提になったPower Automateのフローを実行した場合、次のように実行結果から出力内容等を確認できます。
この事例では、「Teams Webhook 要求を受信したとき」というトリガーの「出力」欄で値取得したいJSONの内容が確認できます。
なお、kintoneのWebhookからの通知詳細は次のとおりです。
参考: kintoneの操作で送信されるWebhookの通知内容 | kintone ヘルプ
この事例でJSONの内容は次のとおりです。
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "ADD_RECORD",
"app": {
"id": "158",
"name": "顧客情報アプリ‐Webhook"
},
"record": {
"備考": {
"type": "MULTI_LINE_TEXT",
"value": ""
},
"レコード番号": {
"type": "RECORD_NUMBER",
"value": "3"},
~~
"会社名": {
"type": "SINGLE_LINE_TEXT",
"value": "aaa株式会社"
},
"$id": {
"type": "__ID__",
"value": "3"
}
},
"recordTitle": "aaa株式会社",
"url": "https://xxxxxxxxxx.com/k/158/show#record=3"
}
なお、この事例で上記の赤字部分は「kintoneアプリのフィールドコード」です。
参考:JSONから値取得の関数例
この事例は、「Teams Webhook 要求を受信したとき」というトリガーの出力(Body)に対象のJSONがあるので、triggerBody()とドット表記で値取得できます。
上記の青字部分”aaa株式会社”を取得したい場合:
triggerBody().record.会社名.value
レコードのURLを取得したい場合:
triggerBody().url
なお、JSONの仕様が把握できる場合は、PowerAutomateの「JSON解析」アクションを使用しなくても、関数を記載することで取得可能です。
2.JSONの値取得とTeamsへの投稿
具体的な活用例として、JSONの内容を抽出し、Teamsに投稿します。
前提になったフローで、「チャットまたはチャネルでメッセージを投稿する」のパラメータを次のように修正します。
設定のアウトプットイメージ
Message欄で式の挿入をクリックし、前述の「JSONから値取得の関数例」の式を入力、修正します。
なお、上記の設定例で「レコードリンク」の箇所は、「リンクの挿入」でレコードへのリンクとなるようにしています。
Massage欄で、"<>"(コードビューの切り替え)をクリックし、HTMLのaタグに href="@{triggerBody().url}" の属性含め記述しています。
<a class="editor-link" href="@{triggerBody().url}">レコードリンク</a>
上記の「チャットまたはチャネルでメッセージを投稿する」の設定例で、"<>"(コードビューの切り替え)をクリックしたイメージは次のとおりです。
これで設定は完了です。
下図のようにタイトルや、レコード内容、レコードのURLが投稿されます。
この通知例で、数式部分(triggerBody().recordTitleなど)は、内容確認で記載しているので、実際の使用時には削除します。
参考:Power Automate DesktopでJSONの値取得サンプル
Power FxでJSONの値取得サンプルです。
Power Fxが利用していないフローでのJSONの値取得サンプルです。
以上、Power AutomateでJSONから値取得の事例(kintoneのWebhookから受信)でした。