Skip to main content
Default and Clay connect by webhook. A Clay table calls a Default workflow through an Incoming Webhook URL or the Default API, and a Default workflow sends records to a Clay table with the Send to Webhook node. Clay is not a native integration in Default. It has no card under Settings → Integrations, and Default does not read or write Clay tables directly. Every connection on this page is an HTTP request that 1 tool sends to the other.

How Default and Clay connect

Where Clay fits next to enrichment in Default

Teams that use both tools often keep Clay for work that can finish later, such as account research and list building, and keep it off the path a live inbound lead takes to routing and the scheduler. The 2 tools return data at different times: For example, a demo request can run Enrich Data, then a Multi-Branch node on company size, then Round-Robin and Display Scheduler, all while the visitor waits. See Enrichment nodes and Waterfalls.

Call a Default workflow from Clay with an incoming webhook

An incoming webhook accepts any JSON body. Use it when Clay should start a workflow for each row.
1

Create the webhook in Default

In Workflows, create a workflow and add the Incoming Webhook trigger. Under Connected Webhook, select Create new webhook.
2

Copy the URL and the secret

The trigger shows the Ingestion URL and the Bearer secret. Copy the URL, then reveal and copy the secret. The secret is shared by every incoming webhook in your workspace. See Webhook Secret.
3

Add an HTTP API column in Clay

In the Clay table, add an HTTP API column that sends a POST request to the Ingestion URL. Add a header named Authorization with the value Bearer <your secret>, and build a JSON body from the row’s columns, for example:
4

Capture a sample

In the Default trigger, under Test event, select Listen for test event, then run the Clay column on 1 row within 5 minutes. Default stores that request as the sample and does not run the workflow for it. You can also select Paste a sample and paste the JSON.
5

Map the identity

Under Identity mapping, set Person email to the email field. Later nodes, such as Enrich Data, then treat the request as that person. If some rows have no email, also set Company domain to the domain field. Default uses the domain only for rows without an email.
6

Build and publish the workflow

Add the nodes that act on the row. Every field in the sample is in the data picker, so type {{ to use 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.
Send 1 row per request. A request whose body is a list starts 1 workflow run with the whole list. If the Clay column can run again on the same row, for example after the row changes, each run starts the workflow again. Check the CRM with Match Record first and route only new records, so a repeat request does not reassign an owner.

How the Ingestion URL responds

Call a Default workflow from Clay with the API

The API trigger starts a workflow from a request to the Default API. Use it when Clay needs the workflow’s result in the response. Pace the Clay column so it stays under 30 requests per minute for each API key. For the request format and error codes, see Route and book through the API and Fire a trigger.

Send records from Default to Clay

The Send to Webhook node sends an HTTP request from a workflow to a Clay table’s webhook URL.
1

Set up the table in Clay

Create a Clay table that receives rows from a webhook, and copy its webhook URL. If Clay gives the webhook an authentication token, copy that too.
2

Add Send to Webhook

In the Default workflow, add Send to Webhook. Set Request Type to POST and Request URL to the Clay webhook URL. If Clay gave you a token, add it under Headers with the header name Clay uses.
3

Build the body

Under Body, use the Fields tab to add a key for each column the Clay table expects, for example email, company_domain, and assigned_rep. Type {{ to fill each value from the trigger or an earlier node.
4

Test the workflow

Select Test, fill in a sample, and select Run Test. Confirm the row arrived in Clay. A test sends the request for real.
Place the node where waiting on it costs nothing. It waits for Clay’s reply, for up to 30 seconds, before the next node runs. Good places are a workflow that no visitor waits on, such as one started by CRM Record Created, or the end of a workflow after Display Scheduler. Clay’s reply confirms it received the row. To use what Clay finds, have the Clay table post its results to a Default Incoming Webhook, and let that workflow write them to the CRM with Match Record and Update Record. Send to Webhook cancels a request after 30 seconds, does not follow redirects, and cannot reach private network addresses. See Send to Webhook.

Troubleshoot Clay and Default

Related: Default integrations