-- 1. Create the table for storing incoming webhooks CREATE TABLE IF NOT EXISTS webhook_events ( id SERIAL PRIMARY KEY, event_type TEXT, payload JSONB, created_at TIMESTAMP DEFAULT NOW() ); -- 2. Create the trigger function CREATE OR REPLACE FUNCTION notify_new_webhook() RETURNS TRIGGER AS $$ BEGIN -- Notify the 'new_webhook' channel with the row data PERFORM pg_notify('new_webhook', row_to_json(NEW)::text); RETURN NEW; END; $$ LANGUAGE plpgsql; -- 3. Create the trigger DROP TRIGGER IF EXISTS trg_notify_webhook ON webhook_events; CREATE TRIGGER trg_notify_webhook AFTER INSERT ON webhook_events FOR EACH ROW EXECUTE PROCEDURE notify_new_webhook();