Notifications Overview

Note: This page has not yet been converted to the new developer portal format. Please use Swagger to test this API.

Notifications Overview

The Notifications API can be
used to create or stop “SendNow” notifications and to query the state of any active or
historical notifications.

For creating and editing scheduled or recurring notifications, see the Launch
Policies API.

Notes for the "confirm" attribute of "broadcastSettings"
node:

1 When sending a
Conference notification via the API, the confirm flag is controlled by the user. If you pass null or false
as the value of "confirm" attribute or do not include "confirm" attribute at all, the
confirm flag for your notification will be set to No. The best practice is to includ the "confirm"
attribute and set the value to true for Conference notification.

2 For Polling
notifications, the confirm flag is used to control SMS Call Back. If the confirm flag is on, then it means
it requires a call back to respond and the choices will not be displayed in SMS texts. The best practice is
to set the confirm flag to false for Polling notifications.

3 When sending
Conference and Polling notifications via API, the voice mail option is controlld by the user, but the best
practice is to set the Message With Confirmation: "voiceMailOption":
"MESSAGE_WITH_CONFIRMATION".

If the organization has enabled "Allow Separate Email Content" from organization settings,
attribute "rtfContent" which is in the "message" node, can be used to deliver HTML
format content to Email paths.


NOTE: To create or update a notification, both PathId and Id (internal Id) of deliverPaths are required. These values can be obtained by using the contactPaths API.

*broadcastSettings.
deliveryPathOrder: The value of deliveryPathOrder can be Organization, Contact, or Custom.
It is "Contact" by default for ignorable case.

If it is "Custom", the path order will follow the sequence in the
deliverPaths list (the next attribute; for example, the client can move a specific path ahead or behind in
the list)

Base Object

Notification Base Object Fields

FieldData TypeRead OnlyNotes
typestringOne of:
◊ Standard
◊ Polling
◊ Quota
◊ Conference
prioritystringOne of:
◊ NonPriority
◊ Priority
notificationStatusstrngxOne of:
◊ Completed
◊ Inprogress
◊ Stopped
sourcestringxOne of:
◊ Web
◊ API
◊ Mobile
launchtypestringOne of:
◊ SendNow
◊ Recurring
◊ Schedule
createdNamestringxFirst and last name of the user that created this notification.
lastModifiedNamestringxFirst and last name of the user that last modified this notification.
productSourcestringxWhich EB Suite product sent this notification : MN or IC.
processedBystringxInternal Field to be disregarded.
broadcastContactsobjectSee Broadcast Contacts .
notificationResultobjectSee Notification Results .
messageobjectSee Notification Messages .
broadcastSettingsobjectSee Broadcast Settings Fields .
eventobjectSee Notification Events
publicMessagesobjectCMAS/IPAWS
idlongxThe notification ID.
startDatelongxUnix epoch date/time when the notification was sent.
endDatelongxUnix epoch date/time when the notification's duration expired or it was stopped.
notificationEventIdlongThe internal ID of the event this notification is tagged to.
batchNotificationIdlongAccount level cross organization notification’s ID.
stoppedBylongInternal ID of the user that stopped the notification (if applicable).
createdDatelongxUnix epoch date/time when the notification was created.
createdIdlongxInternal ID of the user that created this notification.
lastModifiedDatelongxUnix epoch date/time when the notification was last modified.
lastModifiedIdlongxInternal ID of the user that last modified this notification.
accountIdlongxThe ID of the account that owns this resource.
resourceBundleIdlongxThe ID of the Role which owns this resource.
organizationIdlongxThe ID of the organization to which this notification belongs.
transformedxInternal field that can be disregarded.
hasNotificationxInternal field that can be disregarded.
oldAwareCAMPIDxInternal field that can be disregarded.
statusstringxThe status of the object. All records returned by the API should have a status of 'A' indicating that the record is active and has not been deleted.
Deleted records of any type are invisible to the API.

Notification Data Model

{
  "status": "A",
  "createdId": 8800387989515,
  "createdName": "Misher Yang",
  "lastModifiedId": 8800387989515,
  "lastModifiedName": "Misher Yang",
  "createdDate": 1353223341025,
  "lastModifiedDate": 1353223341025,
  "organizationId": 8800387989534,
  "id": 1464553783164960,
  "priority": "NonPriority",
  "enableLifeSafety": true,
  "type": "Standard",
  "message": {
    "createdId": 0,
    "lastModifiedId": 0,
    "organizationId": 0,
    "id": 0,
    "contentType": "Text",
    "title": "To test Launch Policies in API POST",
    "textMessage": "To test Launch Policies in API with one-time scheduled notification",
    "rtfContent": "<html><body><img src='/icon.gif'/><p style='color:red'>This is an emergency notification!</p>.....</body></html>",
    "conferenceBridgeId": 0
  },
  "broadcastContacts": {
    "contactIds": [
      241896853078107
    ],
    "contactSearchType": "AllAnd"
  },
  "broadcastSettings": {
    "senderEmail": "[email protected]",
    "senderCallerInfos": [
      {
        "createdId": 0,
        "lastModifiedId": 0,
        "organizationId": 0,
        "id": 0,
        "countryCode": "US",
        "countryName": "United States",
        "callerId": "6172725854",
        "isDefault": true
      }
    ],
    "throttle": false,
    "throttlDefaultAmount": 0,
    "confirm": true,
    "smsCallBack": false,
    "contactCycles": 1,
    "duration": 1,
    "deliveryMethodInterval": 0,
    "cycleInterval": 0,
    "requirePinForMessage": false,
    "voiceMailOption": "MESSAGE_ONLY",
    "language": "en_US",
    "bookConference": false,
    "recipientApp": true,
    "mobileSettings": {
      "pushAlertEnabled": false,
      "requestImage": true,
      "requestLocation": true,
      "allowShare": false,
      "requireConfirm": true,
      "requestComment": true
    },
    "deliveryPathOrder": "Custom",
    "deliverPaths": [
      {
        "status": "A",
        "createdId": 8800387989515,
        "createdName": "Misher Yang",
        "lastModifiedId": 8800387989515,
        "lastModifiedName": "Misher Yang",
        "createdDate": 1347679964473,
        "lastModifiedDate": 1347679965648,
        "organizationId": 8800387989534,
        "id": 4402341481755,
        "awarePathId": 1682262,
        "pathId": 219910915489806,
        "prompt": "Email1",
        "seq": 2,
        "isDefault": true,
        "expose": false,
        "mandatory": false,
        "editable": false,
        "extRequired": false,
        "displayFlag": false,
        "default": true
      }
    ]
  },
  "source": "API",
  "launchtype": "SendNow",
  "startDate": 1353223341025,
  "endDate": 1353226941025,
  "notificationStatus": "Completed",
  "oldAwareCAMPID": 4839782,
  "notificationResult": {
    "notificationId": 1464553783164960,
    "totalCount": 1,
    "confirmedCount": 0,
    "notConfirmedCount": 1,
    "unreachableCount": 0,
    "confirmedLateCount": 0
  },
  "stoppedBy": 0
}

Optional Notification Data Model


NOTE: This is the same behavior for the launchPolicy and broadcastTemplate. The "broadcastSettings" object may only include the attributes that need to be updated in this Notification operation. Notification API will populate the values for unspecified "broadcastSettings" attributes automatically from organization settings.

Notification with “broadcastSettings” object that includes only “senderEmail” and “deliverPaths”

Notification_partial_broadcastSettings

{
  "status": "A",
  "createdId": 8800387989515,
  "createdName": "Misher Yang",
  "lastModifiedId": 8800387989515,
  "lastModifiedName": "Misher Yang",
  "createdDate": 1353223341025,
  "lastModifiedDate": 1353223341025,
  "organizationId": 8800387989534,
  "id": 1464553783164960,
  "priority": "NonPriority",
  "enableLifeSafety": true,
  "type": "Standard",
  "message": {
    "createdId": 0,
    "lastModifiedId": 0,
    "organizationId": 0,
    "id": 0,
    "contentType": "Text",
    "title": "To test Launch Policies in API POST",
    "textMessage": "To test Launch Policies in API with one-time scheduled notification",
    "conferenceBridgeId": 0
  },
  "broadcastContacts": {
    "contactIds": [
      241896853078107
    ],
    "contactSearchType": "AllAnd"
  },
  "broadcastSettings": {
    "senderEmail": "[email protected]",
    "deliverPaths": [
      {
        "status": "A",
        "createdId": 8800387989515,
        "createdName": "Misher Yang",
        "lastModifiedId": 8800387989515,
        "lastModifiedName": "Misher Yang",
        "createdDate": 1347679964473,
        "lastModifiedDate": 1347679965648,
        "organizationId": 8800387989534,
        "id": 4402341481755,
        "awarePathId": 1682262,
        "pathId": 219910915489806,
        "prompt": "Email1",
        "seq": 2,
        "isDefault": true,
        "expose": false,
        "mandatory": false,
        "editable": false,
        "extRequired": false,
        "displayFlag": false,
        "default": true
      }
    ]
  },
  "source": "Api",
  "launchtype": "SendNow",
  "startDate": 1353223341025,
  "endDate": 1353226941025,
  "notificationStatus": "Completed",
  "oldAwareCAMPID": 4839782,
  "notificationResult": {
    "notificationId": 1464553783164960,
    "totalCount": 1,
    "confirmedCount": 0,
    "notConfirmedCount": 1,
    "unreachableCount": 0,
    "confirmedLateCount": 0
  },
  "stoppedBy": 0
}

