Webhook bridge for chaining Clay tables.
Reuse Clay workflows without rebuilding columns or copying results between tables
Mold lets you call the same processing table from every Clay workflow when repeated logic starts spreading across campaigns, by forwarding each row into one reusable table and returning the processed result to the calling HTTP API column.
✓ 100% free and open source ✓ No database or queue ✓ Works with Clay HTTP and webhook columns
⭐ Used by top GTM Engineers
Keep one Clay workflow useful everywhere
A process built in one table is available to every campaign that needs it. The logic stays in one place, and each calling row receives the finished result where its own workflow can continue.
Choose between duplicated columns, manual handoffs, custom middleware — or one Clay workflow every table can call
| Mold | Duplicated columns | Manual handoffs | Custom bridge | |
|---|---|---|---|---|
| Free software | ✅ | ✅ | ✅ | ✅ |
| No custom code | ✅ | ✅ | ✅ | ❌ |
| Works with existing Clay tables | ✅ | ✅ | ✅ | ✅ |
| Reusable processing table | ✅ | ❌ | ✅ | ✅ |
| Returns cross-table result to caller | ✅ | ❌ | ❌ | ✅ |
| No polling or queue | ✅ | ✅ | ❌ | ✅ |
| Bearer token authentication | ✅ | ❌ | ❌ | ✅ |
| Configurable timeout and capacity | ✅ | ❌ | ❌ | ✅ |
| One-click deployment | ✅ | ❌ | ❌ | ❌ |
Build the process once in Clay and call it where it is needed. Mold handles the round trip, the reusable table handles the work, and the result returns to the calling row.
Call one Clay table from another. Get the processed result back in the same step.
📈 Keep shared logic in one table
Put the enrichment, scoring, or transformation steps in one processing table. Every calling workflow can use the same live version.
⚡ Let Mold handle the round trip
Mold forwards the row to the processing table, waits for its callback, and returns the callback body to the original HTTP API column.
💬 Connect the next workflow to the same table
Point another Clay HTTP API column at Mold and name the existing processing table webhook as its target. No columns need to be copied.
Connect your first two Clay tables in fifteen minutes
1️⃣Deploy MoldGenerate an API token, deploy on Render or Railway, and copy the service URL. |
2️⃣Prepare the processing tableUse a webhook source for the input and a final HTTP API column for Mold's callback. |
3️⃣Call it from another tablePost the row to Mold and use the processed response in the columns that follow. |
Choose how to get started
Self-serveFor GTM engineers who build in ClayFree ✓ Synchronous bridge and callback endpoints ✓ Bearer token authentication ✓ Configurable request timeout and capacity ✓ Request body and forward-time limits ✓ Render, Railway, Docker, or Node deployment ✓ No database, queue, or polling service |
Done-with-youHands-on setup and ongoing support for your GTM teamLet's talk ✓ Everything in self-serve ✓ Full setup and deployment ✓ API token and environment configuration ✓ Mold connected to your existing Clay tables ✓ Team rollout, training, and best practices ✓ Ongoing maintenance and upgrades ✓ Dedicated Slack channel support |
| Deploy Mold | Book a demo |
Get your questions answered
Do I need to know how to code?
No code is needed to deploy Mold from the Render blueprint or Railway template. You still need to configure HTTP API columns in the two Clay tables.
What does Mold do between the two tables?
Table A posts a row and Table B's webhook URL to Mold. Mold forwards the row with a unique callback URL, waits for Table B's final HTTP API column to call it, then returns that body to Table A.
Does Mold store my Clay data?
No durable database is used. Pending request state exists only in the running process and is removed after the callback or timeout.
What happens if the processing table is slow?
Mold waits up to five minutes by default, and you can change that with TIMEOUT_MS. The initial forward to Table B must be accepted within 30 seconds.
Can I run more than one Mold instance behind a load balancer?
No. Pending callbacks live in the memory of one process, so requests and callbacks must reach the same instance.
Can Table B's webhook require authentication?
Yes. Include its optional auth token in the bridge request and Mold sends it in Clay's x-clay-webhook-auth header.
What does it cost?
Mold is free and MIT licensed. You pay only for the infrastructure where you deploy it and the Clay or data services used by your workflows.
Connect your first two Clay tables in fifteen minutes
A reusable Clay workflow can serve another table after one deployment and two HTTP API columns. Mold handles the request and response. You choose the table that does the work.
✓ 100% free and open source ✓ No database or queue ✓ Works with Clay HTTP and webhook columns
⭐ Used by top GTM Engineers
{
"request": {
"method": "GET",
"url": "https://api.eliasstravik.com/projects/mold"
},
"response": {
"status": "200 OK",
"headers": {
"content-type": "application/json; charset=utf-8",
"x-powered-by": "one person + systems"
},
"body": {
"name": "mold",
"description": "Webhook bridge for chaining Clay tables",
"language": "TypeScript",
"stars": 7,
"forks": 1,
"repo": "https://github.com/eliasstravik/mold",
"readme": "https://github.com/eliasstravik/mold#readme"
}
}
}