Add webhook programmatically Episerver Form

Today I needed to add a webhook on creation on all forms by default. This shows you how.

Published 18th of March 2020
Episerver.CMS 11, Forms v4

In an InitializationModule:

public void Initialize(InitializationEngine context)
{
    IContentEvents events = ServiceLocator.Current.GetInstance();
     events.CreatingContent += SetWebhookOnForms;
}

private void SetWebhookOnForms(object sender, ContentEventArgs e)
{
    //getting webhookurl from appsettings
    var webhookurl = ConfigurationManager.AppSettings["Webhook:forms"] + "";
    if (!String.IsNullOrEmpty(webhookurl) && e.Content is FormContainerBlock formContainerBlock)
    {
        List webhookActorModels = formContainerBlock.Content.Property.GetPropertyValue>("CallWebhookAfterSubmissionActor").ToList();
        var customWebhook = new List();

        if (webhookActorModels == null || webhookActorModels.Count() == 0)
        {
            webhookActorModels.Add(new WebhookActorModel
            {
                BaseUrl = webhookurl,
                PostDataInJsonFormat = true
            }
            );                
        }

        formContainerBlock.Content.SetPropertyValue("CallWebhookAfterSubmissionActor", webhookActorModels);
    }
}

There you got it, self explanatory

Search terms

  • Episerver Forms webhooks add on publish
  • Webhooks on all forms programmatically
  • Automatic webhook on episerver forms

About the author

Luc Gosso
– Independent Senior Web Developer
working with Azure and Episerver

Twitter: @LucGosso
LinkedIn: linkedin.com/in/luc-gosso/
Github: github.com/lucgosso

Leave a Reply

Your email address will not be published. Required fields are marked *