Event Ingestion
The event ingestion API is the primary way to get data into Waypath. All events are normalized, identity-resolved, and written to both the CRM store and graph.
Track a touchpoint
POST /api/v1/events/track
X-API-Key: dsk_your_key
Content-Type: application/json
{
"action": "email_opened",
"customerId": "cust_123",
"campaignId": "camp_456",
"channel": "email",
"properties": {
"subject": "Spring Sale",
"timestamp": "2026-03-15T10:30:00Z"
}
}This creates:
- A Touchpoint node with
HAS_TOUCHPOINTedge to the Customer - An
INFLUENCED_BYedge to the Campaign (ifcampaignIdprovided) - A Channel node with
VIA_CHANNELedge
Identify a customer
POST /api/v1/events/identify
X-API-Key: dsk_your_key
Content-Type: application/json
{
"email": "sarah@example.com",
"name": "Sarah Chen",
"phone": "+1-555-0123",
"externalId": "hubspot_12345",
"properties": {
"company": "Acme Corp",
"title": "VP Marketing"
}
}Identity resolution runs automatically, matching by:
- Email (confidence: 1.0)
- Phone (confidence: 0.9)
- External ID (confidence: 0.8)
If no match is found, a new Customer node is created.
Batch ingestion
POST /api/v1/events
X-API-Key: dsk_your_key
Content-Type: application/json
{
"events": [
{ "type": "track", "action": "page_view", "customerId": "cust_1", ... },
{ "type": "identify", "email": "user@example.com", ... },
{ "type": "track", "action": "purchase", "customerId": "cust_2", ... }
]
}Events are processed sequentially. Identity resolution runs on each event.
Pipeline flow
Event received
-> Identity Resolution (match or create Customer)
-> Write CRM record (Pipeline)
-> Build graph nodes + edges (Intelligence)
-> WebSocket broadcast (real-time UI update)