Our partner software
Webhooks

Every conversation, wired into the rest of your stack

Pick the events you care about and a URL, and ReplySetter posts them as they happen: a contact's new message, a flow that finished with everything it collected, a hand-off to your team, a meeting booked, moved, cancelled or missed. Each one is signed, retried until it lands, and logged.

As conversations happen, signed events go out to Zapier, Make, n8n or your own server: new messages, qualified leads and booked meetingsWHAT HAPPENSmessage.receivedJane: “Tomorrow after 2pm?”flow.completedqualified · budget 5kbooking.createdThu 2:30 · Discovery callAlso: first_touch.sent, hand-offs,moved / cancelled / no-show meetings,finished campaignsPOST · signed{ "event": "booking.created", "data": { "start_time": "…14:30Z", "contact": { … } } }X-ReplySetter-Signature:t=1760277792,v1=5f2c…ZapierMakeYour serverretried with backoff · logged 30 days
9event types
HMACsigned deliveries
6tries with backoff
30 daysdelivery log
Deep dive

A closer look at Webhooks

01 · Events

Pick what each endpoint hears about

Add an endpoint in Settings, choose its events and send a test. Use flow.completed to push qualified leads with their answers into your CRM, booking.created to post wins in Slack, and conversation.handed_off to open a ticket for your team.

  • message.received, first_touch.sent, flow.completed
  • conversation.handed_off
  • booking.created, rescheduled, cancelled, no_show
  • campaign.completed
Add an endpoint in Settings, pick the events it gets, and send a test deliveryNew webhookhttps://hooks.zapier.com/hooks/catch/…message.receivedfirst_touch.sentflow.completedconversation.handed_offbooking.createdbooking.rescheduledbooking.cancelledbooking.no_showcampaign.completedSaveSend test
02 · Secure

Signed, so nobody can fake an event

Every delivery carries X-ReplySetter-Signature: a timestamp and an HMAC-SHA256 of the body made with your endpoint's own secret. Check it in a couple of lines and reject anything forged or replayed. URLs on private networks are refused.

  • Per-endpoint signing secret, rotate any time
  • Timestamp against replays
  • Event id to ignore repeats
  • Only public https / http URLs
Every delivery is signed with your endpoint's secret: compute the HMAC of the timestamp and body and compare, so nobody can fake an eventHEADERSX-ReplySetter-Event: flow.completedX-ReplySetter-Signature: t=1760277792,v1=5f2c9a…YOUR SERVERexpected = hmac_sha256(secret, t + "." + body)if expected != v1 or now - t > 300: reject# ignore repeats by event idgenuine: 200 OKforged or replayed: rejectedPrivate and internal addresses are refused, so a webhook can't reach your network.
03 · Reliable

Retried until it lands, and every attempt logged

If your endpoint is down or slow, the delivery is retried with backoff. Every attempt is in the delivery log with the status code and error, with the full payload to inspect. An endpoint that keeps failing is turned off, with the reason, so it doesn't pile up.

  • Up to 6 tries with backoff
  • Response code and error per delivery
  • Payload viewer in the delivery log
  • Auto-off after 15 failures in a row
A delivery that fails is retried with backoff and every attempt is logged; an endpoint that keeps failing is turned off and you're told whyDELIVERIESbooking.createddelivered · 200message.receivedtry 1 · HTTP 503try 2 · timeouttry 3 · 200Backoff between tries; the same event id every time.Turned off after 15 deliveries in a row failedFix the endpoint and turn it back on; nothing else is affected.
Under the hood

The details

Payload

JSON: id, event, created_at, workspace_id and data (contact, conversation, agent and what the event is about).

Inbound too

Each agent also has a start webhook: post a lead to it and the agent writes first.

API reference

Every event's payload, with examples, at app.replysetter.com/developers under Webhooks.

MCP

create_webhook_endpoint, list_webhook_deliveries, test_webhook_endpoint, rotate_webhook_secret.

Privacy

Deliveries are kept 30 days and removed when you erase a contact's data.

Use cases

Who it's for

CRM sync

flow.completed creates or updates the lead in Pipedrive, Close or Airtable with every answer the agent collected.

Team alerts

booking.created and conversation.handed_off post to Slack or Teams so nobody misses a hot lead.

Reporting

Stream events into your warehouse and join them with revenue.

FAQ

Webhooks: common questions

Does it work with Zapier, Make and n8n?

Yes. Paste their webhook trigger URL as an endpoint, pick events, and send a test to map the fields.

How do I know a request really came from ReplySetter?

Check the X-ReplySetter-Signature header: an HMAC-SHA256 of the timestamp and body with your endpoint's secret.

What if my server is down?

Deliveries are retried with backoff and logged. After 15 failures in a row the endpoint is turned off, and you turn it back on once it's fixed.

Can I get the answers the agent collected?

Yes. flow.completed includes every objective the flow collected (email, budget, preferred time…) and the conversation's tags.

Get started

Put it to work on your own inbox

Connect an inbox, describe the job, test it in a sandbox and go live with exactly the autonomy you're comfortable with.