Notification without the “broadcastSettings” object

notification_without_broadcastSettings.js

{
  "status": "A",
  "createdId": 8800387989515,
  "createdName": "Misher Yang",
  "lastModifiedId": 8800387989515,
  "lastModifiedName": "Misher Yang",
  "createdDate": 1353223341025,
  "lastModifiedDate": 1353223341025,
  "organizationId": 8800387989534,
  "id": 1464553783164960,
  "priority": "NonPriority",
  "enableLifeSafety": true,
  "type": "Standard",
  "message": {
    "createdId": 0,
    "lastModifiedId": 0,
    "organizationId": 0,
    "id": 0,
    "contentType": "Text",
    "title": "To test Launch Policies in API POST",
    "textMessage": "To test Launch Policies in API with one-time scheduled notification",
    "conferenceBridgeId": 0
  },
  "broadcastContacts": {
    "contactIds": [
      241896853078107
    ],
    "contactSearchType": "AllAnd"
  },
  "source": "API",
  "launchtype": "SendNow",
  "startDate": 1353223341025,
  "endDate": 1353226941025,
  "notificationStatus": "Completed",
  "oldAwareCAMPID": 4839782,
  "notificationResult": {
    "notificationId": 1464553783164960,
    "totalCount": 1,
    "confirmedCount": 0,
    "notConfirmedCount": 1,
    "unreachableCount": 0,
    "confirmedLateCount": 0
  },
  "stoppedBy": 0
}

Notification&LaunchPolicy with the “notification mode” - support feature”

Since Version22.3.0
Add or RemoveAdd
JSON FieldnotificationMode
Value TypeString
Parent JSON fieldnotification root object/launchPolicy notification field
RequiredNo
Description“Live” - for live simulation
“Simulation” - for simulated notification

Notification and Notification Template with the “rcna feature” enabled for broadcastContacts

Since Version21.4.0
Add or RemoveAdd
JSON FieldnaResidentContacts
Value TypeObject
Parent JSON fieldbroadcastContacts
RequiredNo
Descriptionrcna info which is contains residentIds and businessIds and filterIds.
Since Version21.4.0
Add or RemoveAdd
JSON FieldresidentIds
Value TypeList
Parent JSON fieldnaResidentContacts
RequiredNo
DescriptionA list of resident IDs to use when selecting contacts.
Since Version21.4.0
Add or RemoveAdd
JSON Fieldbusinessds
Value TypeList
Parent JSON fieldnaResidentContacts
RequiredNo
DescriptionA list of business IDs to use when selecting contacts.
Since Version21.4.0
Add or RemoveAdd
JSON FieldfilterIds
Value TypeList
Parent JSON fieldnaResidentContacts
RequiredNo
DescriptionA list of rcna rule IDs to use when selecting contacts.
Since Version21.4.0
Add or RemoveAdd
JSON FieldboundaryId
Value TypeString
Parent JSON fieldsearchShapes
RequiredNo
DescriptionThe ID for uising a boundary to select contacts.
Since Version21.4.0
Add or RemoveAdd
JSON FieldresidentContactTypes
Value TypeList
Parent JSON fieldsearchShapes
RequiredNo
DescriptionThe rcna search types of the shape. Available values: RESIDENTIAL,BUSINESS.
Since Version21.4.0
Add or RemoveAdd
JSON FieldresidentFilterRulesInMap
Value TypeObject
Parent JSON fieldbroadcastContacts
RequiredNo
DescriptionThe resident Filter rules in the map.
Since Version21.4.0
Add or RemoveAdd
JSON FieldbusinessFilterRulesInMap
Value TypeObject
Parent JSON fieldbroadcastContacts
RequiredNo
DescriptionThe business Filter rules in the map.
Since Version21.4.0
Add or RemoveAdd
JSON FieldresidentContactType
Value TypeList
Parent JSON fieldresidentFilterRulesInMap
RequiredNo
DescriptionThe rcna contact types of the filter rule. Available values : RESIDENTIAL,BUSINESS.
Since Version21.4.0
Add or RemoveAdd
JSON FieldchildFilters
Value TypeList
Parent JSON fieldresidentFilterRulesInMap
RequiredNo
DescriptionThe child filter rules list. The logic between each child rules is or.
Since Version21.4.0
Add or RemoveAdd
JSON FieldcontactFilterRules
Value TypeList
Parent JSON fieldchildFilters
RequiredNo
DescriptionThe contact filter rules.The logic between each child rules is and.
Since Version21.4.0
Add or RemoveAdd
JSON FieldpathFilterRules
Value TypeList<List>
Parent JSON fieldchildFilters
RequiredNo
DescriptionThe deliver path filter rules.The logic between each child rules is and.
Since Version21.4.0
Add or RemoveAdd
JSON FieldfieldName
Value TypeString
Parent JSON fieldcontactFilterRules
RequiredNo
DescriptionAvailable values:
firstName,lastName,middleName,address.streetAddress,address.suite,address.city,
address.county,address.state,address.postalCode,address.country,businessName
Since Version21.4.0
Add or RemoveAdd
JSON FieldfieldValue
Value TypeString
Parent JSON fieldcontactFilterRules
RequiredNo
DescriptionThe contact field value for each rcna filter rule.
Since Version21.4.0
Add or RemoveAdd
JSON FieldfilterOperator
Value TypeFilterOperator
Parent JSON fieldcontactFilterRules
RequiredNo
DescriptionAvailable values:
IN,GT,GTE,LT,LTE,EQUAL,NOT_EQUAL,START_WITH,END_WITH, CONTAIN,DOES_NOT_CONTAIN
Since Version21.4.0
Add or RemoveAdd
JSON FieldfieldName
Value TypeString
Parent JSON fieldpathFilterRules
RequiredNo
DescriptionAvailable values: methodType,value
Since Version21.4.0
Add or RemoveAdd
JSON FieldfieldValue
Value TypeString
Parent JSON fieldpathFilterRules
RequiredNo
DescriptionAvailable values: Wireless,Landline,VOIP when fieldName is methodType.

The delivery path field value for each rcna filter rule when fieldName is value.
Since Version21.4.0
Add or RemoveAdd
JSON FieldfilterOperator
Value TypeFilterOpterator
Parent JSON fieldpathFilterRules
RequiredNo
DescriptionAvailable values:
IN,GT,GTE,LT,LTE,EQUAL,NOT_EQUAL,START_WITH,END_WITH, CONTAIN,DOES_NOT_CONTAIN.
Since Version21.4.0
Add or RemoveAdd
JSON FieldfieldContext
Value TypeString
Parent JSON fieldpathFilterRules
RequiredNo
DescriptionAvailable values: paths,empty string

Sample JSON

