Now Assistでカタログアイテムとフローを自動生成してみた!申請〜承認〜通知はどこまでAIで作れる?

技術

ServiceNow Otto Now Assist

社内業務に関するシステムを一元化して運用・管理できるクラウドサービス「ServiceNow」。
株式会社KYOSOでは、これまでの豊富な運用経験をもとに、ServiceNowの企画立案から運用・保守、内製化までトータルでサポートしています。

はじめに

ServiceNowのAI機能である「Now Assist」(現ServiceNow Otto)には、業務効率や生産性の向上が期待できる様々な機能が備わっています。その中でも、開発者向けの「Now Assist for Creator」には、開発者をサポートするためのAI機能が充実しています。

以前投稿したブログ記事(タイトル:「Now Assistにビジネスルールのスクリプトを書かせてみた!」)では、Now Assist for Creatorのスキルのひとつである「Code Assist」について紹介しました。
今回はさらに一歩踏み込み、複数のスキルを組み合わせて、申請フォームから承認・通知までのフロー作成をどこまで効率化できるかを検証しました。本記事で利用したスキルは以下の2つです。

  • カタログアイテム生成(Catalog item generation): チャット形式でカタログアイテムを作成できる機能です。回答に応じて表示が切り替わるなどの動的な動作を備えた質問項目や説明文を追加してくれます。Catalog Builderから利用できます。
  • 画像からのフロー生成(Flow generation with images):フローを表現した画像を添付すると、その流れに沿ったフローを生成してくれる機能です。

※ServiceNowのAI機能「Now Assist」は、現在「ServiceNow Otto」に名称が変更されています(Now Assist for Creatorは「ServiceNow Otto for Creator」)。本記事は検証時点の名称で記載しているため、画面上の表示(「Build with Now Assist」などのボタン名やメニュー名)が、お使いの環境と異なる場合があります。

1. 環境情報

  • インスタンスバージョン:Australia
  • インスタンスの種類:パートナー向けのデモインスタンス
  • プラグイン:Now Assist for Creator(sn_now_creator)
  • スキル:Catalog item generation、Flow generation with images(※検証時、Flow generation with imagesスキルを有効化する際は先にFlow generationを有効にしておく必要がありました)
  • 操作ユーザーのロール:catalog_builder_editor、now.assist.creator、flow_designer

※スキルは、Now Assist Adminコンソールの「Now Assist Skills」タブから有効化できます(検証時点の画面です)。
※Now Assist Adminコンソールを利用するには、Now Assist Adminロールが必要です。
※現在の公式ドキュメントでは、スキルの有効化はadminロールを持つユーザーが「AI Admin Hub」>「Features」>「Creator」から行う手順となっています。お使いの環境によって手順が異なる場合がありますので、詳しくはServiceNow製品ドキュメント「Turn on the flow generation with images skill」をご参照ください。

2. 検証の目的

本検証では、「カタログアイテム生成」と「画像からのフロー生成」の2つのスキルを組み合わせ、申請からメール送信までを自動化する仕組みを構築します。
その過程で、Now Assistによって開発作業をどの程度効率化できるかを調査することを目的としています。
具体的には、以下の点を評価します。

  • 精度:プロンプトや添付画像から、意図した通りのカタログアイテム・フローが生成されるかどうか
  • 手直しの量:生成されたものを、人間がどの程度修正すれば実際に使える状態になるか
  • 開発工数削減への貢献度:ゼロから手作業で作る場合と比べて、作業時間の短縮につながるかどうか

3. 検証手順

題材には、社員が画面拡張用のモニターを申請する「モニター申請」を選びました。本検証を通じて実現したいことは以下の通りです。

  • 申請者がカタログアイテムからモニターを申請する
  • 申請者のマネージャーに承認依頼を出す
  • マネージャーが承認または却下する
  • 承認された場合は、受け取り場所に関する情報を含むメールを申請者に送信する
  • 却下された場合は、承認が却下されたことを申請者にメールで知らせる

以下のステップで検証します。

3-1. 事前準備 – 検証ユーザーの作成

申請者役とマネージャー役のユーザーを作成します。
ユーザーフォームに「Manager」フィールドを表示し、マネージャー役を申請者の「Manager」欄で指定します。実際のアドレスにメールを飛ばして内容を確認する場合は、申請者の「Email」に有効なメールアドレスも設定します。

