Notifications in Workflows

Edited

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

User Created/Updated

{
  "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"
      }
    }
  }
}

Revoke Access

{
  "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"
      }
    }
  }
}

Update password

{
  "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

Registration, Forgot Password, Resend Verification and Pre-registration

{
  "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

Login

{
  "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"
      }
    }
  }
}

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.

Was this article helpful?

Sorry about that! Care to tell us more?

Thanks for the feedback!

There was an issue submitting your feedback
Please check your connection and try again.