{
  "message": "OK",
  "result": {
    "startDate": 1674823609848,
    "accountId": 1536846672691202,
    "broadcastContacts": {
      "contactIds": [
        426680841666562
      ],
      "contactSearchType": "AllOr",
      "sequenceGroupEnabled": false,
      "defaultSeqGroupQuota": 1,
      "sequenceGroupInterval": 5,
      "enableGroupCalendar": false,
      "enableSendToSubscribers": false
    },
    "incidentPhase": {
      "createdName": "Vishal Agrawal",
      "incidentId": 591470146880507,
      "accountId": 1536846672691202,
      "status": "A",
      "resourceBundleId": 1536984111644675,
      "organizationId": 1536984111644674,
      "id": 10011,
      "notificationId": -1,
      "phaseTemplate": {
        "templateId": 1536984111644674,
        "templateName": "Readme Testing",
        "name": "New",
        "messageFlag": 3,
        "contactsFlag": 3,
        "settingsFlag": 3,
        "publishOptionsFlag": {
          "desktopAlerts": 1,
          "webWidget": 1,
          "network": 1,
          "alertUs": 1,
          "webPosting": 1,
          "socialMedia": 1,
          "nixleChannel": 1,
          "abb": 1,
          "memberPortal": 1,
          "ipawsCap": 1
        },
        "phaseDefinitions": [
          {
            "id": 1001,
            "status": "A",
            "isDefault": false,
            "name": "New",
            "seq": 0
          }
        ],
        "formTemplate": {
          "subject": "Readme Testing",
          "formVariableItems": [
            {
              "val": [
                "Testing"
              ],
              "variableName": "Status",
              "isRequired": true,
              "seq": 1,
              "variableId": 591470146879515,
              "prefixName": "1"
            },
            {
              "val": [
                "High"
              ],
              "variableName": "Priority",
              "isRequired": false,
              "seq": 2,
              "variableId": 591470146879516,
              "prefixName": "1"
            }
          ],
          "sysVarTodayDateFormat": "mm-dd-yyyy",
          "sysVarCurrentTimeFormat": "HH:mm:ss"
        },
        "broadcastTemplate": {
          "accountId": 0,
          "broadcastContacts": {
            "contactIds": [
              426680841666562
            ],
            "contactSearchType": "AllOr",
            "sequenceGroupEnabled": false,
            "defaultSeqGroupQuota": 1,
            "sequenceGroupInterval": 5,
            "enableGroupCalendar": false,
            "enableSendToSubscribers": false
          },
          "resourceBundleId": 0,
          "organizationId": 0,
          "publicMessages": {},
          "type": "Standard",
          "id": 0,
          "message": {
            "accountId": 1536846672691202,
            "organizationId": 1536984111644674,
            "contentType": "Text",
            "id": 0,
            "title": "Readme Testing",
            "textMessage": "Status: Testing   \r\nPriority: High   ",
            "conferenceBridgeId": 0,
            "createdDate": 1674823609743,
            "createdName": "Vishal Agrawal",
            "status": "A",
            "resourceBundleId": 1536984111644675,
            "lastModifiedDate": 1674823609743,
            "lastModifiedId": 1530249602924607,
            "createdId": 1530249602924607,
            "lastModifiedName": "Vishal Agrawal",
            "useCustomEmail": false,
            "useCustomSms": false
          },
          "broadcastSettings": {
            "voiceMailOption": "MESSAGE_ONLY",
            "throttlDefaultAmount": 0,
            "throttle": false,
            "mobileSettings": {
              "requestComment": false,
              "requestImage": false,
              "requestLocation": false,
              "allowShare": false,
              "requireConfirm": false,
              "pushAlertEnabled": false
            },
            "deliverPaths": [
              {
                "accountId": 1536846672691202,
                "pathId": 241901148045316,
                "organizationId": 1536984111644674,
                "awarePathId": 0,
                "id": 589820879437825,
                "expose": false,
                "isDefault": true,
                "createdDate": 1674823177533,
                "createdName": "Vishal Agrawal",
                "status": "A",
                "mandatory": false,
                "resourceBundleId": 1536984111644675,
                "editable": false,
                "seq": 1,
                "lastModifiedDate": 1674823192141,
                "lastModifiedId": 1530249602924607,
                "createdId": 1530249602924607,
                "prompt": "Email",
                "lastModifiedName": "Vishal Agrawal",
                "extRequired": false,
                "displayFlag": false,
                "default": true
              }
            ],
            "requirePinForMessage": false,
            "deliveryMethodInterval": 0,
            "bookConference": false,
            "cycleInterval": 0,
            "duration": 1,
            "senderCallerInfos": [
              {
                "countryName": "United States",
                "accountId": 0,
                "countryCode": "US",
                "resourceBundleId": 0,
                "organizationId": 0,
                "id": 0,
                "callerId": "7818646213",
                "isDefault": true,
                "createdId": 0,
                "lastModifiedId": 0
              }
            ],
            "contactCycles": 1,
            "language": "en_US",
            "recipientApp": false,
            "senderEmail": "SORCH Dev3",
            "confirm": false,
            "deliveryPathOrder": "Contact",
            "enableSecureNotification": false,
            "validateContacts": true,
            "validateContactsByOrganization": false,
            "enableRecord": false,
            "enableSmartConferenceConfirmationText": true,
            "enableBeep": true,
            "quietTimeOverride": false
          },
          "priority": "NonPriority",
          "lastModifiedId": 0,
          "createdId": 0,
          "useEscalation": false,
          "enableLifeSafety": false
        },
        "ignoreVariable": false,
        "evaluateAll": false,
        "incidentNotificationPropertyBag": {
          "enableExerciseMode": "false"
        }
      },
      "name": "New",
      "lastModifiedDate": 1674823609703,
      "lastModifiedId": 1530249602924607,
      "createdId": 1530249602924607,
      "createdDate": 1674823609703,
      "lastModifiedName": "Vishal Agrawal",
      "phaseDefinition": {
        "phaseNodeType": "Begin",
        "id": 1001,
        "incidentStatus": "Open",
        "status": "A",
        "isDefault": true,
        "name": "New",
        "seq": 100
      }
    },
    "endDate": 1674827209848,
    "transformed": true,
    "organizationId": 1536984111644674,
    "type": "Standard",
    "id": 591470146880264,
    "notificationStatus": "Completed",
    "productSource": "Matrix",
    "priority": "NonPriority",
    "oldAwareCAMPID": 0,
    "createdDate": 1674823609798,
    "hasNotification": true,
    "createdName": "Vishal Agrawal",
    "status": "A",
    "notificationResult": {
      "notificationId": 0,
      "unreachableCount": 0,
      "confirmedCount": 0,
      "totalCount": 1,
      "confirmedLateCount": 0,
      "notConfirmedCount": 1,
      "allDetails": [
        {
          "id": 0,
          "notificationId": 591470146880264,
          "contactId": 426680841666562,
          "result": "Sent",
          "attemptTime": 1674823613439,
          "firstAttemptTime": 1674823613439,
          "fullName": "Vishal Agrawal",
          "firstName": "Vishal",
          "lastName": "Agrawal",
          "attempt": 0,
          "externalId": "[email protected]",
          "createdId": 1530249602924607,
          "callResultByPaths": [
            {
              "journalId": 0,
              "attemptId": "63d3c7bb0139ad08c9997fed",
              "attemptOrder": 1,
              "attemptTime": 1674823613439,
              "waitTime": 0,
              "countryCode": "IN",
              "cycleSeq": 1,
              "path": "Email",
              "pathText": "[email protected]",
              "callResult": "Sent",
              "firstName": "Vishal",
              "lastName": "Agrawal",
              "confirmed": false
            }
          ],
          "confirmed": false
        }
      ]
    },
    "resourceBundleId": 1536984111644675,
    "launchtype": "SendNow",
    "publicMessages": {},
    "message": {
      "accountId": 1536846672691202,
      "organizationId": 1536984111644674,
      "contentType": "Text",
      "id": 0,
      "title": "Readme Testing",
      "textMessage": "Status: Testing   \r\nPriority: High   ",
      "conferenceBridgeId": 0,
      "createdDate": 1674823609743,
      "createdName": "Vishal Agrawal",
      "status": "A",
      "resourceBundleId": 1536984111644675,
      "lastModifiedDate": 1674823609743,
      "lastModifiedId": 1530249602924607,
      "createdId": 1530249602924607,
      "lastModifiedName": "Vishal Agrawal",
      "useCustomEmail": false,
      "useCustomSms": false
    },
    "broadcastSettings": {
      "voiceMailOption": "MESSAGE_ONLY",
      "throttlDefaultAmount": 0,
      "throttle": false,
      "mobileSettings": {
        "requestComment": false,
        "requestImage": false,
        "requestLocation": false,
        "allowShare": false,
        "requireConfirm": false,
        "pushAlertEnabled": false
      },
      "deliverPaths": [
        {
          "accountId": 1536846672691202,
          "pathId": 241901148045316,
          "organizationId": 1536984111644674,
          "awarePathId": 0,
          "id": 589820879437825,
          "expose": false,
          "isDefault": true,
          "createdDate": 1674823177533,
          "createdName": "Vishal Agrawal",
          "status": "A",
          "mandatory": false,
          "resourceBundleId": 1536984111644675,
          "editable": false,
          "seq": 1,
          "lastModifiedDate": 1674823192141,
          "lastModifiedId": 1530249602924607,
          "createdId": 1530249602924607,
          "prompt": "Email",
          "lastModifiedName": "Vishal Agrawal",
          "extRequired": false,
          "displayFlag": false,
          "default": true
        }
      ],
      "requirePinForMessage": false,
      "deliveryMethodInterval": 0,
      "bookConference": false,
      "cycleInterval": 0,
      "duration": 1,
      "senderCallerInfos": [
        {
          "countryName": "United States",
          "accountId": 0,
          "countryCode": "US",
          "resourceBundleId": 0,
          "organizationId": 0,
          "id": 0,
          "callerId": "7818646213",
          "isDefault": true,
          "createdId": 0,
          "lastModifiedId": 0
        }
      ],
      "contactCycles": 1,
      "language": "en_US",
      "recipientApp": false,
      "senderEmail": "SORCH Dev3",
      "confirm": false,
      "deliveryPathOrder": "Contact",
      "enableSecureNotification": false,
      "validateContacts": true,
      "validateContactsByOrganization": false,
      "enableRecord": false,
      "enableSmartConferenceConfirmationText": true,
      "enableBeep": true,
      "quietTimeOverride": false
    },
    "sourceTemplateId": 0,
    "source": "Web",
    "notificationName": "Readme Testing",
    "batchNotificationId": 0,
    "stoppedBy": 0,
    "lastModifiedDate": 1674827220088,
    "lastModifiedId": 1530249602924607,
    "createdId": 1530249602924607,
    "processedBy": "schedule-task-dev3-green-i-026dbaf0eea0f3e89",
    "lastModifiedName": "Vishal Agrawal",
    "incident": {
      "accountId": 1536846672691202,
      "organizationId": 1536984111644674,
      "id": 591470146880507,
      "incidentStatus": "Open",
      "name": "Readme Testing",
      "createdDate": 1674823609695,
      "hasJournal": false,
      "createdName": "Vishal Agrawal",
      "status": "A",
      "resourceBundleId": 1536984111644675,
      "duration": 0,
      "createdId": 1530249602924607,
      "lastModifiedId": 1530249602924607,
      "lastModifiedDate": 1674823609695,
      "phaseStatus": {
        "phaseNodeType": "Begin",
        "id": 1001,
        "incidentStatus": "Open",
        "status": "A",
        "isDefault": true,
        "name": "New",
        "seq": 100
      },
      "incidentType": "Incident",
      "lastModifiedName": "Vishal Agrawal",
      "useTemplateVarValue": false,
      "enableMessageTruncate": false,
      "incidentMode": "Live"
    },
    "escalationConfirmedCount": 0,
    "escalatedNotification": false,
    "enableLifeSafety": false,
    "enableMessageTruncate": false,
    "notificationMode": "Live"
  }
}

