Database Webhooks
Database Webhooks allow you to send real-time data from your database to another system whenever a table event occurs.
You can hook into three table events: INSERT
, UPDATE
, and DELETE
. All events are fired after a database row is changed.
Database Webhooks are very similar to triggers, and that's because Database Webhooks are just a convenience wrapper around triggers using the pg_net extension. This extension is asynchronous, and therefore will not block your database changes for long-running network requests.
This video demonstrates how you can create a new customer in Stripe each time a row is inserted into a profiles
table:
note
Database Webhooks were previously known as Function Hooks.
Creating a webhook#
- Create a new Database Webhook in the Dashboard.
- Give your Webhook a name.
- Select the table you want to hook into.
- Select one or more events (table inserts, updates, or deletes) you want to hook into.
We currently support HTTP webhooks. These are sent as a POST
request with a JSON payload.
Payload#
The payload is automatically generated from the underlying table record:
1type InsertPayload = {
2 type: 'INSERT'
3 table: string
4 schema: string
5 record: TableRecord<T>
6 old_record: null
7}
8type UpdatePayload = {
9 type: 'UPDATE'
10 table: string
11 schema: string
12 record: TableRecord<T>
13 old_record: TableRecord<T>
14}
15type DeletePayload = {
16 type: 'DELETE'
17 table: string
18 schema: string
19 record: null
20 old_record: TableRecord<T>
21}
Resources#
- pg_net: an async networking extension for PostgreSQL