Skip to main content

granted_consent

Consent was given, for a purpose on a channel: the raw fact, with the text and the box.

Sent by the system that holds the form (the shop's keep-me-informed box, a sign-up form). The fields are the raw consent facts, so the CRM can resolve reachability under any ruleset later. Ingest stores the fact; it decides nothing.

Sent withserver, platform keys (see write keys)
Modestrict: exactly the declared fields; an undeclared key, a wrong type or a missing required key quarantines the event
Version1 (_schema_version on the stored row)
Stateactive
Required fieldspurpose, channel
Revenuenone: the revenue block is refused
Identity evidencenone
Before consentno

Fields​

The activity's own fields, sent as features. Identifier and attribute fields are moved out of features by the processor; see identifiers and attributes.

FieldTypeRequiredWhat happens to itMeaning
brand_scopestringno, may be nullstays in featuresThe brand or organiser the consent is scoped to, when narrower than the owner.
channelstringyesstays in featuresThe channel the consent concerns: email, sms, push, …
consent_box_shownbooleanno, may be nullstays in featuresWhether a consent box was shown at all.
consent_box_tickedbooleanno, may be nullstays in featuresWhether the person ticked it.
form_textstringno, may be nullstays in featuresThe exact text shown beside the box.
form_text_versionstringno, may be nullstays in featuresA version of that text, so a later change can be told apart.
legal_basisstringno, may be nullstays in featuresThe basis claimed: consent, soft_opt_in, contract, …
opt_out_offeredbooleanno, may be nullstays in featuresWhether an opt-out was offered at the point of collection (soft opt-in requires it).
order_idstringno, may be nullstays in featuresThe order in the ticketing system, as its own id. The same value on every activity derived from one order, so they can be joined.
purchase_madebooleanno, may be nullstays in featuresWhether a purchase was made in the same flow (soft opt-in requires it).
purposestringyesstays in featuresWhat consent was given or withdrawn for: marketing, profiling, …

Example​

One activity in a batch to POST /v1/activities, with debug so the answer says what the processor made of it. The envelope page explains every top-level field.

{
"batch": [
{
"activity_id": "0192f1a4-f2a2-7729-8000-f2a272960000",
"activity": "granted_consent",
"ts": "2026-10-17T20:00:00+02:00",
"owner_ref": "own:own_01M4XX0033FV7QXDRB5BQBRPGR",
"identifiers": [
{
"type": "email",
"value": "ana@example.com"
}
],
"features": {
"brand_scope": null,
"channel": "email",
"consent_box_shown": true,
"consent_box_ticked": true,
"form_text": "Keep me informed about Summer Fest",
"form_text_version": "2026-05-01",
"legal_basis": "consent",
"opt_out_offered": true,
"order_id": "1f2d3c4b-0000-4000-8000-000000000001",
"purchase_made": true,
"purpose": "marketing"
}
}
],
"debug": true
}

Try it​

Sends this request from your browser. The key and the endpoint are kept in this browser only.

Versions​

VersionModeKey classesChange
1 (current)strictserver, platformfirst version

A published version never changes; a change is a new version, and every stored row says which version it was checked against.