Notification and Notification Template with the “web widget message” enabled for publish message

Since Version21.0
Add or RemoveAdd
JSON FieldwebWidgetMessage
Value TypeObject
Parent JSON fieldpublicMessage
RequiredNo
DescriptionThis is the web widget message in the publish message.
Since Version21.0
Add or RemoveAdd
JSON FielduseSameDurationAsNotification
Value TypeBoolean
Parent JSON fieldwebWidgetMessage
RequiredNo
DescriptionIf useSameDurationAsNotification is true, this value should comes from the broadcastSettings duration.
If useSameDurationAsNotification is false, this value should calculated by customDuration and customTimeUnit.
Since Version21.0
Add or RemoveAdd
JSON FieldcustomDuration
Value Typeint
Parent JSON fieldwebWidgetMessage
RequiredNo
DescriptionThe custom duration for web widget message.
Since Version21.0
Add or RemoveAdd
JSON FieldcustomTimeUnit
Value TypeString
Parent JSON fieldwebWidgetMessage
RequiredNo
DescriptionThe custom timeunit for web widget message.

Sample JSON

"publicMessages": {
        "webWidgetMessage": { 
                "useSameDurationAsNotification": false,
                "customDuration": 1,
                "customTimeUnit": "Days"
       }
}

Notification and Notification Template with the “desktop alert message” enabled for publish message

Since Version21.0
Add or RemoveAdd
JSON FielddesktopAlertMessage
Value TypeObject
Parent JSON fieldpublicMessages
RequiredNo
DescriptionThis is the desktop alert message in the publish message.
Since Version21.0
Add or RemoveAdd
JSON FieldtemplateId
Value TypeString
Parent JSON fielddesktopAlertMessage
RequiredNo
DescriptionThe templateId for desktop alert message.
Since Version21.0
Add or RemoveAdd
JSON FielduseSameDurationAsNotification
Value TypeBoolean
Parent JSON fielddesktopAlertMessage
RequiredNo
DescriptionIf useSameDurationAsNotification is true, this value should comes from the broadcastSettings duration.
If useSameDurationAsNotification is false, this value should calculated by customDuration and customTimeUnit.
Since Version21.0
Add or RemoveAdd
JSON FieldcustomDuration
Value Typeint
Parent JSON fielddesktopAlertMessage
RequiredNo
DescriptionThe custom duration for desktop alert message.
Since Version21.0
Add or RemoveAdd
JSON FieldcustomTimeUnit
Value TypeString
Parent JSON fielddesktopAlertMessage
RequiredNo
DescriptionThe custom timeunit for desktop alert message.

Sample JSON

"publicMessages": {
        "desktopAlertMessage": { 
                "templateId": "1",
                "useSameDurationAsNotification": false,
                "customDuration": 15,
                "customTimeUnit": "Minutes"
       }
}

Notification, NotificationTemplate, and LaunchPolicy with the “separate sms field” enabled

Since Version20.2.0
Add or RemoveAdd
JSON FielduseCustomSms
Value TypeBoolean
Parent JSON fieldmessage
RequiredNo
DescriptionWhen this option is true, it will create a separate message for SMS delivery methods.
Since Version20.2.0
Add or RemoveAdd
JSON FielduseSmsWebLink
Value TypeBoolean
Parent JSON fieldmessage
RequiredNo
DescriptionWhen this option is true, a link will be added to the end of your SMS to view your Web Page Message.
Since Version20.2.0
Add or RemoveAdd
JSON FielduseSmsPrefix
Value TypeBoolean
Parent JSON fieldmessage
RequiredNo
DescriptionWhen this option is true, a separate message will start with the SMS Message Prefix set in the org smsoptions settings.
Since Version20.2.0
Add or RemoveAdd
JSON FieldtextSmsMessage
Value TypeString
Parent JSON fieldmessage
RequiredNo
DescriptionThe content for separate message for SMS delivery methods.
Since Version20.2.0
Add or RemoveAdd
JSON FieldtextSmsWebPageMessage
Value TypeString
Parent JSON fieldmessage
RequiredNo
DescriptionThe content for the Web Page Message.

Notification, NotificationTemplate, and
LaunchPolicy with the “residents” enabled.

Since Version9.3.0
Add or RemoveAdd
JSON Fieldresidents
Value TypeObject
"residents": { "searchBySearchShapes": true}
Parent JSON fieldbroadcastContacts
DescriptionSupports UMS residents query with polygons, so use ebsuite field "searchShapes" to transmit polygons data and add residents.searchBySearchShapes=true to represent UMS residents query to distinguish from normal polygons query.
Since Version9.4.0
Add or RemoveAdd
JSON FieldumsPatterns
Value TypeObject
{
"searchBySearchShapes": true,
"umsPatterns": [
{
"pattern": String,
"values": [{}]
}

]
}
Parent JSON fieldresidents
Request Body"umsPatterns":[{
"pattern": "riksnyckel",
"values": [
{
"unr": "2001"
}
]
}
]
Patterns:
street




matrikkel


fastighetsnyckel


riksnyckel
Values:
"kommune": required & numeric value "gateid": required & numeric value "husnr": optional & numeric value "bokstav": optional & a letter, just one character "apartmentid": optional & a combination of characters and numbers
"kommune": required & numeric value "gnr": required & numeric value "bnr": required & numeric value "fnr": optional & numeric value
"snr":required & numeric value "nr": optional & numeric value "suffix": optional & a letter, just one character "apartment": optional & a combination of characters and numbers
"unr": required & numeric value
When using:
PUT /notificationTemplates/{organizationId}/{instanceId}
PUT /launchPolicies/{organizationId}/{instanceId}
these two APIs to update notificationTemplate and LaunchPolicies with umsPatterns in residents:
1. When no umsPatterns field or umsPatterns is null: no influence to old record.
2. When umsPatterns is []: will remove all old records
3. Else will update the related record.

Request Body

{
   "broadcastContacts":{
      "searchShapes":[
         {
            "shape":{
               "points":[
                  {
                     "y":39.94399565901895,
                     "x":116.36194962262458
                  },
                  {
                     "y":39.94414988701187,
                     "x":116.36216151713502
                  }
               ]
            },
            "include":true
         }
      }
   ],
   "residents":{
      "searchBySearchShapes":true
   }
}

Notification, NotificationTemplate, and LaunchPolicy with the “residents” enabled

Since Version9.3.0
Add or RemoveAdd
JSON Fieldresidents
Value TypeObject
"residents": { "searchBySearchShapes": true}
Parent JSON fieldbroadcastContacts
DescriptionThis version needs to support UMS residents query with polygons, so use ebsuite field "searchShapes" to transmit polygons data, and add residents.searchBySearchShapes=true to represent UMS residents query to distinguish with normal polygons query.

Request Body

Resident Request

{
    ......
     "broadcastContacts": {
        .....
        "searchShapes": [
            {
             "shape": {
               "points": [
                 {
                   "y": 39.944172507088574,
                   "x": 116.36190402507502
                 },
                 {
                   "y": 39.94399565901895,
                   "x": 116.36194962262458
                 },
                 {
                   "y": 39.94414988701187,
                   "x": 116.36216151713502
                 },
                 {
                   "y": 39.94420540900411,
                   "x": 116.36217492818272
                 },
                 {
                   "y": 39.94420746537373,
                   "x": 116.36217492818272
                 },
                 {
                   "y": 39.944172507088574,
                   "x": 116.36190402507502
                 }
               ]
             },
             "include": true
            }
        ],
//added this version
        "residents": {
            "searchBySearchShapes": true
        }
        ......
     }
    .......
}
Since Version9.4.0
Add or RemoveAdd
JSON FieldumsPatterns
Value TypeObject
{
"searchBySearchShapes": true,
"umsPatterns": [
{
"pattern": String,
"values": [{}]
}
]
}
Parent JSON fieldresidents
Descriptionpattern has 4 values: street; matrikkel; fastighetsnyckel; riksnyckel
Each type has related values (has diffrent fields and validation). See the table of values in Request Description .
◊ PUT /notificationTemplates/{organizationId}/{instanceId}
◊ PUT /launchPolicies/{organizationId}/{instanceId}
Use these two APIs to update notificationTemplate and LaunchPolicies with umsPatterns in residents.
When there is no umsPatterns field or the umsPatterns is null: no influence to old record.
When umsPatterns is []: will remove all old records, else it will update the related record.

Request Body

Resident Request

