Clay PushRows

Clay PushRows

Certified

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.

yaml
type: io.kestra.plugin.clay.PushRows

Send rows to a Clay table

yaml
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

yaml
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

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 kestra for internal storage files, file for host local files, and nsfile for namespace files.
  • A JSON String that will then be serialized either as a single item or a list of items.

Clay webhook URL

Absolute HTTP(S) URL generated for the Clay table webhook. Store it as a Kestra secret.

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.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset 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.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150

Clay webhook authentication token

Optional token sent as a Bearer authorization header. Store it as a Kestra secret.

Default100

Rows 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.

Defaulttrue

Fail 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.

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.

SubTypeinteger

Zero-based indices of failed chunks

Chunks that still failed after retries. Only populated when failOnPartialError is false.

Number of rows accepted by Clay

Rows contained in the chunks Clay accepted. Rows from failed chunks are excluded.