メール通知 API - ServiceNow Fluent
メール通知 API は、データベース操作、カスタムイベント、または手動トリガーに基づいて自動メールを送信する通知 [sysevent_email_action] を定義します。
メール通知に関する一般的な情報については、「 Email and SMS notifications」を参照してください。
EmailNotification オブジェクト
送信時期、受信者、内容、およびメールダイジェストで配信できるかどうかを指定して、メール通知 [sysevent_email_action] を作成します。
メール通知の作成に関する一般的な情報については、「 Create an email notification」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| テーブル | 参照または文字列 | 必須。通知が適用されるテーブルの変数識別子または名前。テーブルを定義するには、 テーブル API - ServiceNow Fluentを使用します。 注: 他のテーブルを拡張するためのタスク [task] テーブルは選択しないでください。タスクテーブル上で直接実行される通知はサポートされていません。 |
| triggerConditions | オブジェクト | 必須。通知をトリガーする条件。詳細については、「triggerConditions オブジェクト」を参照してください。 |
| 名前 | 文字列 | メール通知の一意の名前。 |
| 説明 | 文字列 | メール通知の目的の説明。 |
| category | 参照または文字列 | 通知をグループ化するための通知カテゴリの変数識別子または名前。通知カテゴリを定義するには、 レコード API - ServiceNow Fluentを使用します。 デフォルト:デフォルトのメールカテゴリ (c97d83137f4432005f58108c3ffa917a) |
| notificationType | 文字列 | 通知のタイプ。 有効な値:
デフォルト:email |
| アクティブ | ブール | 通知がアクティブかどうかを示すフラグ。 デフォルト:true |
| mandatory | ブール | 通知が必要かどうかを示すフラグ。 デフォルト値:false |
| 動的翻訳の有効化 | ブール | 通知の動的翻訳を有効にするかどうかを示すフラグ。 デフォルト値:false |
| メールコンテンツ | オブジェクト | メールのコンテンツとフォーマット。詳細については、「emailContent オブジェクト」を参照してください。 |
| recipientDetails | オブジェクト | メール受信者。詳細については、「recipientDetails オブジェクト」を参照してください。 |
| ダイジェスト | オブジェクト | メールダイジェストのコンテンツとフォーマット。詳細については、「ダイジェスト オブジェクト」を参照してください。 |
| $meta | オブジェクト | アプリケーションメタデータのメタデータ。 installMethod プロパティを使用すると、特定の状況でのみロードされる出力ディレクトリにアプリケーションメタデータをマップできます。 installMethod の有効な値:
|
import { EmailNotification } from '@servicenow/sdk/core'
EmailNotification({
table: 'incident',
name: 'Custom Event Notification',
description: 'Triggered by custom event',
category: 'c97d83137f4432005f58108c3ffa917a', // Default email category sys_id
triggerConditions: {
generationType: 'event',
eventName: 'custom.incident.escalated',
order: 100
},
recipientDetails: {
recipientUsers: ['6816f79cc0a8016401c5a33be04be441'], // Admin user sys_id
eventParm1WithRecipient: true, // Event param 1 contains recipient
isSubscribableByAllUsers: true
},
emailContent: {
contentType: 'text/html',
subject: 'Incident Escalated',
messageHtml: '<p>An incident has been escalated.</p>'
}
})
triggerConditions オブジェクト
通知を送信するために満たす必要がある条件を設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| generationType | 文字列 | 必須。メール通知をトリガーする方法。 有効な値:
|
| レコード挿入時 | ブール | レコードが挿入されたときに通知を送信するかどうかを示すフラグ。 注: このプロパティまたは onRecordUpdate プロパティのいずれかが true である必要があります。 デフォルト値:false |
| onRecordUpdate | ブール | レコードが更新されたときに通知を送信するかどうかを示すフラグ。 注: このプロパティまたは onRecordInsert プロパティのいずれかが true である必要があります。 デフォルト値:false |
| eventName | 文字列 | 通知の送信をトリガーするカスタムイベントの名前。 generationType プロパティの値が |
| affectedFieldOnEvent | 文字列 | 影響を受けるフィールドを含むイベントパラメーター。 このプロパティは、 generationType プロパティが 有効な値:
|
| 重み付け | 番号 | 重複する通知と比較した通知の優先度。 通知のターゲットテーブルと受信者が同じ場合、重み付けが異なると、重複していると見なされます。重み付けが同じ場合は、件名と本文 (ウォーターマークを除く) が重複通知として認定されるかどうかを確認するために、追加の評価が実行されます。通知が重複している場合は、最も高い重み付けの通知のみが送信されます。他のすべての通知は、送信トレイからスキップ メールボックスに移動されます。デフォルト値の 0 は、システムから通知が送信されます (条件が満たされていると仮定)。 最大値:1000 デフォルト:0 |
| ステータス | 文字列 | ユーザーがオブジェクトにアクセスするために true でなければならないフィールドと値を指定するフィルタークエリ。詳細については、「Operators available for filters and queries」を参照してください。 |
| 詳細条件 | 文字列 | 通知を送信するには、true を返すか、グローバルな回答変数を true に設定する必要がある JavaScript 条件ステートメント。詳細については、「Advanced conditions for email notifications」を参照してください。 注: このプロパティは、通知に設定した他の条件に加えて評価されます。通知を送信するには、条件と詳細条件の両方で、判定が true になる必要があります。 |
| itemTable | 参照または文字列 | 通知アイテムが参照するテーブルの変数識別子または名前。テーブルを定義するには、 テーブル API - ServiceNow Fluentを使用します。 |
| item | 文字列 | 通知コンテキストに使用するアイテム。 |
| 順序 | 番号 | 通知の実行順序。 最大値:9999 デフォルト:100 |
triggerConditions: {
generationType: "engine",
onRecordInsert: false,
onRecordUpdate: true,
weight: 100,
condition: "priority=1^ORpriority=2^state!=6^state!=7", // High/Critical priority, not resolved/closed
order: 100
}
emailContent オブジェクト
メール通知のコンテンツを設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| contentType | 文字列 | メールコンテンツのタイプ。 有効な値:
デフォルト:text/html |
| template | 参照または文字列 | メールテンプレート [sysevent_email_template] の変数識別子またはsys_id。メールテンプレートを定義するには、 レコード API - ServiceNow Fluentを使用します。 次のいずれかの条件を満たすメールテンプレートのみを指定できます。
|
| style | 参照または文字列 | メールスタイル [sys_email_style] の変数識別子またはsys_id。メールスタイルを定義するには、 レコード API - ServiceNow Fluentを使用します。 |
| 件名 | 文字列 | メールの件名。空の場合は、[メール テンプレート] の [件名] の値が使用されます。 変数参照には |
| sms代替 | 文字列 | SMS デバイス専用に送信する通知メッセージ。SMS 代替メッセージは 140 文字に制限されています。空の場合は、メール テンプレートの SMS 代替値が使用されます。 変数参照には |
| importance | 文字列 | メッセージの重要度。 有効な値:
|
| includeAttachment | ブール | 通知トリガーレコードの添付ファイルをメールに含めるかどうかを示すフラグ。 デフォルト値:false |
| ウォーターマークを省略 | ブール | 各メールに添付されているウォーターマークを省略するかどうかを示すフラグ。詳細については、「 通知メールの透かし」を参照してください。 デフォルト値:false |
| 送信元 | 文字列 | 通知の送信元のメールアドレス。 |
| replyTo | 文字列 | 受信者が返信できるメールアドレス。 |
| プッシュメッセージのみ | ブール | 通知をプッシュ通知としてのみモバイルデバイスに送信するかどうかを示すフラグ。 デフォルト値:false |
| プッシュメッセージリスト | アレイ | 通知に関連付けるプッシュメッセージ [sys_push_notif_msg] の変数識別子またはsys_idsのリスト。プッシュ通知を定義するには、 レコード API - ServiceNow Fluentを使用します。 注: プッシュ メッセージと通知は、同じテーブルに対して行う必要があります。 |
| 強制配信 | ブール | 通知を防止して通知を送信するユーザー通知設定をバイパスするかどうかを示すフラグ。 デフォルト値:false |
| メッセージ HTML | 文字列 | 通知メッセージの HTML コンテンツ。空の場合は、メールテンプレートのメッセージ HTML が使用されます。 変数参照には このプロパティは、 contentType プロパティの値が |
| messageText | 文字列 | 通知メッセージのプレーンテキストコンテンツ。空の場合は、メールテンプレートのメッセージテキストが使用されます。 変数参照には このプロパティは、 contentType プロパティの値が |
| メッセージ | 文字列 | 使用廃止。メッセージの内容。 |
emailContent: {
contentType: "text/html",
subject: "CRITICAL: Incident \${number} - \${short_description}",
messageHtml: `
<div style="background-color: #ff4444; color: white; padding: 10px; border-radius: 5px;">
<h2>CRITICAL INCIDENT ALERT</h2>
<p><strong>Incident:</strong> \${number}</p>
<p><strong>Priority:</strong> \${priority}</p>
<p><strong>Description:</strong> \${short_description}</p>
<p><strong>Assigned To:</strong> \${assigned_to.name}</p>
<p><strong>Created:</strong> \${sys_created_on}</p>
<p><a href="\${instance_url}/incident.do?sys_id=\${sys_id}" style="color: #ffffff; text-decoration: underline;">View Incident</a></p>
</div>
`,
smsAlternate:
"CRITICAL: Incident \${number} - \${short_description}. Priority: \${priority}. Assigned: \${assigned_to.name}",
pushMessageList: ["mobile_push_notification_sys_id"],
forceDelivery: true,
importance: "high"
}
ダイジェスト オブジェクト
選択した通知のアクティビティとそのターゲットレコードを指定した時間間隔中に要約したメールダイジェストの内容を設定します。
メール ダイジェストに関する一般的な情報については、「 Email digests」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| 許可 | ブール | ユーザーがこの通知をダイジェストとして受信するかどうかを示すフラグ。false の場合、 ダイジェスト オブジェクトの他のすべてのプロパティは無視されます。 デフォルト値:false |
| デフォルト | ブール | この通知に対してダイジェストモードがデフォルトで有効になっているかどうかを示すフラグ。 デフォルト値:false |
| タイプ | 文字列 | ダイジェストのタイプ。 有効な値:
|
| defaultInterval | 参照または文字列 | ダイジェスト配信のデフォルトの時間間隔として使用するダイジェスト間隔 [sys_email_digest_interval] の変数識別子またはsys_id。ダイジェスト間隔を定義するには、 レコード API - ServiceNow Fluentを使用します。 |
| 件名 | 文字列 | メール ダイジェストの件名。空の場合は、[メール テンプレート] の [件名] の値が使用されます。 変数参照には |
| html | 文字列 | メール ダイジェストの HTML コンテンツ。 変数参照には |
| テキスト | 文字列 | メールダイジェストのプレーンテキストコンテンツ。 変数参照には |
| template | 文字列 | メールテンプレート [sysevent_email_template] の変数識別子またはsys_id。メールテンプレートを定義するには、 レコード API - ServiceNow Fluentを使用します。 |
| separatorHtml | 文字列 | ダイジェストで要約された各アイテムの間に表示される HTML セパレーター。 変数参照には デフォルト: |
| セパレーターテキスト | 文字列 | ダイジェストで要約された各アイテムの間に表示されるプレーンテキストセパレーター。 変数参照には デフォルト値: |
| 送信元 | 文字列 | 通知の送信元のメールアドレス。 |
| replyTo | 文字列 | 受信者が返信できるメールアドレス。 |
digest: {
allow: true,
defaultInterval: hourlyDigest,
template: escalationTemplate,
subject: "Incident Escalation Digest - \${digest_count} incidents require attention",
html: `<div>
<div>Incident Escalation Digest</div>
</div>`,
separatorHtml: '<hr style="margin: 15px 0;">',
from: "noreply@company.com",
replyTo: "itsupport@company.com"
}
recipientDetails オブジェクト
メール通知を受信するユーザーを設定します。
通知受信者は、ユーザー [sys_user] テーブルでアクティブユーザーとして定義されたアクティブユーザーである必要があります。また、通知デバイス [cmn_notif_device] テーブルで、これらのユーザーの有効なメールアドレスがプライマリ チャネル (デバイス) に定義されている必要があります。また、通知受信者に対して適切な通知設定を有効にしておく必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| 受信者ユーザー | アレイ | 通知を受信するユーザー [sys_user] または変数識別子またはsys_idsのリスト。ユーザーを定義するには、 レコード API - ServiceNow Fluentを使用します。 |
| 受信者フィールド | アレイ | 通知を受信するユーザーまたはユーザーグループを参照するフィールドのリスト。フィールドは参照フィールドである必要があります。 たとえば、通知でインシデント [incident] テーブルが使用されている場合は、インシデントを開いたユーザーまたはグループに通知を送信する |
| 受信者グループ | アレイ | 通知を受信するユーザーグループ [sys_user_group] の変数識別子またはsys_idsのリスト。ユーザーグループを定義するには、 レコード API - ServiceNow Fluentを使用します。 注: グループメンバーは、グループレコードで [含めるメンバー] が選択されている場合のみ個々の通知を受信します。 |
| excludeDelegates | ブール | 委任されたユーザーを除外するかどうかを示すフラグ。このプロパティを true に設定すると、インスタンスがユーザーおよび選択したグループのメンバーの代理人にメール通知を送信しないようにすることができます。 デフォルト値:false |
| isSubscribableByAllUsers | ブール | すべてのユーザーに通知の登録を許可するかどうかを示すフラグ。詳細については、「Subscription-based notifications」を参照してください。 注: レコードに機密データまたは保護されたデータが含まれている場合は、受信者リストを通常アクセス権を持つユーザーとグループのみに制限し、このプロパティの値を false のままにすることを検討してください。個人データまたは機密データが公開されないように通知コンテンツを構成することもできます。たとえば、関連付けられたレコードへのリンクを挿入して、詳細が通知内で表示されないようにすることができます。 デフォルト値:false |
| sendToCreator | ブール | 通知プロセスを開始するアクションを実行したユーザーも受信者である場合に、そのユーザーに通知を送信するかどうかを示すフラグ。受信者フィールドの 1 つにイベント作成者が指定されていない場合、イベント作成者はこのフィールドの設定に関係なく通知を受信しません。 デフォルト値:false |
| eventParm1WithRecipient | ブール | イベントパラメーター 1 に 1 つ以上の通知受信者が含まれているかどうかを示すフラグ。 このプロパティは、イベントベースの通知にのみ適用されます。 |
| eventParm2WithRecipient | ブール | イベントパラメーター 2 に 1 つ以上の通知受信者が含まれているかどうかを示すフラグ。 このプロパティは、イベントベースの通知にのみ適用されます。 |
recipientDetails: {
recipientGroups: ["d625dccec0a8016700a222a0f7900d06"], // IT Support group sys_id
recipientFields: ["assigned_to", "caller_id"],
sendToCreator: false,
isSubscribableByAllUsers: false
}