Insights Event Notification
What is the Insight Event?
Insights webhook help Envestnet | Yodlee customers retrieve their consumers' data efficiently and securely. The Insights webhook provides the insights generated for each user for a defined duration.
Implementation Method
There are two ways to implement INSIGHTS webhooks:
- INSIGHTS Event Notification (recommended)
- INSIGHTS Event Polling
INSIGHTS Event Notification
Follow the steps to implement INSIGHTS event notification:
- Authenticate -
Generate the access token using the client credential authentication mechanism as described in Getting Started with Client Credentials. - Subscribe -
Subscribe to the INSIGHTS event using the Subscribe Event service and provide the callback URL where you need to post notifications. This is a one-time activity unless and until there is a change to the URL. - Listen -
The notifications will be posted to the callback URL provided during the event subscription. The default notification interval is 1 hour. See for payload details. The INSIGHTS notification will be sent only if insights are available for at least one user in the defined duration. - Retrieve -
After receiving notifications, invoke the Feeds Extract service to retrieve the updated information. The notification payload will provide the input needed to invoke the Feeds Extract service.
Event Payload Information
The following JSON payload will be sent to the callback URL, and the content type will be application/json:
{
"notificationId":"63b5206c98268664f7db1c2c",
"info":"INSIGHTS",
"notificationTime":"2023-01-04T06:45:28Z",
"data":{
"userCount":6,
"fromDate":"2023-01-04T06:40:00Z",
"toDate":"2023-01-04T06:45:00Z",
"userData":[
{
"user":{
"loginName":"User1672529280409"
},
"links":[
{
"methodType":"GET",
"rel":"feedURl",
"href":"insights/feedExtracts?loginName=User1672529280409&fromDate=2023-01-04T06:40:00Z&toDate=2023-01-04T06:45:00Z"
}
]
},
{
"user":{
"loginName":"User1672528384169"
},
"links":[
{
"methodType":"GET",
"rel":"feedURl",
"href":"insights/feedExtracts?loginName=User1672528384169&fromDate=2023-01-04T06:40:00Z&toDate=2023-01-04T06:45:00Z"
}
]
},
{
"user":{
"loginName":"User1672528776660"
},
"links":[
{
"methodType":"GET",
"rel":"feedURl",
"href":"insights/feedExtracts?loginName=User1672528776660&fromDate=2023-01-04T06:40:00Z&toDate=2023-01-04T06:45:00Z"
}
]
},
{
"user":{
"loginName":"User1672528046946"
},
"links":[
{
"methodType":"GET",
"rel":"feedURl",
"href":"insights/feedExtracts?loginName=User1672528046946&fromDate=2023-01-04T06:40:00Z&toDate=2023-01-04T06:45:00Z"
}
]
},
{
"user":{
"loginName":"User1672531218810"
},
"links":[
{
"methodType":"GET",
"rel":"feedURl",
"href":"insights/feedExtracts?loginName=User1672531218810&fromDate=2023-01-04T06:40:00Z&toDate=2023-01-04T06:45:00Z"
}
]
},
{
"user":{
"loginName":"User1672531411547"
},
"links":[
{
"methodType":"GET",
"rel":"feedURl",
"href":"insights/feedExtracts?loginName=User1672531411547&fromDate=2023-01-04T06:40:00Z&toDate=2023-01-04T06:45:00Z"
}
]
}
]
}
}
Field Name | Description |
---|---|
notificationId | The unique identifier for the notification. |
info | The info attribute value will be INSIGHTS for the data updates event. |
notificationTime | The time at which the notification is sent. |
data | The data node is the payload the customer receives and is used by the developer to take relevant actions. The data attribute varies from event to event. |
data.userCount | The count of users for whom the data is sent. |
data.fromDate | The dateTime from when the notification is generated. |
data.toDate | The dateTime till when the notification is generated. |
data.userData[] | The userData node contains the user and the link information. |
data.userData[].user | The user node is an entity that contains information about the users. |
data.userData[].user.loginName | The loginName of the user for whom the data is changed. |
data.userData[].links | The links node is an entity that contains link-related information. |
data.userData[].links.methodType | The type of method to invoke the endpoint. |
data.userData[].links.rel | The relationship detail of the service to be invoked. |
data.userData[].links.href | The URL to be appended to the base URL to invoke the related service. |
Other Configurations
Contact Envestnet | Yodlee support to configure the duration for which the webhooks notification should be sent. By default, the duration is set to 1 hour (recommended).
Retry Logic and Fallback Option
Retry logic and fallback options to handle planned and unplanned downtime is as follows:
- Unplanned downtime – In situations when your callback URL is not reachable because of a network glitch or unplanned downtime, etc., Envestnet | Yodlee will retry to send the notification in intervals of 10, 20, 40, 80, 160, 320, 640, and 1280 minutes.
- Pros – The system will automatically switch to a retry mechanism when notifications are not delivered successfully. Envestnet | Yodlee tries to send each notification for a max of 1280 minutes before discarding it.
- Cons – As the retry logic is spread across multiple intervals, the failed notification will not be delivered immediately after your system is up and running. For example, if the unplanned downtime lasts 21 minutes, the first failed notification will be delivered at the 40th minute as per the retry logic.
- Planned downtime – It is recommended to unsubscribe to webhooks when you have a planned downtime, during which the callback URL is not accessible. Once the downtime activity is complete, you can again subscribe to webhooks.
After subscribing, Envestnet | Yodlee will send relevant data update notifications that occurred in the last 1 hour during the downtime. If your downtime lasts more than 1 hour, we recommend using the feeds polling approach as a fallback option to retrieve the notification beyond the 1 hour of subscribing back to webhooks.- Pros – The notifications for the last 1 hour will be immediately delivered after the system is up and running.
- Cons – You will have to explicitly unsubscribe and subscribe to notifications, and notifications older than 1 hour must be retrieved through the feeds polling approach.
Best Practices
Payload varies depending on the number of users for whom data is being modified during the notification interval. Increasing the notification interval increases the payload sent by Envestnet | Yodlee servers. Ensure that your servers can handle the payload.
Additional Notes
- The notification with details of users whose insights have been generated will be sent in 1 hours intervals.
- The notification for an interval will have a maximum of 100 users' data. For example, if 250 users' data got updated in the last 1-hour interval, three notifications will be sent with 100, 100, and 50 users' details, respectively.
- Once the notification is received, customers are expected to invoke the Feed Extracts service using the information provided in the notification.
- The content-type of the notification will be application/json.
Event Notification API Flow
INSIGHTS Event Polling
Follow the steps to implement INSIGHTS event notification:
- Authenticate -
Generate the access token using the client credential authentication mechanism as described in Getting Started with Client Credentials. - Poll -
Invoke the Feeds Extract service to learn which user in a given period had the insights generated. - Retrieve -
Invoke the Feeds Extract to retrieve the information received during polling.