{
    ...........
    "broadcastContacts": {
        ..........
        "residents": {
            "searchBySearchShapes": true,
            "umsPatterns": [
                {
                    "pattern": "riksnyckel",
                    "values": [
                        {
                            "unr": "2001"
                        }
                    ]
                }
            ]
        }
        .........
    }
    ..........
}
Since Version20.3.0
Add or RemoveAdd
JSON Fieldproperties
Value Type{
"properties":[
{
"field":String,
"values":[]
}]
}
Parent JSON fieldresidents
DescriptionThe properties could include more additional fields.
1 entryType : Filter capability needs to be provided by address-service.
2 owner_type (only supported in the Norway region):
Value Description
R RESIDENT
B OWNER B as in the Norwegian "Boligeier". Property owners of residential homes.
F VACATION F as in the Norwegian "Fritidsbolig" . Owners of holiday houses (cabins etc.)
supported by propertyFilter
3 Vulnerable: Not supported in current address service. It is only supported in company resident.

Request Body

Properties in Residents

{
    ......
    {
    ......
    "residents": {
        ......
        "properties": [{
            "field": "Vulnerable",
            "values": [false,true]
        },{
            "field": "owner_type",
            "values":["F"]
        },{
            "field": "entryType",
            "values": ["company","person"]
        }]
        ......
    }
    ......
    }
    ......
}

Notification with the “escalation” enabled

Since VersionAdd or RemoveJSON FieldValue TypeParent JSON FieldDescription
6.5.0AddescalatedNotificationBooleanRoot of Notificationfalse: this notification is primary notification.
true: this notification is triggered by escalation condition.
6.5.0AddescalationConfirmedCountNumberRoot of NotificationIn incident and primary notification (while escalatedNotification=false), this field indicates all the confirmed number.
In escalation level notification (while escalatedNotification=true), this field's value is always 0.
6.5.0AddescalationStatusStringRoot of NotificationStopped, Inprogress, Completed.
6.5.0AddescalationEndDateNumberRoot of NotificationNotification End Date + escalationCondition'sWaitTime
6.5.0AddprimaryNotificationIdNumberRoot of NotificationWhile escalatedNotification=false, it is the same as the notification id.
While escalatedNotification=true, it is the primary notification to which the escalation level belongs.

The following sample JSON includes the escalation data from response.

{
        "status": "A",
        "createdId": 8800387989515,
        "createdName": "Misher Yang",
        "lastModifiedId": 8800387989515,
        "lastModifiedName": "Misher Yang",
        "createdDate": 1353223341025,
        "lastModifiedDate": 1353223341025,
        "organizationId": 8800387989534,
        "id": 1464553783164960,
        "priority": "NonPriority",
        "escalatio
nEndDate": 1473754590063,
        "escalationStatus": "Completed",
        "escalationConfirmedCount": 0,
        "primaryNotificationId": 470595271662850,
        "escalatedNotification": false,      // false means this is a primary level 
notification and the triggeredEscalations includes
        "triggeredEscalations": [
          {
            "index": 1,
            "escalationName": "E K 1",
            "escalationCondition": {
              "waitTime": 1,
              "timeUnit": "MINUTES"
            },
            "broadcastContacts": {
              "groupIds": [
                    884054593372187
              ],
              "contactSearchType": "AllOr",
              "sequenceGroupEnabled": true,
              "defaultSeqGroupQuota": 1,
              "sequenceGroupInterval": 1
            },
            "notificationId": 457401132122160
          }
        ]
        "type": "Standard",
        "message": {
          "createdId": 0,
          "lastModifiedId": 0,
          "organizationId": 0,
          "id": 0,
          "contentType": "Text",
          "title": "To test Launch Policies in API POST",
          "textMessage": "To test Launch Policies in API with one-time scheduled 
notification",
          "conferenceBridgeId": 0
        },
       ... ... ... ...
}

Notifications with the “publicMessages” enabled

{
  "id": 0,
  "priority": "NonPriority",
  "broadcastContacts": {},
  "message": {
    "title": "title",
    "textMessage": "Notification from API"
  },
  "type": "Standard",
  "launchtype": "SendNow",
  "broadcastSettings": {
    "senderEmail": "limei.li",
    "mobileSettings": {
      "requestLocation": false,
      "requestImage": false,
      "requestComment": false,
      "allowShare": false
    },
    "throttlDefaultAmount": 3,
    "throttle": false,
    "duration": 1,
    "contactCycles": 1,
    "cycleInterval": 0,
    "deliveryMethodInterval": 0,
    "confirm": true,
    "language": "en_US",
    "voiceMailOption": "MESSAGE_WITH_CONFIRMATION",
    "senderCallerInfos": [
      {
        "countryName": "United States",
        "countryCode": "US",
        "isDefault": true,
        "callerId": "7812345431"
      }
    ],
    "deliverPaths": [
      {
        "id": 444206992605413,
        "pathId": 241901148045324
      }
    ]
  },
  "publicMessages": {
    "nixleAlertMessage": {
      "event": "Mountain Rescue",
      "urgency": "Expected",
      "severity": "Moderate",
      "certainty": "Unknown",
      "category": "Rescue",
      "expire": "8",
      "smsMessage": "Mandatory Security Training",
      "instructions": "There is a security training that we have to go through and security team needs proof that people take it. It’s a FedRAMP requirement.",
      "action": "create",
      "type": 2,
      "applyZipCodeToEventGroups": false,
      "community": {
        "contactName": "Ellie Pei",
        "contactEmail": "[email protected]",
        "contactDivision": "Development",
        "contactPhone": "123",
        "regionIds": [
          61289,
          61291
        ],
        "jurisdictionType": "some"
      },
      "eventGroups": [
        25000881
      ]
    },
    "ipawsMessage": {
      "comments": "put all used ipawsmessage fields in array fields except fileattachments. the detail of all fields(values,optional or required) in link: https://path.everbridge.com/display/DOC/Cap+Rss+Api+solution",
      "fields": [
        {
          "field": "status",
          "values": [
            "Actual"
          ]
        },
        {
          "field": "msgType",
          "values": [
            "Alert"
          ]
        },
        {
          "field": "source",
          "values": [
            "000"
          ]
        },
        {
          "field": "scope",
          "values": [
            "Private"
          ]
        },
        {
          "field": "restriction",
          "values": [
            "000"
          ]
        },
        {
          "field": "addresses",
          "values": [
            "00000"
          ]
        },
        {
          "field": "category",
          "values": [
            "Geo"
          ]
        },
        {
          "field": "urgency",
          "values": [
            "Immediate"
          ]
        },
        {
          "field": "severity",
          "values": [
            "Extreme"
          ]
        },
        {
          "field": "certainty",
          "values": [
            "Observed"
          ]
        },
        {
          "field": "eventCode",
          "values": [
            "AVA"
          ]
        },
        {
          "field": "event",
          "values": [
            "Avalanche Watch"
          ]
        },
        {
          "field": "expires",
          "values": [
            "12"
          ]
        },
        {
          "field": "senderName",
          "values": [
            ""
          ]
        },
        {
          "field": "headline",
          "values": [
            "8"
          ]
        },
        {
          "field": "description",
          "values": [
            "000"
          ]
        },
        {
          "field": "instruction",
          "values": [
            "0000"
          ]
        },
        {
          "field": "web",
          "values": [
            "https://manager-qa1.everbridge.net/bcTemplates/new"
          ]
        },
        {
          "field": "timezone",
          "values": [
            "AST"
          ]
        },
        {
          "field": "areaDesc",
          "values": [
            "edede"
          ]
        },
        {
          "field": "geocode",
          "values": [
            ""
          ]
        }
      ],
      "fileAttachments": {
        "fileId": "5a38dbbe221aeb604a88f5d9"
      }
    }
  }
}

Broadcast Contacts

The Broadcast Contacts section
determines which contacts to be included in the broadcase and which to not include.

Broadcast Contacts Fields

FieldData TypeNotes
contactIdslongAn array of internal contact IDs.
excludedContactIdslongAn array of internal contact IDs to exclude.
externalIdsstringAn array of contact external IDs.
filterIdslongAn array of rule/filter IDs.
groupIdslongAn array of group IDs.

Broadcast Contacts Example Body

Broadcast Settings

Whenever possible, it it
recommended that you do not specify custom broadcastSettings and use the organization defaults.

The reason for this is if you need to specify custom delivery paths for a
notification, not only do you need to include the pathId constant but also the internal ID of the delivery
path.

The internal ID is not visible anywhere other than through the /contactPaths
method.

Broadcast Settings Fields

