Webhook
Send AI chat table exports to any HTTPS endpoint — Zapier, Make, n8n, or your own backend.
Webhook Integration
Turn AI chat tables into JSON payloads sent to any HTTPS endpoint — connect ExtractDB to Zapier, Make, n8n, or your own automation stack.
This integration is coming soon in the extension. You can set it up now; export will be available in an upcoming release.
Prerequisites
Before you begin, ensure you have:
- An HTTPS webhook URL (or
http://localhostfor local development). - The ExtractDB extension installed on your browser.
- An active ExtractDB license (Webhook is a paid integration).
Connection Steps
Set up your webhook endpoint
Create a webhook URL in your automation tool or backend:
- Zapier: Create a Zap → trigger Webhooks by Zapier → Catch Hook → copy the URL.
- Make: Create a scenario → add a Webhooks module → Custom webhook → copy the URL.
- n8n: Add a Webhook node → set method to POST → copy the production URL.
Configure ExtractDB
- Open the ExtractDB extension popup.
- Activate your license key if you have not already.
- Find the Webhook card.
- Paste your Webhook URL (must start with
https://, orhttp://localhostfor local dev). - (Optional) Enter a Secret header name and Secret header value if your endpoint requires custom authentication.
- Click Save Webhook.
Verify connection
Once saved, the webhook URL appears as the connection status. The endpoint is tested when you run your first export.
Payload format
Each export sends a POST request with Content-Type: application/json. The body shape is:
{
"source": "extractdb",
"table": {
"id": "table-node-id",
"name": "Content Calendar"
},
"fields": ["Title", "Date", "Status"],
"rows": [
{ "Title": "Blog post draft", "Date": "2025-06-01", "Status": "Planned" },
{ "Title": "Newsletter", "Date": "2025-06-08", "Status": "In progress" }
]
}| Field | Description |
|---|---|
source | Always "extractdb" — use this to identify the sender. |
table.id | Internal ID of the detected table structure. |
table.name | Human-readable name of the detected table. |
fields | List of destination field names included in the export. |
rows | Array of objects, one per exported row. |
If you configured a secret header, it is sent as a custom HTTP header on every request (e.g., X-Webhook-Secret: your-value).
Exporting data
Click Export on a chat message
- Open a supported AI chat and get a structured response.
- Click the ExtractDB button next to the message's Copy button.
Select the detected table
- In the export modal, select the table structure from the content tree.
- Choose Webhook from the destination dropdown.
Map fields and review payload
- Review the field mapping — by default, all detected fields are included.
- Toggle off any fields you do not want in the payload.
- Preview the row count before sending.
Send the webhook
- Click Export to POST the JSON payload to your configured URL.
- Your endpoint should respond with a
2xxstatus code. - A success toast confirms delivery; non-2xx responses show an error with the status code.
Automation examples
Zapier — After receiving the webhook, add actions like "Create Airtable Record" or "Add Row to Google Sheets" and map rows fields to your columns.
Make — Parse the JSON body, iterate over rows with an Iterator module, and route each row to your destination.
n8n — Connect the Webhook node to a Split Out node on rows, then branch to any integration node in your workflow.
Custom backend — Accept the POST, validate your secret header, and insert rows into your database.
Features
- Universal destination: Send data anywhere that accepts HTTPS POST requests.
- Structured JSON: Consistent payload shape for reliable automation parsing.
- Optional auth header: Protect your endpoint with a custom secret header.
- Field filtering: Choose which columns to include before sending.
Troubleshooting
- Invalid URL: Webhook URLs must use
https://. Onlyhttp://localhostis allowed for local development. - Webhook failed (4xx/5xx): Check your endpoint logs. The error message includes the HTTP status and a snippet of the response body.
- Auth header rejected: Verify the header name and value match what your server expects (case-sensitive).
- Empty payload: Ensure at least one field is mapped and the detected table contains rows.
- Endpoint not receiving data: Confirm the URL is the production URL (not a test URL that requires manual activation, like n8n's test webhook).
Privacy: Your webhook URL and secret header are stored locally on your device. Export data is sent directly from your browser to your endpoint — ExtractDB does not log or store your payloads.