cancel
Showing results for 
Search instead for 
Did you mean: 
Reply

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

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

1 ACCEPTED SOLUTION

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

12 REPLIES 12
dpoggemann
Most Valuable Professional
Most Valuable Professional

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 

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

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

 

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!

 

Erick

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

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.

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.

 

Regards,

 

Erick

Helpful resources

Announcements

Community will be READ ONLY July 16th, 5p PDT -July 22nd

Dear Community Members,   We'd like to let you know of an upcoming change to the community platform: starting July 16th, the platform will transition to a READ ONLY mode until July 22nd.   During this period, members will not be able to Kudo, Comment, or Reply to any posts.   On July 22nd, please be on the lookout for a message sent to the email address registered on your community profile. This email is crucial as it will contain your unique code and link to register for the new platform encompassing all of the communities.   What to Expect in the New Community: A more unified experience where all products, including Power Apps, Power Automate, Copilot Studio, and Power Pages, will be accessible from one community.Community Blogs that you can syndicate and link to for automatic updates. We appreciate your understanding and cooperation during this transition. Stay tuned for the exciting new features and a seamless community experience ahead!

Summer of Solutions | Week 4 Results | Winners will be posted on July 24th

We are excited to announce the Summer of Solutions Challenge!   This challenge is kicking off on Monday, June 17th and will run for (4) weeks.  The challenge is open to all Power Platform (Power Apps, Power Automate, Copilot Studio & Power Pages) community members. We invite you to participate in a quest to provide solutions in the Forums to as many questions as you can. Answers can be provided in all the communities.    Entry Period: This Challenge will consist of four weekly Entry Periods as follows (each an “Entry Period”)   - 12:00 a.m. PT on June 17, 2024 – 11:59 p.m. PT on June 23, 2024 - 12:00 a.m. PT on June 24, 2024 – 11:59 p.m. PT on June 30, 2024 - 12:00 a.m. PT on July 1, 2024 – 11:59 p.m. PT on July 7, 2024 - 12:00 a.m. PT on July 8, 2024 – 11:59 p.m. PT on July 14, 2024   Entries will be eligible for the Entry Period in which they are received and will not carryover to subsequent weekly entry periods.  You must enter into each weekly Entry Period separately.   How to Enter: We invite you to participate in a quest to provide "Accepted Solutions" to as many questions as you can. Answers can be provided in all the communities. Users must provide a solution which can be an “Accepted Solution” in the Forums in all of the communities and there are no limits to the number of “Accepted Solutions” that a member can provide for entries in this challenge, but each entry must be substantially unique and different.    Winner Selection and Prizes: At the end of each week, we will list the top ten (10) Community users which will consist of: 5 Community Members & 5 Super Users and they will advance to the final drawing. We will post each week in the News & Announcements the top 10 Solution providers.  At the end of the challenge, we will add all of the top 10 weekly names and enter them into a random drawing.  Then we will randomly select ten (10) winners (5 Community Members & 5 Super Users) from among all eligible entrants received across all weekly Entry Periods to receive the prize listed below. If a winner declines, we will draw again at random for the next winner.  A user will only be able to win once overall. If they are drawn multiple times, another user will be drawn at random.  Individuals will be contacted before the announcement with the opportunity to claim or deny the prize.  Once all of the winners have been notified, we will post in the News & Announcements of each community with the list of winners.   Each winner will receive one (1) Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value). NOTE: Prize is for conference attendance only and any other costs such as airfare, lodging, transportation, and food are the sole responsibility of the winner. Tickets are not transferable to any other party or to next year’s event.   ** PLEASE SEE THE ATTACHED RULES for this CHALLENGE**   Week 1 Results: Congratulations to the Week 1 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Community MembersNumber of SolutionsSuper UsersNumber of Solutions @anandm08  23 @WarrenBelz  31 @DBO_DV  10 @Amik  19 AmínAA 6 @mmbr1606  12 @rzuber  4 @happyume  7 @Giraldoj  3@ANB 6 (tie)   @SpongYe  6 (tie)     Week 2 Results: Congratulations to the Week 2 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Community MembersSolutionsSuper UsersSolutions @anandm08  10@WarrenBelz 25 @DBO_DV  6@mmbr1606 14 @AmínAA 4 @Amik  12 @royg  3 @ANB  10 @AllanDeCastro  2 @SunilPashikanti  5 @Michaelfp  2 @FLMike  5 @eduardo_izzo  2   Meekou 2   @rzuber  2   @Velegandla  2     @PowerPlatform-P  2   @Micaiah  2     Week 3 Results: Congratulations to the Week 3 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Week 3:Community MembersSolutionsSuper UsersSolutionsPower Apps anandm0861WarrenBelz86DBO_DV25Amik66Michaelfp13mmbr160647Giraldoj13FLMike31AmínAA13SpongYe27     Week 4 Results: Congratulations to the Week 4 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Week 4:Community MembersSolutionsSuper UsersSolutionsPower Apps DBO-DV21WarranBelz26Giraldoj7mmbr160618Muzammmil_0695067Amik14samfawzi_acml6FLMike12tzuber6ANB8   SunilPashikanti8

Check Out | 2024 Release Wave 2 Plans for Microsoft Dynamics 365 and Microsoft Power Platform

On July 16, 2024, we published the 2024 release wave 2 plans for Microsoft Dynamics 365 and Microsoft Power Platform. These plans are a compilation of the new capabilities planned to be released between October 2024 to March 2025. This release introduces a wealth of new features designed to enhance customer understanding and improve overall user experience, showcasing our dedication to driving digital transformation for our customers and partners.    The upcoming wave is centered around utilizing advanced AI and Microsoft Copilot technologies to enhance user productivity and streamline operations across diverse business applications. These enhancements include intelligent automation, AI-powered insights, and immersive user experiences that are designed to break down barriers between data, insights, and individuals. Watch a summary of the release highlights.    Discover the latest features that empower organizations to operate more efficiently and adaptively. From AI-driven sales insights and customer service enhancements to predictive analytics in supply chain management and autonomous financial processes, the new capabilities enable businesses to proactively address challenges and capitalize on opportunities.    

Updates to Transitions in the Power Platform Communities

We're embarking on a journey to enhance your experience by transitioning to a new community platform. Our team has been diligently working to create a fresh community site, leveraging the very Dynamics 365 and Power Platform tools our community advocates for.  We started this journey with transitioning Copilot Studio forums and blogs in June. The move marks the beginning of a new chapter, and we're eager for you to be a part of it. The rest of the Power Platform product sites will be moving over this summer.   Stay tuned for more updates as we get closer to the launch. We can't wait to welcome you to our new community space, designed with you in mind. Let's connect, learn, and grow together.   Here's to new beginnings and endless possibilities!   If you have any questions, observations or concerns throughout this process please go to https://aka.ms/PPCommSupport.   To stay up to date on the latest details of this migration and other important Community updates subscribe to our News and Announcements forums: Copilot Studio, Power Apps, Power Automate, Power Pages

Users online (1,025)