Create a new feedback record
Creates a new feedback record data point
Request body
When the feedback was collected (defaults to now). Must be between 1970-01-01 and 2080-12-31.
Identifier for the question/field. NULL bytes not allowed.
The actual question text
Stable identifier grouping related fields (for ranking, matrix, grid questions). NULL bytes not allowed.
Human-readable question text for the group
Field type: text (enrichable), categorical, nps, csat, ces, rating, number, boolean, date
ISO language code. NULL bytes not allowed.
User agent, device, location, referrer, tags, etc. NULL bytes (\x00 or \u0000) are not allowed in JSON keys or values.
Reference to survey/form/ticket ID
Human-readable name
Type of feedback source (e.g., survey, review, feedback_form). NULL bytes not allowed.
Identifier for the logical submission this record belongs to (tenant-scoped). Required. Enables grouping multi-field submissions and idempotent ingestion. Unique per (tenant_id, submission_id, field_id). If a record has no logical submission, use e.g. field_id.
Tenant/organization identifier for multi-tenancy. Required.
User ID (e.g., anonymous ID or email hash)
For yes/no questions
For date responses. Must be between 1970-01-01 and 2080-12-31.
For ratings, NPS scores, numeric responses. Must be between -1e15 and +1e15.
For open-ended text responses. Omit or null if not applicable. NULL bytes not allowed when present.
Stable id of the selected option in the source system (e.g. a survey choice id or matrix column id), stored alongside value_text so selected-choice answers keep a durable identity across label edits and languages. Opaque to Hub (not validated). Null for free-text/"other" answers, non-choice fields, and sources without option ids. NULL bytes not allowed when present.
Example request
{
"field_id": "q1",
"field_label": "How satisfied are you?",
"field_group_id": "feature_priority",
"field_group_label": "Rank these features by importance",
"field_type": "rating",
"language": "en",
"source_id": "survey-123",
"source_name": "Q1 NPS Survey",
"source_type": "survey",
"submission_id": "550e8400-e29b-41d4-a716-446655440000",
"tenant_id": "org-123",
"user_id": "user-abc-123",
"value_boolean": true,
"value_number": 9,
"value_text": "Great service!",
"value_id": "opt_very_satisfied"
}Response
Created
When the feedback was collected
When this record was created
Identifier for the question/field
The actual question text
Stable identifier grouping related fields (for ranking, matrix, grid questions)
Human-readable question text for the group
Type of field
UUIDv7 primary key
ISO language code. NULL bytes not allowed.
Additional context
Sentiment polarity inferred from value_text (sentiment enrichment). Read-only; absent until the record is enriched.
Signed sentiment polarity from -1.0 (very negative) to 1.0 (very positive) (sentiment enrichment). Read-only; absent until the record is enriched.
Emotions inferred from value_text (emotion enrichment); multi-label from a fixed set. Read-only; absent until the record is enriched, and never an empty array.
Reference to survey/form/ticket ID
Human-readable name
Type of feedback source
Identifier for the logical submission this record belongs to (required).
Tenant/organization identifier. NULL bytes not allowed.
BCP-47 target locale that value_text_translated was produced in (language enrichment). Read-only; absent until the record is enriched.
When this record was last updated
User ID (e.g., anonymous ID or email hash)
Boolean response
Date response
Numeric response
Text response. NULL bytes not allowed.
Stable id of the selected option in the source system (e.g. a survey choice id), stored alongside value_text for durable option identity. Opaque to Hub. Absent for free-text/non-choice answers. NULL bytes not allowed.
value_text translated into the tenant's configured target language (language enrichment). Read-only; absent until the record is enriched.