FieldData Type (Length)Notes
bookConferencebooleanInternal Field to be disregarded.
confirmbooleanIf true, the notification will ask for confirmation.
contactCyclesintThe number of contact cycles to attempt.
How long, in minutes, should the system wait before starting the next cycle.
Specify 0, 1, 2, 5, then increments of 5 minutes up to a maximum of 60 minutes.
cycleIntervalintHow long, in minutes, should the system wait before starting the next cycle.
Specify 0, 1, 2, 5, then increments of 5 minutes up to a maximum of 60 minutes.
deliverPathsobject[]◊ pathId: a valid delivery pathId
◊ id: the internal ID of the delivery path
{
"pathId": {pathId},
"id": {internalId}
}
deliveryMethodIntervalintHow long, in minutes, should the system wait before attempting to contact the next device.
Specify 0, 1, 2, 3, 5, 10 or 15 minutes.
deliveryPathOrderstringOne of:
◊ Contact - use the contact's preferred device order
◊ Organization - use the organization default device order
◊ Custom - one time custom device order
durationintThe duration the notification will be active. Specify the number of hours, 1-24.
languagestringThe language of the notification. One of:
◊ ar_SA
◊ da_DK
◊ de_DE
◊ en_GB
◊ en_US
◊ es_ES
◊ es_US
◊ fr_FR
◊ it_IT
◊ ja_JP
◊ no_NO
◊ pl_PL
◊ pt_PT
◊ ru_RU
◊ sv_SE
◊ zh_CN
mobileSettingsobject◊ requestComment: if true, Mobile Members are allowed to respond with text as a solicited message
◊ requestImage: if true, Mobile Members are allowed to send in a photo
◊ requestLocation: if true, Mobile Members may geotag themselves, if they've allowed GPS access on their device
◊ allowShare: if true, Mobile Members can share messages (e.g. email, Twitter, SMS) only if this option has been enabled at the organization level
"mobileSettings": {
"requestComment": true,
"requestImage": true,
"requestLocation": true,
"allowShare": false
}
senderCallerInfosobject[]An array of one or more caller ID objects.
◊ countryCode: must be a valid two character ISO country code
◊ callerId: a valid phone number to show as the caller ID
{
"countryCode": "US",
"callerId": "8182309569"
}
senderEmailstring (80)The display name on any emails that are sent.
throttlebooleanWhether the notification enabled the call throttling feature or not.
throttleDefaultAmountintCall throttling default limit.

Broadcast Settings Example Body

Launch Policies

The Launch Policies API is
used to create, query, and manage Scheduled and Recurring
notifications.

Launch Policy Fields

FieldPossible ValuesNotesType Applies to
typeRecurring
Schedule
The name of the Resource (constant).All
startDateUnix epoch date/timeSee tools for date/time conversion functions.Schedule,
Recurring
endDateUnix epoch date/timeSee tools for date/time conversion functionsRecurring
repeatTypeYEARLY
MONTHLY
WEEKLY
DAILY
The type of repeat function to send the notification.Recurring
repeatNumberInteger greater than 0Repeat every N days, weeks, etc.All recurring
hour0-23Hour of th eday to send the notification.All recurring
minute0-59Minute of the hour to send the notification.All recurring
month1-12Month of the year to send the notification.Recurring-YEARLY
day1-31Day of the month of repeat on.Recurring-YEARLY
timezoneIdAny valid IANA Time Zone Database time zone identifiere.g. America/Los AngelesAll
weekDaysSUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
weekDays must be passed as an array of strings. e.g.
"weekDays": [
"SUNDAY",
"SATURDAY"
]
Recurring-WEEKLY

Minimum Requirements for Launch Policies POST or PUT

Examples for each of the options include:

◊ Daily Recurring

ex. Daily reminder to clock out at the end of your shift sent at 4PM each day
and sent to all hourly employees.

◊ Weekly Recurring

ex. Weekly team meeting reminder sent the day before the meeting.

◊ Monthly Recurring

ex. Reminder for monthly all staff meeting.

◊ Yearly Recurring

ex. Announcement to Employees to verify with their benefits plan to be up to
date with accurate information.

◊ Scheduled

ex. Fire Drill is planned a few weeks prior to the event, the notification is
scheduled in advance to go out and alert the employees when the alarm will be going off for the day of the
event.

Daily Recurring Notification

{
  "type": "Recurring",
  "notification": {
    "broadcastContacts": {
      "groupIds": [
        884015938670971
      ]
    },
    "type": "Standard",
    "priority": "NonPriority",
    "launchtype": "Recurring",
    "message": {
      "contentType": "Text",
      "title": "Clock out from shift",
      "textMessage": "Please clock out at the end of your shift today. Thank you."
    }
  },
  "launchSetting": {
    "startDate": 1409893200000,
    "endDate": 1410065999000,
    "repeatType": "DAILY",
    "repeatNumber": 1,
    "hour": 16,
    "minute": 0,
    "timeZoneId": "America/Chicago"
  }
}

Weekly Recurring Notification

{
  "type": "Recurring",
  "notification": {
    "broadcastContacts": {
      "groupIds": [
        884015938670971
      ]
    },
    "type": "Standard",
    "priority": "NonPriority",
    "launchtype": "Recurring",
    "message": {
      "contentType": "Text",
      "title": "Project Management Team meeting",
      "textMessage": "Product team meeting tomorrow at 11AM in the conference room."
    }
  },
  "launchSetting": {
    "startDate": 1409893200000,
    "endDate": 1410584399000,
    "repeatType": "WEEKLY",
    "repeatNumber": 1,
    "hour": 14,
    "minute": 0,
    "weekDays": [
      "TUESDAY"
    ],
    "timeZoneId": "America/Chicago"
  }
}

Monthly Recurring Notification

{
  "type": "Recurring",
  "notification": {
    "broadcastContacts": {
      "groupIds": [
        884015938670971
      ]
    },
    "type": "Standard",
    "priority": "NonPriority",
    "launchtype": "Recurring",
    "message": {
      "contentType": "Text",
      "title": "All Hands meeting today",
      "textMessage": "This is a reminder for the All Hands Meeting today at 2PM in 
the Training Room."
    }
  },
  "launchSetting": {
    "startDate": 1409893200000,
    "endDate": 1412139599000,
    "repeatType": "MONTHLY",
    "repeatNumber": 1,
    "hour": 9,
    "minute": 0,
    "day": 5,
    "timeZoneId": "America/Chicago"
  }
}

Yearly Recurring Notification

{
  "type": "Recurring",
  "notification": {
    "broadcastContacts": {
      "groupIds": [
        884015938670971
      ]
    },
    "type": "Standard",
    "priority": "NonPriority",
    "launchtype": "Recurring",
    "message": {
      "contentType": "Text",
      "title": "VERIFY BENEFITS PLAN",
      "textMessage": "It is that time of year - please verify your benefits plan. New plans start on January 1."
    }
  },
  "launchSetting": {
    "startDate": 1409893200000,
    "endDate": 1412139599000,
    "repeatType": "YEARLY",
    "repeatNumber": 1,
    "hour": 08,
    "minute": 0,
    "month": 12,
    "day": 18,
    "timeZoneId": "America/Chicago"
  }
}

Scheduled Notification

{
  "type": "Schedule",
  "notification": {
    "broadcastContacts": {
      "externalIds": [
        "100666"
      ]
    },
    "type": "Standard",
    "priority": "NonPriority",
    "launchtype": "Schedule",
    "message": {
      "contentType": "Text",
      "title": "Test send later API",
      "textMessage": "Fire alarm today at 3pm, please use main stairwell to exit the building when alarm sounds."
    }
  },
  "launchSetting": {
    "startDate": 1410036400000,
    "endDate": 1410036400000,
    "timeZoneId": "America/Chicago"
  }
}

Standard Notifications

Base Object

FieldData TypeNotes
typestringStandard
prioritystringOne of:
◊ NonPriority
◊ Priority
launchtypestringOne of:
◊ SendNow
◊ Recurring
◊ Schedule
broadcastContactsobjectSee broadcastContacts
messageobjectSee message
broadcastSettingsobjectSee broadcastSettings

Message

FieldData Type (Length)Required?Notes
contentTypestringyOne of:
◊ Text
◊ VoiceText
titlestring (80)yThe title of the message.
textMessagestringyThe body of the message.
rtfContentstringnRich-text (HTML) content for the body of the message. Escape quotes in the HTML content using a backslash ().
<h1 style="color:#ff5050">Header 1 text
attachmentFilesobject[]n{
"fileId": "The fileId returned from an attachment POST"
}
For details, see Attachments .
audioKeystringnThe audio key returned from an audio file POST. For details, see Audio .

Standard Notification using Default Settings

{
  "broadcastContacts": {
    "contactIds": [
      5743857366033992
    ],
    "externalIds": [],
    "groupIds": [],
    "filterIds": []
  },
  "type": "Standard",
  "priority": "NonPriority",
  "launchtype": "SendNow",
  "message": {
    "contentType": "Text",
    "title": "Test with all default settings",
    "textMessage": "This notification uses all the default settings."
  }
}

Standard Notification with All Options Specified

{
  "broadcastContacts": {
    "contactIds": [
      5743857366033992
    ]
  },
  "type": "Standard",
  "priority": "NonPriority",
  "launchtype": "SendNow",
  "message": {
    "contentType": "Text",
    "title": "Test with all options specified",
    "textMessage": "This JSON has all options specified, one delivery path."
  },
  "broadcastSettings": {
    "voiceMailOption": "MESSAGE_ONLY",
    "throttlDefaultAmount": 0,
    "throttle": false,
    "mobileSettings": {
      "requestComment": false,
      "requestImage": false,
      "requestLocation": false,
     "allowShare": false,
     "requireConfirm": false,
     "pushAlertEnabled": false
    },
   "deliverPaths": [
    {
     "pathId": 241901148045316,
     "id": 884011643702424
    }
   ],
   "deliveryMethodInterval": 0,
   "bookConference": false,
   "cycleInterval": 1,
   "duration": 1,
   "senderCallerInfos": [
    {
     "countryCode": "US",
     "callerId": "8182309569"
    }
   ],
   "contactCycles": 1,
   "language": "en_US",
   "recipientApp": false,
   "senderEmail": "[email protected]",
   "confirm": true,
   "deliveryPathOrder": "Contact"
  }
}

