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!
Related posts:
How a Multi-Country Infrastructure Group Evaluated One vs Two Production Environments in Dynamics 36...

How an Australian Linen Company Made Quote Approvals Secure with One Time Links in Dynamics 365

Recovering Lost Approval History After a Purchase Order Deletion in Business Central

