Webhooks

If you are using NocoDB with version 0.90 onwards, please check out the latest documentation here instead. The documentation for previous versions is no longer maintained and will be completely removed on 30 Jun 2022. See v0.90 Important Announcement for more.

Triggers

Webhooks allows user to trigger on certain operations on following database operations

  • AFTER INSERT
  • AFTER UPDATE
  • AFTER DELETE

The triggers will trigger asynchronously without blocking the actual operation.

Applications/services

TriggerDetails
EmailSend email to certain email addresses
SlackNotify via Slack channel
Microsoft TeamsNotify via Microsoft Teams channel
DiscordNotify via Discord channel
MattermostNotify via Mattermost channel
TwilioSend SMS to certain mobile numbers
Whatsapp TwilioSend Whatsapp messages to numbers using Twilio
URLInvoke an HTTP API

Accessing Data: Handlebars

The current row data and other details will be available in the hooks payload so the user can use handlebar syntax to use data.

We are using Handlebars library to parse the payload internally.

Example

For a table with column names (id, title, created_at, updated_at).
For INSERT/ UPDATE based triggers, use following handlebars to access corresponding data fields.

  • {{ data.id }}
  • {{ data.title }}
  • {{ data.created_at }}
  • {{ data.updated_at }}

Note that, for Update trigger - all the fields in the ROW will be accessible, not just the field updated. For DELETE based triggers, only {{ data.id }} is accessible representing ID of the column deleted.

For all trigger, following user information associated with person trigger can be accessed.

  • {{ user.id }} : Unique auto incremented NocoDB system value
  • {{ user.email }} : User E-mail.
  • {{ user.roles }} : User Role amongst [Owner, Creator, Editor, Commenter, Viewer].

JSON format

Use {{ json data }} {{ json user }} to dump complete data & user information available in JSON format

Additional references:

Handlebar Guide.

Application Guide

Discord

1. Create WebHook

  • On Discord, open your Server Settings and head into the Integrations tab:
  • Click the "Create Webhook" button to create a new webhook!

Screenshot 2022-02-22 at 1 21 59 PM

  • Choose channel to which this webhook will post to.
  • Copy webhook URL

Screenshot 2022-02-22 at 1 23 18 PM

(Sample webhook URL: https://discord.com/api/webhooks/945558283756908644/GNUtiGuzfOky6wZ4ce30XuXc1sbPK3Od7EC-4t6hihh5Fovv6oU9OsdT6mGuoL1QlTzj).
Detailed procedure for discord webhook described here.

2. Install Plugin

  • Open 'App Store' (under Settings), hover over Discord tile. Click 'Install'.

Screenshot 2022-02-22 at 11 30 36 AM

  • Provide a name of your choice (not to be confused with Discord Channel name).
  • Paste Discord Webhook URL copied from Step (1.) above.

Screenshot 2022-02-22 at 11 31 21 AM

3. Configure

  • Open project, associated table.
  • Click 'More' > 'Webhooks'.

Screenshot 2022-02-22 at 11 16 18 AM

  • Click 'Add New Webhook'

Screenshot 2022-02-22 at 11 18 04 AM

  • Configure
    • Title: Name of your choice to identify this Webhook.
    • Event: Trigger event. Choose between.
      • After Insert: Trigger event for new ROW insertion.
      • After Update: Trigger event for existing ROW updation.
      • After Delete: Trigger event for ROW deletion
    • On Condition: [Optional] Enable if you wish to associate additional condition/constraint with the trigger configured above.
    • Notification: Select 'Discord'.
    • Select Discord Channels: Select from the drop down list, channel name configured in Step (2). Please click on 'Reload' if drop down list is empty.
    • Body: Message to be posted over Discord channel, via webhooks on trigger of configured event.
      • Body can contain plain text &
      • Handlebars {{ }}

Slack

1. Create WebHook

  • Details to create slack webhook are captured here

2. Install Plugin

  • Procedure remain same as listed for DISCORD channel configuration above

3. Configure Webhook

  • Procedure remain same as listed for DISCORD channel configuration above

Microsoft Teams

1. Create WebHook

  • On Teams, open your channel, click on three-dots menu (far right) and select 'Connectors'
154971352-6912d53b-cf71-4edd-a319-1c85be85f0c5
  • Select incoming webhook & click 'Configure'
154971434-0ced97f7-205a-4e2e-8f88-17092cb7771a
  • Create webhook, Copy webhook URL

154971683-db16be7f-4f07-4447-8f2e-ac50e133bef8

2. Install Plugin

  • Open 'App Store' (under Settings), hover over 'Microsoft Teams' tile. Click 'Install'.

Screenshot 2022-02-22 at 7 32 52 PM

  • Provide a name of your choice (not to be confused with Teams Channel name).
  • Paste MS Teams Webhook URL copied from Step (1.) above.
154971222-7fe2c25a-d8c6-46b0-ba1e-a05ff1cf6537

3. Configure

  • Open project, associated table.
  • Click 'More' > 'Webhooks'.

Screenshot 2022-02-22 at 11 16 18 AM

  • Click 'Add New Webhook'

Screenshot 2022-02-22 at 11 18 04 AM

  • Configure
    • Title: Name of your choice to identify this Webhook.
    • Event: Trigger event. Choose between.
      • After Insert: Trigger event for new ROW insertion.
      • After Update: Trigger event for existing ROW updation.
      • After Delete: Trigger event for ROW deletion
    • On Condition: [Optional] Enable if you wish to associate additional condition/constraint with the trigger configured above.
    • Notification: Select 'Microsoft Teams'.
    • Select Teams Channels: Select from the drop down list, channel name configured in Step (2). Please click on 'Reload' if drop down list is empty.
    • Body: Message to be posted over Teams channel, via webhooks on trigger of configured event.
      • Body can contain plain text &
      • Handlebars {{ }}