Last updated · June 2026
- Production-ready APIs
- SOC 2 Type I - In Progress
- Alpha
- AI SDR
Wire DataVibe into your AI SDR in 15 minutes
Pre-send safety gate for AI SDR outbound. Node.js, Python, HubSpot/Zapier patterns, and test payloads.
Use this guide when you have an AI agent that generates outbound email, support replies, or workflow actions. DataVibe checks the output **before** it reaches a customer.
When to use which API
| Goal | Endpoint | Best for |
|---|---|---|
| Full outbound email workflow (send after approval) | POST /v1/gate/outbound | AI SDR, sequencers, HubSpot/Zapier send steps |
| Verdict only (you handle dispatch) | POST /v1/check or SDK check() | Custom agents, LangChain tools |
Production integrations should use **POST /v1/gate/outbound** so submissions land in the approval queue with a full audit trail.
1. Get your API key
1. Sign up at app.datavibe.cc/signup?program=alpha 2. Open Alpha Quickstart and copy your workspace API key 3. Store it as DATAVIBE_API_KEY in your agent environment
2. Apply the AI SDR policy pack
In the dashboard:
1. Go to **Onboarding → Setup wizard** 2. Choose use case **AI SDR / outbound** 3. Apply template **ai_sdr_guardrails_v1**
This enables rules for pricing hallucination, false guarantees, competitor mentions, and tone violations.
3. Minimal integration (Node.js)
const DATAVIBE_API_KEY = process.env.DATAVIBE_API_KEY;
const CORE_API = process.env.DATAVIBE_BASE_URL ?? "https://api.datavibe.cc";
async function gateBeforeSend({ recipient, subject, bodyText }) {
const res = await fetch(`${CORE_API}/v1/gate/outbound`, {
method: "POST",
headers: {
Authorization: `Bearer ${DATAVIBE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
recipient,
subject,
body_text: bodyText,
body_html: `<p>${bodyText.replace(/\n/g, "<br/>")}</p>`,
source_model: "your-llm",
metadata: { integration: "ai_sdr" },
}),
});
const data = await res.json();
if (data.status === "BLOCKED") {
throw new Error(`Blocked by policy: ${JSON.stringify(data.policy_violations)}`);
}
if (data.status === "QUEUED") {
// Human review required — do not send until approved in dashboard
return { send: false, actionId: data.action_id, reviewUrl: data.review_url };
}
return { send: true, actionId: data.action_id };
}
// Usage in your agent loop:
// const aiDraft = await llm.generateOutboundEmail(lead);
// const gate = await gateBeforeSend({ recipient: lead.email, subject: aiDraft.subject, bodyText: aiDraft.body });
// if (gate.send) await sequencer.send(...);4. Python (SDK)
from datavibe import DataVibeClient
client = DataVibeClient(api_key="dv_live_...")
result = await client.check(
content=ai_generated_text,
content_type="email",
)
if result.verdict == "blocked":
log_blocked(result.violations)
elif result.verdict == "review_required":
queue_for_human_review(result)
else:
send_email(ai_generated_text)5. HubSpot / Zapier pattern
**Generate → Gate → Send only if safe**
1. **Trigger:** New lead or AI draft ready 2. **Action:** HTTP POST to https://api.datavibe.cc/v1/gate/outbound with the AI-generated subject and body 3. **Branch:** - status === "BLOCKED" → alert RevOps, do not send - status === "QUEUED" → notify reviewer (Slack/email), wait for approval in Approval Queue - status === "SENT" or approved → continue to email/CRM step
Optional: poll GET /v1/gate/outbound/:action_id or use dashboard webhooks for approval events.
6. Test payloads (90-second demo)
Run these in order from Alpha Quickstart:
| # | Scenario | Expected |
|---|---|---|
| 1 | Fake ROI guarantee + discount | BLOCKED |
| 2 | Competitor mention | QUEUED (review) |
| 3 | Clean follow-up | QUEUED or SENT |
Confirm results in Approval Queue and Audit Log.
7. Next steps
- Full integration guide
- Live playground — try without an account
- AI SDR policy simulator
- Founding Alpha pricing — $99/mo, 10,000 checks
Questions: [email protected]
Need help wiring your first workflow? Book an alpha setup call · [email protected]