How warehouse data flows to and from Default
Choose between the webhook and the API
The API allows 30 requests per minute per key, and a
429 response carries a Retry-After header.
Pace large syncs that call the API to stay under that limit. API setup and request examples:
Route and book through the API.
Send warehouse rows into Default by webhook
1
Add the Incoming Webhook trigger
In Workflows, create a workflow and add the Incoming Webhook trigger. Under
Connected Webhook, select Create new webhook, or choose an existing webhook.
2
Copy the URL and the secret
Copy the Ingestion URL. Reveal and copy the Bearer secret. It is your workspace’s
webhook secret, shared by every webhook in the workspace.
3
Set up the sync or job
In Hightouch or Census, set up a destination that sends each row as a
POST with a JSON body to
the Ingestion URL, with the header Authorization: Bearer <secret>. From Databricks, a
scheduled job can send the same request.4
Capture a sample row
Select Listen for test event, then send 1 row. For the next 5 minutes, Default saves the first
request it receives as the Captured payload and does not start the workflow with it. You can
also select Paste a sample, paste an example row, and select Save sample.
5
Map the person or company (optional)
Under Identity mapping, choose the column that holds the Person email or the
Company domain.
6
Build, test, and publish
Add the nodes that act on the row. Type
{{ in a field to insert values from the captured payload.
Select Test, then Run Test, to try it. Select Publish, then check that the status
next to the deployment switch reads Live. A new workflow
goes live when you first publish it. If the status reads Paused, turn the switch on. Each
row the sync sends now starts the workflow.Webhook request rules for syncs
- 1 row per request: each request starts 1 run of every published, enabled workflow that uses the
webhook. A body that holds an array of rows starts 1 run with the whole array. Default answers
200even when no published, enabled workflow uses the webhook. - Body: JSON, up to 1 MB. Malformed JSON gets a
400response, and a larger body gets a413. A mapped Person email column that holds text that is not a valid email address also gets a400. An empty or non-text value is not checked: the row starts the run with the Company domain instead, if one is mapped, or with no person or company. - Authentication: a missing or wrong secret gets a
401. After an admin rotates the webhook secret, update the sync with the new one. - Paused webhook: turning off the webhook’s Active switch in the trigger makes Default reject
requests with a
410. - Repeat rows: a sync can send the same record again when it changes. Check for an existing CRM record with Match Record before you route or create, and route only on the No Match branch. See CRM nodes.
Send Default data to a warehouse
Default does not write to a warehouse directly. To land Default data there, add Send to Webhook to the workflow and point it at an endpoint that loads data into the warehouse, such as a service your data team runs.1
Add Send to Webhook
Add Send to Webhook after the node whose data you want to keep, for example after a
Round-Robin node, or in a workflow that starts from the Meeting Status trigger.
2
Point it at the loading endpoint
Set Request Type to POST and Request URL to the loading endpoint.
3
Set the authorization
Choose the Authorization the endpoint expects: API Key, Token, or Basic.
4
Build the body and publish
Build the Body under Fields or JSON. Type
{{ to insert values. Publish the workflow
and check that its status reads Live. If it reads Paused, turn on the
deployment switch. Each run now sends its data to the loading
endpoint.What Default does not support with warehouses
- A native Hightouch, Census, or Databricks integration, or a card for them on the Integrations page.
- Querying or syncing from a warehouse on a schedule. The warehouse side has to send the data.
- A bulk export API. The public API covers scheduling and firing API triggers.
- Splitting a batch of rows into separate runs.