web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / How to Specify a Raw B...
Power Apps
Answered

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

(1) ShareShare
ReportReport
Posted on by 156

Hi,

 

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:

 

grant_type=password&username=myusername123&password=mypassword123&scope=api

 

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,

 

Erick

I have the same question (0)
  • Drew Poggemann Profile Picture
    9,287 Most Valuable Professional on at

    Hi @ErickDiaz,

     

    I think you might want to move this post to the Power Automate forum (https://powerusers.microsoft.com/t5/Microsoft-Power-Automate/ct-p/MPACommunity).  I think you will get more responses there since focus is not really Dataverse from what I see...

     

    Thanks!


    Drew 

  • ErickDiaz Profile Picture
    156 on at

    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,

     

    Erick

     

  • Verified answer
    ErickDiaz Profile Picture
    156 on at

    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.

  • HEATFreight Profile Picture
    1,024 on at

    @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...

  • ErickDiaz Profile Picture
    156 on at

    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!

     

    Erick

  • HEATFreight Profile Picture
    1,024 on at

    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...

  • HEATFreight Profile Picture
    1,024 on at

    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):

    HEATFreight_0-1632420414478.png

    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.

    HEATFreight_1-1632420485038.png

    HEATFreight_2-1632420515953.png


    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.

  • HEATFreight Profile Picture
    1,024 on at

    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.

  • ErickDiaz Profile Picture
    156 on at

    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.

     

    Regards,

     

    Erick

  • maneesh Profile Picture
    3 on at

    @HEATFreight I am literally in the same boat as you are.

    Canvas app just won't pass body to the custom connector no matter what.

    Sigh! Did you find it to work?

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the April Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Apps

#1
Vish WR Profile Picture

Vish WR 893

#2
Valantis Profile Picture

Valantis 571

#3
11manish Profile Picture

11manish 482

Last 30 days Overall leaderboard