Skip to main content
Clay logo

Overview

Add Clay to any ModuleX agent or workflow. Push records into a Clay table through that table’s inbound webhook so Clay can run its data-enrichment waterfall on prospects and accounts.
Categories: Sales · CRM · Enrichment · Auth: Webhook Auth Token · Actions: 1

Authentication

Webhook Auth Token

Authenticate with the optional auth token from a Clay table’s webhook source. Sent in the x-clay-webhook-auth header. Leave empty if the table’s webhook does not require authentication.
1

Step 1

In a Clay workbook, click + Add and search for ‘Webhooks’, then ‘Monitor webhook’.
2

Step 2

Copy the webhook URL Clay shows for the table — this is the webhook_url action parameter.
3

Step 3

If the table has webhook authentication enabled, copy the auth token Clay displays (it is shown only once).
4

Step 4

Paste the auth token below; otherwise leave it blank.

Required Credentials

FieldDescriptionRequiredFormat
Clay Webhook Auth TokenOptional auth token for a Clay table webhook, sent in the x-clay-webhook-auth headerNo-

Available Actions

Parameters

webhook_url
string
required
The Clay table webhook URL to send the record to
data
object
required
The record to populate, as a JSON object whose keys map to the Clay table column names (e.g. name, email, company, domain)

Response

{
  "$defs": {
    "PopulateMetadata": {
      "additionalProperties": false,
      "description": "Transport-level metadata about the webhook response.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Status"
        },
        "status_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Status Text"
        },
        "headers": {
          "additionalProperties": {
            "type": "string"
          },
          "title": "Headers",
          "type": "object"
        },
        "timestamp": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Timestamp"
        },
        "content_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Content Type"
        }
      },
      "title": "PopulateMetadata",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "Result of pushing a record to a Clay table webhook.",
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "data": {
      "anyOf": [
        {},
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Data"
    },
    "metadata": {
      "anyOf": [
        {
          "$ref": "#/$defs/PopulateMetadata"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "success"
  ],
  "title": "PopulateOutput",
  "type": "object"
}

Limits & Quotas

  • Asynchronous enrichment: the webhook acknowledges receipt immediately; Clay runs its enrichment waterfall afterward, so the enriched columns appear inside Clay, not in the tool response.
  • Response shape: the tool returns whatever the webhook acknowledges (data) plus transport metadata (HTTP status, status text, response headers, a call-time ISO-8601 UTC timestamp, and the content type). A non-JSON acknowledgment is wrapped as {"message": "<text>"}.
  • Error model: non-2xx responses, timeouts, and unexpected exceptions are caught and returned as success=False + error rather than raising.

Dropcontact

Brandfetch

Enrow