Skip to main content
POST

Authorizations

api_key
string
header
required

Path Parameters

eventType
enum<string>
required

Type of event being sent

Available options:
emails,
calls,
crm,
social
Example:

"emails"

Query Parameters

api_key
string

Provide api key if not in header

Body

application/json

Webhook payload. The schema depends on the {eventType} path parameter:

  • emails — Email Event schema
  • calls — Call Event schema
  • crm — CRM Event schema
  • social — Social Event schema (LinkedIn/social outreach)
eventTimestamp
required

Timestamp of the event. Accepts an ISO 8601 string (e.g., "2024-02-03T10:30:00Z"), a Unix epoch in milliseconds (>= 1e12), or a Unix epoch in seconds. Must resolve to a date within 50 years past or 5 years future.

Example:

"2024-02-03T10:30:00Z"

eventType
enum<string>
required

Type of email event. Only 'sent' and 'reply' are processed for analytics; others are ingested but not processed.

Available options:
sent,
reply,
opened,
clicked,
bounced,
unsubscribed
subject
string
required

Email subject line

Example:

"Follow up on our conversation"

body
object
required

Email body. At least one of text or html must be provided.

from
object
required

Sender

to
object[]
required

Recipients (at least one required)

Minimum array length: 1
cc
object[]

CC recipients

bcc
object[]

BCC recipients

eventId
string

Explicit event ID for deduplication. If not provided, auto-generated from: from_email + subject + timestamp + first_to_email

Example:

"deal-001-email-sent-1"

conversationId
string

Conversation/thread ID for grouping related emails

campaignId
string

Campaign ID for grouping campaign emails

octaveRequestId
string

Octave request ID for tracking

sourceProviderName
string

Display override for the activity feed. Case-insensitive match against a supported provider name; when set, that provider's logo is shown instead of the generic Octave icon.

crmOpportunityId
string

Your system's deal ID. Links this event straight to that opportunity instead of Octave inferring the deal from participants and timing — which misses when the participant is not on the deal, and mis-fires when two deals share a domain.

Example:

"opp_12345"

crmAccountId
string

Your system's account/company ID, for account-level linking

Example:

"acct_67890"

crmAccountDomain
string

Account domain, used when no deal ID is known

Example:

"acme.com"

customMetadata
object

Arbitrary key-value metadata

Response

Webhook received successfully

_metadata
object
required
received
boolean
required

Whether the payload was received

connection
object | null
required

Connection details

additionalData
object

Additional data about the processed event

validationErrors
object

Per-field validation errors when the payload fails schema validation. Mirrors Zod's flatten() output so callers can map errors back to the offending fields.