Introduction
Webhooks can be triggered by configuring the webhook destination in the system. The webhook destination can be configured to send data to any http endpoint. Both POST and GET endpoints are supported. The document describes the configuration and the format of the payload sent to the endpoint.Webhook Configuration
Keep a webhook ready to work with. It can be simply simulated with a Python HTTP server by runningpython -m http.server 8080. Alternatively, you can use an online webhook provider, such as Webhook Site. These providers may restrict the number of requests sent.
Creating a Webhook Connection on valmi.io
Go to destinations on valmi.io and create a new destination. SelectWebhook as the destination.

POST or GET depending on the HTTP method supported by the webhook provider. Click on the Next button to connect to the webhook, test the connection, and create it.

Setting up a Sync
-
Supported Destination Modes
| Destination Mode | Supported |
|---|---|
| Upsert | ✅ |
| Mirror | ✅ |
| Append | ✅ |
| Create | ✅ |
| Delete | ✅ |
Upsert destination sync mode. customer_id has been selected as the Primary Key for the Warehouse source. The source fields first_name, last_name, email, active have been mapped to the destination fields my_first_name, my_last_name, email, active respectively.

-
Payload format for
POST
_valmi_meta that describes the action _valmi_sync_op that can be be performed in the webhook server. Additionally, _valmi_row_num shows the row number of the source data, starting with index 1.
-
Payload format for
GET
GET method flattens out the above json payload as request parameters. Below is the GET version of the http callback.
"GET /?_valmi_meta__valmi_row_num=347&_valmi_meta__valmi_sync_op=upsert&my_first_name=Ryan&my_last_name=Salisbury&email=ryan.salisbury%40sakilacustomer.org&active=1&_message_id=346&_sync_mode=upsert HTTP/1.1"
-
Verifying loaded data on the Webhook

POST method, the JSON payload of the http callbacks is as described above.