3-2. カタログアイテムを生成する

フィルターナビゲーターからService Catalog > Catalog Builderにアクセスします。
Dashboardで「Build from scratch」を押下し「Standard」を選択した状態で「Continue」を押下します。すると、画面表示が切り替わるので「Build with Now Assist」を選択した状態で「Build」を押下します。

以下のような画面が表示されたら、プロンプトの準備に移ります。

上記画像の赤枠で囲ったテキストフィールドにプロンプトを入力します。
※英語環境での開発のため、英語でプロンプトを入力しました。

プロンプト例:
Create a catalog item named “Monitor Request” so that users can request a monitor.

Questions:
 - Requestor (reference to the user table)
 - Approver (reference to the user table)
 - Select the size of the monitor (multiple choice: 24 inches, 36 inches)
 - Need a monitor arm (Yes / No)
 - Where would you like to pick up? (multiple choice: Office, Home)
 - Which office? (multiple choice: Osaka, Tokyo)
 - Home address (single line text)

Dynamic behavior:
 - Auto-populate “Requestor” with the current user.
 - Auto-populate “Approver” based on the selected “Requestor”.
 - Show “Which office?” only when “Office” is selected in “Where would you like to pick up?”.
  Otherwise, hide it.
 - Show “Home address” only when “Home” is selected in “Where would you like to pick up?”.
  Otherwise, hide it.

【参考:日本語バージョン】

社員がモニターを申請するためのカタログアイテム「モニター申請」を作成してください。

質問項目:
 - 申請者(ユーザーテーブルへの参照)
 - 承認者(ユーザーテーブルへの参照)
 - モニターのサイズ(選択式:24インチ、36インチ)
 - モニターアームの要否(はい/いいえ)
 - 受け取り場所(選択式:オフィス、自宅)
 - 受け取るオフィス(選択式:大阪、東京)
 - 自宅住所(1行テキスト)

動的な動作:
 - 「申請者」には、操作しているユーザーの名前を自動入力する。
 - 「承認者」には、選択された「申請者」に基づきマネージャーを自動入力する。
 - 「受け取り場所」で「オフィス」が選択された場合のみ「受け取るオフィス」を表示し
  それ以外の場合は非表示にする。
 - 「受け取り場所」で「自宅」が選択された場合のみ「自宅住所」を表示し
  それ以外の場合は非表示にする。

しばらくすると、カタログアイテムが生成されました!
必要な項目は揃っています。一方、Now Assist上では動的な動作も作成済みと表示されるものの、実際には反映されていませんでした。たとえば「Requestor」「Approver」は自動入力されず、「Which office」「Home address」も両方表示されたままでした。

3-3. 生成されたカタログアイテムを手動で修正する

次に「Continue to the next step」を押下し、手動で以下の修正を実施します。

  1. 「Requestor」に操作中のユーザーの名前が自動で表示されるようScriptable default value(入力値:javascript:gs.getUserID();)を設定します
  2. 「Approver」が自動入力されるよう「Auto-populate」を設定します
  3. 不要なUIポリシーを削除し、受け取り場所で選択した値に基づき受け取るオフィスまたは自宅住所が表示されるようにUIポリシーを修正します

※不要なUIポリシーを削除

UIポリシーアクションが定義されていなかったため手動で追加しました。

この時点ではフローがまだないため、ひとまず「Save」で保存します。

3-4. 画像からフローを生成する

実現したい処理の流れをフロー図で表した画像を用意します。別のAIツールで生成した画像やホワイトボードなどに記載した図でも構いません。ただし、テーブル名などの設定ミスを防ぐために、鮮明な画像が望ましいです。

次に、フィルターナビゲーターからProcess Automation > Workflow Studioにアクセスし、New > Flowを選択します。「Build with Now Assist」タブで任意のフロー名を入力し、Now Assist directionsにフロー図の画像を添付し「Generate flow preview」します。
※必要に応じて、テキストでフローについて補足することもできます。

添付した画像:

【参考:日本語バージョン】

生成されたフローを確認し、問題がなければ「Save and edit flow」を押下します。

3-5. 生成されたフローを手動で修正する

