Webhooks

Send conversation data anywhere you need it

Webhooks let Thayne push conversation data straight into your own tools — Zapier, Make, a CRM, a spreadsheet, anywhere that accepts a URL — the moment something worth knowing happens. This guide covers everything: setup, event types, exactly what's in every payload, and what to do if something stops working.

Setting up a webhook

Webhooks are a Pro feature, configured from your Account page. You can run up to three at once, each pointed at a different destination if you need them.

  1. 1
    Get a destination URL ready. This is the endpoint you want Thayne to send data to — a Zapier "Catch Hook" trigger, a Make custom webhook, or an inbound endpoint your CRM provides. It must start with https://. Thayne won't accept an insecure http:// address.
  2. 2
    Go to Account → Webhooks and click "Add webhook." Give it a name if you like — something that tells you what it's for at a glance, like "Zapier — new leads" or "HubSpot inbox." If you leave it blank, Thayne shows the URL instead.
  3. 3
    Paste your URL and choose your events. You'll pick from three trigger types — covered in full below — and you need at least one selected. You can turn individual events on or off later without losing the destination.
  4. 4
    Send a test. Every webhook has a "Send test" button. It fires a sample payload with placeholder data so you can confirm the connection works and see the shape of what's coming, before a real conversation ever triggers it.

Webhooks send data out from Thayne to a destination you control. If the receiving tool ever regenerates or changes its URL — which some platforms let you do — you'll need to come back and update it here. Thayne has no way of knowing your endpoint changed on its own.

Choosing your events

Each webhook destination can subscribe to any combination of three event types. A single destination can have all three on at once — Thayne sends a separate payload for each event that applies.

Event
Fires when
Good for
Conversation ended
Every conversation that completes, regardless of fit tier. This is the broadest trigger.
Logging every enquiry into a spreadsheet or CRM for full visibility.
Top-tier conversation
Only when the AI assesses the conversation as your strongest fit tier — the first tier in your link's configuration.
Instant alerts for your hottest leads — a Slack ping, an SMS via Zapier, a task in your project manager.
Contact details captured
Only when the enquirer actually left their name, email, or phone in the closing form. Skipped forms never trigger this.
Feeding new contacts straight into a CRM or email list without manual entry.

These aren't mutually exclusive — a single conversation can trigger more than one event. A top-tier conversation where the enquirer also left their email will send two separate payloads: one for top_tier_conversation, one for contact_details_captured.

A webhook needs at least one event switched on to do anything. If you want to stop a webhook entirely without deleting it, use the Active/Paused toggle on the destination itself — don't try to switch off all three events, Thayne won't let you leave a webhook in that silent, half-configured state.

Payload reference

Every webhook delivery is a single HTTP POST request with a JSON body. The fields present depend on the event type, but the structure is consistent. Here's exactly what arrives, field by field.

Conversation ended — fires for every conversation, regardless of fit.

Example payload
{
  "event_type": "conversation_ended",
  "enquirer_name": "Sarah Thompson",
  "enquirer_email": "sarah@example.com",
  "enquirer_phone": "",
  "link_name": "Talk to the product",
  "session_id": "a3f8e912-...",
  "ended_at": "2026-07-09T14:32:00.000Z"
}

Top-tier conversation — fires only for your strongest fit tier, and includes the AI's assessment.

Example payload
{
  "event_type": "top_tier_conversation",
  "enquirer_name": "Sarah Thompson",
  "enquirer_email": "sarah@example.com",
  "enquirer_phone": "+44 7700 900000",
  "fit_assessment": "Exceptional",
  "intent_level": "High",
  "one_sentence_summary": "Looking to hire within 2 weeks, budget confirmed, decision-maker.",
  "link_name": "Talk to the product",
  "session_id": "a3f8e912-...",
  "ended_at": "2026-07-09T14:32:00.000Z"
}

Contact details captured — fires only when the enquirer submits the closing form.

Example payload
{
  "event_type": "contact_details_captured",
  "enquirer_name": "Sarah Thompson",
  "enquirer_email": "sarah@example.com",
  "enquirer_phone": "+44 7700 900000",
  "link_name": "Talk to the product",
  "session_id": "a3f8e912-...",
  "ended_at": "2026-07-09T14:32:00.000Z"
}
Field
Type
Notes
event_type
String
One of conversation_ended, top_tier_conversation, or contact_details_captured.
enquirer_name
String
Empty string if not provided or not applicable to this event.
enquirer_email
String
Empty string if not captured.
enquirer_phone
String
Empty string if not captured.
fit_assessment
String
Only present on top_tier_conversation. Matches your configured tier label.
intent_level
String
Only present on top_tier_conversation. One of High, Medium, Low, or Unknown.
one_sentence_summary
String
Only present on top_tier_conversation. A single AI-written line, not the transcript.
link_name
String
The name of the link this conversation came through, useful if you run more than one.
session_id
String
A unique ID for the conversation. Useful for de-duplication in your own system.
ended_at
String
ISO 8601 timestamp, UTC.

What you'll never receive in a webhook payload: the full conversation transcript, briefing docs, or intelligence chat content. If you need that level of detail, it stays inside your Thayne dashboard — webhooks are built for triggering fast action elsewhere, not for exporting your entire conversation archive.

Failures, pausing, and retries

Thayne tracks delivery success for every webhook so you're never left wondering whether something arrived.

  1. 1
    Every destination shows its last delivery. On the Webhooks tab, each card tells you when it last fired and whether that delivery succeeded — checked automatically, no need to dig through logs.
  2. 2
    Failures are counted consecutively. A single failed delivery doesn't do anything — endpoints go down temporarily all the time. But if a destination fails five times in a row, you'll see a warning on the card itself.
  3. 3
    After ten consecutive failures, Thayne pauses it automatically. This protects you from a broken integration silently eating every conversation that comes in. The toggle switches to Paused, and no further attempts are made until you switch it back on.
  4. 4
    Fix the endpoint, then flip the toggle back to Active. Reactivating resets the failure count to zero, so you're starting clean. Use "Send test" first to confirm the destination is actually reachable before you rely on it again.

Every delivery gets one automatic retry a few seconds after the first attempt fails, which catches the vast majority of brief outages. Beyond that, a failed event is not resent — the next conversation will trigger the next delivery as normal. If missing even one event would be a problem for your workflow, it's worth periodically cross-checking your Conversations dashboard against what landed in your destination.

Privacy and your responsibilities

Webhooks send real enquirer data to a destination outside Thayne, so it's worth being clear about where responsibility sits once that happens.

Thayne sends data only to the URL you specify, only for the events you've selected. Once a payload lands in your CRM, spreadsheet, or Zapier account, you are responsible for how that tool stores, secures, and processes it — the same as you would be for any other data you bring into a third-party system. This is covered in full in our Privacy Policy and Terms of Service.

A few things worth knowing as you set this up:

  • You are the data controller for your enquirers' data. Thayne acts as a processor — we send the data where you tell us to. If you connect a webhook to a tool, make sure that tool is one you trust with real personal information, and that your own privacy notice to enquirers accounts for it.
  • Only send data where you need it. If you only need top-tier alerts in Slack, don't also wire up "Conversation ended" to the same place — every extra destination is another place that data lives, and another thing you're responsible for securing.
  • Removing a webhook doesn't delete data already sent. Deleting a destination in Thayne stops future deliveries — it has no effect on anything already received by your CRM, Zapier, or wherever it went. If you need that data removed, it has to be deleted at the destination itself.
Was this page helpful?
Up next Account & billing →