shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Power Automate】JSONから値取得の事例(kintoneのWebhookから受信)

Power AutomateのクラウドフローでJSONから値取得の事例です。kintoneのWebhookで受信したJSONから必要な値を抽出します。

なお、PowerAutomateのライセンスは「Power Automate for Office 365」です(Microsoft 365 Business Standard を利用しています)。

内容:

事例の前提

kintoneのWebhookで受信したJSONから値を取得します。

具体的には次のフローで取得したJSONの内容を抽出し、Teamsに投稿します。

shikumika.org

JSONから値取得と活用例

1.JSONの内容確認

前提になったPower Automateのフローを実行した場合、次のように実行結果から出力内容等を確認できます。

この事例では、「Teams Webhook 要求を受信したとき」というトリガーの「出力」欄で値取得したいJSONの内容が確認できます。

なお、kintoneのWebhookからの通知詳細は次のとおりです。

参考: kintoneの操作で送信されるWebhookの通知内容 | kintone ヘルプ

この事例では、実行結果の「出力」にあるBodyで確認できる

実行結果(出力)からJSONの内容を確認事例

この事例で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から値取得の関数例」の式を入力、修正します。

JSONの内容を数式で設定している

「チャットまたはチャネルでメッセージを投稿する」の設定例

なお、上記の設定例で「レコードリンク」の箇所は、「リンクの挿入」でレコードへのリンクとなるようにしています。

Massage欄で、"<>"(コードビューの切り替え)をクリックし、HTMLのaタグに href="@{triggerBody().url}" の属性含め記述しています。

<a class="editor-link" href="@{triggerBody().url}">レコードリンク</a>

上記の「チャットまたはチャネルでメッセージを投稿する」の設定例で、"<>"(コードビューの切り替え)をクリックしたイメージは次のとおりです。

HTMLで編集ができる

"<>"(コードビューの切り替え)でHTML表示の状態

これで設定は完了です。

下図のようにタイトルや、レコード内容、レコードのURLが投稿されます。

この通知例で、数式部分(triggerBody().recordTitleなど)は、内容確認で記載しているので、実際の使用時には削除します。

タイトルや、レコード内容、レコードのURLが投稿されている

Teamsへの通知例

参考:Power Automate DesktopでJSONの値取得サンプル

Power FxでJSONの値取得サンプルです。

shikumika.org

Power Fxが利用していないフローでのJSONの値取得サンプルです。

shikumika.org

以上、Power AutomateでJSONから値取得の事例(kintoneのWebhookから受信)でした。