ServiceNow 受信アクション利用による自動チケット起票

本記事ではServiceNowの受信アクション（Inbound Action）について仕様と設定方法を解説します。

バージョンとUI情報は以下となります。
バージョン：Sandiego
UI：旧版（Quebec以前）より

以下が目次です。
・受信アクションとは
・受信アクションの設定方法
・テスト（インシデントチケット）
・履歴確認及び、再テスト方法

# 受信アクションとは

ServiceNow公式より
https://docs.servicenow.com/ja-JP/bundle/sandiego-servicenow-platform/page/administer/notification/concept/c_InboundEmailActions.html

受信アクションでは
外部からServiceNowインスタンスへメールを送信し、その情報を受信アクションの設定に従ってチケット化、メールにより返信が可能です。
本記事では受信アクションを設定の上、"メール連携によるインシデントチケットの作成"を実施します。

# 受信アクションの設定方法
※不要な項目・オプションの設定は省略しています。

手順1
管理者権限を持つユーザでログイン後、アプリケーションナビゲータに”Inbound Actions”と入力し、
System Policy ＞ Email ＞ inbound Actionsと選択します。
開いたリストより画面上部の"New"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399414/47c9a09b-bc10-690d-74e3-14c4c49f0d57.png)

手順2
設定を行います。

【設定】
Name : Incident Open
Target Table : Incident
Action Type : Record Action 
Active : True
Stop processing : True

※Check
今回インシデントにチケットを起票するので、テーブルはincidentかつ、Action TypeをRecord Actionに指定しています。
Stop ProcessingをTrueにすることで、本受信アクションで処理を終了します。
→条件に合致する後続の受信アクションの処理を行いません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399414/b5eac13c-9bb8-de04-6c2e-4d727332d6eb.png)

手順3
When to runを設定します。

Type : New
Required roles : 指定なし
Execution order : 100
From : 指定なし
Conditions : Subject starts with 障害

※Check
今回はメール返信、転送を対象としないためTypeはNewとしています。
ロール要求は無しのため、指定していません。
Execution orderはデフォルトの100です。複数同じ条件の受信アクションが存在する場合、低い値の受信アクションが優先されます。
今回は同じ条件の受信アクションは用意しないため、デフォルト設定です。
Conditionsはメール条件です。件名が障害から始まる場合、本受信アクションが動作します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399414/6dcb6140-05cb-8da5-4b3d-6bdea4dbdde1.png)

手順4
Actionsを設定します。
Field actionsにてフィールド指定でもよいですが、今回はスクリプトを設定します。

今回は以下のように設定します。
----
//問合せユーザに送信元メールに該当するユーザ情報を設定
current.caller_id = gs.getUserID();

//アクティビティに送信元情報+メール本文を記録
current.comments = email.origemail + email.body_text;

//概要説明にメール件名を指定
current.short_description = email.subject;

//説明欄にメール本文を指定

current.description = email.body_text;

//優先度、カテゴリ、連絡手段（チャネル）設定
current.priority = 1;
current.category = "Hardware";
current.contact_type = "email";

//インシデントステータス設定
current.incident_state = 2;
current.state = 2;

//影響度、重要度設定
current.urgency = 3;
current.impact = 3;

current.insert();
ーーーー

※Check
メールオブジェクトの利用方法は以下を参照してください。
https://docs.servicenow.com/ja-JP/bundle/sandiego-servicenow-platform/page/administer/notification/reference/r_AccessingEmailObjsWithVars.html

# テスト
以下の情報に従ってメールを送信します。

宛先：devxxxxx@service-now.com
件名：障害：ハードウェアxxxによるパフォーマンスアラート
本文：
障害テスト通知

障害事項：ハードウェアxxxによるパフォーマンスアラート
障害発生日時：yyyy/mm/dd HH:MM
復旧予定日時：xxx
原因：調査中
詳細：
原因不明の事象によりハードウェア:xxxにてパフォーマンスアラートが発生しています。
サービス影響有り、至急調査をお願い致します。

ーーー
結果確認
無事取りこまれていることを確認出来ました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399414/b6900b8d-ad9b-e835-0639-e16eb7d8df43.png)


# メールアカウントの確認方法
メールアドレスはメールアカウント情報を確認することで確認可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399414/a89363c2-c3cf-d46f-435c-1f3d9b16e9e7.png)

# 履歴確認及び、再テスト方法
以下の手順に従って履歴確認及び、再テストが可能です。

手順1
アプリケーションナビゲータに"Received"と入力し、System Mailbox > Inbound > Receivedを選択します。
リスト一覧より確認したい受信メール情報を選択します。（すると以下の画像になります。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399414/4a315397-40dc-d19b-6599-ceaa1dba1fc4.png)

手順2
受信メール情報を確認するのみでなく、どの受信アクションが動作してチケット起票されたか確認可能です。

画面下部の受信ログを確認してください。
以下の文言を確認可能です。
Processed 'Incident Open', created incident :INC0010006

これはIncident Openという受信アクションによりINC0010006が起票されたことを示します。
条件に合致しない受信アクションはSkipされています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399414/ebd6b87b-9b04-adbc-607c-6a9b0fea4f98.png)

以上で受信アクションに関する記事を終了します。
質問・疑問・要望事項がありましたらコメントやリクエストください。