이메일 알림 API - ServiceNow Fluent
이메일 알림 API는 데이터베이스 작업, 사용자 지정 이벤트 또는 수동 트리거를 기반으로 자동화된 이메일을 보내는 알림[sysevent_email_action]을 정의합니다.
이메일 알림에 대한 일반 정보는 다음 문서를 참조하십시오 Email and SMS notifications.
EmailNotification 객체
이메일 발송 시기, 수신자, 포함된 항목, 이메일 다이제스트로 전달할 수 있는지 여부를 지정하여 이메일 알림[sysevent_email_action]을 생성합니다.
이메일 알림 생성에 대한 일반적인 정보는 다음 문서를 참조하십시오 Create an email notification.
| 이름 | 유형 | 설명 |
|---|---|---|
| 테이블 | 참조 또는 문자열 | 필수 변수 식별자 또는 알림이 적용되는 테이블의 이름입니다. 테이블을 정의하려면 을 사용합니다 테이블 API - ServiceNow Fluent. 주: 다른 테이블을 확장하기 위한 작업 [task] 테이블을 선택하지 마십시오. 작업 테이블에서 직접 실행되는 알림은 지원되지 않습니다. |
| 트리거 조건 | 객체 | 필수 알림을 트리거하는 조건입니다. 자세한 내용은 triggerConditions 객체 문서를 참조하십시오. |
| 이름 | 문자열 | 이메일 알림의 고유한 이름입니다. |
| 설명 | 문자열 | 이메일 알림의 목적에 대한 설명입니다. |
| 범주 | 참조 또는 문자열 | 알림 그룹화를 위한 알림 범주의 변수 식별자 또는 이름입니다. 알림 범주를 정의하려면 을 사용합니다 기록 API - ServiceNow Fluent. 기본값: 기본 이메일 범주(c97d83137f4432005f58108c3ffa917a) |
| notificationType | 문자열 | 알림의 유형입니다. 유효한 값은 다음과 같습니다.
기본값: 이메일 |
| 활성 | 부울 | 알림이 활성 상태인지 여부를 나타내는 플래그입니다. 기본값: true |
| 필수 | 부울 | 알림이 필요한지 여부를 나타내는 플래그입니다. 기본값: false |
| enableDynamicTranslation | 부울 | 알림에 동적 변환을 사용할지 여부를 나타내는 플래그입니다. 기본값: false |
| emailContent | 객체 | 이메일 콘텐츠 및 형식입니다. 자세한 내용은 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 객체
알림을 보내려면 충족해야 하는 조건을 구성합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 생성 유형 | 문자열 | 필수 이메일 알림을 트리거하는 방법입니다. 유효한 값은 다음과 같습니다.
|
| onRecordInsert | 부울 | 기록이 삽입될 때 알림을 보낼지 여부를 나타내는 플래그입니다. 주: 이 속성 또는 onRecordUpdate 속성이 true여야 합니다. 기본값: false |
| onRecord업데이트 | 부울 | 기록이 업데이트될 때 알림을 보낼지 여부를 나타내는 플래그입니다. 주: 이 속성 또는 onRecordInsert 속성은 예여야 합니다. 기본값: false |
| eventName | 문자열 | 알림 전송을 트리거하는 사용자 지정 이벤트의 이름입니다. generationType 속성 값이 |
| affectedFieldOnEvent | 문자열 | 영향을 받는 필드를 포함하는 이벤트 매개변수입니다. 이 속성은 generationType 속성이 유효한 값은 다음과 같습니다.
|
| 가중치 | 번호 | 중복 알림과 관련된 알림 우선순위입니다. 대상 테이블과 수신자가 동일한 알림은 가중치가 다른 경우 중복된 것으로 간주됩니다. 가중치가 같으면 제목과 본문(워터마크 제외)이 동일한지 확인하기 위해 추가 평가가 수행되어 중복 알림으로 인정됩니다. 중복된 알림이 있는 경우 시스템은 가중치가 가장 높은 알림만 전송합니다. 다른 모든 알림은 보낼 편지함에서 건너뜀 사서함으로 이동됩니다. 기본값인 0을 사용하면 조건이 충족되는 가정으로 시스템에서 알림을 전송합니다. 최대값: 1000 기본값: 0 |
| 조건 | 문자열 | 사용자가 객체에 액세스하기 위해 예여야 하는 필드와 값을 지정하는 필터 쿼리입니다. 자세한 내용은 Operators available for filters and queries 문서를 참조하십시오. |
| 고급 조건 | 문자열 | 알림을 보내려면 true를 반환하거나 전역 응답 변수를 true로 설정해야 하는 JavaScript 조건문입니다. 자세한 내용은 Advanced conditions for email notifications 문서를 참조하십시오. 주: 이 속성은 알림에 설정한 다른 조건과 함께 평가됩니다. 알림을 보내려면 조건과 고급 조건 모두 예로 평가되어야 합니다. |
| itemTable | 참조 또는 문자열 | 알림 항목이 참조하는 테이블의 변수 식별자 또는 이름입니다. 테이블을 정의하려면 을 사용합니다 테이블 API - ServiceNow Fluent. |
| 항목 | 문자열 | 알림 컨텍스트에 사용할 항목입니다. |
| 순서 | 번호 | 알림의 실행 순서입니다. 최대값: 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 |
| 템플릿 | 참조 또는 문자열 | 이메일 템플릿 [sysevent_email_template]의 변수 식별자 또는 sys_id입니다. 이메일 템플릿을 정의하려면 을 사용합니다 기록 API - ServiceNow Fluent. 다음 조건 중 하나를 충족하는 이메일 템플릿만 지정할 수 있습니다.
|
| 스타일 | 참조 또는 문자열 | 이메일 스타일 [sys_email_style]의 변수 식별자 또는 sys_id입니다. 이메일 스타일을 정의하려면 을 사용합니다 기록 API - ServiceNow Fluent. |
| 주제 | 문자열 | 이메일의 제목 줄입니다. 비어 있는 경우 시스템은 이메일 템플릿의 제목 값을 사용합니다. 변수 참조에 |
| sms대체 | 문자열 | SMS 장치에 특별히 보낼 알림 메시지입니다. SMS 대체 메시지는 140자로 제한됩니다. 비어 있는 경우 시스템은 이메일 템플릿의 SMS 대체 값을 사용합니다. 변수 참조에 |
| 중요도 | 문자열 | 메시지의 중요도 수준입니다. 유효한 값은 다음과 같습니다.
|
| 첨부 파일 포함 | 부울 | 알림 트리거 기록의 첨부 파일을 이메일에 포함할지 여부를 나타내는 플래그입니다. 기본값: false |
| 생략 워터마크 | 부울 | 각 이메일에 첨부된 워터마크를 생략할지 여부를 나타내는 플래그입니다. 자세한 내용은 알림 이메일의 워터마크를 참조하세요. 기본값: false |
| 보낸 사람 | 문자열 | 알림을 보낼 이메일 주소입니다. |
| replyTo | 문자열 | 수신자가 회신할 수 있는 이메일 주소입니다. |
| pushMessageOnly | 부울 | 모바일 장치에 푸시 알림으로만 알림을 보낼지 여부를 나타내는 플래그입니다. 기본값: false |
| 푸시 메시지 목록 | 배열 | 알림과 연결할 푸시 메시지 [sys_push_notif_msg]의 변수 식별자 또는 sys_ids 목록입니다. 푸시 알림을 정의하려면 을 사용합니다 기록 API - ServiceNow Fluent. 주: 푸시 메시지와 알림은 동일한 테이블에 대해서여야 합니다. |
| 강제 전달 | 부울 | 알림을 방지하는 사용자 알림 기본 설정을 바이패스하고 어쨌든 알림을 보낼지 여부를 나타내는 플래그입니다. 기본값: false |
| messageHtml | 문자열 | 알림 메시지의 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 컨텐츠입니다. 변수 참조에 |
| 텍스트 | 문자열 | 이메일 다이제스트의 일반 텍스트 콘텐츠입니다. 변수 참조에 |
| 템플릿 | 문자열 | 이메일 템플릿 [sysevent_email_template]의 변수 식별자 또는 sys_id입니다. 이메일 템플릿을 정의하려면 을 사용합니다 기록 API - ServiceNow Fluent. |
| 구분 기호Html | 문자열 | 다이제스트에 요약된 각 항목 사이에 나타나는 HTML 구분 기호입니다. 변수 참조에 기본값: |
| separatorText | 문자열 | 다이제스트에 요약된 각 항목 사이에 나타나는 일반 텍스트 구분 기호입니다. 변수 참조에 기본값: |
| 보낸 사람 | 문자열 | 알림을 보낼 이메일 주소입니다. |
| 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_ids이나 사용자 [sys_user]의 목록 또는 알림을 수신할 이메일 주소 목록입니다. 사용자를 정의하려면 을 사용합니다 기록 API - ServiceNow Fluent. |
| 수신자 필드 | 배열 | 알림을 받을 사용자 또는 사용자 그룹을 참조하는 필드 목록입니다. 필드는 참조 필드여야 합니다. 예를 들어 알림에서 인시던트 [incident] 테이블을 사용하는 경우 |
| 수신자 그룹 | 배열 | 알림을 수신할 변수 식별자 목록 또는 사용자 그룹 [sys_user_group]의 sys_ids입니다. 사용자 그룹을 정의하려면 을 사용합니다 기록 API - ServiceNow Fluent. 주: 그룹 구성원은 그룹 기록에서 구성원 포함을 선택한 경우에만 개별 알림을 받습니다. |
| excludeDelegates | 부울 | 위임된 사용자를 제외할지 여부를 나타내는 플래그입니다. 인스턴스가 선택한 그룹의 사용자 및 구성원 대리자에게 이메일 알림을 보내지 못하도록 하려면 이 속성을 true로 설정합니다. 기본값: false |
| isSubscribableByAllUsers | 부울 | 모든 사용자가 알림을 구독하도록 허용할지 여부를 나타내는 플래그입니다. 자세한 내용은 Subscription-based notifications 문서를 참조하십시오. 주: 기록에 중요한 데이터 또는 보호된 데이터가 포함되어 있는 경우 수신자 목록을 일반적으로 액세스할 수 있는 사용자 및 그룹으로만 제한하고 이 속성의 값은 아니오로 두는 것이 좋습니다. 비공개 데이터나 민감한 데이터가 노출되지 않도록 알림 콘텐츠를 구성할 수도 있습니다. 예를 들어 연결된 기록에 대한 링크를 다시 삽입하여 세부 정보가 알림에 공개되지 않도록 할 수 있습니다. 기본값: false |
| sendToCreator | 부울 | 알림 프로세스를 시작한 작업을 수행한 사람이 수신자인 경우 알림을 보낼지 여부를 나타내는 플래그입니다. 수신자 필드 중 하나에 이벤트 작성자가 지정되지 않은 경우, 이벤트 작성자는 이 필드의 설정에 관계없이 알림을 받지 않습니다. 기본값: false |
| eventParm1WithRecipient | 부울 | 이벤트 매개변수 1에 하나 이상의 알림 수신자가 포함되어 있는지 여부를 나타내는 플래그입니다. 이 속성은 이벤트 기반 알림에만 적용됩니다. |
| eventParm2WithRecipient | 부울 | 이벤트 매개변수 2에 하나 이상의 알림 수신자가 포함되어 있는지 여부를 나타내는 플래그입니다. 이 속성은 이벤트 기반 알림에만 적용됩니다. |
recipientDetails: {
recipientGroups: ["d625dccec0a8016700a222a0f7900d06"], // IT Support group sys_id
recipientFields: ["assigned_to", "caller_id"],
sendToCreator: false,
isSubscribableByAllUsers: false
}