Get a demo

CSV To Clay Webhook Sender

Loading leads from a CSV into a Clay webhook table

Sends a CSV into a Clay table through its webhook source, matching each column to the payload key your table's formulas actually read. Checks a small test batch in Clay before sending the rest, so columns don't land blank.

About this Skill

When to use it

Use this Skill when you need to load a CSV of leads into a Clay table through its webhook source without breaking the table's formulas. It maps CSV columns to the exact payload keys your table reads, tests a small batch first, then sends the rest in bulk with retry and resume support. Avoid using it for creating or configuring the table, enriching or deduping rows, updating existing rows, or sending to anything other than a Clay webhook.

What it delivers

You get a verified column mapping, a live progress file, and a final verdict showing how many rows landed. The test batch lets you catch blank columns before the full send, and the Skill isolates failed rows into their own file for a targeted resend.

SKILL.md preview

Sign in to install and view the complete SKILL.md

Illustrative preview. Sign in for the actual file.

How someone would prompt this

Load this 31,000-row CSV of leads into my Clay table through its webhook. Last time the columns came in blank after a CSV import, so check the key mapping and test a small batch before sending the rest.

Inputs & outputs

What someone provides before the Skill runs, and the reviewable artifacts it returns.

Inputs

  • 01CSV fileA UTF-8 CSV or TSV with a header row, one lead per row, ready to load.
  • 02Clay webhook and table
    • The webhook URL from your table's Webhook source
    • the Clay table whose column formulas define the payload keys.
  • 03Column mapping
    • Confirm or correct the CSV-header-to-payload-key mapping the Skill derives from your table's formulas
    • list any CSV columns that should not be sent.
  • 04Test and send settings
    • Choose how many rows to test before the full send (default 25)
    • set parallel workers and retry attempts (default 8 and 8, capped at 12 workers)
    • set a resume offset if restarting a stopped send.
  • 05Per-row cost of the tablewhat the table's own columns spend when a row lands, read from the table's credit usage after the test send

Outputs

  • 01Column mapping tableShows how each CSV header maps to the payload key your table reads, so you can fix any mismatch before sending.
  • 02Live send progress fileTracks rows sent, failed, and rate in real time while the bulk send runs, so you can monitor status without stopping it.
  • 03Final send verdictTells you whether the send fully completed, had failures, landed short, or lacked verification data, so you know what to do next.

Representative output

Key mapping (shown for correction before anything is sent)

CSV headerPayload keyRead by columnStatus
company_nameCompanyCompanyrenamed
PhonePhonePhone (first try)matched
linkedin_urlLinkedIn LinkLinkedIn Linkrenamed
run_labeldropped
scrape_notesscrape_notesunread

Progress file (rewritten every two seconds during the send)

doneokfailedrows/secstatus tally
12,480 / 31,20612,47198.4200: 12,471 · 429: 318 · 400: 9

Verdict line

31,206 rows · 25 tested, all 7 read columns landed · 31,181 bulk-sent at 8.4 rows/s in 62 min · 9 failed

How the Skill runs

Follow the steps in order. Each row includes the full instruction.

01
Check setup and confirm access

Confirms Python and the Clay CLI are available before starting and stops with a fix if either is missing; only the Clay table's own columns incur cost, not this Skill.

Step
02
Collect CSV and send settings

Gathers the CSV, webhook URL, table, columns to drop, test size, and worker settings, then reports row count and flags duplicate or empty headers.

Action
03
Map CSV columns to payload keys

Reads the table's formulas to find the real payload keys and builds a mapping table showing matched, renamed, unread, or dropped columns for you to review and correct.

Step
04
Run free preflight checks

Validates the key mapping, checks encoding, blanks null-like text values, and runs a dry run that prints the first payload without sending anything.

Step
05
Send and verify a test batch

Sends a small batch of rows for real, then stops and waits for you to confirm in Clay that the right columns landed and to approve the cost and write before the full send continues.

Action
06
Run the full bulk send

Sends the remaining rows in the background with multiple workers, jittered retries, and a live progress file, without treating more workers as a way to go faster than the measured safe limit.

Action
07
Reconcile the results

Compares rows sent, rows failed, and the table's actual row growth to produce one verdict: complete, complete with failures, landed short, or unverified.

Step
08
Deliver files and verdict

Hands back the mapping file, progress file, send log, and failures file along with the verdict, and offers to save non-secret settings for next time.

Step

Connections required

No connections listed.

Install Clay and run it

Sign in once, install the Skill, then run the prompt.

  1. 1Install ClayUse the connector or official plugin in your coding-agent environment.
  2. 2Sign up or log inAuthorize Clay access and return when the connection is ready.
  3. 3Install the SkillRun the one-line install command from the Add this Skill card.
  4. 4Run the SkillPaste the example prompt and review the result.

Version history

Version 1From submitted SKILL.mdCurrent

Related Skills

Related searches