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.

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.