メール通知 API - ServiceNow Fluent

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:20分
  • メール通知 API は、データベース操作、カスタムイベント、または手動トリガーに基づいて自動メールを送信する通知 [sysevent_email_action] を定義します。

    注:
    最新の ServiceNow Fluent API ドキュメントと例については、 ServiceNow Fluent API リファレンス および ServiceNow SDK のサンプルリポジトリ ( GitHub)。

    メール通知に関する一般的な情報については、「 Email and SMS notifications」を参照してください。

    EmailNotification オブジェクト

    送信時期、受信者、内容、およびメールダイジェストで配信できるかどうかを指定して、メール通知 [sysevent_email_action] を作成します。

    メール通知の作成に関する一般的な情報については、「 Create an email notification」を参照してください。

    表 : 1. プロパティ
    名前 タイプ 説明
    テーブル 参照または文字列 必須。通知が適用されるテーブルの変数識別子または名前。テーブルを定義するには、 テーブル API - ServiceNow Fluentを使用します。
    注:
    他のテーブルを拡張するためのタスク [task] テーブルは選択しないでください。タスクテーブル上で直接実行される通知はサポートされていません。
    triggerConditions オブジェクト 必須。通知をトリガーする条件。詳細については、「triggerConditions オブジェクト」を参照してください。
    名前 文字列 メール通知の一意の名前。
    説明 文字列 メール通知の目的の説明。
    category 参照または文字列 通知をグループ化するための通知カテゴリの変数識別子または名前。通知カテゴリを定義するには、 レコード API - ServiceNow Fluentを使用します。

    デフォルト:デフォルトのメールカテゴリ (c97d83137f4432005f58108c3ffa917a)

    notificationType 文字列 通知のタイプ。
    有効な値:
    • email:標準メール。
    • vcalendar:会議への招待。ミーティング招待は、メールダイジェストではサポートされていません。

    デフォルト:email

    アクティブ ブール 通知がアクティブかどうかを示すフラグ。

    デフォルト:true

    mandatory ブール 通知が必要かどうかを示すフラグ。

    デフォルト値:false

    動的翻訳の有効化 ブール 通知の動的翻訳を有効にするかどうかを示すフラグ。

    デフォルト値:false

    メールコンテンツ オブジェクト メールのコンテンツとフォーマット。詳細については、「emailContent オブジェクト」を参照してください。
    recipientDetails オブジェクト メール受信者。詳細については、「recipientDetails オブジェクト」を参照してください。
    ダイジェスト オブジェクト メールダイジェストのコンテンツとフォーマット。詳細については、「ダイジェスト オブジェクト」を参照してください。
    $meta オブジェクト アプリケーションメタデータのメタデータ。
    installMethod プロパティを使用すると、特定の状況でのみロードされる出力ディレクトリにアプリケーションメタデータをマップできます。
    $meta: {
          installMethod: 'String'
    }
    installMethod の有効な値:
    • demo:[デモデータのロード] オプションが選択されている場合、アプリケーションメタデータを metadata/unload.demo ディレクトリに出力して、アプリケーションとともにインストールします。
    • 初回インストール:アプリケーションがインスタンスに初めてインストールされたときにのみインストールされるように 、アプリケーションメタデータをメタデータ/アンロード ディレクトリに出力します。
    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 オブジェクト

    通知を送信するために満たす必要がある条件を設定します。

    注:
    同じトリガーが複数の通知を生成する場合、通知は 1 つだけ送信されます。他のすべての通知は、件名と本文が異なる場合でもシステムで重複しているとみなされます。「重複を無視する」のビジネス ルールで、この機能を制御します。
    表 : 2. プロパティ
    名前 タイプ 説明
    generationType 文字列 必須。メール通知をトリガーする方法。
    有効な値:
    • エンジン:レコードが挿入または更新されたときに通知を送信します。
    • event:カスタムイベントが発生したときに通知を送信します。
    • triggered:手動でトリガーされた通知。このプロパティが トリガー済みに設定されている場合、次のプロパティは適用されません。
    レコード挿入時 ブール レコードが挿入されたときに通知を送信するかどうかを示すフラグ。
    注:
    このプロパティまたは onRecordUpdate プロパティのいずれかが true である必要があります。

    デフォルト値:false

    onRecordUpdate ブール レコードが更新されたときに通知を送信するかどうかを示すフラグ。
    注:
    このプロパティまたは onRecordInsert プロパティのいずれかが true である必要があります。

    デフォルト値:false

    eventName 文字列 通知の送信をトリガーするカスタムイベントの名前。

    generationType プロパティの値が event の場合、このプロパティは必須です。

    affectedFieldOnEvent 文字列 影響を受けるフィールドを含むイベントパラメーター。

    このプロパティは、 generationType プロパティが event に設定されている場合にのみ適用されます。

    有効な値:
    • parm 1
    • parm 2
    重み付け 番号 重複する通知と比較した通知の優先度。

    通知のターゲットテーブルと受信者が同じ場合、重み付けが異なると、重複していると見なされます。重み付けが同じ場合は、件名と本文 (ウォーターマークを除く) が重複通知として認定されるかどうかを確認するために、追加の評価が実行されます。通知が重複している場合は、最も高い重み付けの通知のみが送信されます。他のすべての通知は、送信トレイからスキップ メールボックスに移動されます。デフォルト値の 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 オブジェクト

    メール通知のコンテンツを設定します。

    表 : 3. プロパティ
    名前 タイプ 説明
    contentType 文字列 メールコンテンツのタイプ。
    有効な値:
    • text/html
    • テキスト/プレーン
    • マルチパート/混合

    デフォルト:text/html

    template 参照または文字列 メールテンプレート [sysevent_email_template] の変数識別子またはsys_id。メールテンプレートを定義するには、 レコード API - ServiceNow Fluentを使用します。
    次のいずれかの条件を満たすメールテンプレートのみを指定できます。
    • テンプレートのスコープとテーブルは通知と同じです。
    • テンプレートのスコープは同じですが、テーブルが指定されていません。
    • テンプレートには同じテーブルがあり、グローバルスコープ内にあります。
    style 参照または文字列 メールスタイル [sys_email_style] の変数識別子またはsys_id。メールスタイルを定義するには、 レコード API - ServiceNow Fluentを使用します。
    件名 文字列 メールの件名。空の場合は、[メール テンプレート] の [件名] の値が使用されます。

    変数参照には \${variable} 形式を使用できます。変数は、通知テーブル、その親テーブル、参照テーブルからの使用可能な列名にマップされます。変数を使用して、簡単な説明、コメント、作業メモなど、テーブルのレコードの値を含めることができます。

    sms代替 文字列 SMS デバイス専用に送信する通知メッセージ。SMS 代替メッセージは 140 文字に制限されています。空の場合は、メール テンプレートの SMS 代替値が使用されます。

    変数参照には \${variable} 形式を使用できます。変数は、通知テーブル、その親テーブル、参照テーブルからの使用可能な列名にマップされます。変数を使用して、簡単な説明、コメント、作業メモなど、テーブルのレコードの値を含めることができます。

    importance 文字列 メッセージの重要度。
    有効な値:
    includeAttachment ブール 通知トリガーレコードの添付ファイルをメールに含めるかどうかを示すフラグ。

    デフォルト値:false

    ウォーターマークを省略 ブール 各メールに添付されているウォーターマークを省略するかどうかを示すフラグ。詳細については、「 通知メールの透かし」を参照してください。

    デフォルト値:false

    送信元 文字列 通知の送信元のメールアドレス。
    replyTo 文字列 受信者が返信できるメールアドレス。
    プッシュメッセージのみ ブール 通知をプッシュ通知としてのみモバイルデバイスに送信するかどうかを示すフラグ。

    デフォルト値:false

    プッシュメッセージリスト アレイ 通知に関連付けるプッシュメッセージ [sys_push_notif_msg] の変数識別子またはsys_idsのリスト。プッシュ通知を定義するには、 レコード API - ServiceNow Fluentを使用します。
    注:
    プッシュ メッセージと通知は、同じテーブルに対して行う必要があります。
    強制配信 ブール 通知を防止して通知を送信するユーザー通知設定をバイパスするかどうかを示すフラグ。

    デフォルト値:false

    メッセージ HTML 文字列 通知メッセージの HTML コンテンツ。空の場合は、メールテンプレートのメッセージ HTML が使用されます。

    変数参照には \${variable} 形式を使用できます。変数は、通知テーブル、その親テーブル、参照テーブルからの使用可能な列名にマップされます。変数を使用して、簡単な説明、コメント、作業メモなど、テーブルのレコードの値を含めることができます。

    このプロパティは、 contentType プロパティの値が text/html または multipart/mixed の場合に必要です。

    messageText 文字列 通知メッセージのプレーンテキストコンテンツ。空の場合は、メールテンプレートのメッセージテキストが使用されます。

    変数参照には \${variable} 形式を使用できます。変数は、通知テーブル、その親テーブル、参照テーブルからの使用可能な列名にマップされます。変数を使用して、簡単な説明、コメント、作業メモなど、テーブルのレコードの値を含めることができます。

    このプロパティは、 contentType プロパティの値が text/plain または multipart/mixed の場合に必要です。

    メッセージ 文字列 使用廃止。メッセージの内容。
    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」を参照してください。

    表 : 4. プロパティ
    名前 タイプ 説明
    許可 ブール ユーザーがこの通知をダイジェストとして受信するかどうかを示すフラグ。false の場合、 ダイジェスト オブジェクトの他のすべてのプロパティは無視されます。

    デフォルト値:false

    デフォルト ブール この通知に対してダイジェストモードがデフォルトで有効になっているかどうかを示すフラグ。

    デフォルト値:false

    タイプ 文字列 ダイジェストのタイプ。
    有効な値:
    • 単一:選択した間隔中に単一のターゲットレコードに対して (INC001 のみなど) 通知が複数回トリガーされた場合に、通知をメールダイジェストで送信します。
    • 複数:INC001、INC002 などの複数のターゲットレコードに対して、選択した間隔中に通知が複数回トリガーされたときに、メールダイジェストで通知を送信します。
    defaultInterval 参照または文字列 ダイジェスト配信のデフォルトの時間間隔として使用するダイジェスト間隔 [sys_email_digest_interval] の変数識別子またはsys_id。ダイジェスト間隔を定義するには、 レコード API - ServiceNow Fluentを使用します。
    件名 文字列 メール ダイジェストの件名。空の場合は、[メール テンプレート] の [件名] の値が使用されます。

    変数参照には \${variable} 形式を使用できます。変数は、通知テーブル、その親テーブル、参照テーブルからの使用可能な列名にマップされます。変数を使用して、簡単な説明、コメント、作業メモなど、テーブルのレコードの値を含めることができます。

    html 文字列 メール ダイジェストの HTML コンテンツ。

    変数参照には \${variable} 形式を使用できます。変数は、通知テーブル、その親テーブル、参照テーブルからの使用可能な列名にマップされます。変数を使用して、簡単な説明、コメント、作業メモなど、テーブルのレコードの値を含めることができます。

    テキスト 文字列 メールダイジェストのプレーンテキストコンテンツ。

    変数参照には \${variable} 形式を使用できます。変数は、通知テーブル、その親テーブル、参照テーブルからの使用可能な列名にマップされます。変数を使用して、簡単な説明、コメント、作業メモなど、テーブルのレコードの値を含めることができます。

    template 文字列 メールテンプレート [sysevent_email_template] の変数識別子またはsys_id。メールテンプレートを定義するには、 レコード API - ServiceNow Fluentを使用します。
    separatorHtml 文字列 ダイジェストで要約された各アイテムの間に表示される HTML セパレーター。

    変数参照には \${variable} 形式を使用できます。変数は、通知テーブル、その親テーブル、参照テーブルからの使用可能な列名にマップされます。変数を使用して、簡単な説明、コメント、作業メモなど、テーブルのレコードの値を含めることができます。

    デフォルト: <p> </p>\n<hr>\n<p> </p>

    セパレーターテキスト 文字列 ダイジェストで要約された各アイテムの間に表示されるプレーンテキストセパレーター。

    変数参照には \${variable} 形式を使用できます。変数は、通知テーブル、その親テーブル、参照テーブルからの使用可能な列名にマップされます。変数を使用して、簡単な説明、コメント、作業メモなど、テーブルのレコードの値を含めることができます。

    デフォルト値: --------------------------------------------------------------------------------\n

    送信元 文字列 通知の送信元のメールアドレス。
    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] テーブルで、これらのユーザーの有効なメールアドレスがプライマリ チャネル (デバイス) に定義されている必要があります。また、通知受信者に対して適切な通知設定を有効にしておく必要があります。

    表 : 5. プロパティ
    名前 タイプ 説明
    受信者ユーザー アレイ 通知を受信するユーザー [sys_user] または変数識別子またはsys_idsのリスト。ユーザーを定義するには、 レコード API - ServiceNow Fluentを使用します。
    受信者フィールド アレイ 通知を受信するユーザーまたはユーザーグループを参照するフィールドのリスト。フィールドは参照フィールドである必要があります。

    たとえば、通知でインシデント [incident] テーブルが使用されている場合は、インシデントを開いたユーザーまたはグループに通知を送信する opened_by フィールドを指定できます。このユーザーまたはグループのリストは可変であり、関連するタスクレコードの値に依存します。また、メールアドレスの文字列を含むフィールドを選択すると、そのアドレスに通知を送信することもできます。

    受信者グループ アレイ 通知を受信するユーザーグループ [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
    }