A Webhook is a simple HTTP publish and subscription model for passing information between services. With the Webhook action you can call your own HTTP endpoint when a form is submitted and optionally include form answers. This means all your connector logic can remain in an external service that can be updated and load balanced separately.
The service call is made as a POST and the body of the request contains the JSON payload. Service response codes determine if the action is considered to have failed or completed. This action does not deal with generated documents.
There are 2 Manage level connector settings that provide the defaults for all the Webhook actions to be used in the account.
Default Webhook URL Endpoint: The URL of your service, must be accessible via the web server.
Default Secret Key: User provided API key that is sent to and validated by your service. Prevents other people calling your service.
The action appears as "Post to Webhook" and it has 3 inputs and 2 outputs.
- Webhook URL Endpoint: The URL of your service.
- Answer Values: Optional values and question references that you want to send to your service. Same format as the SQL Server action's parameters, @name=[q1] <linebreak>
*Only Fixed Value are supported in Answer Values. Other reference types - Data Question and Answer value are not supported.
- Secret Key: User provided API key that is sent to and validated by your service.
- Response Body Output: The HTTP response body that was returned from your service.
- Response Code Output: The HTTP response code that was returned from your service.
"action": "My Action Name",
Example WebAPI Endpoint
public class WebhookController : ApiController
public HttpResponseMessage Post([FromBody] JObject data)
if ((string)data["secretKey"] != "MySecret")
return new HttpResponseMessage(HttpStatusCode.Forbidden);
// Process data[values] dictionary
return new HttpResponseMessage(HttpStatusCode.OK);
webhook action http publish subscription model endpoint submit post json payload