自己紹介
はじめまして!
初めに簡単に私の自己紹介です。
- ニックネーム:まちゅ
- 経歴:工学(修士)を取得後、日系SIerへ入社
- servicenow歴:1か月(2025年入社10月配属)
そんな私が、11月末に開催された「servicenow社内ハッカソン」に向けて11初旬から準備し、当日参加するまでの道のりと、体験記をまとめます!
これからservicenowに携わる方の一助となれば幸いです。
※本稿は、私個人としての意見・感想であり、特定の団体としての見解ではありません。
また、本稿は、servicenow アドベントカレンダー2025の12月19日に寄稿しています。
社内ハッカソン参加への主な道のり
10月末: ハッカソンのテーマ・チームメンバー発表(5人1チーム)
11月7日:インスタンス環境払い出し
~11月14日:アイディエーション(ここで方向性を決定)
~11月20日:課題発掘と要件定義
~11月末日:発表資料作成とシステム開発
ハッカソンのテーマ ・ チームメンバー発表(5人1チーム)
10月末にハッカソンのテーマが発表されました。テーマは 「AI」。
私は大学院時代に畳み込みニューラルネットワーク(CNN)を用いた画像認識に触れていたこともあり、AIには抵抗がなかったのですが、servicenowの "AI Agent" や "Now Assist" には微塵も知見がありません。完全に他のメンバーを頼りに、張り切って発表されたチーム内で自己紹介をおこないました。
しかし、ここで驚愕の事実が…なんと
”チームメンバー5人中4人が開発未経験”
果たして私たちは残りの1か月で、デモ開発や資料作成を発表可能な状態までもっていくことができるのでしょうか。
アイディエーションおよび要件定義
ハッカソンの評価基準は "22世紀型アイデア"・"AIへの挑戦度"・"社会的インパクト" です。
私たちは、審査基準におけるバランスを考え、毎日のようにニュースになっていた社会問題を解決するアプリケーションを開発することにしました。
ずばり 「熊出没対策・通報Agent」 です!
ここから実装に向けて、現状の課題や対策、As-Is・To-Be像をチームで描き、それらを元に要件定義をおこないました。
アプリケーション概要
アプリケーションの構成図を、以下の図に示します。

「増加する熊出没リスクに対し、人命を守る迅速な対応を実現する自治体向けのservicenowベース統合プラットフォーム。熊出没の通報を受け、servicenow上に起票されたケースを元に最適なドローンがアサインされ、熊の対処を行う。通報窓口はポータルサイト・LINEで、街中の監視カメラから熊を識別して自動でケースを起票することも可能。起票されたケースの内容をAIが解析し、過去のナレッジおよび現在のドローンの位置情報に基づいて、最適なドローンを対処機としてアサイン。
自治体の即時連携と住民通知を可能にし、通報から対応までのリードタイムを大幅短縮。蓄積されたデータに基づく予防策立案も支援する。」です。
通報から対処完了までの流れ
- 通報手段は、住民からの「ポータルサイト」「LINEでのVirtual Agentとの会話」での通報、監視カメラによる画像識別機能での自動起票があり、どちらも同じテーブルに起票されます
- "ケース"は、起票されたタイミングでトリガーが作動し、"既存のナレッジ"および"各地のドローンの位置情報"とともにJSON形式で、外部のAPI接続された自然言語処理AIにPOSTされます(本稿では自然言語処理AIにGoogle Geminiを用いています)
- 自然言語処理AIでは、最も類似度の高いナレッジとドローンをEmbeddingベースで算出し、結果をJSON形式でservicenowに返します
- servicenow上では、返された値をもとにケースへ最適と考えられるドローンをアサインします
- 自治体職員はケースおよび選択されたドローン・ナレッジを確認し、承認します
- アサインされたドローンが熊の対処へ向かい、結果をservicenowに送信します(この部分だけ生成動画でお楽しみください)
- servicenowでは、ケースの内容およびドローンから受信した結果が、ナレッジ作成用の新たなテーブルに起票されます
- 自治体職員は起票された内容を確認して、承認することで新たなナレッジが登録されます
やっぱり開発は難しい…
WorkflowでJSONデータが渡せない!?
上記に示した通報から対処完了までの流れの手順2で書いてある通り、「起票をトリガーとして、必要なデータをJSON形式でGeminiに渡す」という流れをWorkflowで作成していました。

しかし!!!!!
どのようにJavaScriptを編集しても、何故かJSON形式で出力されているはずのデータの値が以下のように空っぽで出てくるのです…
(Output DataのkbJSONとreqJSONの部分。JSON形式なのでString型で保持しています。)

Copilotにきいても新しいコード案を出力するのみ…丸一日悩み、とうとう開発最終日を迎えました。
迎えた当日、servicenow社のNさんに質問したところ助言を頂きました。
「@@つけて出力データをログで確認してみたら?」
初心者の私には、ログをみるという考えもありませんでした。
(@@ というのは以下の画像のように、gs.info関数で出力データをシステムログで検索しやすいようにするためのマークです)

