Docs
Webhook events

guidance.completed

An end user completed a tour, tooltip or banner. Return any 2xx within 10 seconds to acknowledge; anything else is retried with backoff.

Header Parameters

Cueston-Signature*string

t=<unix seconds>,v1=<hex HMAC-SHA256>. The HMAC key is your endpoint's whole secret (whsec_…); the message is <t>.<raw body>. Compare in constant time and reject timestamps more than 5 minutes off. After a rotation a second v1= (old secret) follows for 24 hours.

Cueston-Event-Id*string

Same as id in the body.

Cueston-Event-Type*string

Same as type in the body.

Cueston-Delivery-Attempt*string

1 for the first try.

Request Body

application/json
  1. body
id*string

evt_…, stable across retries and redeliveries — de-duplicate on it.

type*unknown
createdAt*string
Formatdate-time
workspaceId*integer
data*

Response Body

Acknowledged.

Example Requests
POST/guidance.completed
JSON
{
  "id": "string",
  "type": "guidance.completed",
  "createdAt": "2026-10-26T09:30:00Z",
  "workspaceId": 1201,
  "data": {
    "contentType": "string",
    "contentId": 42,
    "contentName": "Onboarding tour",
    "stepIndex": 1,
    "stepId": 311,
    "userId": "user-123",
    "anonymousId": "anon_8f2c1d9e",
    "sessionId": "sess_4b1e7a20",
    "url": "https://app.acme.com/settings/billing",
    "occurredAt": "2026-10-26T09:30:00Z"
  }
}
JSON
{
  "Cueston-Signature": "string",
  "Cueston-Event-Id": "string",
  "Cueston-Event-Type": "string",
  "Cueston-Delivery-Attempt": "string"
}