How to Set up Webhooks

Webhooks are a powerful tool that allows you to send real-time data from Elvanto to other applications when certain events occur. This guide will walk you through how to access and set up webhooks in Elvanto, ensuring you can efficiently integrate Elvanto with other systems and automate your workflows.

Accessing Webhooks

Permissions

  • Super Admins: Full access.
  • Admins with API Access: Also have access to the Webhooks section.

Navigating to Webhooks

  1. Settings Page: Navigate to the Settings page.
  2. Developers Section: Under “Developers,” select “Webhooks.”
  3. API Access: Ensure you have access to Settings -> API.

Managing Webhooks

Viewing Existing Webhooks

  • Webhook List: The page will list any webhooks you’ve already created.

Adding a New Webhook

  1. Add Button: Click the “Add” button to create a new webhook.
  2. Configuration Screen: You will see a screen with various options.

Webhook Options Explained

Payload URL

  • Definition: This is the URL where Elvanto will send the data.
  • Usage: Enter the URL of the application or server that will process the webhook data.

Content Types / Event Types

  • Definition: These are the types of events that will trigger the webhook.
  • Options: You can select which events you want to send information about.
    • Examples:
      • When people are added into a people flow step.
      • When a form submission is submitted.

Enable Webhook

  • Definition: This option lets you turn the webhook on or off.
  • Usage: Toggle this setting to enable or disable the webhook.

Creating and Managing Webhooks

Steps to Add a Webhook

  1. Enter Payload URL: Specify the destination URL for the webhook data.
  2. Select Content Types: Choose the events you want to trigger the webhook.
  3. Enable Webhook: Decide whether to activate the webhook immediately or later.

Example Payload Data

The Payload data will vary depending on what type of event is triggering the hook. Currently, we have 2 Webhook types that can be triggered. Note that the webhook payload does not include the specific form that is being submitted. It does however include all fields that were responded to.

  • peopleflow:member:add - When a person is added into a people flow step.
  • form:submission:create - When a form submission is created

form:submission:create
The Payload for Form Submissions will look like this:

{
"type": "form:submission:create",
"submission_id": "UUID",
"submission_data": [
{
... Submission Data ...,
"submission_status": "Char",
"person_id": "UUID"
},
... Repeat for each segment in the submission.
]
}

The “Submission Status” field will appear in each segment in the submission, and can be one of the following:

  • p - Pending
  • a - Approved
  • d - Declined

You should never see d when it’s coming from a form submission being created, but it may appear in future payload types.If the form is for an event registration, it will also have two fields for “ticket_type_id” being a UUID for a particular type type, and “ticket_id” being the ID of the ticket that the submission is tied to.An example payload with Event Registration data attached would be the following

{
"type": "form:submission:create",
"submission_id": "c44a0e60-1973-44c5-aacd-5d37d690c699",
"submission_data": [
{
"first_name": {
"label": "First Name",
"value": "Stewart"
},
"preferred_name": {
"label": "Preferred Name",
"value": "Stew"
},
"last_name": {
"label": "Last Name",
"value": "Polley"
},
"birthday": {
"label": "Date of Birth",
"value": false
},
"email": {
"label": "Email Address",
"value": "support@tithe.ly"
},
"phone_number": {
"label": "Phone Number",
"value": "0731071682"
},
"mobile_number": {
"label": "Mobile Number",
"value": "0731071682"
},
"formscustom_a4612c08-21f6-4514-a9a3-c9c813970975": {
"label": "Custom Form Field",
"value": "",
"forms_custom_id": "a4612c08-21f6-4514-a9a3-c9c813970975"
},
"ticket_type_id": "1f0fecb0-db3d-4869-9fda-eb4f3abafe14", # Only for Event Registration Forms
"ticket_id": 3, # Only for Event Registration Forms
"submission_status": "p"
}
]
}
peopleflow:member:add

The payload for someone being added into a People Flow is a lot more basic and looks like the following:

{
"type": "peopleflow:member:add",
"person_id": "UUID",
"step_id": "UUID",
"due_date": "ISO 8601 Compliant DateTime"
}
An example with data would be the following:
{
"type": "peopleflow:member:add",
"person_id": "df087e67-7e80-4993-b8a7-abc146689fe4",
"step_id": "df087e67-7e80-4993-b8a7-abc146689fe4",
"due_date": "2020-07-07T02:31:57Z"
}