Power AutomateでServiceNowのレコードを取得する設定方法

Power AutomateとServiceNowのレコード取得設定のアイキャッチ serviceNow
Power AutomateからServiceNowのレコードを取得する設定の全体像

Power Automate から ServiceNow のデータを取り出すとき、最初につまずきやすいのが ServiceNow コネクタの「レコードの取得」アクションです。画面上は数個の入力欄に見えますが、実際には「どのテーブルを見るのか」「どのレコードを1件だけ指定するのか」「参照項目を人間が読める値で返すのか」を決めています。

この記事では、ServiceNow コネクタの接続作成から、「レコードの種類」「システム ID」「表示用の参照値」「フィールド指定」まで、設定値の探し方と当てはめ方を順番に整理します。例としてインシデントを取得するケースを使いますが、考え方はユーザー、変更要求、要求アイテムなどの他テーブルでも同じです。

Power AutomateとServiceNowのレコード取得設定のアイキャッチ
Power AutomateからServiceNowのレコードを取得する設定の全体像

まず全体像:Power Automate は「テーブル名」と「sys_id」で1件を取りに行く

ServiceNow のレコードは、すべて何らかのテーブルに保存されています。インシデントなら incident、ユーザーなら sys_user、要求アイテムなら sc_req_item のように、取得対象ごとにテーブルが異なります。

Power Automate の ServiceNow コネクタで「レコードの取得」を使うときは、次の2つが特に重要です。

  • レコードの種類:取得したいServiceNowテーブル、またはPower Automate上の表示名
  • システム ID:取得したい1レコードを一意に示す sys_id

設定の読み替えイメージ

Power Automateの項目 ServiceNow側で探すもの
レコードの種類 テーブル名、またはレコードタイプ incident / Incidents
システム ID 対象レコードの sys_id 46f... のような32文字ID
フィールド 返してほしい列名 number,short_description,state,sys_id

接続設定:まずServiceNowコネクタの接続を作る

Power AutomateとServiceNow接続設定の対応関係図
画面は説明用のイメージです。Power Automateの接続設定で入力する値を、ServiceNow側のどこで確認するかを対応させています。

Power Automate で ServiceNow アクションを追加すると、最初に接続の作成を求められます。Microsoft Learn では、ServiceNow コネクタは Power Automate の Premium コネクタとして案内されており、接続方式として Basic Authentication、Microsoft Entra ID User Login、証明書を使うMicrosoft Entra ID OAuth、OAuth2 などが用意されています。

検証や小規模な自動化では Basic Authentication が分かりやすい一方、組織利用では Microsoft Entra ID 連携や専用のサービスアカウントを使う設計が安全です。どの方式でも共通して大事なのは、Power Automate から読み取りたいServiceNowテーブルに対して、そのユーザーが読み取り権限を持っていることです。

Basic Authenticationで必要になる値

  • Instance:ServiceNow のインスタンス名、または対象URL
  • Username:Power Automate から接続するユーザー
  • Password:そのユーザーのパスワード、または運用ルールで許可された認証情報

Microsoft Entra ID User Loginで必要になる値

  • Instance Name:ServiceNowサイトを識別するインスタンス名
  • Resource URI:ServiceNow代表アプリケーションとして登録したEntra IDアプリの識別子

Microsoft Learn では、User Login方式では認証種類として「Microsoft Entra ID User Login」を選び、ServiceNow Instance name と Resource ID を指定する流れが説明されています。社内SSOを使う場合は、この方式が候補になります。

「レコードの取得」で設定する項目

ServiceNow コネクタの Get Record は、ServiceNow の特定オブジェクトタイプのレコードを1件取得するアクションです。Microsoft Learn 上のパラメーターでは、必須項目として Record TypeSystem ID が示されています。

  • Record Type:取得対象の種類。Power Automate上では「Incidents」などの表示名で選ぶことがあります。
  • System ID:対象レコードの sys_id。ServiceNow側の1件を特定する値です。
  • Display System References:参照項目を表示値として含めるかを決めます。
  • Exclude Reference Links:参照リンクを返さないようにして、出力を軽くできます。
  • Fields:返すフィールドをカンマ区切りで絞れます。

