Skip to content

Form Webhooks

Use Basin to repost submission data to other apps and services.

Configuring a webhook

If you only need to forward submission data to a single app or service, then a custom webhook is a great solution. Basin supports the following types of payloads for custom webhooks:

  1. JSON
  2. Data wrapped JSON
  3. Customer.IO
  4. Form URL encoded

To setup a custom webhook in Basin, go to the Integrations page in your form dashboard, enter your desired URL in the input field, save, and you're all set!

When a submission is received by an endpoint with a configured webhook URL, Basin will queue up a post on your behalf. If the webhook fails, we will retry up to 15 times over the course of 24-28 hours with an exponential backoff. The format of our webhooks will be exactly what we receive on the inital form submission.

Payload Types

JSON

{
  "email": "example@example.com",
  "name": "Example Name",
  "id": "submission_id",
  "attachments": [
    {
      "attachment_proxy_url": "proxy_url",
      "public_url": "public_url"
    }
  ]
}

Data wrapped JSON

{
  "data": {
    "email": "example@example.com",
    "name": "Example Name",
    "id": "submission_id",
    "attachments": [
      {
        "attachment_proxy_url": "proxy_url",
        "public_url": "public_url"
      }
    ]
  }
}

Customer.IO

{
  "data": {
    "email": "example@example.com",
    "name": "Example Name",
    "submission_id": "submission_id"
  }
}

Form URL encoded

For Form URL encoded, the form data is sent as is without any additional processing. Here is an example:

{
  "data": "email=example@example.com&name=Example+Name&id=submission_id"
}

Customer.IO integration

To integrate your form with Customer.io using webhooks, follow these steps:

  1. Open your Basin dashboard and navigate to the form you wish to integrate with Customer.io.
  2. Go to 'Integrations' and then 'Webhooks'.
  3. Click on 'Create a new webhook'.
  4. In the 'Webhook URL' field, enter the webhook URL provided by Customer.io for your form.
  5. In the 'Payload Format' field, select "Customer IO."
  6. Provide the necessary authentication headers. Use "Authorization" as the Header Name and "Basic YOUR_CUSTOMER_IO_API_KEY" as the Header Value, replacing YOUR_CUSTOMER_IO_API_KEY with your actual Customer.io API key.

With these steps, your form is now integrated with Customer.io and will send data via webhooks.

Webhook Triggering

Only submissions that are not flagged as spam will trigger a webhook by default. There is a checkbox to enable webhooks for all submsissions. This is an excellent strategy for bypassing any spam filtering by Basin.

View our API reference in Swagger here