For an introduction to webhooks for the Decision Optimizer, please see this article.
Option 1 - Ready to use templates (Easiest for setup)
To start with a ready-to-use template, please download the zip file linked at the bottom of this article and follow these steps.
1. Within PowerAutomate/My Flows, click to import package.
2. Upload the zip file from above and it will ask you to authenticate the required 3rd party programs which are used in the flow. In our template, this will be Microsoft Outlook and OneDrive. You will need to do it for each one before you can import.
3. If you have never used either of those programs in PowerAutomate, it will require you to "+Create New" otherwise you will see your name listed and can simply select it and save.
If you need to add a new connection, it takes a few extra clicks but is easy to do. If you need any help, you can reference this Microsoft help article.
4. Once the import process is complete, open the flow and click on the first step which is labeled as "manual"
3. Copy the URL (endpoint) and paste this into the URL box when creating a new Webhook with Settings/Webhooks in the Broadridge platform.
4. Make sure you select the Decision Optimizer.ReportLocked event as we will only want to execute this flow when that event occurs.
5. Back in PowerAutomate, review the other steps that have been prebuilt in this template flow. You may want to change some of the language in the client email, cc your supervisor and/or change the path in OneDrive that the file is going to be saved within. All of these can be easily modified within the respective step.
6. Save the flow once you are happy with it and then you can "TURN ON" from the main dashboard that is accessed from the arrow on the top left.
7. Now that your flow is active, and you have the endpoint saved on the Broadridge Webhook page, any time a decision optimizer report is locked, this flow will execute automatically and take the actions you reviewed in the prior steps. By default it will email the client the PDF(if you input the client's email as part of your analysis setup) and save the file to your OneDrive folder.
TIP: If you want to test it out before sending to a real client, we recommend creating a sample analysis in Decision Optimizer and using your personal email in the client email field to see how it will look.
Option 2 - Building your own flow from scratch
If you are building your own flow from scratch, you will first need to add a step for "When a HTTP request is received" and you will need to copy/paste the following JSON schema.
Request Body JSON Schema:
{
"type": "object",
"properties": {
"EventId": {
"type": "string"
},
"EventDate": {
"type": "string"
},
"EventType": {
"type": "string"
},
"CurrentDate": {
"type": "string"
},
"Data": {
"type": "object",
"properties": {
"Id": {
"type": "integer"
},
"DateLocked": {
"type": "string"
},
"WorkspaceId": {
"type": "integer"
},
"WorkspaceName": {
"type": "string"
},
"LockUser": {
"type": "string"
},
"LockUserFirstLastName": {
"type": "string"
},
"LockUserEmail": {
"type": "string"
},
"Name": {
"type": "string"
},
"DecisionFrameworkName": {
"type": "string"
},
"PreparedFor": {
"type": "string"
},
"ClientEmailAddress": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"ClientProspectId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"RollAssetToExistingAccount": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"ExistingAccountId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"AdvisorRepCode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"CurrentAccountBalance": {
"type": "integer"
},
"ClientAge": {
"type": "integer"
},
"IsExistingClient": {
"type": "string"
},
"IsClientEmployed": {
"type": "string"
},
"IsClientRecommendation": {
"type": "string"
},
"IsRolloverRecommendation": {
"type": "string"
},
"DocumentationQuarterlyStatements": {
"type": "string"
},
"DocumentationAnnualParticipantFeeDisclosure": {
"type": "string"
},
"DocumentationSummaryPlanDescription": {
"type": "string"
},
"BenchmarkDataUsed": {
"type": "string"
},
"OverallRecommendation": {
"type": "string"
},
"PdfContent": {
"type": "string"
},
"EndpointWorkspaceGuid": {
"type": "string"
},
"URL": {
"type": "string"
}
}
}
}
}
Once you do, it will look like the below.