From 31621732c06c5aedaefb5e58972c090cf4f2a457 Mon Sep 17 00:00:00 2001 From: Raju Udava <86527202+dstala@users.noreply.github.com> Date: Thu, 11 Apr 2024 11:06:26 +0000 Subject: [PATCH] docs: webhook body usage --- .../020.webhook/020.create-webhook.md | 61 ++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/packages/noco-docs/docs/130.automation/020.webhook/020.create-webhook.md b/packages/noco-docs/docs/130.automation/020.webhook/020.create-webhook.md index 00eea65d61..794bfaa2b6 100644 --- a/packages/noco-docs/docs/130.automation/020.webhook/020.create-webhook.md +++ b/packages/noco-docs/docs/130.automation/020.webhook/020.create-webhook.md @@ -45,7 +45,7 @@ Webhook will be triggered only when the configured condition wasn't met before t In summary, webhook will be triggered only when `Condition(old-record) = false` and `Condition(new-record) = true`. -### Webhook Response Sample +### Webhook response sample @@ -268,6 +268,65 @@ In summary, webhook will be triggered only when `Condition(old-record) = false` [//]: # () [//]: # (![image](https://user-images.githubusercontent.com/35857179/228790148-1e3f21c7-9385-413a-843f-b93073ca6bea.png)) +### Webhook with custom payload ☁ +In the enterprise edition, you can set up a personalized payload for your webhook. Just head to the `Body` tab to make the necessary configurations. Users can utilize [handlebar syntax](https://handlebarsjs.com/guide/#simple-expressions), which allows them to access and manipulate the data easily. + +Use `{{ json event }}` to access the event data. Sample response is as follows +```json +{ + "type": "records.after.insert", + "id": "0698517a-d83a-4e72-bf7a-75f46b704ad1", + "data": { + "table_id": "m969t01blwprpef", + "table_name": "Table-2", + "view_id": "vwib3bvfxdqgymun", + "view_name": "Table-2", + "rows": [ + { + "Id": 1, + "Tags": "Sample Text", + "CreatedAt": "2024-04-11T10:40:20.998Z", + "UpdatedAt": "2024-04-11T10:40:20.998Z" + } + ] + } +} +``` + +:::info +**Note:** The custom payload feature is only available in the enterprise edition. +::: + + +#### Discord Webhook +Discord webhook can be configured to send messages to a Discord channel. Discord request body should contain content, embeds or attachments, otherwise request will fail. Below is an example of Discord webhook payload. More details can be found [here](https://birdie0.github.io/discord-webhooks-guide/discord_webhook.html) + +```json +{ + "content": "Hello, this is a webhook message", + "embeds": [ + { + "title": "Webhook", + "description": "This is a webhook message", + "color": 16711680 + } + ] +} +``` + +To send complete event data to Discord, use below payload +``` +{ + "content" : {{ json ( json event ) }} +} +``` + +One can also customize the payload as per the requirement. For example, to send only the `Title` field to Discord, use below payload. Note that, the value of `content` is what that will get displayed in the Discord channel. +``` +{ + "content": "{{ event.data.rows.[0].Title }}" +} +``` ## Environment Variables In self-hosted version, you can configure the following environment variables to customize the webhook behavior.