Receive and handle dynamics 365 webhook

448 views Asked by At

I'm building this application that creates a webhook on dynamics CRM whenever a new contact is created. I've been following this guide Receiving WebHooks in your web application and ASP.NET WebHooks - receiving and processing. I'm using requestbin to check if the webhook is actually created, and it works. The webhook is created. Problem is, i dont understand how to receive the data in my windows form. I've added this into my App.config

<appSettings>
       <add key="MS_WebHookReceiverSecret_dynamicscrm" value="12345678901234567890123456789012"/>
</appSettings>

I've also created two classes:

  • WebHookRegister: Registers the dynamics CRM webhook

    public static class WebHookRegister
    {
        public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();
    
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id= RouteParameter.Optional }
            );
    
            config.InitializeReceiveDynamicsCrmWebHooks();
        }
    }
    
  • DynamicsWebHookHandler: Gets the data from the webhook ( for now im doing nothing with it, later i will use it do to stuff ).

    public class DynamicsWebHookHandler : WebHookHandler
    {
        public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
        {
             JObject data = context.GetDataOrDefault<JObject>();
    
             return Task.FromResult(true); 
        }
    }
    

Last thing i've done is register my webhook in the program ( right after my form is initialized, by calling this:

WebHookRegister.Register(new HttpConfiguration());

I know by reading the guide that the webhook receiver URI must be created as follows: https://<host>/api/webhooks/incoming/<receiver>/{id}, but I'm not understanding where to create it in the code.

Thanks for any help

0

There are 0 answers