6sense AI Email Webhooks
Version 2
Outbound webhook events emitted by the 6sense AI Email product (formerly Conversational Email, formerly Saleswhale) to a customer-configured Target URL. PROVENANCE: 6sense does not publish an AsyncAPI document. This one was generated by API Evangelist from the provider's own published webhook reference at https://docs.saleswhale.com/ — the three event names, the envelope, the payload fields, the HMAC-SHA256 query-parameter signature scheme and the retry policy are all taken verbatim from that reference. Nothing here is invented. Field types are inferred from the published example payloads where the reference does not state them explicitly.
Channels
Messages
Servers
AsyncAPI Specification
asyncapi: 3.0.0
info:
title: 6sense AI Email Webhooks
version: '2'
description: >-
Outbound webhook events emitted by the 6sense AI Email product (formerly
Conversational Email, formerly Saleswhale) to a customer-configured Target
URL.
PROVENANCE: 6sense does not publish an AsyncAPI document. This one was
generated by API Evangelist from the provider's own published webhook
reference at https://docs.saleswhale.com/ — the three event names, the
envelope, the payload fields, the HMAC-SHA256 query-parameter signature
scheme and the retry policy are all taken verbatim from that reference.
Nothing here is invented. Field types are inferred from the published example
payloads where the reference does not state them explicitly.
contact:
name: 6sense AI Email Support
email: support@saleswhale.com
url: https://docs.saleswhale.com/
externalDocs:
description: 6sense AI Email API Overview
url: https://support.6sense.com/docs/6sense-conversational-email-overview-of-api
defaultContentType: application/json
servers:
customerTarget:
host: 'example.com'
protocol: https
description: >-
Customer-configured webhook Target URL, set in AI Email Account Settings.
6sense POSTs to this URL with ?signature=<hex>×tamp=<unix> appended.
channels:
webhook:
address: /
title: Customer webhook Target URL
description: The single endpoint all AI Email events are delivered to.
servers:
- $ref: '#/servers/customerTarget'
messages:
conversationEnded:
$ref: '#/components/messages/ConversationEnded'
emailSent:
$ref: '#/components/messages/EmailSent'
leadMarkedDoNotContact:
$ref: '#/components/messages/LeadMarkedDoNotContact'
operations:
receiveConversationEnded:
action: receive
channel:
$ref: '#/channels/webhook'
summary: Conversation reached a terminal state.
messages:
- $ref: '#/channels/webhook/messages/conversationEnded'
receiveEmailSent:
action: receive
channel:
$ref: '#/channels/webhook'
summary: The AI email agent sent an email to a lead.
messages:
- $ref: '#/channels/webhook/messages/emailSent'
receiveLeadMarkedDoNotContact:
action: receive
channel:
$ref: '#/channels/webhook'
summary: A lead was marked Do Not Contact.
messages:
- $ref: '#/channels/webhook/messages/leadMarkedDoNotContact'
components:
messages:
ConversationEnded:
name: conversation.ended
title: Conversation ended
summary: >-
Triggered whenever a conversation status changes to a terminal status.
May fire more than once for the same conversation.
contentType: application/json
payload:
$ref: '#/components/schemas/ConversationEndedPayload'
examples:
- name: qualified
payload:
event_name: conversation.ended
event_time: '2017-05-19T12:11:03.321+08:00'
event_payload:
conversation:
id: 12513522
started_at: '2018-08-16T06:32:00.000Z'
handover_rep:
id: 95233
type: sales_rep
leads:
- id: 32244
email: clara.smith@saleswhale.com
is_main: false
is_original: true
- id: 32552
email: michael.wyke@saleswhale.com
is_main: true
is_original: false
status: qualified
enrolment:
id: 2214225
status: processed
campaign_id: 2245
lead_id: 32244
errors: null
conversation_id: 12513522
EmailSent:
name: email.sent
title: Email sent
summary: Triggered whenever an email is sent by the AI email agent.
contentType: application/json
payload:
$ref: '#/components/schemas/EmailSentPayload'
examples:
- name: outbound
payload:
event_name: email.sent
event_time: '2019-11-08T08:06:22.472+00:00'
event_payload:
email:
cc: []
to:
- jeremy@example.com
from: david@example.com
snippet: Hi Jeremy, would your company be interested in a great product?
subject: Are you interested, Jeremy?
created_at: '2019-11-08T08:03:37.000Z'
conversation_id: 12513522
LeadMarkedDoNotContact:
name: lead.marked_do_not_contact
title: Lead marked Do Not Contact
summary: >-
Triggered whenever a lead is marked Do Not Contact. This cannot be
reverted; treat as an authoritative suppression signal.
contentType: application/json
payload:
$ref: '#/components/schemas/LeadMarkedDoNotContactPayload'
schemas:
Envelope:
type: object
required:
- event_name
- event_time
- event_payload
properties:
event_name:
type: string
description: Name of the event that triggers the webhook request.
event_time:
type: string
format: date-time
description: Timestamp of when the webhook is triggered.
event_payload:
type: object
ConversationEndedPayload:
allOf:
- $ref: '#/components/schemas/Envelope'
- type: object
properties:
event_name:
const: conversation.ended
event_payload:
type: object
properties:
conversation:
$ref: '#/components/schemas/Conversation'
EmailSentPayload:
allOf:
- $ref: '#/components/schemas/Envelope'
- type: object
properties:
event_name:
const: email.sent
event_payload:
type: object
properties:
email:
$ref: '#/components/schemas/Email'
LeadMarkedDoNotContactPayload:
allOf:
- $ref: '#/components/schemas/Envelope'
- type: object
properties:
event_name:
const: lead.marked_do_not_contact
event_payload:
type: object
properties:
lead:
$ref: '#/components/schemas/Lead'
Conversation:
type: object
description: >-
The conversation that reached a terminal state. Retrieve full detail with
the Show a Conversation endpoint using id.
properties:
id:
type: integer
started_at:
type: string
format: date-time
handover_rep:
$ref: '#/components/schemas/ActorRef'
leads:
type: array
description: >-
Usually one lead. Multiple when the lead referred a colleague or CCed
others; all leads in a conversation share the conversation status.
items:
$ref: '#/components/schemas/ConversationLead'
status:
type: string
description: Conversation status at the moment the webhook fired.
enum:
- bounced
- human_review
- not_interested
- qualified
- stopped_responding
- unresponsive
- cancelled
enrolment:
$ref: '#/components/schemas/Enrolment'
ConversationLead:
type: object
properties:
id:
type: integer
email:
type: string
format: email
is_main:
type: boolean
description: >-
True for the 'To' recipient — assumed to be the last person who
replied to the AI email agent.
is_original:
type: boolean
description: True for the lead the conversation was first started on.
Enrolment:
type: object
properties:
id:
type: integer
status:
type: string
campaign_id:
type: integer
lead_id:
type: integer
errors:
type:
- string
- 'null'
conversation_id:
type: integer
ActorRef:
type: object
properties:
id:
type: integer
type:
type: string
examples:
- sales_rep
Email:
type: object
properties:
to:
type: array
items:
type: string
format: email
cc:
type: array
items:
type: string
format: email
from:
type: string
format: email
snippet:
type: string
maxLength: 117
description: Short summary of the email body, truncated to a maximum of 117 characters.
subject:
type: string
created_at:
type: string
format: date-time
conversation_id:
type: integer
Lead:
type: object
properties:
id:
type: integer
email:
type: string
format: email
first_name:
type: string
last_name:
type: string
job_title:
type:
- string
- 'null'
follow_up_at:
type:
- string
- 'null'
account_name:
type:
- string
- 'null'
lead_owner:
$ref: '#/components/schemas/ActorRef'
do_not_contact:
type: boolean
custom_attribute_values:
type: array
items:
$ref: '#/components/schemas/CustomAttributeValue'
CustomAttributeValue:
type: object
properties:
custom_attribute_id:
type: integer
value:
type: string
custom_attribute_name:
type: string
securitySchemes:
webhookSignature:
type: httpApiKey
name: signature
in: query
description: >-
SHA256 HMAC hexdigest over "<timestamp>.<raw body>", keyed with the
account's AI Email API key, delivered as a query parameter alongside a
timestamp parameter. Compare in constant time and enforce your own
timestamp tolerance to reject replays.
x-provenance:
generated: '2026-08-13'
method: generated
generated_by: API Evangelist enrichment pipeline
derived_from: https://docs.saleswhale.com/
catalog: asyncapi/6sense-ai-email-webhooks.yml
provider_published: false
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/asyncapis/6sense-ai-email-asyncapi"
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.