> ## Documentation Index
> Fetch the complete documentation index at: https://filla.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

> Send an HTTP request to an external URL when a form is submitted.

## What webhooks do

A webhook sends an HTTP request to a URL you specify whenever a form is submitted. Use webhooks to connect Filla to external tools: Zapier, Make, Slack, your own API, or any service with an HTTP endpoint.

## Setting up a webhook

<Steps>
  <Step title="Open the Automations tab">
    In the form editor, click the **Automations** tab.
  </Step>

  <Step title="Create or open an automation">
    Create a new automation or open an existing one.
  </Step>

  <Step title="Add a Webhook action">
    Click **Add action** and select **Webhook**.
  </Step>

  <Step title="Configure the webhook">
    Set the URL, method, headers, and body.
  </Step>
</Steps>

## Settings reference

| Setting            | Description                                                                                              |
| ------------------ | -------------------------------------------------------------------------------------------------------- |
| **URL**            | The endpoint to send the request to. Supports variable text. Type `@` to include form values in the URL. |
| **Method**         | HTTP method: GET, POST, PUT, PATCH, or DELETE.                                                           |
| **Content type**   | `application/json`, `multipart/form-data`, or `application/x-www-form-urlencoded`.                       |
| **Headers**        | Custom request headers as key-value pairs. Values support variable text.                                 |
| **Body fields**    | Request body as key-value pairs. Values support variable text.                                           |
| **Authentication** | None, Bearer token, Basic auth, or API key (custom header).                                              |

## Authentication options

| Method           | How it works                                                                                 |
| ---------------- | -------------------------------------------------------------------------------------------- |
| **None**         | No authorization header is sent.                                                             |
| **Bearer token** | Sends `Authorization: Bearer <token>`. Token supports variable text.                         |
| **Basic auth**   | Sends `Authorization: Basic <base64(username:password)>`. Both fields support variable text. |
| **API key**      | Sends a header with a configurable name and value.                                           |

## Using variables in webhook body

Type `@` in any value field to insert a form field value. This lets you send the respondent's data to external systems.

**Example body:**

```
{
  "name": "@{Full Name}",
  "email": "@{Email}",
  "message": "@{Message}"
}
```

## Conditional execution

Each webhook action can have an **"Only run if..."** condition. The webhook only fires when the condition evaluates to true.

**Example:** Send a Slack alert only when the submission's priority is "Urgent".

## Connecting to Zapier or Make

To connect Filla to Zapier:

1. Create a Zap with the **Webhook by Zapier** trigger
2. Zapier gives you a unique webhook URL
3. Paste that URL into Filla's webhook action URL field

The same approach works for Make (formerly Integromat) using a Webhook module.

## Common questions

<AccordionGroup>
  <Accordion title="Is there a retry mechanism if the webhook fails?">
    The webhook destination (not the form automations list) supports configurable retries. For the automation webhook action, if the request fails the automation logs the error but does not retry automatically.
  </Accordion>

  <Accordion title="Can I send multiple webhooks per submission?">
    Yes. Add multiple webhook actions to an automation, or create multiple automations, each with their own webhook action.
  </Accordion>

  <Accordion title="Can I see if a webhook fired successfully?">
    Webhook execution is logged in the automation execution log. Check there to see whether the request was sent and what response was received.
  </Accordion>

  <Accordion title="What is the timeout for webhook requests?">
    Webhook requests time out after a reasonable period. If the external endpoint is slow, the automation may report a timeout error. Ensure your endpoint responds promptly.
  </Accordion>
</AccordionGroup>
