DataVibe
AI SafetyDocsIntegrationAPI ReferenceBook a demoLogin

© 2026 DataVibe. Built for fintech analytics, ML, and data operations.

HomeDocsDemoLogin
Docs/Wire DataVibe into Clay. Temporal freshness gate

Last updated · June 2026

·
  • Production-ready APIs
  • SOC 2 Type I - In Progress
  • Alpha
  • Clay
  • RevOps

Wire DataVibe into Clay. Temporal freshness gate

Clay + LLM workflows with temporal freshness checks for M&A, funding, and job-change personalization. HTTP step, metadata contract, and curl smoke tests.

Wire DataVibe into Clay. Temporal freshness gate

Use this when Clay enriches accounts (M&A, funding, job changes), an LLM generates personalized openers, and you need a **pre-send gate** that blocks **stale congratulations** before CRM/sequencer dispatch.

LLMs lose sense of time. Middleware catches when copy cites old enrichment as recent news.

What this catches

Clay signalStale copy patternRule ID
M&A / acquisition"Congrats on your recent acquisition of X"source_stale_acquisition_claim
Funding round"Congrats on your recent Series B"source_stale_funding_claim
Job change / promotion"Congrats on the new role as VP of Sales"source_stale_promotion_claim

**Complementary rules:** competitor mentions and pricing hallucinations are handled by the **base policy engine** (pricing_hallucination, competitor_mention, etc.), not this scanner.

Flow

Clay enrichment row
  → LLM step (Sonnet / GPT)
  → HTTP step: POST /v1/gate/outbound
  → branch on status (BLOCKED | QUEUED | APPROVED)
  → only approved rows write to HubSpot / Instantly / sequencer

Clay table columns (examples)

WorkflowColumnsExample
M&Acompany, acquisition_entity, acquisition_date, generated_openerDataPipe Inc, 2024-08-15
Fundingcompany, funding_round, funding_date, generated_openerSeries B, 2022-06-01
Job changeprospect_name, new_title, start_date, generated_openerSarah Chen, VP Sales, 2021-09-01

Gate metadata contract

Pass structured source context in metadata so DataVibe can cross-check freshness:

{
  "integration": "clay",
  "freshness_policy_days": 180,
  "source_records": [
    {
      "id": "acq-datapipe",
      "entity": "DataPipe Inc",
      "event_type": "acquisition",
      "acquired_at": "2024-08-15T00:00:00Z"
    },
    {
      "id": "fund-acme-b",
      "entity": "Acme Corp",
      "event_type": "funding",
      "event_at": "2022-06-01T00:00:00Z",
      "label": "Series B"
    },
    {
      "id": "promo-sarah",
      "entity": "Sarah Chen",
      "event_type": "promotion",
      "started_at": "2021-09-01T00:00:00Z",
      "title": "VP of Sales"
    }
  ]
}
  • event_type: acquisition | funding | promotion (defaults to acquisition if omitted, backward compatible).
  • Date fields: acquired_at, funded_at, started_at, or generic event_at.
  • freshness_policy_days in metadata overrides the scanner default (max 3650 days).

Apply the **clay_revops_freshness_v1** policy template in the dashboard:

**Policy Studio → Templates → Sales / GTM → Clay RevOps. Temporal freshness gate**

Alpha vs production

Surface`require_source``claim_profiles`
/v1/alpha/scan (public demo)falseacquisition, funding, promotion
clay_revops_freshness_v1 templatetrueacquisition, funding, promotion

Production workspaces must pass source_records on every gated send. Alpha works without a workspace policy for demos.

HTTP step (Clay)

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

**Headers:**

  • Authorization: Bearer dv_live_...
  • Content-Type: application/json

**Body:**

{
  "recipient": "{{email}}",
  "subject": "{{subject}}",
  "body_html": "<p>{{generated_opener}}</p>",
  "body_text": "{{generated_opener}}",
  "source_model": "claude-sonnet-4.6",
  "metadata": {
    "integration": "clay",
    "freshness_policy_days": 180,
    "source_records": [
      {
        "id": "acq-{{company_id}}",
        "entity": "{{acquisition_entity}}",
        "event_type": "acquisition",
        "acquired_at": "{{acquisition_date_iso}}"
      }
    ]
  }
}

**Branch in Clay:**

  • status === "BLOCKED" → mark row quarantined, do not send
  • status === "QUEUED" → route to human review
  • status === "APPROVED" → continue to sequencer/CRM

curl smoke tests

**M&A (acquisition):**

curl -sS -X POST "https://api.datavibe.cc/v1/gate/outbound" \
  -H "Authorization: Bearer $DATAVIBE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "recipient": "[email protected]",
    "subject": "Quick note",
    "body_html": "<p>Congrats on the recent acquisition of DataPipe Inc.</p>",
    "body_text": "Congrats on the recent acquisition of DataPipe Inc.",
    "source_model": "claude-sonnet-4.6",
    "metadata": {
      "integration": "clay",
      "source_records": [{
        "entity": "DataPipe Inc",
        "event_type": "acquisition",
        "acquired_at": "2024-08-15T00:00:00Z"
      }]
    }
  }'

Expected: status: "BLOCKED" with rule source_stale_acquisition_claim.

**Funding:**

curl -sS -X POST "https://api.datavibe.cc/v1/alpha/scan" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Congrats on your recent Series B, exciting momentum at Acme Corp.",
    "content_type": "message",
    "metadata": {
      "source_records": [{
        "entity": "Acme Corp",
        "event_type": "funding",
        "event_at": "2022-06-01T00:00:00Z"
      }]
    }
  }'

Expected: verdict: "blocked" with rule source_stale_funding_claim.

Live demo (no account)

Open datavibe.cc/alpha → try **Clay M&A Personalization**, **Clay Funding Round**, or **Clay Job Change**.

Notes

  • Clay should still filter enrichment input by date; DataVibe gates **what actually ships**.
  • /v1/check accepts text only, use /v1/gate/outbound for Clay workflows that pass metadata.source_records.

Questions: [email protected]

Need help wiring your Clay table? Book an alpha setup call · [email protected]

Continue reading

  • Alpha playground: Clay temporal scenarios
  • AI SDR integration guide
  • Full integration guide
  • Start Alpha: $99/mo

Gate your first AI submission in under 60 seconds →

Sign up, generate an API key, and POST one message to the gate. It lands in your approval queue instantly.

Get started freeView quickstart