Polling/Quota Notification

Base Object

FieldData Type (Length)Notes
typestringOne of:
◊ Polling
◊ Quota
prioritystringOne of:
◊ NonPriority
◊ Priority
launchtypestringOne of:
◊ SendNow
◊ Recurring
◊ Schedule
broadcastContactsobjectSee broadcastContacts
messageobjectSee message
broadcastSettingsobjectSee broadcastSettings

Message

The attachmentFiles, audioKey and rtfContent fields are optional.

FieldData Type (Length)Notes
contentTypestringOne of:
◊ Text
◊ VoiceText
titlestring (80)The title of the message.
textMessagestringThe body of the message.
rtfContentstringRich-text (HTML) content for the body of the message. Escape quotes in the HTML content using a backslash ().
<h1 style="color:#ff5050">Header 1 text
questionaireobject[]Yes, the field name "questionaire" is actually misspelled. There's an open case for this bug.
For a polling message, an array of possible answers to the polling question. The maximum number of elements in the array is nine (9).
"answers": [
{
"name": "Yes"
},
{
"name": "No"
}
]
For a polling with quota message, an array of possible answers to the polling question. The maximum number of elements in the array is nine (9). Note the extra field in the answers array to specify the quota number for each answer.
"answers": [
{
"quotaNum": 2,
"name": "Yes"
},
{
"quotaNum": 0,
"name": "No"
}
]
attachmentFilesobject[]{
"fileId": "The fileId returned from an attachment POST"
}
audioKeystringThe audio key returned from an audio file POST.

See Audio .

Polling Notification with Default Settings

{
  "broadcastContacts": {
    "contactIds": [
      5743857366033992
    ],
    "externalIds": [],
    "groupIds": [],
    "filterIds": []
  },
  "type": "Polling",
  "priority": "NonPriority",
  "launchtype": "SendNow",
  "message": {
    "contentType": "Text",
    "title": "Polling message from the API",
    "textMessage": "This is a simple yes/no polling message from the API.",
    "questionaire": {
      "answers": [
        {
          "name": "Yes"
        },
        {
          "name": "No"
        }
      ]
    }
  }
}

Quota Notification using Default Settings

{
  "broadcastContacts": {
    "contactIds": [
      5743857366033992
    ],
    "externalIds": [],
    "groupIds": [],
    "filterIds": []
  },
  "type": "Quota",
  "priority": "NonPriority",
  "launchtype": "SendNow",
  "message": {
    "contentType": "Text",
    "title": "Polling with quota message from the API",
    "textMessage": "This is a simple yes/no polling message with a quota from the 
API.",
    "questionaire": {
      "answers": [
        {
          "quotaNum": 2,
          "name": "Yes"
        },
        {
          "quotaNum": 0,
          "name": "No"
        }
      ]
    }
  }
}

Conference Notification

Base Object

FieldData Type (Length)Notes
typestringConference
prioritystringOne of:
◊ NonPriority
◊ Priority
messageobjectSee message
launchtypestringOne of:
◊ SendNow
◊ Recurring
◊ Schedule
broadcastSettingsobjectSee broadcastSettings
broadcastContactsobjectSee broadcastContacts

Message

The attachmentFiles, audioKey and rtfContent fields are optional.

FieldData Type (Length)Notes
contentTypestringOne of:
◊ Text
◊ VoiceText
titlestring (80)The title of the message.
textMessagestringThe body of the message.
rtfContentstringRich-text (HTML) content for the body of the message. Escape quotes in the HTML content using a backslash ().
<h1 style="color:#ff5050">Header 1 text
conferenceBridgeIdlongThe internal ID of the conference bridge you wish to use.
attachmentFilesobject[]{
"fileId": "The fileId returned from an attachment POST"
}
audioKeystringThe audio key returned from an audio file POST.
Field
Data Type (Length)
Notes

Conference Notification using Default Settings

{
  "broadcastContacts": {
    "contactIds": [
      5743857366033992
    ],
    "externalIds": [],
    "groupIds": [],
    "filterIds": []
  },
  "type": "Conference",
  "priority": "NonPriority",
  "launchtype": "SendNow",
  "message": {
    "contentType": "Text",
    "title": "Conference message from the API",
    "textMessage": "This is a simple conference message from the API.",
    "conferenceBridgeId": 892807736723189
  }
}

Notification Results

For notification results, you can opt for basic summary information (verbose==false) or detailed delivery results (verbose==true).

Verbose == false

FieldData Type (Length)Notes
notificationIdlongThe notification ID.
unreachableCountintThe number of contacts that with no valid contact information.
confirmedCountintThe number of contacts that confirmed the message.
totalCountintThe total number of contacts on the notification.
confirmedLateCountintThe number of contacts that confirmed after the notification's duration had elapsed.
notConfirmedCountintThe number of contacts that did not confirm.
allDetailsobject[]This field has all the delivery result detail in it. This is an array where each element contains all the delivery results for an individual contact.
idlongThis is the internal ID for a contact.
contactIdlongThe ID of the contact.
externalIdstringThis is the user defined unique identifier for a contact and must be unique. Typically an employee ID number is used.
resultstringThe result of the last attempt for this contact.
attemptTimelongUnix epoch date/time when the notification was attempted.
firstAttemptTimelongUnix epoch date/time when the notification was first attempted.
fullNamestringThe contact’s first and last name.
firstNamestringThe contact’s first name.
lastNamestringThe contact’s last name.
confirmedPathIdlongThe confirmation delivery path Id.
confirmedPathstringThe type of device that recieved the confirmation.
confirmedPathValuestringThe value of the confirmed device: e.g. email address, phone number, etc.
confirmedDatelongUnix epoch date/time when the contact confirmed.
attemptlongThe number of attempt messages sent to the contact.
responseTextMessagestringThe contact’s polling response.
*Only for Polling/Quota notifications.
confirmedbooleanIf true, the contact has confirmed.
createdIdlongThe internal ID of the user that created the notification.
callResultsByPathobject[]This is an array where each element describes the delivery results for an individual contact path.

Notification Results where Verbose == true

