Update question
Change a question's label, type, options or whether it is required.
MCP tool fillout_write → update_question
write
Changes one question of a form and returns it as it is now. Only the fields you pass are changed. The change reaches respondents only after publish_form. Changing the type of a question that already has answers can hide them in Results, so check get_form and list_submissions first. This call is undone by the editor's edit history, so it runs without asking first.
Parameters
| Name | Type | Description |
|---|---|---|
| form_id string required | string | Form ID from list_forms. |
| question_id string required | string | Question ID from get_form. |
| label string | string | New question text. |
| type enum | enum | New field type: Address, AudioRecording, Calcom, Calendly, Captcha, Checkbox, Checkboxes, ColorPicker, CurrencyInput, DatePicker, DateRange, DateTimePicker, Dropdown, EmailInput, FileUpload, ImagePicker, LocationCoordinates, LongAnswer, Matrix, MultiSelect, MultipleChoice, NumberInput, OpinionScale, Password, Payment, PhoneNumber, Ranking, RecordPicker, ShortAnswer, Signature, Slider, StarRating, Subform, SubmissionPicker, Switch, Table, TimePicker or URLInput. |
| options array | array | Replaces the answer options. |
| required boolean | boolean | Make the question required or optional. |
tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fillout_write",
"arguments": {
"operation": "update_question",
"arguments": {
"form_id": "form_8c41d2",
"question_id": "question_8c41d2"
}
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"form_id": "fpj3Kd9xQw2L",
"question": {
"id": "q_company_size",
"name": "Company size",
"type": "Dropdown",
"required": true
}
},
"isError": false
}