submitted_form
A form on the site was submitted.
Open mode: the form's fields may travel as properties, and declared ones are checked. Values that look like an email address or a phone number in undeclared properties are dropped, because an identifier in a free field would escape normalisation and erasure; send them as identifiers instead.
| Sent with | browser, server keys (see write keys) |
| Mode | open: any keys; the declared ones are checked when present |
| Version | 1 (_schema_version on the stored row) |
| State | active |
| Required fields | none |
| Revenue | none: the revenue block is refused |
| Identity evidence | none |
| Before consent | no |
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.
| Field | Type | Required | What happens to it | Meaning |
|---|---|---|---|---|
form_id | string | no, may be null | stays in features | The form's id on the site. |
form_name | string | no, may be null | stays in features | The form's name, as the site calls it. |
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-d1f3-7c18-8000-d1f3c1880000",
"activity": "submitted_form",
"ts": "2026-10-17T20:00:00+02:00",
"identifiers": [
{
"type": "email",
"value": "ana@example.com"
}
],
"anonymous_customer_id": "evx_web_8f21c0",
"features": {
"form_id": "contact",
"form_name": "Contact us"
}
}
],
"debug": true
}
Try it
Sends this request from your browser. The key and the endpoint are kept in this browser only.
Versions
| Version | Mode | Key classes | Change |
|---|---|---|---|
| 1 (current) | open | browser, server | first version |
A published version never changes; a change is a new version, and every stored row says which version it was checked against.