PyAI x Clay
Every completed call becomes a row in your Clay table.
Clay's public API is read-only for tables, so rows arrive the supported way: through your table's webhook source. Add a Webhook source, paste its URL into PyAI, and every completed call appends a row with one column per field (TL;DR, summary, next steps, caller number, or the AMD verdict). Direct from PyAI, no Zapier hop in between.
- Status
- Live
- Direction
- PyAI to Clay
- Setup
- Console, no code
- Cost
- Included
What lands in Clay
One row per completed call, flat so every field is a column your table formulas and enrichments can use immediately. Recap rows carry the summary fields; AMD rows carry the verdict fields.
The row after a rescheduling call
event: recap.call.completed
occurred_at: 2026-08-01T09:13:20Z
call_id: call_8fK2mQ9xR4
tldr: Customer asked to reschedule Friday's installation
summary: The customer called to move their appointment...
next_steps: Confirm the new slot by SMS
customer_phone: 15551234567Setup, end to end
- 1
In your Clay table, add a Webhook source and copy its URL.
- 2
In the PyAI console, open Integrations and choose Clay, then paste the URL and pick your events.
- 3
Press Test; a sample row lands in the table so you can check the columns.
- 4
From the next completed call, rows append automatically.
Delivery you can prove
Verified, and never twice
Every delivery carries proof it is really from us (the X-PyAI-Signature header, an HMAC your tools can verify) and a unique receipt id (the Idempotency-Key), so a retry can never post the same call twice.
Retried, then shown to you
If your endpoint hiccups, we retry with backoff (eight attempts over about twenty minutes). Still failing? The exact error waits on the integration card in your console, not in a log you never read.
Your credentials stay yours
Tokens, secrets, and webhook URLs are encrypted at rest and masked everywhere. They never appear in the messages we send.
Included, no extra fees
Integrations come with your Recap or AMD usage. There is no per-connection or per-delivery charge.
FAQ
Why the webhook source instead of the Clay API?
Clay's public API is read-only for tables (row reads are Enterprise, and there is no public row-write endpoint). The webhook table source is Clay's supported inbound path, and PyAI delivers to it directly, so no Zapier hop is needed.
Which columns should my table expect?
Recap rows: event, occurred_at, call_id, status, pack_id, tldr, summary, next_steps, customer_phone. AMD rows: event, occurred_at, call_id, status, answered_by, answered_by_twilio, confidence, decision_ms, reason, session_label.
Can I still use Zapier for fancier flows?
Yes. The Clay integration is the direct single-table path. The Zapier integration remains for anything multi-step: filters, branching, or fanning one call out to several tools at once.
What does the Clay integration cost?
It is included with your Recap or AMD usage. There is no per-row or per-connection fee from PyAI.
Connect Clay to PyAI today.
An instant sandbox key lets you test every delivery without billing. Create an account when you want saved projects, and fund a live key for production traffic.
Agents is live in beta. Sandbox keys have daily limits and never touch billing.