
Clay PushRows
CertifiedPush rows to a Clay table
Clay PushRows
Push rows to a Clay table
Sends records to a Clay table through its inbound webhook, in sequential batches. Network errors, HTTP 429 and HTTP 5xx responses are retried up to 3 times with exponential backoff.
type: io.kestra.plugin.clay.PushRowsExamples
Send rows to a Clay table
id: push_leads_to_clay
namespace: company.growth
tasks:
- id: push_to_clay
type: io.kestra.plugin.clay.PushRows
webhookUrl: "{{ secret('CLAY_WEBHOOK_URL') }}"
authToken: "{{ secret('CLAY_WEBHOOK_TOKEN') }}"
rows:
- email: alice@example.com
company: Acme
- email: bob@example.com
company: Globex
chunkSize: 100
failOnPartialError: true
Send rows produced by another task
id: push_query_results_to_clay
namespace: company.growth
tasks:
- id: query_contacts
type: io.kestra.plugin.jdbc.postgresql.Query
url: "jdbc:postgresql://localhost:5432/crm"
username: "{{ secret('PG_USER') }}"
password: "{{ secret('PG_PASSWORD') }}"
sql: "SELECT email, first_name, company FROM contacts WHERE enriched_at IS NULL"
fetchType: FETCH
- id: push_to_clay
type: io.kestra.plugin.clay.PushRows
webhookUrl: "{{ secret('CLAY_WEBHOOK_URL') }}"
rows: "{{ outputs.query_contacts.rows }}"
chunkSize: 100
Properties
rows *stringarrayobject
Structured data items, either as a map, a list of map, a URI, or a JSON string.
Structured data items can be defined in the following ways:
- A single item as a map (a document).
- A list of items as a list of maps (a list of documents).
- A URI, supported schemes are
kestrafor internal storage files,filefor host local files, andnsfilefor namespace files. - A JSON String that will then be serialized either as a single item or a list of items.
webhookUrl *string
Clay webhook URL
Absolute HTTP(S) URL generated for the Clay table webhook. Store it as a Kestra secret.
assets
Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.
io.kestra.core.models.assets.AssetsDeclaration
IGNOREFAILWARNAsset failure behavior
Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.
Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.
The assets consumed as inputs.
io.kestra.core.models.assets.AssetIdentifier
1The assets produced as outputs.
io.kestra.plugin.ee.assets.Dataset
1150{}1150io.kestra.plugin.ee.assets.File
1150{}1150io.kestra.plugin.ee.assets.Table
1150{}1150io.kestra.plugin.ee.assets.VM
1150{}1150io.kestra.core.models.assets.External
1150{}1150io.kestra.core.models.assets.Custom
11501Custom asset type
{}1150authToken string
Clay webhook authentication token
Optional token sent as a Bearer authorization header. Store it as a Kestra secret.
chunkSize integerstring
100Rows per HTTP request
Maximum rows in each request. Must be between 1 and 5,000. Defaults to 100. A single execution accepts at most 50,000 rows in total.
failOnPartialError booleanstring
trueFail when a chunk cannot be sent
When true, fail after the first chunk exhausts retries. When false, record the failed chunk and continue. Defaults to true.
Outputs
chunkCount integer
Number of logical chunks submitted
Logical chunks the input was split into using chunkSize. This is not the number of raw HTTP attempts: retries are not counted.
failedChunks array
Zero-based indices of failed chunks
Chunks that still failed after retries. Only populated when failOnPartialError is false.
rowCount integer
Number of rows accepted by Clay
Rows contained in the chunks Clay accepted. Rows from failed chunks are excluded.