> ## Documentation Index
> Fetch the complete documentation index at: https://docs.datavibe.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Clay

> Place DataVibe between Clay-generated copy and your CRM or sequencer.

Use a Clay HTTP step after enrichment and copy generation, before any send or CRM
write:

```text theme={null}
Clay enrichment → LLM draft → POST /v1/gate/outbound → hold/block/release → sequencer
```

## HTTP step

**URL:** `https://api.datavibe.cc/v1/gate/outbound`

```json theme={null}
{
  "recipient": "{{email}}",
  "subject": "{{subject}}",
  "body_text": "{{generated_opener}}",
  "body_html": "<p>{{generated_opener}}</p>",
  "source_model": "{{model_name}}",
  "idempotency_key": "clay-{{row_id}}",
  "metadata": {
    "integration": "clay",
    "freshness_policy_days": 180,
    "source_records": [
      {
        "id": "{{source_id}}",
        "entity": "{{company}}",
        "event_type": "acquisition",
        "acquired_at": "{{acquisition_date_iso}}",
        "evidence_tier": "{{evidence_tier}}",
        "source_url": "{{source_url}}"
      }
    ]
  }
}
```

Set `Authorization: Bearer dv_live_...` and `Content-Type: application/json`.

## Branch safely

* `BLOCKED`, `FAILED`, or `REJECTED`: quarantine the row.
* `QUEUED` or `DISPATCHING`: hold the row pending a final decision.
* `APPROVED`: pass the row to the sequencer when Clay owns dispatch.
* `SENT`: do not send again.

With the `clay_revops_freshness_v1` policy template, production workflows must
provide structured source records. DataVibe cross-checks recent-event language
against acquisition, funding, and promotion dates.
