2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SORACOM の白ボタンを押すと ServiceNow にインシデントが起票される仕組みを作った(SORACOM UG Explorer 2026)

2
Last updated at Posted at 2026-10-31

はじめに

2026 年 10 月 31 日に開催された SORACOM UG Explorer 2026 に参加しました。

今回のイベントでは、次の 4 つのハンズオンシナリオが用意されていました。

  1. みんなでお散歩して位置を地図にプロット(GPS マルチユニット)
  2. スマホで撮影した画像を生成 AI で解析&SNS 通知(SORACOM Harvest Files + SORACOM Flux)
  3. ボタンを押してご当地情報を投稿(SORACOM LTE-M Button for Enterprise、通称「白ボタン」)
  4. SORACOM のこと、AI に聞いてみよう(SORACOM Knowledge MCP)

普段 ServiceNow を扱っていることもあり、「せっかくなら ServiceNow(PDI)につなげたい」と考えました。そこで ③ の白ボタンのハンズオンをアレンジして、白ボタンを押すと ServiceNow にインシデントが起票される 仕組みを作りました。

完成イメージ

実際に白ボタンを押してから、インシデントが起票されるまでの様子です(待ち時間は早送りしています)。

白ボタンを押してから ServiceNow にインシデントが起票されるまで

白ボタンを押すと、ServiceNow にこんなインシデントが起票されます。クリック種別と、白ボタンの簡易位置測位で得た緯度・経度、Google マップへのリンクが「説明」に入ります。

白ボタンから起票されたインシデント。説明に緯度・経度と Google マップのリンクが入っている

構成

SORACOM Flux Studio では、こんな見た目になります。

SORACOM Flux Studio の画面。IoT デバイス → チャネル → 条件 → Webhook アクション

項目 使ったもの
デバイス SORACOM LTE-M Button for Enterprise(会場で貸し出し)
SORACOM SORACOM Flux(IoT デバイスイベントソース + Webhook アクション)、SORACOM Harvest Data(疎通確認)
ServiceNow Personal Developer Instance(PDI)の Table API

ServiceNow 側は 標準の Table API にそのまま POST するだけ で、スクリプトやフローは作っていません。

手順

1. 白ボタンを Flux で受けられるようにする

会場で借りた白ボタンの SIM は、イベントの貸し出し用アカウントに登録されています。別のアカウントに登録済みの SIM は、自分のアカウントに登録できません。そこで、貸し出し用アカウントの SAM ユーザーで作業しました。

ボタンを 1 回押して、SORACOM Harvest Data に次のようなデータが届けば通信できています。

{
  "clickType": 1,
  "clickTypeName": "SINGLE",
  "batteryLevel": 1,
  "binaryParserEnabled": true
}

クリック種別は 3 つあります(送信されるデータフォーマット)。

clickType clickTypeName 操作
1 SINGLE シングルクリック
2 DOUBLE ダブルクリック
3 LONG 長押し

2. ServiceNow に連携用ユーザーを作る

PDI の「ユーザー管理」→「ユーザー」→「新規」で、次のユーザーを作りました。

項目 設定
ユーザー ID soracom_button
名 / 姓 SORACOM / Button
アクティブ オン
ID タイプ マシン
Web サービス専用 オン(API 専用にして、画面にはログインさせない)
ロール itil(デモ用。インシデントを作成するため)

3. Flux アプリを作って Webhook アクションを設定する

続けて、SORACOM Flux のアプリ Explorer2026-ServiceNow-Button7 を作りました。

  • イベントソース:IoT デバイス(白ボタンが所属するグループ)
  • チャネル:Button7-Input
  • アクション:Webhook(Create-ServiceNow-Incident)

Webhook アクションの設定は次のとおりです(Webhook アクション)。

項目 設定
HTTP メソッド POST
URL https://<instance>.service-now.com/api/now/table/incident?sysparm_fields=number,sys_id,short_description
HTTP ヘッダー content-type: application/json、Authorization: Basic …(後述)
HTTP ボディ application/json(下記)

sysparm_fields を付けておくと、レスポンスに入る項目を INC 番号などに絞れます。

アクションの実行条件

event.context.resource.imsi == "<自分の白ボタンの IMSI>"

ハンズオン用のグループには他の参加者の白ボタンも入っています。そのため、自分のボタンの IMSI に絞りました。IoT デバイスイベントソースには「1 つのグループを、複数の Flux アプリの IoT デバイスイベントソースに設定することはできない」という制約があります(IoT デバイスイベントソース)。グループを共有する場合は、このように条件で振り分けることになります。

HTTP ボディ

{
  "short_description": "[SORACOM UG Explorer 2026] 白ボタンから現場確認依頼",
  "description": "Enterprise Button 7 からの通知です。クリック種別: ${event.payload.clickTypeName}\n\n位置情報(簡易測位・おおよその位置)\n緯度: ${event.context.resource.location.lat}\n経度: ${event.context.resource.location.lon}\n\nGoogle Mapsリンク: https://www.google.com/maps/search/?api=1&query=${event.context.resource.location.lat},${event.context.resource.location.lon}",
  "impact": "3",
  "urgency": "3"
}

${...} の部分には、Flux がイベントの値を埋め込みます(アクション、コンディションの記法)。

Flux の Webhook アクション設定画面(ヘッダー直書き前)

4. 認証でつまずいたので、テスト用にヘッダーへ直書きした

当初は、SORACOM の 認証情報ストア に soracom_button のユーザー名・パスワードを登録し、Webhook アクションの「Basic 認証」で使う予定でした。

ところが、貸し出し用アカウントの SAM ユーザーには認証情報ストアの権限がなく、次のエラーで止まりました。

Credential:listCredentials が許可されていません

今回はテストなので、Authorization ヘッダーに Basic <base64(ユーザーID:パスワード)> を直接書く方法に切り替えました。

認証ヘッダーの直書きは、イベント中の検証用の応急手段です。実際の運用では、認証情報ストアを使う方法がベターです。

5. ボタンを押すとインシデントができる

貼り付けが終わったら、作成は完了です。白ボタンを押すと、冒頭の完成イメージのインシデントが作成されました。

おわりに

物理ボタンを押すとチケットができる体験は、思った以上にわかりやすく、簡単に作成できるデモになりました。SORACOM Flux の Webhook アクションと ServiceNow の Table API の組み合わせなら、コードをほとんど書かずに IoT と ServiceNow をつなげられました。この内容はイベントの1時間30分のハンズオン時間内ですべて実装できました。

最後になりましたが、楽しいイベントをありがとうございました!

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?