> For the complete documentation index, see [llms.txt](https://docs.stacksync.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.stacksync.com/two-way-sync/features/event-triggers/webhook-http-call.md).

# Webhook (HTTP call)

Make an HTTP call to any API endpoint when some data events (e.g. a record is updated).

<figure><img src="https://2867423571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfJjIdV9cuW6K8asJjTPJ%2Fuploads%2FsNaTLSlDCClejtsponpZ%2F2%20(1).png?alt=media&amp;token=affe2cbb-4b01-43a0-a2b6-297d0d8a19ab" alt=""><figcaption></figcaption></figure>

This field is a full CURL as you know it from the open-source project <https://curl.se/>

You can include any authentication, parameters, turn the POST into a GET request or anything else. The CURL will just get executed **as is**, we will not run any checks on your behalf. If the API call fails or times out, the failure will not stop the execution of other triggers as every trigger will be fired up independently.

We recommend keeping the CURL as a POST request.

The <mark style="color:orange;"><\<record>></mark> placeholder will be replaced by the JSON string containing all the fields of the record. The <mark style="color:orange;"><\<changes>></mark> placeholder will be replaced by the JSON string containing only the updated fields of the record. Properties of the record and changes can be accessed by using a period "." to access the property. This can be nested if the property is a JSON.

The **payload** is also fully customizable. For example, add some additional custom parameters in the JSON body as follows:

```url
curl --request POST \
--url https://your-endpoint-url.com \
--header 'Content-Type: application/json' \
--data '{ "record": "<<record>>", "record_id": "<<record>>.id", "my_custom_param": 1234 }'
```
