Notifications in Workflows

Notification Handling: Delivering Messages to Targets

Notifications are the messages that are sent to targets. The content of the notifications may include PII depending on the event type and action. For certain event types, notifications can be configured to include a verification URL (sometimes called a magic link) along with metadata, allowing the target to hook onto the event and send custom emails to end users.

Notification Payload Samples

Here are some examples of notification payloads for various events, including User Creation/Updates, Access Revocation, Login, Password Updates, and Registration.

Notification Samples for changes to the user record

{
    "iss": "https://idp.example.com",                   //service provider publishing the SET
    "iat": 1458496025, //issued at dateTime
    "jti": "someuniqueeventidfb4e75b5411e4e19b6c0f",    //unique id of this event
    "aud": [
      "https://receivingurl.example.com"                //one or more audience identifiers
    ],
      "events": {
       "account/v1/userCreated": {
         "sub": "f3b24e35-5f34-4fef-aa6b-5e1f5067e5d8", //the subject of the SET (user UUID)
         "propertyId": "34345y3457y34",                 // property id
         "clientId": "2345j346h5h6456",                 // our client id
         "dataSourceInfo": {
					  "attributes": [
			        "familyName"
			      ],
			      "captureApplicationId": "aaabbbccc111222333",
			      "captureClientId": "abcd12345",
			      "entityType": "user",
			      "globalSub": "{{URL}}",
			      "sub": "00000000-46bd-4d85-91ee-bdeadd446c1e"
         }
       }
     }
   }
{
    "iss": "https://idp.example.com",                     //service provider publishing the SET
    "iat": 1458496025, //issued at dateTime
    "jti": "someuniqueeventidfb4e75b5411e4e19b6c0f",      //unique id of this event
    "aud": [
      "https://receivingurl.example.com"                  //one or more audience identifiers
    ],
      "events": {                                         //statements that describe a single logical event that has occurred
      "account/v1/userRevokedPropertyAccess": { 
          "sub": "f3b24e35-5f34-4fef-aa6b-5e1f5067e5d8",  //the subject of the SET (user UUID)
          "dataSourceInfo": {
			      "captureApplicationId": "3vadba3vhqpkdgtsrqd4st76m3",
			      "captureClientId": "3fp4zt9t256jqk4tx35wuj4ap2e53hq9",
			      "entityType": "user",
			      "globalSub": "{{URL}}",
			      "sub": "00000000-46bd-4d85-91ee-bdeadd446c1e"
         }
      }
    }
  }
{
    "iss": "https://idp.example.com",                //service provider publishing the SET
    "iat": 1458496025, //issued at dateTime
    "jti": "someuniqueeventidfb4e75b5411e4e19b6c0f", //unique id of this event
    "aud": [
        "https://receivingurl.example.com"           //one or more audience identifiers
    ],
    "events": {                                      //statements that describe a single logical event that has occurred
        "account/v1/passwordUpdated": {
		    "sub": "initialUserUuid",
		    "email": "email",
		    "firstName": "firstName",
		    "propertyId": "propId",
		    "clientId": "eventServiceClientId",
            "locale": "locale",
            "dataSourceInfo": {
                "sub": "e499ac24-46bd-4d85-91ee-bdeadd446c1e",
								"entityType": "akamai_entity"
            }
        }
    }
}

Notification Samples for transactional email events

{
    "iss": "https://idp.example.com",                      //service provider publishing the SET
    "iat": 1458496025,                                     //issued at dateTime
    "jti": "someuniqueeventidfb4e75b5411e4e19b6c0f",       //unique id of this event
    "aud": [
        "https://receivingurl.example.com"                 //one or more audience identifiers
    ],
    "events": {                                            //statements that describe a single logical event that has occurred
        "account/v1/register": {                           //Also preregister, forgotPassword, resendVerification
            "sub": "f3b24e35-5f34-4fef-aa6b-5e1f5067e5d8", //the subject of the SET (user UUID)
            "propertyId": "34345y3457y34",
            "clientId": "2345j346h5h6456", 
            "link": "<BASE URL>?a=CODE&client_id=CLIENTID&ui_locales=LOCALE",
            "email": "email",
            "firstName": "firstName",
            "locale": "locale",
            "dataSourceInfo": {
                "sub": "e499ac24-46bd-4d85-91ee-bdeadd446c1e"
            }
        }
    }
}

Notification Samples for transactional user events that support enrich actions

{
    "iss": "https://idp.example.com",                      //service provider publishing the SET
    "iat": 1458496025, //issued at dateTime
    "jti": "someuniqueeventidfb4e75b5411e4e19b6c0f",       //unique id of this event
    "aud": [
        "https://receivingurl.example.com"                 //one or more audience identifiers
    ],
    "events": {                                            //statements that describe a single logical event that has occurred
        "account/v1/userAuthenticationAction": { 
            "sub": "f3b24e35-5f34-4fef-aa6b-5e1f5067e5d8", //the subject of the SET (user UUID)
            "propertyId": "34345y3457y34", 
            "clientId": "2345j346h5h6456",
            "dataSourceInfo": {
                "sub": "e499ac24-46bd-4d85-91ee-bdeadd446c1e"
            }
        }
    }
}

Queueing and Retrying

Notifications have queueing, retrying, and performance considerations:

Queueing

  • Notifications are handled in a first-in, first-out manner.
  • Requests will be aborted after 5 seconds and retried based on the retry configuration.

Retrying

  • Failed notifications (after retries) are saved in a dead letter queue and can be retrieved.
  • The number of retries and the time period between them are configurable at any level (organization, environment, property, client).
    • Number of retries (default is 5) - so the total number of sends is 1 (original) + 5 (retries)
    • Frequency of retries (default is [30, 60, 120, 300, 900] in seconds).
  • All notifications are auditable.

Performance Considerations

Property subscription traffic can affect another subscription inside the same environment but will not affect subscriptions in different environments.