Update a draft proposal
proposals_update_draftEdit an existing draft proposal by proposal_id (proposals_create_draft makes a new one). Only drafts are editable: a sent, accepted or declined proposal is refused (recall a sent one to draft with proposals_update_status or in the app), and an accepted or deposit-paid proposal is locked and changes only through a change order in the app. Changeable: title, internal notes (replaced), add_line_items (same grammar as proposals_create_draft; repeating them adds the lines twice), remove_line_items (by line name), discount (discount_percent or discount_amount; 0 removes it), signature requirement, deposit (deposit_percent or deposit_amount; require_deposit: false removes it) and expiry (valid_for_days; 0 removes it). When lines, discount or deposit change, subtotal, tax, total and deposit are re-derived server-side; other edits leave the money unchanged. It cannot send, accept, decline, convert, delete, change the client or tax rate, or edit layout, theme or sections (see proposals_update_design, proposals_edit_sections).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"proposal_id": "<proposal_id>"
},
"name": "proposals_update_draft"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Replaces the internal notes. | |
| title | No | New title. | |
| proposal_id | Yes | Draft proposal id (from proposals_create_draft or proposals_search). | |
| add_line_items | No | Lines to add: {product_id, quantity} or {description, unit_price, quantity}. | |
| deposit_amount | No | Deposit as a fixed amount. | |
| valid_for_days | No | Days until the proposal expires; 0 removes the expiry. | |
| deposit_percent | No | Deposit as a percentage of the total. Use this or `deposit_amount`. | |
| discount_amount | No | Discount as a fixed amount; 0 removes it. | |
| require_deposit | No | false removes the deposit requirement. | |
| discount_percent | No | Discount as a percentage; 0 removes it. Use this or `discount_amount`. | |
| remove_line_items | No | Line names to remove. | |
| require_signature | No | Whether accepting requires a signature. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| changed | Yes | ||
| changes | No | ||
| proposal | Yes |