Log Event
Log emails, calls, CRM, and social data from custom integrations (n8n, Clay, Make, etc.).
Event Types
The {eventType} path parameter determines the expected payload schema. Each event type has its own set of supported sub-types:
emails — Email Events
Supported eventType values: sent, reply, opened, clicked, bounced, unsubscribed
- Only
sentandreplyare processed for analytics; others are ingested but not processed. - Required fields:
eventTimestamp,eventType,subject,body(text or html),from,to - Optional:
cc,bcc,eventId,conversationId,campaignId,customMetadata
calls — Call/Meeting Events
Supported eventType values: transcript, scheduled, completed, missed
- Only
transcriptis processed for analytics; others are ingested but not processed. - Required fields:
eventTimestamp,eventType,title,transcript,participants - Optional:
duration,recordingUrl,meetingPlatform,eventId,conversationId,customMetadata - Transcript formats: Can be a flat string (LLM will diarize into speaker turns) or a structured array of entries with speaker attribution (recommended — faster and more reliable).
crm — CRM Events
Supported eventType values: opportunity_created, deal_won, deal_lost, meeting_booked
- All CRM event types are processed for analytics.
- Required fields:
eventTimestamp,eventType,opportunityId,opportunityName - Optional:
amount,stage,accountName,contactEmail,contactName,closeDate,customMetadata
social — Social/LinkedIn Events
Supported eventType values: connection_sent, connection_accepted, message_sent, message_received
- All social event types are processed for analytics.
- Required fields:
eventTimestamp,eventType,body(text or html),from,to - Optional:
subject,eventId,conversationId,campaignId,messageType,campaignName,customMetadata
Deduplication
You can provide an optional eventId field for explicit deduplication. If not provided, an ID is auto-generated from the event content:
- Emails:
from_email + subject + timestamp + first_to_email - Calls:
title + timestamp + first_participant + first_100_chars_transcript - CRM:
opportunityId + eventType - Social: auto-generated from content
Authentication
Workspace is identified by API key, passed as a query parameter (api_key) or in the request header.
Authorizations
Path Parameters
Type of event being sent
emails, calls, crm, social "emails"
Query Parameters
Provide api key if not in header
Body
- Email Event
- Call Event
- CRM Event
- Social Event
- Email Event
- Call Event
- CRM Event
- Social Event
- Email Event
- Call Event
- CRM Event
- Social Event
- Email Event
- Call Event
- CRM Event
- Social Event
Webhook payload. The schema depends on the {eventType} path parameter:
emails— Email Event schemacalls— Call Event schemacrm— CRM Event schemasocial— Social Event schema (LinkedIn/social outreach)
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.
"2024-02-03T10:30:00Z"
Type of email event. Only 'sent' and 'reply' are processed for analytics; others are ingested but not processed.
sent, reply, opened, clicked, bounced, unsubscribed Email subject line
"Follow up on our conversation"
Email body. At least one of text or html must be provided.
Sender
Recipients (at least one required)
1CC recipients
BCC recipients
Explicit event ID for deduplication. If not provided, auto-generated from: from_email + subject + timestamp + first_to_email
"deal-001-email-sent-1"
Conversation/thread ID for grouping related emails
Campaign ID for grouping campaign emails
Octave request ID for tracking
Arbitrary key-value metadata
Response
Webhook received successfully
Whether the payload was received
Connection details
Additional data about the processed event
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.