ServiceNowでレコードがinsert/updateされたらメールを送信する

Version: London

# やること
ServiceNowでレコードがinsert/updateされたらメールを送信します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/8e5b6c32-c031-57c8-79f7-3f4cf870eddb.png)
# Notificationの追加
ServiceNowではIncidentのAssign toに設定されたUserのメールアドレスにメールを送信するといった機能がデフォルトで設定されているようですが今回は何も継承していない自作のテーブルで試します自分はaaaaaというテーブルを作っているのでFilter Navigatorにaaaと入力してメニューを絞り込みます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/a3fdae28-9c0c-b5b7-eaa4-8981d4c4eb96.png)
aaaaaのレコード一覧(リスト)が表示されたらリストのヘッダーの辺りで右クリックしてConfigure - Notificationsを選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/9dce7cd0-2a84-7975-3358-b9026732e87a.png)
Notification(通知)の一覧が表示されます[New]をクリックして
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/3a38e4ed-0dc8-fdf2-597f-bcf938379445.png)
新規作成画面に遷移します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/fb7b6288-63b3-fb65-f476-43beb9c23792.png)
Nameに適当な値を入力して
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/70ec6353-d62c-8af9-7d0a-9a01ff71df9b.png)
When to sendのタブでInsertとUpdateを選択して
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/edcd95d0-d70b-06e0-275b-6518d92046e2.png)
Who will receiveのタブで錠前のアイコンをクリックして編集可能にしてメールのアイコンが横にある入力項目で適当なメールアドレスを入力してからメールのアイコンをクリックして
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/b62dbf1e-0029-705b-9e4e-bf7cd19aed74.png)
送信先を追加します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/67e6a364-63d1-611a-6fb3-7f68d225b093.png)
メールアドレスを設定済みのユーザに送信したい場合には虫眼鏡アイコンでユーザを検索/設定することでメールの送信先に設定できるようですメールの送信先は複数設定することも可能なようです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/3bbdddde-71e4-dc1c-116a-344a68c06bfc.png)
What it will containのタブでメールのSubject(件名)やBody(本文)を設定しますSubjectに適当な値を入力して
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/987cb6c0-9699-4289-081e-820c46da5cf9.png)
Message HTMLに適当な値を入力します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/34178298-ce2e-f91e-7e87-47a97f8baca8.png)
固定の文字列でもいいのですが画面右の[+]Fieldsをクリックして展開して
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/aea03b04-c48d-64a1-9540-8a2f6f9652a5.png)
展開された項目をクリックすることでテーブルの値を動的に設定することが出来ますこの値は本文だけではなくSubjectにも設定出来るようです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/91d0f7c4-1023-0774-d6ed-b8925a3ae7fb.png)
気が済むまで本文を設定して
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/847ab26c-ce3e-6704-a9b9-879c3738bc6d.png)
[Preview Notification]をクリックしてメール本文を確認することが出来ます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/5302499f-a169-9f97-73c8-53ed468eb952.png)
[Submit]/[Update]をクリックしてNotificationを保存します保存されたNotificationを確認することが出来ます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/ceaa9012-cb7f-6498-05de-7a6156b81c33.png)
# メール送信の確認
Notificationを追加したテーブルで値を更新してから[System Mailboxes] - [▼Outbound] -[Outbox]/[Send]辺りでNotificationでメールが送信されたことが確認出来ます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/e54e0cc8-0b51-dd2d-765c-26276df25f45.png)
該当のNotificationを選択して
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/fd345b88-864b-2ec5-6cf7-8845b8779f39.png)
Preview HTML Bodyで送信されたメールの本文を確認出来ました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/8e5b6c32-c031-57c8-79f7-3f4cf870eddb.png)
# メールの送信(Outbound Email Configuration)設定
外部にメールを送信する設定はデフォルトでは無効になっています有効にするには[System Properties] - [Email Properties]のOutbound Email ConfigurationのEmail sending enabledをtrueにします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193272/36c45fd5-4c78-74d5-dcba-7e1465c04e93.png)
aaa.comやtest.comは実在ドメインなのでメールを送信しない方がいいと思います
#カスタマイズ
NotificationにはEmail templateというものが設定されていて条件によって異なるものを選択させて宛先や本文を変更するといったカスタマイズも可能そうです

# 任意のタイミングで送信する方法

レコードのinsert/updateではなく任意のタイミングで送信することも可能です その場合はEventを使います こちらに書いています　リンク先はScheduled jobから起動する内容ですがUI Actionなどで同様のScriptを記述すると同じように起動することが出来ます

https://qiita.com/20_percent_cooler/items/82bb8d8d606be7582027#scheduled-job-event-registry-notificationでやる