Universal Webhooks Engine
Receive instant, cryptographically verified HTTP notifications whenever an AI sales agent captures a lead, answers high-intent inquiries, or completes conversations. Seamlessly automate workflows in Zapier, Make, Activepieces, HubSpot, Slack, or your custom internal APIs.
3-Minute Quick Start
Configure and test your first webhook in three simple steps.
Create Endpoint
Navigate to Agent Dashboard → Integration → Universal Webhooks. Click New Endpoint and input your public HTTPS URL (or webhook URL from Zapier/Make).
Subscribe to Events
Choose the event types you want to receive, like lead.created or select All Events to stream the full conversational lifecycle.
Verify & Test Ping
Copy your unique signing secret (whsec_...) for HMAC verification, then click Test Ping to verify live delivery in real time.
HTTP Headers Specification
Every webhook POST request from Talk2Site includes standardized security and tracing headers.
| Header | Type | Security & Idempotency Role | Example Value |
|---|---|---|---|
X-Talk2Site-Signature | string | Security Critical HMAC-SHA256 signature generated with your webhook secret. Verify this before accepting any payload. | sha256=d3b07384d113edec... |
X-Talk2Site-Event | string | Routing The event type being sent ( | lead.created |
X-Talk2Site-Delivery | uuid | Idempotency Key Unique UUID per dispatch attempt. Store this in your database to prevent duplicate processing on retries. | 9f8b7c2a-4e1d-48a6-9f12-09b7c84ef3d1 |
X-Talk2Site-Timestamp | integer | Replay Protection Unix epoch timestamp (seconds). Discard incoming requests older than 300 seconds to thwart replay attacks. | 1789210530 |
| Content-Type | string | MIME type of the request payload body. | application/json |
Event Catalog & JSON Payloads
Explore complete JSON schemas and field definitions for each webhook event.
Lead Created
Fires immediately when an AI agent captures visitor contact information (name, email, phone, custom fields, and inquiry context).
Always 'lead.created'
UTC timestamp when event occurred
The ID of the agent that captured the lead
The public name of the agent
Unique lead ID in Talk2Site
Prospect's name
Prospect's verified email address
Prospect's phone number (if provided)
AI-generated executive summary of the conversation
Key-value pairs collected by the qualification funnel
Exact website page where the conversation took place
{
"event": "lead.created",
"timestamp": "2026-09-12T10:15:30Z",
"agent_id": 42,
"agent_name": "My Sales Assistant",
"data": {
"lead_id": 1084,
"name": "Alex Rivera",
"email": "alex.rivera@example.com",
"phone": "+1 (555) 234-5678",
"chat_summary": "Inquired about enterprise SLA, pricing tiers, and multi-agent deployment.",
"custom_fields": {
"company_size": "50-200",
"budget": "$5,000/yr"
},
"page_url": "https://mysite.com/pricing",
"created_at": "2026-09-12T10:15:28Z"
}
}Verifying Signatures (HMAC-SHA256)
Prevent spoofing and replay attacks by validating signatures using your secret key.
Always compute the HMAC hash using the raw, unparsed request bytes. Frameworks that re-serialize parsed JSON may alter whitespace, causing verification to fail.
Use constant-time comparison methods (crypto.timingSafeEqual, hmac.compare_digest) to eliminate side-channel timing vulnerabilities.
Check the X-Talk2Site-Timestamp header. Reject payloads older than 5 minutes to prevent malicious attackers from replaying captured requests.
// Node.js (Express)
import express from 'express';
import crypto from 'crypto';
const app = express();
const WEBHOOK_SECRET = process.env.TALK2SITE_WEBHOOK_SECRET; // e.g. "whsec_..."
// Capture raw body buffer for signature verification
app.post('/api/webhook', express.raw({ type: 'application/json' }), (req, res) => {
const signature = req.headers['x-talk2site-signature'];
if (!signature) {
return res.status(401).send('Missing X-Talk2Site-Signature header');
}
// Compute expected HMAC-SHA256
const hmac = crypto.createHmac('sha256', WEBHOOK_SECRET);
const digest = 'sha256=' + hmac.update(req.body).digest('hex');
// Secure constant-time comparison to prevent timing attacks
const isValid = crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(digest)
);
if (!isValid) {
return res.status(401).send('Invalid signature');
}
const payload = JSON.parse(req.body.toString('utf8'));
console.log('Verified Talk2Site event:', payload.event);
if (payload.event === 'lead.created') {
const lead = payload.data;
console.log('New lead captured:', lead.name, lead.email);
// Forward to CRM (HubSpot, Salesforce, Slack, etc.)
}
res.status(200).json({ received: true });
});
app.listen(3000, () => console.log('Webhook receiver running on port 3000'));Delivery Guarantees & Retry Schedule
Robust delivery guarantees ensure zero lost leads or customer inquiries during transient server downtime.
HTTP 2xx
Any status code between 200 and 299 confirms receipt and stops retries.
10 Seconds
Endpoints must respond within 10s. Queue long-running tasks asynchronously and return HTTP 200 immediately.
3x Backoff
Automatic exponential retries: Immediate, followed by 30s, then 2m before logging failure.
Delivery ID
Use the X-Talk2Site-Delivery UUID as an idempotency key to prevent double processing.
Connecting to Zapier, Make & Activepieces
Connect Talk2Site webhooks to 700+ SaaS apps without writing a single line of code.
Zapier “Catch Hook”
- Create a new Zap and choose Webhooks by Zapier as the trigger.
- Select the Catch Hook event and copy the generated Webhook URL.
- Paste the URL into your Talk2Site Universal Webhooks settings and click Test Ping.
- Zapier will detect the test payload. Map
emailandnamedirectly to your CRM.
Make (Integromat)
- Create a scenario and add the Custom Webhook module.
- Copy the generated webhook URL into Talk2Site webhook endpoints.
- Trigger a Test Ping in Talk2Site so Make determines the JSON data structure.
- Branch and route lead notifications to Slack, Google Sheets, or HubSpot.
Activepieces & n8n
- Add the Catch Webhook piece to your workflow canvas.
- Set the HTTP Method to POST and copy the test address.
- Paste the webhook address into Talk2Site agent integration settings.
- Sync customer information with self-hosted PostgreSQL, ERPs, or custom apps.
Configure Webhooks on Your Agent Now
Add destination endpoints, copy your HMAC signing secret, and inspect live delivery logs directly from your agent dashboard.
