member.joined
Someone joined the workspace. Return any 2xx within 10 seconds to acknowledge; anything else is retried with backoff.
Header Parameters
Cueston-Signature*stringt=<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*stringSame as id in the body.
Cueston-Event-Type*stringSame as type in the body.
Cueston-Delivery-Attempt*string1 for the first try.
Request Body
application/json- body
id*stringevt_…, stable across retries and redeliveries — de-duplicate on it.
type*unknowncreatedAt*stringdate-timeworkspaceId*integerdata*Response Body
Acknowledged.
{
"id": "string",
"type": "member.joined",
"createdAt": "2026-10-26T09:30:00Z",
"workspaceId": 1201,
"data": {
"userId": 0,
"email": "ada@acme.com",
"role": "admin",
"source": "invite"
}
}{
"Cueston-Signature": "string",
"Cueston-Event-Id": "string",
"Cueston-Event-Type": "string",
"Cueston-Delivery-Attempt": "string"
}survey.answeredEvent
An end user finished a survey (completed it, or answered some questions and closed it). Return any 2xx within 10 seconds to acknowledge; anything else is retried with backoff.
webhook.testEvent
Sent only by "Send test event" (you can't subscribe to it).. Return any 2xx within 10 seconds to acknowledge; anything else is retried with backoff.