Trigger Power Automate Flow using JavaScript – Bi-Directional
Hi All,
This blog will be a continuation of my previous blog – Trigger Power Automate Flow using JavaScript – Uni Directional
Now, feedback is essential when sending a request to determine whether it was successfully performed or failed somewhere.
You can accomplish this by forwarding a response back from where the flow was invoked.
I’ll use the same situation as in my previous blog, where I send a notification by greeting a person’s name if exists, or else I will greet a friend.
Check out my previous blog to learn how to build your Flow and JavaScript.
Steps to pass the response back within Flow
Step 1: Add a response that will be sent back from where the Flow was invoked.

Quick Tip: I am checking if ‘Name’ is present in my dynamic content. If yes, then greet the person else greet a Friend
Formula: if(contains(triggerBody()?[‘DynamicData’], ‘Name’), triggerBody()?[‘DynamicData’][‘Name’], ‘Friend’)
Steps to add into the JavaScript
Step 1: Initially we created JS to trigger the flow, now we will add the code snippet to accept the response from Flow.
Add the following Code:
var TriggerFlow =
{
Main: () =>
{
var formContext = executionContext.getFormContext();
//Strict Defined Parameters
var RecordID = formContext.data.entity.getId().replace("{", "").replace("}", "");
var EntityName = formContext.data.entity.getEntityName();
//Dynamic Parameter - Sample Data
var DynamicValues = {Name: "Ethan", Operation: "One Way Power Automate trigger"};
//Find Plural Logical Name of the Entity and Call Flow
Xrm.Utility.getEntityMetadata(EntityName, "").then(
function (result)
{
TriggerFlow.CallFlow({logicalEntityName: result.EntitySetName, CurrentRecord: RecordID, DynamicData: DynamicValues});
},
function (error)
{
console.log(error);
}
);
},
CallFlow: ({logicalEntityName, CurrentRecord, DynamicData}) =>
{
var flowUrl = "https://prod-133.westus.logic.azure.com:443/workflows/796d8796a139409e844e8f1001493567/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=XtYrETcQW07SX5EIuxtQDv7lQ8mPNyDpDZ9O7tGmqc8";
var inputdata = JSON.stringify({
"EntityName": logicalEntityName,
"RecordID": CurrentRecord,
"DynamicData": DynamicData
});
var req = new XMLHttpRequest();
req.open("POST", flowUrl, true);
req.setRequestHeader('Content-Type', 'application/json');
req.send(inputdata);
////Response
req.onreadystatechange = function () {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 200)
{
var result = this.response;
alert("" + result);
}
else if(this.status === 400)
{
alert(this.statusText);
var result = this.response;
alert("Error" + result);
}
}
};
}
}
Step 2: Trigger the JS and watch the output I get as Alert (I have used the console page to trigger my JS for example purposes)


Hope this helps in achieving a response from the Power Automate Flow!