Create Form Submission (Platform MCP)

Submits a completed response to a monday.com WorkForm, creating a new item on the form's backing board with the provided answers using the Platform MCP.

Use this tool to submit a response to a monday.com WorkForm. Each submission creates a new item on the form's backing board, with column values populated from the answers you provide. You can submit using a bare form token, a full WorkForm URL (https://forms.monday.com/forms/{token}?r=use1), or a shortened wkf.ms URL — shortened URLs are automatically resolved.

🚧

Always call get_form before submitting. You need the exact question IDs to map answers correctly. For SingleSelect and MultiSelect questions, you also need the option IDs returned by get_form — the display labels are not valid answer values. Additionally, inspect showIfRules on each question to determine which questions are conditionally shown based on prior answers, and only submit answers for questions that are visible.

Gather all answers before calling this tool. Do not call this tool once per question — collect all answers first and submit them in a single call as an array.

The typical form workflow is:

  1. create_form — Create the form and get a formToken
  2. form_questions_editor — Add, update, or delete questions
  3. update_form — Configure the form's title, appearance, and features
  4. get_form — Retrieve question IDs, types, options, and conditional rules
  5. create_form_submission ← You are here — Submit answers and receive a submission_id

Parameters

ParameterTypeRequiredDescription
form_tokenstringYesThe form token, a full WorkForm URL, or a shortened wkf.ms URL. Shortened URLs are automatically resolved.
answersarrayYesArray of answer objects. Each object must include question_id and exactly one answer field matching the question type. See answer type fields below.
form_timezone_offsetnumberYesThe submitter's timezone offset in minutes (e.g., -120 for UTC−2, 0 for UTC, 120 for UTC+2).
passwordstringConditionalRequired only if the form has password protection enabled (check features.password.enabled from get_form).
tagsarrayNoRouting tags to attach to the submission. Each tag maps a column_id to a value.

Answer field reference (set exactly one per answer object):

FieldTypeUsed for
namestringName questions
emailstringEmail questions
short_textstringShortText questions
long_textstringLongText questions
linkstringLink questions
updatesstringUpdates questions
booleanbooleanBoolean questions
numbernumberNumber questions
ratingnumberRating questions — must be ≥ 1 and within the question's configured limit
single_selectstringSingleSelect questions — the selected option ID (not label)
multi_selectarrayMultiSelect questions — list of selected option IDs
peoplearrayPeople questions — list of user IDs (use list_users_and_teams)
connected_boardsarrayConnectedBoards questions — list of connected item IDs
phoneobjectPhone questions — { phone, country_short_name }
countryobjectCountry questions — { country_name, country_code }
dateobjectDate questions — { date: "YYYY-MM-DD", zone_diff? }
date_rangeobjectDateRange questions — { from: "YYYY-MM-DD", to: "YYYY-MM-DD" }
locationobjectLocation questions — full structured address with lat, lng, place_id, and address components
filearrayFile questions — files must be uploaded first to get a file ID
signatureobjectSignature questions — file must be uploaded first

Example

Submit a response to the test form with a name answer and a short text answer:

{
  "form_token": "your_form_token_here",
  "form_timezone_offset": 0,
  "answers": [
    {
      "question_id": "name",
      "name": "API Tester"
    },
    {
      "question_id": "short_text413vvqbb",
      "short_text": "Automations and integrations"
    }
  ]
}

The tool returned submission_id: "4b4cb753-b3bd-4184-a7b6-7c9b949d3754", confirming the submission was recorded. A new item now appears on the form's backing board with the provided values.


Programmatic equivalent

monday.com WorkForms are managed through the monday.com interface or via the MCP. There is no direct GraphQL API equivalent for this operation.