Create a minimal working Clay example. Use when starting a new Clay integration, testing your setup, or learning basic Clay API patterns. Trigger with phrases like "clay hello world", "clay example", "clay quick start", "simple clay code".
Minimal working example: send a company domain to a Clay table via webhook, let Clay's enrichment columns fill in company data, and retrieve the enriched result. Clay does not have a traditional SDK — you interact with it via webhooks (data in), HTTP API columns (data out), and the web UI.
clay-install-auth setupIn the Clay web UI:
domain, company_name, employee_count, industrydomain column as input)# Send a single company domain to your Clay table
curl -X POST "https://app.clay.com/api/v1/webhooks/YOUR_WEBHOOK_ID" \
-H "Content-Type: application/json" \
-d '{"domain": "openai.com"}'
Within seconds, Clay creates a new row and auto-runs the enrichment column. The company_name, employee_count, and industry columns fill in automatically.
# Batch send — each object becomes a row
for domain in stripe.com notion.so figma.com linear.app; do
curl -s -X POST "https://app.clay.com/api/v1/webhooks/YOUR_WEBHOOK_ID" \
-H "Content-Type: application/json" \
-d "{\"domain\": \"$domain\"}"
echo " -> Sent $domain"
done
// hello-clay.ts — send records to Clay via webhook
const CLAY_WEBHOOK_URL = process.env.CLAY_WEBHOOK_URL!;
interface LeadInput {
email?: string;
domain?: string;
first_name?: string;
last_name?: string;
linkedin_url?: string;
}
async function sendToClay(lead: LeadInput): Promise<Response> {
const response = await fetch(CLAY_WEBHOOK_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(lead),
});
if (!response.ok) {
throw new Error(`Clay webhook failed: ${response.status} ${response.statusText}`);
}
return response;
}
// Send a test lead
await sendToClay({
email: 'jane@stripe.com',
first_name: 'Jane',
last_name: 'Doe',
domain: 'stripe.com',
});
console.log('Record sent to Clay — check your table for enriched data.');
import requests
import os
CLAY_WEBHOOK_URL = os.environ["CLAY_WEBHOOK_URL"]
def send_to_clay(lead: dict) -> requests.Response:
"""Send a lead record to a Clay table via webhook."""
response = requests.post(
CLAY_WEBHOOK_URL,
json=lead,
headers={"Content-Type": "application/json"},
)
response.raise_for_status()
return response
# Test it
send_to_clay({
"email": "jane@stripe.com",
"first_name": "Jane",
"last_name": "Doe",
"domain": "stripe.com",
})
print("Record sent to Clay — check your table for enriched data.")
| Error | Cause | Solution |
|-------|-------|----------|
| 404 Not Found | Invalid webhook URL | Re-copy URL from Clay table settings |
| 422 Unprocessable | Invalid JSON payload | Validate JSON structure before sending |
| Row appears but no enrichment | Enrichment column not configured | Add enrichment column in Clay UI, enable auto-run |
| 429 Too Many Requests | Exceeded webhook rate limit | Add 100ms delay between requests |
| Webhook limit reached (50K) | Webhook exhausted | Create a new webhook source on the table |
The first run confirms receipt of a controlled test row and returns only a redacted status/correlation value. A successful webhook acknowledgement does not confirm enrichment quality, lawful data use, or CRM publication; inspect the authorized staging table and configured conditions before taking the next step.
Send a synthetic or explicitly approved test record to a staging webhook, log the response status without the webhook URL or personal data, and verify that the resulting row is subject to the intended enrichment conditions. If the endpoint returns 4xx/5xx, stop instead of creating new webhooks or resending the record until the configuration is corrected.
Proceed to clay-local-dev-loop for iterating on enrichment workflows locally.
下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer