SalesMind AI can send event data to your server the moment something happens — a connection request goes out, a prospect accepts, a reply comes in, or a conversation gets tagged. Instead of polling the API, your endpoint gets a POST request with the full context.
This guide shows you how to set up a webhook endpoint, pick the events you care about, and handle the payload.
Prerequisites
- A SalesMind AI account with at least one active sender
- A publicly accessible HTTPS endpoint that can receive POST requests
How webhooks work
SalesMind AI fires a webhook whenever a relevant event happens on a conversation thread in your inbox — whether triggered by a campaign action or a manual change you make in the UI. Each event sends an HTTP POST request to the URL you set up.
Available event types
| Event type | Fires when… |
|---|---|
activity.invitation.sent.v1 | A connection request is sent to a prospect |
activity.connection.accepted.v1 | A prospect accepts your connection request |
activity.message.received.v1 | A prospect replies to your conversation |
activity.threadbox.tags.update.v1 | A tag is added or removed on a conversation thread |
Set up your webhook endpoint
- In the left sidebar, click the Settings gear icon at the bottom.
- Click Webhooks.
- Paste your HTTPS endpoint URL.
- Pick the event types you want to receive.
- Select which agents you want to receive events from.
- Click Save.
💡 Tip: Use the Test button to send a sample payload to your endpoint. This confirms your server can receive requests before any real events fire.
Understand the payload
Every webhook delivery sends a JSON object with three top-level fields and a nested data object containing the full context.
Top-level fields:
| Field | Description | Example |
|---|---|---|
id | Unique delivery ID (used as idempotency key) | df313559-7cb1-... |
type | The event type | activity.connection.accepted.v1 |
timestamp | When the event occurred (ISO 8601) | 2026-02-06T05:05:36+01:00 |
The data object contains these sections:
| Section | What it contains |
|---|---|
data.agent | Your agent name, company details, services, brand tone of voice, and sales playbook |
data.campaign | Campaign ID, name, status, objective, product page URL, landing page URL, and campaign type |
data.campaignContact | Contact status in campaign (e.g. invitation_send), last activity details, and terminated flag |
data.threadBox | Sender and contact full names, tags array, conversation status, fit score, AI rationale, persona name, and answer status |
data.sender | Full LinkedIn profile of the sending account, knowledge base contact info, and MBTI personality analysis |
data.contact | Prospect's LinkedIn profile, headline, summary, location, skills, current companies, and MBTI analysis |
data.messages | Array of messages in the conversation thread |
Security headers included with every delivery:
| Header | Description |
|---|---|
webhook-signature | HMAC signature to verify the request came from SalesMind AI |
webhook-timestamp | Unix timestamp of when the payload was sent |
webhook-idempotency-key | Unique key to prevent processing duplicate deliveries |
webhook-key-id | Identifies which signing key was used |
💡 Tip: The full payload is large and includes the complete agent context. Send a test webhook to your endpoint first, then use that JSON to map only the fields you need in your handler.
Check delivery history
You can check whether a webhook fired and review its delivery status directly in the app. Go to Settings → Webhooks to see recent deliveries, their status codes, and timestamps.
Common pitfalls
"The test works but real events don't fire"
Make sure you have an active campaign with prospects moving through the workflow. Webhooks fire when the system takes an action (sends an invite, gets a reply, tags a thread) or when you manually change a tag. If no activity is happening, there are no events to send.
"I'm getting events but the payload is missing fields"
The payload varies slightly by event type. An activity.invitation.sent.v1 event won't have reply-related fields, for example. Check the test payload for your specific event type to see which fields are included.
"The payload is very large"
This is expected. Each delivery includes the full agent context (services, sales playbook, brand tone of voice) so your handler has everything it needs to route and process the event. Parse only the fields you need.
Key takeaways
- Webhooks push real-time data to your server when events happen — both automated campaign actions and manual changes.
- Four event types cover the full outreach lifecycle: invite sent, connection accepted, message received, and tag updated.
- The payload includes the complete agent, campaign, and contact context in a nested JSON structure.
- Security headers let you verify that each delivery came from SalesMind AI.
- Start with a test webhook to capture the full payload shape before you build your handler.