{
"id": "<string>",
"api_version": "v1",
"occurred_at": "2023-11-07T05:31:56Z",
"partner_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"org_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"org_external_ref": "<string>",
"brand_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"brand_name": "<string>",
"brand_external_ref": "<string>",
"country": null,
"type": "score.threshold_crossed",
"data": {
"metric": "ais_score",
"score_version": "<string>",
"run_date": "2023-12-25",
"previous": {
"value": 123,
"date": "2023-12-25"
},
"current": {
"value": 123,
"date": "2023-12-25"
},
"delta": 123
},
"threshold": {
"subscription_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"min_delta": 123,
"sentiment_floor": 123,
"floor_breached": true
}
}score.threshold_crossed
Sent when an own brand’s AIS Score moves past a subscription’s threshold between two scored dates.
{
"id": "<string>",
"api_version": "v1",
"occurred_at": "2023-11-07T05:31:56Z",
"partner_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"org_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"org_external_ref": "<string>",
"brand_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"brand_name": "<string>",
"brand_external_ref": "<string>",
"country": null,
"type": "score.threshold_crossed",
"data": {
"metric": "ais_score",
"score_version": "<string>",
"run_date": "2023-12-25",
"previous": {
"value": 123,
"date": "2023-12-25"
},
"current": {
"value": 123,
"date": "2023-12-25"
},
"delta": 123
},
"threshold": {
"subscription_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"min_delta": 123,
"sentiment_floor": 123,
"floor_breached": true
}
}min_delta, in the subscription’s direction, between two consecutive scored dates. See Webhook events for the fields and for how thresholds are judged, including the moves that never fire.Authorizations
A Surfais API key — an organisation key or a partner key. Issued by Surfais; shown once. Rotate by creating a new key, then revoking the old one.
Headers
The envelope's id — dedupe on it; retries repeat it.
Unix seconds when THIS attempt was sent; reject if further than the documented tolerance from your clock.
v1= + hex(HMAC-SHA256(secret, ".")).
Body
evt_ + ULID. Retries carry the same id — dedupe on it.
"v1"RFC 3339 timestamp.
UUID.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$UUID.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Your external_ref on the partner–org link.
UUID.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Your external_ref on the brand.
Reserved: per-market events are a v1.1 deferral; always null in v1.
"score.threshold_crossed"Show child attributes
Show child attributes
The subscription rule that matched, frozen at emission so every retry carries the same block.
Show child attributes
Show child attributes
Response
Accepted. Any 2xx counts; the body is ignored (its first bytes are kept for your delivery log).