{
  "message": "OK",
  "result": {
    "startDate": 1674823609848,
    "accountId": 1536846672691202,
    "broadcastContacts": {
      "contactIds": [
        426680841666562
      ],
      "contactSearchType": "AllOr",
      "sequenceGroupEnabled": false,
      "defaultSeqGroupQuota": 1,
      "sequenceGroupInterval": 5,
      "enableGroupCalendar": false,
      "enableSendToSubscribers": false
    },
    "incidentPhase": {
      "createdName": "Vishal Agrawal",
      "incidentId": 591470146880507,
      "accountId": 1536846672691202,
      "status": "A",
      "resourceBundleId": 1536984111644675,
      "organizationId": 1536984111644674,
      "id": 10011,
      "notificationId": -1,
      "phaseTemplate": {
        "templateId": 1536984111644674,
        "templateName": "Readme Testing",
        "name": "New",
        "messageFlag": 3,
        "contactsFlag": 3,
        "settingsFlag": 3,
        "publishOptionsFlag": {
          "desktopAlerts": 1,
          "webWidget": 1,
          "network": 1,
          "alertUs": 1,
          "webPosting": 1,
          "socialMedia": 1,
          "nixleChannel": 1,
          "abb": 1,
          "memberPortal": 1,
          "ipawsCap": 1
        },
        "phaseDefinitions": [
          {
            "id": 1001,
            "status": "A",
            "isDefault": false,
            "name": "New",
            "seq": 0
          }
        ],
        "formTemplate": {
          "subject": "Readme Testing",
          "formVariableItems": [
            {
              "val": [
                "Testing"
              ],
              "variableName": "Status",
              "isRequired": true,
              "seq": 1,
              "variableId": 591470146879515,
              "prefixName": "1"
            },
            {
              "val": [
                "High"
              ],
              "variableName": "Priority",
              "isRequired": false,
              "seq": 2,
              "variableId": 591470146879516,
              "prefixName": "1"
            }
          ],
          "sysVarTodayDateFormat": "mm-dd-yyyy",
          "sysVarCurrentTimeFormat": "HH:mm:ss"
        },
        "broadcastTemplate": {
          "accountId": 0,
          "broadcastContacts": {
            "contactIds": [
              426680841666562
            ],
            "contactSearchType": "AllOr",
            "sequenceGroupEnabled": false,
            "defaultSeqGroupQuota": 1,
            "sequenceGroupInterval": 5,
            "enableGroupCalendar": false,
            "enableSendToSubscribers": false
          },
          "resourceBundleId": 0,
          "organizationId": 0,
          "publicMessages": {},
          "type": "Standard",
          "id": 0,
          "message": {
            "accountId": 1536846672691202,
            "organizationId": 1536984111644674,
            "contentType": "Text",
            "id": 0,
            "title": "Readme Testing",
            "textMessage": "Status: Testing   \r\nPriority: High   ",
            "conferenceBridgeId": 0,
            "createdDate": 1674823609743,
            "createdName": "Vishal Agrawal",
            "status": "A",
            "resourceBundleId": 1536984111644675,
            "lastModifiedDate": 1674823609743,
            "lastModifiedId": 1530249602924607,
            "createdId": 1530249602924607,
            "lastModifiedName": "Vishal Agrawal",
            "useCustomEmail": false,
            "useCustomSms": false
          },
          "broadcastSettings": {
            "voiceMailOption": "MESSAGE_ONLY",
            "throttlDefaultAmount": 0,
            "throttle": false,
            "mobileSettings": {
              "requestComment": false,
              "requestImage": false,
              "requestLocation": false,
              "allowShare": false,
              "requireConfirm": false,
              "pushAlertEnabled": false
            },
            "deliverPaths": [
              {
                "accountId": 1536846672691202,
                "pathId": 241901148045316,
                "organizationId": 1536984111644674,
                "awarePathId": 0,
                "id": 589820879437825,
                "expose": false,
                "isDefault": true,
                "createdDate": 1674823177533,
                "createdName": "Vishal Agrawal",
                "status": "A",
                "mandatory": false,
                "resourceBundleId": 1536984111644675,
                "editable": false,
                "seq": 1,
                "lastModifiedDate": 1674823192141,
                "lastModifiedId": 1530249602924607,
                "createdId": 1530249602924607,
                "prompt": "Email",
                "lastModifiedName": "Vishal Agrawal",
                "extRequired": false,
                "displayFlag": false,
                "default": true
              }
            ],
            "requirePinForMessage": false,
            "deliveryMethodInterval": 0,
            "bookConference": false,
            "cycleInterval": 0,
            "duration": 1,
            "senderCallerInfos": [
              {
                "countryName": "United States",
                "accountId": 0,
                "countryCode": "US",
                "resourceBundleId": 0,
                "organizationId": 0,
                "id": 0,
                "callerId": "7818646213",
                "isDefault": true,
                "createdId": 0,
                "lastModifiedId": 0
              }
            ],
            "contactCycles": 1,
            "language": "en_US",
            "recipientApp": false,
            "senderEmail": "SORCH Dev3",
            "confirm": false,
            "deliveryPathOrder": "Contact",
            "enableSecureNotification": false,
            "validateContacts": true,
            "validateContactsByOrganization": false,
            "enableRecord": false,
            "enableSmartConferenceConfirmationText": true,
            "enableBeep": true,
            "quietTimeOverride": false
          },
          "priority": "NonPriority",
          "lastModifiedId": 0,
          "createdId": 0,
          "useEscalation": false,
          "enableLifeSafety": false
        },
        "ignoreVariable": false,
        "evaluateAll": false,
        "incidentNotificationPropertyBag": {
          "enableExerciseMode": "false"
        }
      },
      "name": "New",
      "lastModifiedDate": 1674823609703,
      "lastModifiedId": 1530249602924607,
      "createdId": 1530249602924607,
      "createdDate": 1674823609703,
      "lastModifiedName": "Vishal Agrawal",
      "phaseDefinition": {
        "phaseNodeType": "Begin",
        "id": 1001,
        "incidentStatus": "Open",
        "status": "A",
        "isDefault": true,
        "name": "New",
        "seq": 100
      }
    },
    "endDate": 1674827209848,
    "transformed": true,
    "organizationId": 1536984111644674,
    "type": "Standard",
    "id": 591470146880264,
    "notificationStatus": "Completed",
    "productSource": "Matrix",
    "priority": "NonPriority",
    "oldAwareCAMPID": 0,
    "createdDate": 1674823609798,
    "hasNotification": true,
    "createdName": "Vishal Agrawal",
    "status": "A",
    "notificationResult": {
      "notificationId": 0,
      "unreachableCount": 0,
      "confirmedCount": 0,
      "totalCount": 1,
      "confirmedLateCount": 0,
      "notConfirmedCount": 1,
      "allDetails": [
        {
          "id": 0,
          "notificationId": 591470146880264,
          "contactId": 426680841666562,
          "result": "Sent",
          "attemptTime": 1674823613439,
          "firstAttemptTime": 1674823613439,
          "fullName": "Vishal Agrawal",
          "firstName": "Vishal",
          "lastName": "Agrawal",
          "attempt": 0,
          "externalId": "[email protected]",
          "createdId": 1530249602924607,
          "callResultByPaths": [
            {
              "journalId": 0,
              "attemptId": "63d3c7bb0139ad08c9997fed",
              "attemptOrder": 1,
              "attemptTime": 1674823613439,
              "waitTime": 0,
              "countryCode": "IN",
              "cycleSeq": 1,
              "path": "Email",
              "pathText": "[email protected]",
              "callResult": "Sent",
              "firstName": "Vishal",
              "lastName": "Agrawal",
              "confirmed": false
            }
          ],
          "confirmed": false
        }
      ]
    },
    "resourceBundleId": 1536984111644675,
    "launchtype": "SendNow",
    "publicMessages": {},
    "message": {
      "accountId": 1536846672691202,
      "organizationId": 1536984111644674,
      "contentType": "Text",
      "id": 0,
      "title": "Readme Testing",
      "textMessage": "Status: Testing   \r\nPriority: High   ",
      "conferenceBridgeId": 0,
      "createdDate": 1674823609743,
      "createdName": "Vishal Agrawal",
      "status": "A",
      "resourceBundleId": 1536984111644675,
      "lastModifiedDate": 1674823609743,
      "lastModifiedId": 1530249602924607,
      "createdId": 1530249602924607,
      "lastModifiedName": "Vishal Agrawal",
      "useCustomEmail": false,
      "useCustomSms": false
    },
    "broadcastSettings": {
      "voiceMailOption": "MESSAGE_ONLY",
      "throttlDefaultAmount": 0,
      "throttle": false,
      "mobileSettings": {
        "requestComment": false,
        "requestImage": false,
        "requestLocation": false,
        "allowShare": false,
        "requireConfirm": false,
        "pushAlertEnabled": false
      },
      "deliverPaths": [
        {
          "accountId": 1536846672691202,
          "pathId": 241901148045316,
          "organizationId": 1536984111644674,
          "awarePathId": 0,
          "id": 589820879437825,
          "expose": false,
          "isDefault": true,
          "createdDate": 1674823177533,
          "createdName": "Vishal Agrawal",
          "status": "A",
          "mandatory": false,
          "resourceBundleId": 1536984111644675,
          "editable": false,
          "seq": 1,
          "lastModifiedDate": 1674823192141,
          "lastModifiedId": 1530249602924607,
          "createdId": 1530249602924607,
          "prompt": "Email",
          "lastModifiedName": "Vishal Agrawal",
          "extRequired": false,
          "displayFlag": false,
          "default": true
        }
      ],
      "requirePinForMessage": false,
      "deliveryMethodInterval": 0,
      "bookConference": false,
      "cycleInterval": 0,
      "duration": 1,
      "senderCallerInfos": [
        {
          "countryName": "United States",
          "accountId": 0,
          "countryCode": "US",
          "resourceBundleId": 0,
          "organizationId": 0,
          "id": 0,
          "callerId": "7818646213",
          "isDefault": true,
          "createdId": 0,
          "lastModifiedId": 0
        }
      ],
      "contactCycles": 1,
      "language": "en_US",
      "recipientApp": false,
      "senderEmail": "SORCH Dev3",
      "confirm": false,
      "deliveryPathOrder": "Contact",
      "enableSecureNotification": false,
      "validateContacts": true,
      "validateContactsByOrganization": false,
      "enableRecord": false,
      "enableSmartConferenceConfirmationText": true,
      "enableBeep": true,
      "quietTimeOverride": false
    },
    "sourceTemplateId": 0,
    "source": "Web",
    "notificationName": "Readme Testing",
    "batchNotificationId": 0,
    "stoppedBy": 0,
    "lastModifiedDate": 1674827220088,
    "lastModifiedId": 1530249602924607,
    "createdId": 1530249602924607,
    "processedBy": "schedule-task-dev3-green-i-026dbaf0eea0f3e89",
    "lastModifiedName": "Vishal Agrawal",
    "incident": {
      "accountId": 1536846672691202,
      "organizationId": 1536984111644674,
      "id": 591470146880507,
      "incidentStatus": "Open",
      "name": "Readme Testing",
      "createdDate": 1674823609695,
      "hasJournal": false,
      "createdName": "Vishal Agrawal",
      "status": "A",
      "resourceBundleId": 1536984111644675,
      "duration": 0,
      "createdId": 1530249602924607,
      "lastModifiedId": 1530249602924607,
      "lastModifiedDate": 1674823609695,
      "phaseStatus": {
        "phaseNodeType": "Begin",
        "id": 1001,
        "incidentStatus": "Open",
        "status": "A",
        "isDefault": true,
        "name": "New",
        "seq": 100
      },
      "incidentType": "Incident",
      "lastModifiedName": "Vishal Agrawal",
      "useTemplateVarValue": false,
      "enableMessageTruncate": false,
      "incidentMode": "Live"
    },
    "escalationConfirmedCount": 0,
    "escalatedNotification": false,
    "enableLifeSafety": false,
    "enableMessageTruncate": false,
    "notificationMode": "Live"
  }
}