まずは Record TypeSystem ID だけで取得し、結果が返ったら Fields を指定して必要な項目だけに絞るのが分かりやすい進め方です。

レコードの種類はどう見つけるか

一番安全なのは、Power Automate の入力欄で表示される候補から選ぶことです。ServiceNow コネクタにはレコードタイプを一覧するアクションも用意されているため、画面上の候補に出る表示名を使うのが基本です。

ServiceNow側から推測する場合は、開いている画面のURLもヒントになります。たとえばインシデントのフォームURLが /incident.do?sys_id=... のようになっていれば、テーブル名は incident です。ユーザーなら sys_user、要求アイテムなら sc_req_item のように、ServiceNowのテーブル名がレコードタイプの実体になります。

取得したいもの ServiceNowテーブル名の例 Power Automateでの考え方
インシデント incident Record TypeでIncidents系を選ぶ
ユーザー sys_user Users系のレコードタイプを選ぶ
要求アイテム sc_req_item Requested Item系を選ぶ

システム ID(sys_id)はどう見つけるか

ServiceNow の sys_id は、各レコードを一意に識別する32文字のIDです。ServiceNow公式ドキュメントでも、sys_id は各レコードを識別する一意のGUIDとして説明されています。

手作業で確認する場合は、対象レコードをServiceNowで開き、ヘッダーからURLをコピーします。URL内に sys_id= が含まれていれば、その後ろの32文字がPower Automateの「システム ID」に入れる値です。

https://your-instance.service-now.com/incident.do?sys_id=46f4f0dba9fe19810012d100cca80666

この例なら、Power Automate の設定は次のようになります。

  • レコードの種類:Incidents、または incident
  • システム ID46f4f0dba9fe19810012d100cca80666

フロー内で前段のアクションから値を渡す場合は、「レコードの作成」や「レコード一覧の取得」の出力に含まれる sys_id を動的コンテンツとして使います。手入力ではなく前段の出力を使うと、毎回違うレコードを自動で取得できます。

Fieldsには何を入れるべきか

Fields は、ServiceNowから返す列を絞るための項目です。空欄でも動くことはありますが、Power Automate側で扱いやすくするなら、最初から必要な列だけを指定するのがおすすめです。

インシデントでよく使う例は次の通りです。

number,short_description,state,priority,assigned_to,sys_id

参照項目を人間が読める名前で使いたい場合は、Display System References を有効にして動作を確認します。一方で、後続アクションで別テーブルのレコードをさらに取得する場合は、表示値ではなく参照先の sys_id が必要になることがあります。画面表示用なのか、後続処理用なのかで使い分けてください。

よくあるエラーと確認ポイント

  • Invalid Table と出る:レコードの種類が違う、または接続ユーザーがそのテーブルを読めない可能性があります。
  • 対象が見つからないsys_id が別テーブル、別インスタンス、またはコピー元環境の値になっていないか確認します。
  • 参照項目がIDのまま表示される:Display System References の設定を確認します。
  • 出力が多すぎて扱いにくい:Fields に必要な列だけをカンマ区切りで指定します。
  • 接続で失敗する:Microsoft Learnでは、ServiceNowコネクタが基本的に service-now.com で終わるインスタンスURLを想定している旨の制限も案内されています。カスタムドメイン利用時は認証方式も含めて確認してください。

まとめ

Power Automate の「レコードの取得」は、ServiceNow上の1件を取得するシンプルなアクションですが、設定値の意味を分けて考えると迷いにくくなります。

  • 接続は、組織の認証方針に合わせて Basic、Entra ID、OAuth2 から選ぶ
  • レコードの種類は、取得対象のServiceNowテーブルを指定する
  • システム IDには、対象レコードの sys_id を入れる
  • sys_id はレコードURLや前段アクションの出力から取得する
  • Fieldsを使うと、後続アクションで扱う値を整理しやすい

最初はインシデント1件で試し、取得結果に numbershort_description が返ることを確認してください。その後、ユーザーや要求アイテムなど別テーブルへ広げると、Power AutomateとServiceNowの連携がかなり組み立てやすくなります。

参考資料

タイトルとURLをコピーしました