How to send signals from Clay to Duo Copilot via Custom API Signals
Last updated: February 11, 2026
This guide walks you through sending data from a Clay table to Amplemarket's Custom API Signals using Clay's HTTP API integration.
Prerequisites: You need an active Custom API Signal set up in Amplemarket with the webhook URL ready. See Custom API Signals for the full setup guide.
Step by step
1. Add an HTTP API column
In your Clay table, click + Add column and select HTTP API. This will open the integration setup panel.

2. Configure the request
Method — Select
POSTEndpoint — Paste your Amplemarket webhook URL (e.g.
https://api.amplemarket.com/custom_signals/.../entries)Body — Define the JSON payload with the fields you want to send. Use
/to insert Clay column values. For example:
{
"full_name": "/Full Name",
"job_title": "/Job Title",
"linkedin": "/LinkedIn Profile",
"company_name": "/Company Name",
"company_domain": "/Company Domain",
"top_3_ai_products": "/Top 3 AI Products"
}
The remaining settings (Headers, Response values, Follow redirects, Retry on failure, etc.) can be left as defaults.
3. Save without running
Click the Save dropdown and select "Save and don't run". You want to send a single test row first before running the full table.
4. Run a single cell to test

Hover over the HTTP API column on any row and click the Run cell button to send one request. You should see a Status Code: 202 response confirming Amplemarket received it.
5. Finish setup on Amplemarket
Go back to your Custom API Signal setup in Amplemarket. The test data should appear. Review your enrichment mappings, configure AI personalization fields and your signal prompt, then save the signal.

6. Run for all rows
Back in Clay, click the Save dropdown and select "Save and run all rows" to send all your data to Amplemarket. You can also configure Run settings to control when the HTTP API column runs automatically (e.g. only when a certain column has data, auto-update on, etc.).
Note: The test row you ran in step 4 was sent before the signal was created, so it was treated as test data and did not generate a lead. It will be sent again when you run all rows, and this time it will count as a real signal.