【ServiceNow】サービスナウはシステム連携が得意、かんたんGoogleスプレッドシート連携

【ServiceNow】サービスナウはシステム連携が得意、かんたんGoogleスプレッドシート連携

こんにちは、ServiceNow担当のマサヒロです。

みなさんはシステム連携できたらいいなと思うことありませんか。

ServiceNowはかんたんに連携することができます。

 

どれくらいかんたんなのか、Google スプレッドシート連携を例に説明します。

設定は3ステップ。

1、インストール。

2、双方のシステムで認証設定。

3、ServiceNowのフローでGoogleスプレッドシートに書き込む。

以上です。

マウスで選んで値をコピーして作れます。

かんたんGoogleスプレッドシート連携の作り方

まずは、ServiceNowに連携機能をインストールします。

正式利用の場合はServiceNow StoreからGoogle Sheets Spoke を Request します。


お試しなら、ServiceNowの システムの利用可能なすべてのアプリケーション一覧にGoogle Sheets Spokeがあるので、インストールボタンを押します。

少し待つだけでインストールは終わります。

Google側も連携アプリをインストールします。

Google Cloud Platform から 「APIとサービスの有効化」を選んで、Google Sheets APIを選び有効化します。


インストール完了です。

次は、Google側の認証設定をします。

Google Sheets APIの管理ボタンで管理画面を表示して、認証情報のOAuth2.0 ウェブクライアント1の設定を見ます。

承認済みリダイレクトURIにServiceNowのURIを登録「https://<your-instance>.service-now.com/oauth_redirect.do」の形式です。
ついでにJavaScript生成元にも「https://<your-instance>.service-now.com/」を設定しておきましょう。
この画面のクライアントIDとクライアントシークレットは後でコピーして使います。

ServiceNow側の認証設定をします。

IntegrationHubの接続と資格情報のエイリアスにGoogle Sheetsがあり、その設定画面にある接続と資格情報の作成ボタンを押します。
先ほどGoogle側の設定画面の クライアント IDとクライアントシークレットを入力。ほかの項目はすでに入力済みでそのまま作成ボタンを押します。

これで認証設定は終わりです。

最後にServiceNowのフローでスプレッドシートに書き込みます。

今回はServiceNowのインシデントチケットの作成や更新時にチケット内容をスプレッドシートに書き込んでみます。

スプレッドシートはこのような形式です。

FlowDesignerというフロー作成ツールにGoogle Sheetsの部品があります。今回は行の追加「Add Row」を選択します。


AddRowの設定として、スプレッドシートのIDを指定、これはスプレッドシートのURLを見るとIDがわかります。
「https://docs.google.com/spreadsheets/d/AAAAAAAAAAAAAAAA」このAの部分がIDです。
スプレッドシートのIDを指定すると自動的にスプレッドシートの情報を認識して、シートを選ぶことができます。
シートを選ぶと、スプレッドシートのヘッダー行(1行目)を認識して、それぞれの項目に値を設定できます。

今回はインシデントチケットの日付や説明や更新者名を入れてみました。

フローはこれだけで完成です。フローを有効化して準備完了です。

 

動作確認をしてみましょう。

ITIL Userがインシデントチケットを作成します。

自動的にスプレッドシートに行が追加されました。


 

正しく動作しない場合

正しく動作しない場合はFlowの実行結果のエラーを、検索エンジンで調べながら対処します。

1. Flow Designer の 実行結果(Executions)を表示します。
もし実行した記録がない場合はTrigger条件の問題で実行されていません。
または実行した記録はあっても実行結果の中身が見えないときはFlowのシステムプロパティ (com.snc.process_flow.reporting.level) を「TRACE」(Developer Trace)に設定してください。
図はFlow DesignerのExecutionsの一覧から実行結果を見つけて表示した状態です。

2. 実行結果の中から「Add Row」の中のStepsの「Step 2 - Add Row [REST]」の「Step Output Data」を探し「Response Body」に記載されている文章を見ます。
エラーが発生したときは何かしらエラーメッセージが記載されるので、その内容を検索して原因を調べてみてください。


エラーの例1:Spread sheet IDが誤っているときのResponse Body
{
"error": {
"code": 404,
"message": "Requested entity was not found.",
"status": "NOT_FOUND"
}
}
エラーの例2:Spread sheet のシート名が誤っているときのResponse Body
{
"error": {
"code": 400,
"message": "Unable to parse range: Sheet1",
"status": "INVALID_ARGUMENT"
}
}
エラーの例3:Spread sheet に書き込み権限が無いときのResponse Body
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}
正しく動作しているときのResponse Body
{
"spreadsheetId": "abcd123456…",
"tableRange": "Sheet1!A1:C7",
"updates": {
"spreadsheetId": " abcd123456…",
"updatedRange": "Sheet1!A8:C8",
"updatedRows": 1,
"updatedColumns": 3,
"updatedCells": 3
}
}

まとめ

今回使用したのは機能は ServiceNowの Google Sheets Spokeです。

IntegrationHub のSpokeとは 連携機能であるIntegrationHubに追加する機能のことです。

今現在ServiceNow公式Spokeが169件のあり、サードパーティーによる連携機能はServiceNow StoreでIntegrationのカテゴリーに477件ほど登録があります。

詳しくは公式 ServiceNow Storeを参照してください。
ServiceNowはこの連携機能のほかにも、RestAPI、JDBC、LDAP、OIDC、FTPにあるテキストファイル、Excelファイル、CSVファイルなどなど、ありとあらゆる連携手段があります。独自システムであってもフルコード開発で対応できます。

下記は公式Spokeの一部です。対応システムは次々と増えています。

Amazon EC2 spoke
Azure Automation spoke
Cisco Webex Teams spoke
Docker spoke
DocuSign spoke
Dropbox Business spoke
Google Cloud Datastore spoke
Google Docs spoke
Jenkins spoke
Jira spoke
Microsoft 365 spoke
Microsoft Azure AD spoke
Oracle Compute Engine spoke
SAP S4 HANA IDoc spoke
Slack spoke
UiPath spoke
YouTube spoke
Zendesk spoke
Zoom spoke

 

多様なシステムとかんたんに連携できるのがServiceNowです。

さらにここからカスタマイズして連携機能を強化することもできます。

 

弊社のServiceNow導入サービスをよろしくお願いいたします。

関連記事

本記事はいかがでしたか?

Follow マサヒロ:

2016年中途入社。ServiceNow Technical Consultantの鬼。ServiceNowで困った時はこの人に聞け!! ServiceNowチームの頼りになるお兄さん(?)。休日は神出鬼没。自宅から半径約20km以内をあちこち歩きながら、AI、機械学習、仮想現実、ITのトレンドについて考えています。