Blog Post

Educator Developer Blog
4 MIN READ

Acting on Real-Time data using custom actions with Data Activator

Someleze_Diko's avatar
Someleze_Diko
Icon for Microsoft rankMicrosoft
Aug 12, 2024


Being able to make data driven decisions and act on real-time data is important to organizations because it enable them to either avert crisis in systems that monitor product health and take other actions based on their requirements. For an example, a shipping company may want to monitor their packages and act in real-time when the temperature of the packages becomes too hot. One way of monitoring and acting on data is to use Data Activator, which is a no-code experience in Microsoft Fabric for automatically taking actions when the condition of the package temperature is detected in the data.

 

Let’s look at Contoso Bikes is a fictitious bike rental company that has a real-time dataset of all bikes available in the docking stations scattered across different neighborhoods in the city. They want to optimize the availability and distribution of their bikes based on the demand and supply patterns. They want to automatically trigger alerts, notifications, or workflows when certain conditions are met in the data, high or low availability of bikes in a certain neighborhood to action job requests to increase the number of available bikes at docking stations.

 

Using custom actions to trigger alerts with Data Activator 

To achieve this, you can set up custom actions with Data Activator to trigger alerts that will enable Contoso Bikes to act on the data. Custom actions in Data Activator are reusable action templates that you can use in multiple triggers, in multiple Reflex items. A custom action defines how to call a specific external system from a Data Activator trigger using a flow

 

1 – Set a trigger and create a custom action

An alert needs to be already set on your data, you can follow these steps to get and set one using the sample bike data.

  • Inside of your alert, set the trigger condition to select the No_Bikes property from the dataset
     
  • Then set the condition to check when the number of bikes drops to less than 5, so that the trigger can run when the condition is met. This can also be filtered down further, for example you can add a filter that checks for a specific Neighbourhood.
  • Lastly, create a custom action by selecting Custom Action then + Create using the top navigation bar. Give your custom action a name, then add input fields which are used as input when triggering alerts. Lastly copy the connection string.
  • Select Create flow in Power Automate, this will navigate to Power Automate. You can add any action then save the flow so that you can come back to Data Activator.
  • In Data Activator, scroll to the Act section and choose your custom action then fill out the required information for properties. You can create corresponding properties by using the New Property at the top navigation bar.
  • Select Save.

 

2 – Configure a custom action in Power Automate

To trigger and send actionable alerts to Contoso Bikes employees, you can use Power Automate as a custom action. Then you will be able to have a notification that is sent to Contoso Bike with an option to mark a job request completed after the bike docking stations have been restocked.

  • In the Power Automate flow created after creating a custom action, update the When a Data Activator trigger fires with the connection string.
  • Add an action to Create Item, this will allow Contoso Bikes to receive and store job requests in a SharePoint list. Update it with the relevant fields including the ones from Data Activator, use this format to get values from the trigger triggerOutputs()?[‘body/inputFields/Bikepoint’]. You can opt to us another data source.
  • Add an action to Post an Adaptive Card and wait for a response in a Teams channel to alert Contoso bikes and take action. Update the message property for this action with the below JSON schema.
    {
        "type": "AdaptiveCard",
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
        "version": "1.2",
        "body": [
            {
                "type": "Container",
                "items": [
                    {
                        "type": "TextBlock",
                        "text": "Not enough bikes at the docking stations",
                        "wrap": true,
                        "style": "heading",
                        "id": "lblDisplay"
                    }
                ]
            },
            {
                "type": "TextBlock",
                "text": "Please see and increase number of bikes in the docking stations below",
                "wrap": true,
                "size": "Small",
                "weight": "Lighter",
                "color": "Default",
                "isSubtle": true,
                "id": "lblDescription"
            },
            {
                "type": "FactSet",
                "facts": [
                    {
                        "title": "Bikepoint:",
                        "value": "@{triggerOutputs()?['body/inputFields/Bikepoint']}"
                    },
                    {
                        "title": "Neighbourhood:",
                        "value": "@{triggerOutputs()?['body/inputFields/Neighbourhood']}"
                    },
                    {
                        "title": "No. of bikes:",
                        "value": "@{triggerOutputs()?['body/inputFields/No of Bikes']}"
                    },
                    {
                        "title": "No. of Empty docks:",
                        "value": "@{triggerOutputs()?['body/inputFields/Empty Docks']}"
                    },
                    {
                        "title": "Street:",
                        "value": "@{triggerOutputs()?['body/inputFields/Street']}"
                    },
                    {
                        "title": "Job No.",
                        "value": "@{body('Create_a_job_item')?['Title']}"
                    }
                ]
            },
            {
                "type": "ActionSet",
                "actions": [
                    {
                        "type": "Action.Submit",
                        "title": "Completed",
                        "id": "btnCompleted"
                    }
                ]
            }
        ]
    }​
  • Lastly, add an action Update item to change the job request status from Not Started to Completed after the completed button on the adaptive card alert has been selected to indicate the docking stations have sufficient bikes available. Make sure to have proper naming conventions as best practice.

     

To sum up, by creating custom actions you can act on data in real time and across different platforms. You can also customize the actions to suit your specific needs and scenarios. With Data Activator, you can turn your data into actions and achieve your business goals.

Other resources

Updated Aug 08, 2024
Version 1.0
No CommentsBe the first to comment