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

Custom API webhook trigger - Delete calls not being made

Hello All -

 

I followed the guide here, and got triggers working via webhooks - apart from the webhook delete calls. What exact criteria need to be met for delete to work? I have defined the delete call in the swagger doc, and have made sure to return a Location header in the 201 create request - and that request matches the pattern of the delete call I've defined. However, the delete call is not being made correctly. Can anyone help?

Cheers,
Matt

16 REPLIES 16
Anonymous
Not applicable

I'm having the same issue 😄

v-monli-msft
Community Support
Community Support

Hi @MattDendle1,

 

Would you please share your OpenAPI here so that we could check if there is anything wrong?

 

Regards,

Mona

Community Support Team _ Mona Li
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

Hello @v-monli-msft!

 

Thanks for your reply.

 

Here is a link to the swagger document I used to create the webhooks (along with some API calls of o...

 

Again, the webhooks work fine - they get created, I return a 201 with a location header pointing at the location to be used with the delete verb. 

 

Thanks for looking,

Matt

Any updates on this? I have the same issue. I return 201 with the Location Header set, delete method is defined in swagger.
Does it need a specific name? or tag? Help is much appreciated.

Cheers
Marc

I was struggling with this for a while but then I read the following text again: 

 

The webhook creation response is required to specify a "Location" header, the value of which will be used to delete the webhook registration. You must define the path of the delete webhook request as an internal action.

 

I then created an internal (hidden to end users) 'action' as part of the same custom connector. The idea is that the connector cannot make a call to an endpoint (the endpoint to delete/unsubscribe from the webhook) that is not registered. Once I created a DELETE action with the right URL structure, delete calls started to happen. 

 

Hope this helps some folks.. 

MatthijsB
Regular Visitor

Hello,

 

This is still not working for me. The webhook is being subscribed without a problem, but never unsubscribes itself.

I have a delete action on my REST controller and I tested it directly with the URL I add to the header when subscribing and the Rest call works. I add the following to the subscribe action: responseMessage.Headers.Add("Location", $"{host}/api/web-hook/delete/{id}");

 

I also tried to add an internal action to my swagger file but still nothing (I also tried without the id as parameter but hardcoded to an old subsciption, still nothing):

 

"/api/web-hook/delete/{id}": {
    "delete": {
        "responses": {
            "200": {
                "description": "OK"
            }
        },
        "summary": "Delete WebHook",
        "description": "Delete the WebHook",
        "operationId": "DeleteWebHook",
        "x-ms-visibility": "internal",
        "parameters": [
            {
                "name": "id",
                "in": "path",
                "required": true,
                "type": "string",
                "x-ms-visibility": "important",
                "x-ms-url-encoding": "single",
                "x-ms-summary": "ID",
                "description": "Specify the ID of the WebHook"
            }
        ]
    }
}

 

EDIT:

I changed it so that the ID is also hardcoded an not needed in the delete call (removed it from the response header and swagger) and I made the delete call on the REST API open for everyone and still nothing. Added logging on the first line of the method and the method doesn't even get called.

 

Thanks in advanced!

Matthijs

Hi folks,

It looks like there is one missing requirements for webhook unsubscribe operations which must be authorized as other operation in a connector. Besides having DELETE operation in the connector swagger, Location header value must start with the registered backend service Url. So, if you have delete operation template in swagger:

"/api/web-hook/delete/{id}" {"delete": {...}}

and your connector's host is 'https://myhost.com' and your Base Url is '/restapi/v2', Location header must have the following value: 'https://myhost.com/restapi/v2/api/web-hook/delete/<some id>'

Best regards,

Dmitry

Hello Dmity,

 

My location header value is exactly the same as my swagger delete operation URL, so this is not the problem.

 

location header: https://myhost.azurewebsites.net/api/web-hook/delete/42 

 

swagger host: myhost.azurewebsites.net

swagger basePath: /

swagger scheme: https

swagger path: /api/web-hook/delete/{id}

 

All the best,

Matthijs

Hi MatthijsB,

I think I found logs related to your connector and it looks like there is no Location header in a create webhook response.

One such subscription request that was sent from the connector (2020-12-09): POST https://<yourhost>.azurewebsites.net/api/web-hook/create/DocumentPropertiesUpdated. The response was successful, but there was no Location header based on logs.

I can also see few DELETE request, perhaps, it was a testing with direct action calls (webhookId=20). All of them failed with 415 status code, it looks like there is some payload passed along with those requests and Content-Type=text/plain.

 

Best regards,

Dmitry

Hello Dmitry,

 

Yes I tried a few delete webhooks via the test section. All my deletes have a 415 error code in the test section of a custom connector. Even my delete document, while the flow action for this works perfectly (and is also already certified). as you can see in the provided delete action in the swagger I don't have any body parameters. I do have consumes and produces "application/json" on top level of my swagger file.

 

My create webhook response does give a Location header as far as I can see:

{
    "version": "1.1",
    "content": null,
    "statusCode": 200,
    "reasonPhrase": "OK",
    "headers": [
        {
            "key": "Location",
            "value": [
                "https://<myhost>.azurewebsites.net/api/web-hook/delete/45"
            ]
        }
    ],
    "trailingHeaders": [],
    "requestMessage": null,
    "isSuccessStatusCode": true
}

 

All the best,

Matthijs

MatthijsB
Regular Visitor

Hello,

 

I found my issue. I upgraded my project from .NET framework to .NET Core. However the create webhook method was still returning a HttpResponseMessage which is no longer supported as a response type in a Controller in the .NET Core WebApi. So my whole response (including my location header) was begin returned in the body. I changed this to IActionResult and now it is working correctly.

 

So indeed it works by having the Location header in the create webhook response and the path of the location header as an internal delete action.

 

All the best,

Matthijs

Just to be sure. Does this mean that the owner of the API of the webhook should add a location header to the API? I'm not the owner, so I will need to ask for it then.

@JOAS_Niels  Yes.

https://docs.microsoft.com/en-us/connectors/custom-connectors/create-webhook-trigger

 Important

In order for Logic Apps or Power Automate to delete a webhook, the API must include a Location HTTP header in the 201 response at the time the webhook is created. The Location header should contain the path to the webhook that is used with the HTTP DELETE. For example, the Location included with GitHub's response follows this format: https://api.github.com/repos/<user name>/<repo name>/hooks/<hook ID>.

Thanks @murshed ! I will need to submit a feature request then, that's a pity.

hi @JOAS_Niels,

I found you in this forum about how to delete a webhook subscription. Two years is long time ago but maybe you could help me.

I'm not able to config correctly the location header in the webhook creation response as explained in the tutorial:

"The webhook creation response is required to specify a "Location" header, the value of which will be used to delete the webhook registration. You must define the path of the delete webhook request as an internal action."

Could you help me? (if you remember anything)

Thank you very much

Hi @Syndicate_Admin ,

 

The only thing I know is that my endpoint did not provide a location header in the response. This was an API of a software provider and they will not add the header. So, that means Power Automate will not be able to communicate via a webhook with this API, unfortunately. And that meant the end of it for me.

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 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 SolutionsSuper UsersNumber Solutions Deenuji 9 @NathanAlvares24  17 @Anil_g  7 @ManishSolanki  13 @eetuRobo  5 @David_MA  10 @VishnuReddy1997  5 @SpongYe  9JhonatanOB19932 (tie) @Nived_Nambiar  8 @maltie  2 (tie)   @PA-Noob  2 (tie)   @LukeMcG  2 (tie)   @tgut03  2 (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. Week 2: Community MembersSolutionsSuper UsersSolutionsPower Automate  @Deenuji  12@ManishSolanki 19 @Anil_g  10 @NathanAlvares24  17 @VishnuReddy1997  6 @Expiscornovus  10 @Tjan  5 @Nived_Nambiar  10 @eetuRobo  3 @SudeepGhatakNZ 8     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 Automate Deenuji32ManishSolanki55VishnuReddy199724NathanAlvares2444Anil_g22SudeepGhatakNZ40eetuRobo18Nived_Nambiar28Tjan8David_MA22   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 Automate Deenuji11FLMike31Sayan11ManishSolanki16VishnuReddy199710creativeopinion14Akshansh-Sharma3SudeepGhatakNZ7claudiovc2CFernandes5 misc2Nived_Nambiar5 Usernametwice232rzaneti5 eetuRobo2   Anil_g2   SharonS2  

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 (671)