Skip to content
Get started

Create a new feedback record

POST/v1/feedback-records

Creates a new feedback record data point

Body ParametersExpand Collapse
field_id: string

Identifier for the question/field. NULL bytes not allowed.

minLength1
maxLength255
field_type: "text" or "categorical" or "nps" or 6 more

Field type: text (enrichable), categorical, nps, csat, ces, rating, number, boolean, date

minLength1
maxLength255
Accepts one of the following:
"text"
"categorical"
"nps"
"csat"
"ces"
"rating"
"number"
"boolean"
"date"
source_type: string

Type of feedback source (e.g., survey, review, feedback_form). NULL bytes not allowed.

minLength1
maxLength255
collected_at: optional string

When the feedback was collected (defaults to now). Must be between 1970-01-01 and 2080-12-31.

formatdate-time
field_group_id: optional string

Stable identifier grouping related fields (for ranking, matrix, grid questions). NULL bytes not allowed.

maxLength255
field_group_label: optional string

Human-readable question text for the group

field_label: optional string

The actual question text

language: optional string

ISO language code. NULL bytes not allowed.

maxLength10
metadata: optional map[unknown]

User agent, device, location, referrer, tags, etc. NULL bytes (\x00 or \u0000) are not allowed in JSON keys or values.

source_id: optional string

Reference to survey/form/ticket ID

source_name: optional string

Human-readable name

tenant_id: optional string

Tenant/organization identifier for multi-tenancy. NULL bytes not allowed.

maxLength255
user_identifier: optional string

Anonymous ID or email hash

value_boolean: optional boolean

For yes/no questions

value_date: optional string

For date responses. Must be between 1970-01-01 and 2080-12-31.

formatdate-time
value_number: optional number

For ratings, NPS scores, numeric responses. Must be between -1e15 and +1e15.

formatdouble
minimum-1000000000000000
maximum1000000000000000
value_text: optional string

For open-ended text responses. NULL bytes not allowed.

ReturnsExpand Collapse
FeedbackRecordData = object { id, collected_at, created_at, 17 more }
id: string

UUIDv7 primary key

formatuuid
collected_at: string

When the feedback was collected

formatdate-time
created_at: string

When this record was created

formatdate-time
field_id: string

Identifier for the question/field

field_type: string

Type of field

source_type: string

Type of feedback source

updated_at: string

When this record was last updated

formatdate-time
field_group_id: optional string

Stable identifier grouping related fields (for ranking, matrix, grid questions)

field_group_label: optional string

Human-readable question text for the group

field_label: optional string

The actual question text

language: optional string

ISO language code. NULL bytes not allowed.

metadata: optional map[unknown]

Additional context

source_id: optional string

Reference to survey/form/ticket ID

source_name: optional string

Human-readable name

tenant_id: optional string

Tenant/organization identifier. NULL bytes not allowed.

user_identifier: optional string

User identifier

value_boolean: optional boolean

Boolean response

value_date: optional string

Date response

formatdate-time
value_number: optional number

Numeric response

formatdouble
value_text: optional string

Text response. NULL bytes not allowed.

Create a new feedback record

curl http://localhost:8080/v1/feedback-records \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $HUB_API_KEY" \
    -d '{
          "field_id": "q1",
          "field_type": "rating",
          "source_type": "survey"
        }'
{
  "id": "018e1234-5678-9abc-def0-123456789abc",
  "collected_at": "2024-01-15T10:30:00Z",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z",
  "source_type": "survey",
  "field_id": "q1",
  "field_type": "rating",
  "field_label": "How satisfied are you?",
  "value_number": 9,
  "source_id": "survey-123",
  "source_name": "Q1 NPS Survey",
  "user_identifier": "user-abc-123",
  "tenant_id": "org-123",
  "language": "en"
}
{
  "type": "about:blank",
  "title": "Bad Request",
  "status": 400,
  "detail": "Required field 'field_id' is missing",
  "instance": "/v1/feedback-records"
}
Returns Examples
{
  "id": "018e1234-5678-9abc-def0-123456789abc",
  "collected_at": "2024-01-15T10:30:00Z",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z",
  "source_type": "survey",
  "field_id": "q1",
  "field_type": "rating",
  "field_label": "How satisfied are you?",
  "value_number": 9,
  "source_id": "survey-123",
  "source_name": "Q1 NPS Survey",
  "user_identifier": "user-abc-123",
  "tenant_id": "org-123",
  "language": "en"
}
{
  "type": "about:blank",
  "title": "Bad Request",
  "status": 400,
  "detail": "Required field 'field_id' is missing",
  "instance": "/v1/feedback-records"
}