Salesloft Webhooks API
Subscribe to platform events for real-time updates.
Subscribe to platform events for real-time updates.
asyncapi: '2.6.0'
info:
title: Salesloft Webhooks
version: '1.0.0'
description: >-
AsyncAPI 2.6 description of Salesloft's webhook (push notification) surface.
Salesloft delivers event-specific notifications by HTTP POST to a
customer-configured URL endpoint when an authorized subscription matches a
documented event type. Each delivery carries an `x-salesloft-event` header
naming the event type and an `x-salesloft-signature` header containing the
HMAC-SHA1 hex digest of the response body computed using the subscription's
callback token as the key. Subscriptions are managed through the Salesloft
REST API `/v2/webhook_subscriptions` resource. Event coverage in this
document is taken verbatim from the published Salesloft webhook event
types reference and spans accounts, cadences, cadence memberships, calls,
call data records, conversations, emails, meetings, notes, people, steps,
tasks, users, successes, and bulk jobs.
contact:
name: Salesloft Developer Documentation
url: https://developers.salesloft.com/docs/platform/webhooks/
license:
name: Proprietary - Salesloft
url: https://salesloft.com/legal/
x-source-references:
- https://developers.salesloft.com/docs/platform/webhooks/
- https://developers.salesloft.com/docs/platform/webhooks/event-types/
- https://developers.salesloft.com/docs/platform/webhooks/delivery-headers/
- https://developers.salesloft.com/docs/api/webhook-subscriptions/
defaultContentType: application/json
servers:
subscriber:
url: '{endpointUrl}'
protocol: https
description: >-
Customer-hosted HTTPS endpoint registered through the Salesloft Webhook
Subscriptions API. Salesloft POSTs event payloads to this URL with the
`x-salesloft-event` and `x-salesloft-signature` headers.
variables:
endpointUrl:
description: Fully qualified HTTPS URL of the subscriber endpoint.
default: https://example.com/salesloft/webhooks
channels:
# ----------------------------------------------------------------------
# Account events
# ----------------------------------------------------------------------
account_created:
description: A new Account record was created in Salesloft.
subscribe:
operationId: onAccountCreated
summary: account_created event.
message:
$ref: '#/components/messages/AccountCreated'
account_updated:
description: An existing Account record was updated.
subscribe:
operationId: onAccountUpdated
summary: account_updated event.
message:
$ref: '#/components/messages/AccountUpdated'
account_deleted:
description: An Account record was deleted.
subscribe:
operationId: onAccountDeleted
summary: account_deleted event.
message:
$ref: '#/components/messages/AccountDeleted'
# ----------------------------------------------------------------------
# Cadence events
# ----------------------------------------------------------------------
cadence_created:
description: A new Cadence was created.
subscribe:
operationId: onCadenceCreated
summary: cadence_created event.
message:
$ref: '#/components/messages/CadenceCreated'
cadence_updated:
description: An existing Cadence was updated.
subscribe:
operationId: onCadenceUpdated
summary: cadence_updated event.
message:
$ref: '#/components/messages/CadenceUpdated'
cadence_deleted:
description: A Cadence was deleted.
subscribe:
operationId: onCadenceDeleted
summary: cadence_deleted event.
message:
$ref: '#/components/messages/CadenceDeleted'
# ----------------------------------------------------------------------
# Cadence Membership events
# ----------------------------------------------------------------------
cadence_membership_created:
description: A Person was added to a Cadence (Cadence Membership created).
subscribe:
operationId: onCadenceMembershipCreated
summary: cadence_membership_created event.
message:
$ref: '#/components/messages/CadenceMembershipCreated'
cadence_membership_updated:
description: A Cadence Membership was updated (state change, advance, etc.).
subscribe:
operationId: onCadenceMembershipUpdated
summary: cadence_membership_updated event.
message:
$ref: '#/components/messages/CadenceMembershipUpdated'
# ----------------------------------------------------------------------
# Call events
# ----------------------------------------------------------------------
call_created:
description: A Call activity record was created.
subscribe:
operationId: onCallCreated
summary: call_created event.
message:
$ref: '#/components/messages/CallCreated'
call_updated:
description: A Call activity record was updated.
subscribe:
operationId: onCallUpdated
summary: call_updated event.
message:
$ref: '#/components/messages/CallUpdated'
# ----------------------------------------------------------------------
# Call Data Record events
# ----------------------------------------------------------------------
call_data_record_created:
description: A Call Data Record (CDR) was created.
subscribe:
operationId: onCallDataRecordCreated
summary: call_data_record_created event.
message:
$ref: '#/components/messages/CallDataRecordCreated'
call_data_record_updated:
description: A Call Data Record (CDR) was updated.
subscribe:
operationId: onCallDataRecordUpdated
summary: call_data_record_updated event.
message:
$ref: '#/components/messages/CallDataRecordUpdated'
# ----------------------------------------------------------------------
# Conversation events
# ----------------------------------------------------------------------
conversation_created:
description: A Conversation (Salesloft Conversations / recorded meeting) was created.
subscribe:
operationId: onConversationCreated
summary: conversation_created event.
message:
$ref: '#/components/messages/ConversationCreated'
conversation_recording_created:
description: A recording was attached to a Conversation.
subscribe:
operationId: onConversationRecordingCreated
summary: conversation_recording_created event.
message:
$ref: '#/components/messages/ConversationRecordingCreated'
conversation_transcript_created:
description: A transcript was generated for a Conversation.
subscribe:
operationId: onConversationTranscriptCreated
summary: conversation_transcript_created event.
message:
$ref: '#/components/messages/ConversationTranscriptCreated'
# ----------------------------------------------------------------------
# Email events
# ----------------------------------------------------------------------
email_updated:
description: An Email record state was updated (sent, delivered, bounced, etc.).
subscribe:
operationId: onEmailUpdated
summary: email_updated event.
message:
$ref: '#/components/messages/EmailUpdated'
email_with_body_and_subject_updated:
description: An Email record state was updated; payload includes body and subject.
subscribe:
operationId: onEmailWithBodyAndSubjectUpdated
summary: email_with_body_and_subject_updated event.
message:
$ref: '#/components/messages/EmailWithBodyAndSubjectUpdated'
link_swap:
description: A link contained in a Salesloft email was swapped (tracked link substitution).
subscribe:
operationId: onLinkSwap
summary: link_swap event.
message:
$ref: '#/components/messages/LinkSwap'
# ----------------------------------------------------------------------
# Meeting events
# ----------------------------------------------------------------------
meeting_booked:
description: A Meeting was booked.
subscribe:
operationId: onMeetingBooked
summary: meeting_booked event.
message:
$ref: '#/components/messages/MeetingBooked'
meeting_updated:
description: A Meeting record was updated.
subscribe:
operationId: onMeetingUpdated
summary: meeting_updated event.
message:
$ref: '#/components/messages/MeetingUpdated'
# ----------------------------------------------------------------------
# Note events
# ----------------------------------------------------------------------
note_created:
description: A Note was created.
subscribe:
operationId: onNoteCreated
summary: note_created event.
message:
$ref: '#/components/messages/NoteCreated'
note_updated:
description: A Note was updated.
subscribe:
operationId: onNoteUpdated
summary: note_updated event.
message:
$ref: '#/components/messages/NoteUpdated'
note_deleted:
description: A Note was deleted.
subscribe:
operationId: onNoteDeleted
summary: note_deleted event.
message:
$ref: '#/components/messages/NoteDeleted'
# ----------------------------------------------------------------------
# Person events
# ----------------------------------------------------------------------
person_created:
description: A Person record was created.
subscribe:
operationId: onPersonCreated
summary: person_created event.
message:
$ref: '#/components/messages/PersonCreated'
person_updated:
description: A Person record was updated.
subscribe:
operationId: onPersonUpdated
summary: person_updated event.
message:
$ref: '#/components/messages/PersonUpdated'
person_deleted:
description: A Person record was deleted.
subscribe:
operationId: onPersonDeleted
summary: person_deleted event.
message:
$ref: '#/components/messages/PersonDeleted'
# ----------------------------------------------------------------------
# Step events
# ----------------------------------------------------------------------
step_created:
description: A Cadence Step was created.
subscribe:
operationId: onStepCreated
summary: step_created event.
message:
$ref: '#/components/messages/StepCreated'
step_updated:
description: A Cadence Step was updated.
subscribe:
operationId: onStepUpdated
summary: step_updated event.
message:
$ref: '#/components/messages/StepUpdated'
step_deleted:
description: A Cadence Step was deleted.
subscribe:
operationId: onStepDeleted
summary: step_deleted event.
message:
$ref: '#/components/messages/StepDeleted'
# ----------------------------------------------------------------------
# Task events
# ----------------------------------------------------------------------
task_created:
description: A Task was created.
subscribe:
operationId: onTaskCreated
summary: task_created event.
message:
$ref: '#/components/messages/TaskCreated'
task_updated:
description: A Task was updated.
subscribe:
operationId: onTaskUpdated
summary: task_updated event.
message:
$ref: '#/components/messages/TaskUpdated'
task_completed:
description: A Task was completed.
subscribe:
operationId: onTaskCompleted
summary: task_completed event.
message:
$ref: '#/components/messages/TaskCompleted'
task_deleted:
description: A Task was deleted.
subscribe:
operationId: onTaskDeleted
summary: task_deleted event.
message:
$ref: '#/components/messages/TaskDeleted'
# ----------------------------------------------------------------------
# User events
# ----------------------------------------------------------------------
user_created:
description: A Salesloft User was created.
subscribe:
operationId: onUserCreated
summary: user_created event.
message:
$ref: '#/components/messages/UserCreated'
user_updated:
description: A Salesloft User was updated.
subscribe:
operationId: onUserUpdated
summary: user_updated event.
message:
$ref: '#/components/messages/UserUpdated'
# ----------------------------------------------------------------------
# Success events
# ----------------------------------------------------------------------
success_created:
description: A Success (closed-won / outcome) record was created.
subscribe:
operationId: onSuccessCreated
summary: success_created event.
message:
$ref: '#/components/messages/SuccessCreated'
# ----------------------------------------------------------------------
# Bulk Job events
# ----------------------------------------------------------------------
bulk_job_completed:
description: A Bulk Job has completed processing.
subscribe:
operationId: onBulkJobCompleted
summary: bulk_job_completed event.
message:
$ref: '#/components/messages/BulkJobCompleted'
components:
messageTraits:
SalesloftWebhookHeaders:
headers:
type: object
required:
- x-salesloft-event
- x-salesloft-signature
properties:
x-salesloft-event:
type: string
description: Name of the event type that triggered the delivery.
x-salesloft-signature:
type: string
description: >-
HMAC hex digest of the response body computed with SHA1, using
the subscription's callback token as the HMAC key.
messages:
AccountCreated:
name: account_created
title: Account Created
summary: Sent when a new Account record is created.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
AccountUpdated:
name: account_updated
title: Account Updated
summary: Sent when an Account record is updated.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
AccountDeleted:
name: account_deleted
title: Account Deleted
summary: Sent when an Account record is deleted.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
CadenceCreated:
name: cadence_created
title: Cadence Created
summary: Sent when a Cadence is created.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
CadenceUpdated:
name: cadence_updated
title: Cadence Updated
summary: Sent when a Cadence is updated.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
CadenceDeleted:
name: cadence_deleted
title: Cadence Deleted
summary: Sent when a Cadence is deleted.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
CadenceMembershipCreated:
name: cadence_membership_created
title: Cadence Membership Created
summary: Sent when a Person is added to a Cadence.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
CadenceMembershipUpdated:
name: cadence_membership_updated
title: Cadence Membership Updated
summary: Sent when a Cadence Membership is updated.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
CallCreated:
name: call_created
title: Call Created
summary: Sent when a Call activity is created.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
CallUpdated:
name: call_updated
title: Call Updated
summary: Sent when a Call activity is updated.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
CallDataRecordCreated:
name: call_data_record_created
title: Call Data Record Created
summary: Sent when a Call Data Record is created.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
CallDataRecordUpdated:
name: call_data_record_updated
title: Call Data Record Updated
summary: Sent when a Call Data Record is updated.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
ConversationCreated:
name: conversation_created
title: Conversation Created
summary: Sent when a Conversation is created.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
ConversationRecordingCreated:
name: conversation_recording_created
title: Conversation Recording Created
summary: Sent when a Conversation recording is created.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
ConversationTranscriptCreated:
name: conversation_transcript_created
title: Conversation Transcript Created
summary: Sent when a Conversation transcript is created.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
EmailUpdated:
name: email_updated
title: Email Updated
summary: Sent when an Email record state changes.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
EmailWithBodyAndSubjectUpdated:
name: email_with_body_and_subject_updated
title: Email With Body and Subject Updated
summary: Sent when an Email record state changes; includes body and subject.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
LinkSwap:
name: link_swap
title: Link Swap
summary: Sent when Salesloft swaps a tracked link in an outbound email.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
MeetingBooked:
name: meeting_booked
title: Meeting Booked
summary: Sent when a Meeting is booked.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
MeetingUpdated:
name: meeting_updated
title: Meeting Updated
summary: Sent when a Meeting record is updated.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
NoteCreated:
name: note_created
title: Note Created
summary: Sent when a Note is created.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
NoteUpdated:
name: note_updated
title: Note Updated
summary: Sent when a Note is updated.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
NoteDeleted:
name: note_deleted
title: Note Deleted
summary: Sent when a Note is deleted.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
PersonCreated:
name: person_created
title: Person Created
summary: Sent when a Person record is created.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
PersonUpdated:
name: person_updated
title: Person Updated
summary: Sent when a Person record is updated.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
PersonDeleted:
name: person_deleted
title: Person Deleted
summary: Sent when a Person record is deleted.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
StepCreated:
name: step_created
title: Step Created
summary: Sent when a Cadence Step is created.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
StepUpdated:
name: step_updated
title: Step Updated
summary: Sent when a Cadence Step is updated.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
StepDeleted:
name: step_deleted
title: Step Deleted
summary: Sent when a Cadence Step is deleted.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
TaskCreated:
name: task_created
title: Task Created
summary: Sent when a Task is created.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
TaskUpdated:
name: task_updated
title: Task Updated
summary: Sent when a Task is updated.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
TaskCompleted:
name: task_completed
title: Task Completed
summary: Sent when a Task is completed.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
TaskDeleted:
name: task_deleted
title: Task Deleted
summary: Sent when a Task is deleted.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
UserCreated:
name: user_created
title: User Created
summary: Sent when a Salesloft User is created.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
UserUpdated:
name: user_updated
title: User Updated
summary: Sent when a Salesloft User is updated.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
SuccessCreated:
name: success_created
title: Success Created
summary: Sent when a Success record is created.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
BulkJobCompleted:
name: bulk_job_completed
title: Bulk Job Completed
summary: Sent when a Bulk Job completes processing.
contentType: application/json
traits:
- $ref: '#/components/messageTraits/SalesloftWebhookHeaders'
payload:
$ref: '#/components/schemas/EventEnvelope'
schemas:
EventEnvelope:
type: object
description: >-
Generic Salesloft webhook event envelope. The Salesloft documentation
confirms the event-name and HMAC signature delivery headers but does
not publish a single fixed payload schema; the body is JSON whose
shape mirrors the affected resource on the Salesloft REST API. The
`event_type` field below matches the `x-salesloft-event` header value.
additionalProperties: true
properties:
event_type:
type: string
description: Event type name (matches the `x-salesloft-event` header).
data:
description: Resource payload for the affected entity.
oneOf:
- type: object
additionalProperties: true
- type: array
items:
type: object
additionalProperties: true
securitySchemes:
salesloftSignature:
type: symmetricEncryption
description: >-
Each delivery is signed with an `x-salesloft-signature` header whose
value is the HMAC-SHA1 hex digest of the response body, keyed with the
subscription's callback token. Subscribers should recompute the digest
and reject deliveries whose signature does not match.