Odoo 19.0 Community · Persistent

survey.question: fields, relations and API

The survey.question model ("Survey Question") is a persistent model declared by the Surveys module, then extended by 1 other module. It exposes 65 fields, 59 of them declared directly on the model; 10 fields from other models point to it. Below you will find every field with its technical name, type, label and relations, followed by an Odoo 19 JSON-2 API call.

Model identity

Technical name
survey.question
Label
Survey Question
Type
Persistent (models.Model)
SQL table
survey_question
Origin module
Surveys (survey)
Extended by
survey_crm
Default order (_order)
sequence,id
Display field (_rec_name)
title

Model fields

59 own fields, 0 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.

65 of 65 fields shown

Technical nameLabelTypeDetails
allowed_triggering_question_idsAllowed Triggering Questionsmany2many
computed
answer_dateCorrect date answer

Correct date answer for this question.

date
answer_datetimeCorrect datetime answer

Correct date and time answer for this question.

datetime
answer_numerical_boxCorrect numerical answer

Correct number answer for this question.

float
answer_scoreScore

Score value for a correct answer to this question.

float
background_imageBackground Imageimage
computed, stored
background_image_urlBackground Urlchar
computed
comment_count_as_answerComment is an answerboolean
comments_allowedShow Comments Fieldboolean
comments_messageComment Messagechar
translatable
constr_error_msgError messagechar
translatable
constr_mandatoryMandatory Answerboolean
descriptionDescription

Use this field to add additional explanations about your question or to illustrate it with pictures or a video

html
translatable
generate_leadLead Generating

At least one of the question answers can generate leads.

boolean
computed

added by Survey CRM (survey_crm)

has_image_only_suggested_answerHas image only suggested answerboolean
computed
is_pageIs a page?boolean
is_placed_before_triggerIs misplaced?

Is this question placed before any of its trigger questions?

boolean
computed
is_scored_questionScored

Include this question as part of quiz scoring. Requires an answer and answer score to be taken into account.

boolean
computed, stored
is_time_customizedCustomized speed rewardsboolean
is_time_limitedThe question is limited in time

Currently only supported for live sessions.

boolean
matrix_row_idsMatrix Rows

Labels used for proposed choices: rows of matrix

one2many

inverse: matrix_question_id

matrix_subtypeMatrix Typeselection

Values: simple (One choice per row), multiple (Multiple choices per row)

page_idPagemany2one
computed, stored
question_idsQuestionsone2many
computed
question_placeholderPlaceholderchar
computed, storedtranslatable
question_typeQuestion Typeselection
computed, stored

Values: simple_choice (Multiple choice: only one answer), multiple_choice (Multiple choice: multiple answers allowed), text_box (Multiple Lines Text Box), char_box (Single Line Text Box), numerical_box (Numerical Value), scale (Scale), date (Date), datetime (Datetime), matrix (Matrix)

questions_selectionQuestions Selection

If randomized is selected, add the number of random questions next to the section.

selection
read-only

related: survey_id.questions_selection

random_questions_count# Questions Randomly Picked

Used on randomized sections to take X random questions from all the questions of that section.

integer
save_as_emailSave as user email

If checked, this option will save the user's answer as its email address.

boolean
computed, stored
save_as_nicknameSave as user nickname

If checked, this option will save the user's answer as its nickname.

boolean
computed, stored
scale_maxScale Maximum Valueinteger
scale_max_labelScale Maximum Labelchar
translatable
scale_mid_labelScale Middle Labelchar
translatable
scale_minScale Minimum Valueinteger
scale_min_labelScale Minimum Labelchar
translatable
scoring_typeScoring Typeselection
read-only

related: survey_id.scoring_type

sequenceSequenceinteger
session_availableLive Session availableboolean
read-only

related: survey_id.session_available

suggested_answer_idsTypes of answers

Labels used for proposed choices: simple choice, multiple choice and columns of matrix

one2many

inverse: question_id

survey_idSurveymany2one
survey_session_speed_ratingSurvey Session Speed Ratingboolean

related: survey_id.session_speed_rating

survey_session_speed_rating_time_limitGeneral Time limit (seconds)integer

related: survey_id.session_speed_rating_time_limit

survey_typeSurvey Typeselection

related: survey_id.survey_type

added by Survey CRM (survey_crm)

time_limitTime limit (seconds)integer
titleTitlechar
requiredtranslatable
triggering_answer_idsTriggering Answers

Picking any of these answers will trigger this question. Leave the field empty if the question should always be displayed.

many2many
triggering_question_idsTriggering Questions

Questions containing the triggering answer(s) to display the current question.

many2many
computed
user_input_line_idsAnswersone2many

inverse: question_id

validation_emailInput must be an emailboolean
validation_error_msgValidation Errorchar
translatable
validation_length_maxMaximum Text Lengthinteger
validation_length_minMinimum Text Lengthinteger
validation_max_dateMaximum Datedate
validation_max_datetimeMaximum Datetimedatetime
validation_max_float_valueMaximum valuefloat
validation_min_dateMinimum Datedate
validation_min_datetimeMinimum Datetimedatetime
validation_min_float_valueMinimum valuefloat
validation_requiredValidate entryboolean
computed, stored
create_dateCreated ondatetime
read-onlyautomatic
create_uidCreated bymany2one
read-onlyautomatic
display_nameDisplay Namechar
read-onlycomputedautomatic
idIDinteger
read-onlyautomatic
write_dateLast Updated ondatetime
read-onlyautomatic
write_uidLast Updated bymany2one
read-onlyautomatic

Relations

Models linked from this model

Fields of other models pointing here

Reading this model through the API

Odoo 19 JSON-2 API call reading the first five records with real fields of the model. Replace the instance, database and API key with your own.

curl
curl -X POST "https://your-instance.odoo.com/json/2/survey.question/search_read" \
  -H "Authorization: bearer $ODOO_API_KEY" \
  -H "X-Odoo-Database: your-db" \
  -H "Content-Type: application/json" \
  -d '{"domain":[],"fields":["title","page_id","survey_id","answer_date","answer_datetime"],"limit":5}'
Python (requests)
import requests

BASE_URL = "https://your-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "your-db"}

res = requests.post(
    f"{BASE_URL}/survey.question/search_read",
    headers=headers,
    json={"domain": [], "fields": ["title","page_id","survey_id","answer_date","answer_datetime"], "limit": 5},
)
res.raise_for_status()
print(res.json())
  • External API access requires Odoo's Custom plan.
  • XML-RPC and JSON-RPC will be removed in Odoo 22 (fall 2028): use JSON-2.
  • The access rights and record rules of the key's user apply.

Cite this tool

Writing a tutorial, internal documentation or a forum answer? Copy this link to send your readers to the up-to-date reference.

<a href="https://aidoo.ai/en/outils/explorateur-modeles-odoo/survey-question">survey.question (Odoo 19.0)</a>

Sources

Data verified on September 23, 2026 · Odoo 19.0 Community

Have an Odoo project, or want to put your ERP to work with AI? Let's talk

Implementation, custom module development, connecting Claude or ChatGPT to your data: tell us about your context and we will reply within 24 business hours.