なんと、しっかり表示されていました![]()
思わぬ落とし穴でした。
私、研究でMATLABを用いており、MATLABにおいてもデータをObject型で持つと空の表示になるんですよね…。そこから気づけば良かったとは思ったのですが…
デバッグ方法に新たな知識を習得することができました。
あの助言がなければ詰んでいました。本当にNさんありがとうございました![]()
サードパーティアプリの統合が進まない!!
LINE統合
LINEの統合は、下記のガイドを参考に行いました。
ガイドの手順通りに設定したはずですが、全然統合されません。こちらも一日経ってから原因がわかりました。
できなかった原因はガイドの下記の部分
a. LINE Developers コンソールにログインします。
b. LINE Developers コンソールでチャネルを作成します。
どうやら、2024年9月4日以降からLINE Developersコンソール単独でのMessaging APIチャネルの作成が不可になっているらしく、さらに2025年6月25日からは、公式LINEアカウントの新規作成時に「ビジネスマネージャ」への組織接続が必須になっているらしい。
現在は、「公式LINEアカウント(LINE Official Account)」を先に作成し、その後Official Account Manager(ビジネスマネージャ管理画面)上でMessaging APIを有効化する流れに変更されているらしい。
つまり、
LINE Developers コンソールより先にOfficial Account Managerでアカウントを作成しなければいけない
私はLINE Developers コンソールから先に作っていたので、LINEの公式アカウントが2つ作成されていました…
これから統合しようとされている方は気を付けてください…!
Gemini統合
GeminiとWorkflowの統合は、下記サイトを参考にしました。
- https://qiita.com/macha_soda7/items/aa4b2accb378e5c810dc
- https://note.com/subaru_hero/n/n3dd27f7f3a94
APIキーをOAuth認証で統合することを試みていたのですが
スコープをhttps://www.googleapis.com/auth/cloud-platformに設定するとHTTPリクエストは400~403のエラーが返ってくるという現象でしばらく悩みました。
こちらはなぜうまくいったのか全く分からないので有識者の方に教えていただきたい(おそらくGCP側のスコープ許可が正しくなかった)のですが、下記のようにスコープをhttps://www.googleapis.com/auth/script.external_requestとhttps://www.googleapis.com/auth/generative-language.tuning
に設定することでレスポンス200を返すことができました。

デモ発表の時間
発表資料のクオリティに驚愕
そんなこんなで、発表の時間になりました。
私は開発に専念していたのであまり見られていなかったのですが、発表資料作成チームの2名が作成した発表資料を見て驚愕。
いままで見た中でトップを争う資料の作り込み具合です。(前述のアプリケーション構成図は、作成された素晴らしい資料を社外向けに私が改悪したものです。)
特にビジネス分野の説得力が半端なく、資料だけなら優勝間違いなしです。
私も開発チームとしてデモを頑張らねばと思い、(ドローンは実装できないので理想像を生成動画を用いながら)以下の部分のデモを行いました。
※「それはアイデアソンじゃねえか」とも思うのですが1か月目なので許してください。

斬新な生成動画というアイデアで観客の心をグッと掴んだという側面もありますが、
チーム全体としてプレゼンや文章構成の基本的なフレームワークである TELL SHOW TELL を意識して発表するように心がけたおかげで、審査員方の反応はとても良かったように思います。
無事に何事もなく発表の場を終えることができました。
気になる結果は…!?
寝る間を惜しんで、servicenowの勉強およびTry and Errorの繰り返しをおこなった甲斐もあり、ありがたいことに
見事、優勝を頂くことができました![]()
感想と謝辞
感想
今回のハッカソンを通じて、servicenowのインスタンスを自由に使える環境や、社内外のサポート体制に恵まれたことは、私にとって非常に大きな学びの機会でした。わずか1か月という短期間で、要件定義から開発、発表までを経験できたことは、技術力だけでなく、チームワークや課題解決力を磨く貴重な体験となりました。
特に、実際に手を動かしながら試行錯誤できる環境があったことで、単なる座学では得られない「実践的な知識」を身につけることができました。深夜まで議論し、互いに助け合いながらゴールを目指したチームメンバーとの時間は、今後のキャリアにおいても大きな財産になると感じています。
もっと技術があれば様々なことができたと思うと、悔しい部分も多いですが、この経験を糧に、さらにServicenowやAI技術の理解を深め、業務やコミュニティへの貢献につなげていきたいと思います。
謝辞
今回のハッカソン参加にあたり、準備を進めてくださった事務局の皆様、servicenow社の皆様、そして開発中、行き詰まった際に的確なアドバイスをくださった先輩社員の方々、本当にありがとうございました。皆様のサポートがなければ、この挑戦をやり遂げることはできませんでした。また、ServiceNow社のUさんから、今後のキャリアの全てに活きる「発表で視聴者を引き込み、正確に伝える意識」をご教授いただけたことにも深く感謝しています。
そして、同じチームのメンバーの皆さん、限られた時間の中で、新人の私に寄り添ってくださり、深夜遅くまで一緒に議論し、アイディアを磨き、資料を作り込み、開発に挑戦した時間はかけがえのない学びでした。特に、ビジネス視点やデザイン面での知見を共有してくれたこと、最後まで走り抜けたことは、私にとって大きな財産です。
この経験を通じて得られた知識やチームワークの大切さを、今後の業務やコミュニティへの貢献に活かしていきたいと思います。ありがとうございました。