いくつかのフローアクションについて、必須項目が未入力であることがわかりました。
そのため、以下のポイントについて手動で修正を加えます。

  1.  「Get catalog variables」で3-2~3-3で作成したカタログアイテムを指定します
  2.  Approval Rulesを追加します
  3.  分岐の条件(Where would you like to pick up = Office)を設定します
  4.  Send EmailアクションのAction Input(宛先、本文など)を設定します

フローの作成が完了したら「Activate」を押下します。

3-6. カタログアイテムにフローを紐づける

Catalog Builderで3-3で保存したカタログアイテムを開き、「Fulfillment」セクションで3-4~3-5で作成したフローを指定し「Review and submit」セクションで「Submit」>「Confirm and submit」を押下します。
カタログアイテムとフローの紐づけが完了しました!

最終的なカタログアイテムのイメージ:

4. 動作検証

今回は、マネージャーが承認した場合の動作を確認します(却下した場合の動作は本記事では確認していません)。
以下の内容でカタログアイテムを申請します。

作成されたリクエストアイテムレコードを開き、Approversタブまでスクロールします。
Approverで指定した上司 太郎さん宛ての承認レコードが作成されています。レコードを開き、代理で承認します。

しばらくしてから、申請者のアドレス宛にモニターの準備が完了した旨を知らせるメールが届きました!

5. 検証結果

承認ルートについて、申請からマネージャーの承認、申請者へのメール送信までの一連の流れを、自動で完了させることができました。
ただし、Now Assistの生成結果をそのまま使えたわけではなく、フローとカタログアイテムのどちらにも手直しが必要でした。

フローは「流れの骨組み」まで、カタログアイテムは「質問項目」までが生成され、各アクションの必須項目や動的な制御といった細かい設定は人間が補う結果になりました。

6. 感想・考察

骨組みを一瞬で作れるのは大きなメリット
フロー図の画像を渡すだけで、トリガーから承認、分岐、メール送信までの流れが組み上がりました。カタログアイテムも、プロンプトで指定した質問項目と選択肢がすべてそろっていました。ゼロから一つずつ作るのと比べて、最初の一歩の手間を大きく減らせると感じました。

細かい設定は、ServiceNowの知識を持った人間が仕上げる必要がある
フローでは、カタログアイテムや承認者の指定など、他の設定とつながる部分が空欄のままでした。カタログアイテムでも、プロンプトで指示した自動入力や表示切り替えは反映されず、中身のないUIポリシーが作成されていました。生成された結果は「下書き」と考え、何が足りないかを判断できる知識が必要です。

学習のきっかけにもなる
足りない設定を補う過程で、UIポリシーやAuto-populate、フローのアクションなど、ServiceNowの基本的な仕組みに自然と触れることができました。初心者にとっては、生成結果を読み解き、仕上げること自体が良い学習の機会になると感じました。

さいごに

今回の検証を通じて、Now Assist for Creatorの「カタログアイテム生成」と「画像からのフロー生成」を組み合わせることで、申請から承認、メール通知までの仕組みを効率よく構築できることが分かりました。AIが骨組みを作り、人間が細かい設定を仕上げるという共同作業により、ゼロから作るよりも少ない手間で完成までたどり着くことができます。

動的な制御やフローの詳細設定は手動で補いましたが、プロンプトを工夫したり、追加の指示を送り込んだりすることで、どこまでNow Assistに任せられるのかを今後は試していきたいと思います。

最後まで閲覧いただき、ありがとうございました。
あなたにとって有益な情報を提供できたのであれば、大変嬉しく思います。

投稿者プロフィール

M. T
M. T
2023年新卒入社です!
これまで、主にServiceNowのITSM領域の開発に携わってきました。ServiceNowの幅広い領域で活躍できるよう、学習に励んでいます。

保有資格
・ServiceNow Certified System Administrator
・ServiceNow Certified Application Developer
・ServiceNow Certified Implementation Specialist - IT Service Management
・ServiceNow Certified Implementation Specialist - Discovery
・ServiceNow Certified Implementation Specialist - Customer Service Management
・ServiceNow Certified Implementation Specialist - Data Foundations

※ServiceNow®は、米国および/またはその他の国における ServiceNow, Inc.の商標または登録商標です

TOP