Showing results for 
Search instead for 
Did you mean: 
Resolver I
Resolver I

How to Specify a Raw Body on a Custom Connector instead of JSON?



I’m creating a Flow process that uses a custom connector to access an on-prem API using the data gateway. I’m on the first step process to get the access token, the POST method expects a raw body as follow:




Unfortunately, the custom connector only allows me to define the body in a JSON format so my connector is failing because of the body:


"grant_type" : "password",
"username" : "myusername123",
"password" : "mypassword123",
"scope" : "api"


When testing the custom connector, there is an option that let’s me specify a raw body and the test is successful.


Custom Connector - JSON Body Failed 400:

Custom Connector - JSON Body Failed 400.jpg


Custom Connector - Raw Body Succeeded 200:

Custom Connector - Raw Body Succeeded 200.jpg


However, when I create my flow, I do not have the option to pass the body as raw:


Flow - Cannot Specify Raw Body Option.jpg


Any idea how to pass a raw body to my custom connector?


Thank you,




Accepted Solutions

I found a very simple fix, I just had to specify an empty string with double quotes (i.e. "") as the Body and that prevented Power Apps from converting my parameter (grant_type=password&username=myusername123&password=mypassword123&scope=api) to JSON.

View solution in original post

Super User
Super User

Hi @ErickDiaz,


I think you might want to move this post to the Power Automate forum (  I think you will get more responses there since focus is not really Dataverse from what I see...




Hope this helps. Please accept if answers your question or Like if helps in any way.

Hi Drew (@dpoggemann),


Thank you for your suggestion, I'll try to create this post in the Power Automate forum.


I will also leave it here as this is related to Custom Connectors and the fact that I can only specify the body in a JSON format on the request definition:


Custom Connector - Body Request Definition.jpg


Thank you,




I found a very simple fix, I just had to specify an empty string with double quotes (i.e. "") as the Body and that prevented Power Apps from converting my parameter (grant_type=password&username=myusername123&password=mypassword123&scope=api) to JSON.

@ErickDiaz can you elaborate as to where you placed the empty string?

I am having a problem which I discuss at length here.

With the API call I am trying to make, I can pass in {} for the body in Postman and I get a successful response. In the custom connector, if I fail to set the body parameters or otherwise leave the body empty, it uses {} for the body and it just works. So it seems like I don't need to pass in any body parameters at all, as long as it has "body": {}. Well whenever I run the custom connector from a Power App button, the Power App Monitor shows "body": "" and the response is failed.

So as far as I can tell, Power Apps is not able to pass in any kind of raw body to the connector, and there is no way to get the connector to use its defaults. I have even tried setting policies to update body parameters from headers that I pass in from Power Apps. I am able to pass in headers and use policies to set news header values using those passed in from Power App arguments in function editor, and this trick works to set an Authorization Basic <base 64 string> header whereas normally "Basic" is replaced with "Bearer" and the token is some random token which I did not input, so the API call does not work. My policy to set authorization header fixes that, but it's not working for setting body parameters.

I use policies to set body parameters, and it does not seem like they are overriding null inputs to those parameters. Within the custom connector, the body always goes as {}, unless you set the body parameters to visibility: important and allow the default values to populate in the "Test Operation" box. But within Power App, the body always goes as "" no matter what. There is no way to populate body params by default values! As far as I can tell anyway...

Hi @HEATFreight,


In the Custom Connector, when creating a new Request Definition (Get, Delete, Post, etc...) that you have to specify a URL, Headers, and Body; the Body asks for a JSON object, if you enter an empty string with double quotes (""), this will allow to pass a raw body when calling the method from e.g. Power Automate.


I hope it helps and good luck!



Thanks @ErickDiaz! I haven't tried calling the Custom Connector from Power Automate because I have HTTP actions in Power Automate that achieve the same result. It would be more convenient for deploying my Power App  (as distinguished from Power Automate) if I could get the custom connector working specifically within Power Apps. I'm pretty sure it would work as-is in Power Automate. It's Power Apps where I'm having a problem.

I do not believe using the empty string in the definition of my custom connector will fix the Power Apps issue, but I will certainly give it a shot.

Just to be clear, you are referring to the "Import from sample" inputs right? I have tried all sorts of things for the Body criteria of "Import from sample", but not yet an empty string! Will update with results...

I have tried placing a pair of double quotes in the body field of the Custom Connector "Import from sample" but I don't think it's working as intended.

Here's the schema that it automatically generated (URL excluded because of NDA):


The body has one parameter that automatically was created from the "" sample body, and it's name is "key-body-output", although curiously the Title and Description fields are empty.



I placed the default value of "" in there myself. The schema doesn't automatically convert the provided sample into the default value field, so I did that myself after first testing it without any default value. Without the default "key-body-output" value of "", the Power App button fails to make the call with a valid body. Still see the request body as body: "" in Power App Monitor. Running directly with "Test operation" in Custom Connector works fine though, with body: {} automatically populated. Keep in mind, this is before I set the default value, like even with no default value set, it always populates body field with {} in the "Test operation". 

After setting default value for "key-body-output" to the empty double quotes, the default body fails to populate in the "Test operation". If I click "Raw Body", the body shows up as {}. If I then disable "Raw Body", the body field populates itself with [object Object]. Both {} and [object Object] work as valid body inputs for "Test operation". We get a valid response. However, the request body always shows up as {} regardless of whether "Raw body" is enabled or disabled. If I change the empty body in "Test operation" (remember, the default value empty string isn't being passed to the body field for "Test operation"), and make it the empty double quotes, then I get the following error both with "Raw body" enabled and disabled:

 Property "" type mismatch, Expected: "object", Actual: "array".

And of course the Power App fails to send valid body in all of the above cases.

I think this is a Power Apps problem, not a Custom Connector problem per se. I would bet that the Custom Connector works in Power Automate, but don't have time to test it right now.

Literally all I want to do is send a valid JSON string to the body parameter of an API call. It works in Custom Connector "Test operation" whether I give it a valid body or no body at all, but can't figure out how to make it work when calling Custom Connector in Power App. Seems to be that Power App wants to send a string even though the body is technically an object. Not sure how to trick Power App function call into accepting an object as a string parameter! This seems to be the crux of the issue as far as I can tell.

Kudo Collector
Kudo Collector

Yeah, I'm now calling Power Automate flows in the Power App and running the HTTP requests within Power Automate instead of Custom Connector, and that seems to be the ticket!

I had high hopes for the Custom Connector but I think it's bugged out. The same functionality should be possible within a  Custom Connector as with a Power Automate HTTP request, but it's simply not. Custom Connectors may work for really specific use cases, but otherwise that crap is broken!

Really frustrating experience attempting to troubleshoot Custom Connector.

Had opposite experience with connecting Power App to Power Automate, once I understood the Power Apps trigger and response action in Power Automate. Very smooth!

Still have not tried using the Custom Connector in Power Automate, because my HTTP request can do the same thing but with less effort. There is a chance my desired functionality works when calling Custom Connector within Power Automate but not within Power Apps. Who knows... But I'm over it. HTTP request is the bee's knees.

Hey @HEATFreight,


I'm glad you figured out a workaround and sorry I couldn't help more, I'm relatively new to the whole Power Platform ecosystem.





Helpful resources

Ignite 2022


Explore the latest innovations, learn from product experts and partners, level up your skillset, and create connections from around the world.

Power Apps Africa Challenge 2022

Power Apps Africa Challenge

Your chance to join an engaging competition of Power Platform enthusiasts.

Users online (2,133)