update_test_plan
Update a Jira test plan with a partial update: only provided fields change, omitted fields keep current values. Use for changing name, owner, folder, status, objective, labels, or issue links.
Instructions
Update a test plan (PUT /testplan/{testPlanKey}). PARTIAL update: only the fields you pass are written and omitted fields keep their current value, so never send empty placeholders — they overwrite real data. projectKey cannot be changed. folder must be a TEST_PLAN folder (create_folder with type TEST_PLAN) — The folder MUST already exist — the API never creates folders implicitly (use create_folder first). status is a case-sensitive internal name. owner: Jira user key (e.g. 'JIRAUSER10000'), NOT a username or e-mail — resolve it with find_jira_user. Returns { key }.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Test plan name | |
| owner | No | Owner. Jira *user key* (e.g. 'JIRAUSER10000'), NOT a username or e-mail — resolve it with find_jira_user. | |
| folder | No | Full path of a TEST_PLAN folder from the root starting with "/", e.g. "/Releases/2026". The folder MUST already exist — the API never creates folders implicitly (use create_folder first). | |
| labels | No | Labels; the API replaces spaces with underscores | |
| status | No | Test plan status. Defaults: 'Draft', 'Approved', 'Deprecated' — case-sensitive; instances may define custom ones. Plan statuses are their OWN option set: get_status_options cannot list them (it has no test_plan optionSet) and the test CASE statuses it returns are rejected here with 400 "The value <x> was not found for field status." | |
| objective | No | Objective (HTML allowed) | |
| issueLinks | No | Jira issue keys to link, e.g. ["PROJ-123"] | |
| testPlanKey | Yes | Test plan key, e.g. PROJ-P123 | |
| customFields | No | Custom field values keyed by field name |