BlueSuite Developers
MCPTool reference

Quote Templates

BlueSuite MCP tools for quote templates

See connection and authentication and workflow rules before calling these tools.

Related REST API and behavior.

list_quote_templates

List quote templates. Templates are reusable starting points for creating new quotes with pre-filled line items, pricing, and messages.

Parameters

FieldType / accepted valuesRequiredDetails
pageintegerNoPage number (default: 1)
per_pageintegerNoResults per page (default: 25) minimum: 1. maximum: 100.
searchstringNoSearch by template name
sort_by"id", "template_name", "total", "created_at", "modified_at"NoField to sort by. Unknown values fall back to the default sort.
sort_direction"asc", "desc"NoSort direction

Result

FieldType / accepted valuesRequiredDetails
dataarray of objectYesThe matching records for this page.
paginationobjectNoHow many more pages of results exist. Absent when the API returned an unpaged result.
pagination.pageintegerWhen parent suppliedCurrent page number, 1-based.
pagination.per_pageintegerWhen parent suppliedNumber of results per page.
pagination.total_pagesintegerWhen parent suppliedTotal number of pages available.

create_quote_template

Create a new quote template. Templates store line items, pricing, discounts, deposits, tax rates, and messages that can be reused when creating new quotes.

Parameters

FieldType / accepted valuesRequiredDetails
template_namestringYesTemplate name (internal label)
namestringNoDefault quote name/title when using this template
descriptionstringNoTemplate description
messagestringNoDefault message to client
line_itemsarray of object or objectNoArray of line item objects. Two shapes are accepted: a regular priced row ({ name, quantity, unit_price }) or an inline image row ({ _type: "image", image_path, image_id, description }). For image rows: first call upload_file with module_type="workspace", category="line_item", is_public=true to upload the image, then pass the returned path as image_path and id as image_id.
line_items[]._type"lineItem"NoFor lineItem rows. Defaults to lineItem when omitted.
line_items[].namestringFor this variantFor lineItem rows. Item name
line_items[].descriptionstringNoFor lineItem rows. Plain text description for this line item. Omit when not needed. Default: "".
line_items[].quantitynumberNoFor lineItem rows. Quantity Default: 1.
line_items[].unit_pricenumberFor this variantFor lineItem rows. Price per unit
line_items[].taxablebooleanNoFor lineItem rows. Whether the item is taxable
line_items[].optionalbooleanNoFor lineItem rows. Whether the item is optional
line_items[]._type"image"For this variantFor image rows.
line_items[].image_pathstringFor this variantFor image rows. Storage path returned by a prior upload_file call. Upload with module_type="workspace", category="line_item", is_public=true to get a usable path. minLength: 1.
line_items[].image_idintegerNoFor image rows. Upload link ID (id) returned by the same upload_file call.
line_items[].descriptionstringNoFor image rows. Caption shown beneath the image in the line items list.
discountnumberNoDiscount amount (default: 0)
discount_unit"percent", "amount"NoHow the discount is expressed. One of: 'percent' (a percentage of the subtotal) or 'amount' (a fixed currency amount). Default: 'percent'.
depositnumberNoDeposit amount (default: 0)
deposit_unitJSON valueNoHow the deposit is expressed. One of: 'percent' or 'amount'. Default: 'percent'.
tax_ratenumberNoTax rate percentage (default: 0)
tax_rate_idintegerNoTax rate preset ID
totalnumberNoTemplate total

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

get_quote_template

Get a single quote template by ID with expanded details (tax rate, line items, creator)

Parameters

FieldType / accepted valuesRequiredDetails
idintegerYesQuote template ID

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

update_quote_template

Update an existing quote template. Modifying a quote template will not affect existing quotes that use it.

Parameters

FieldType / accepted valuesRequiredDetails
idintegerYesQuote template ID
template_namestringNoTemplate name (internal label)
namestringNoDefault quote name/title
descriptionstringNoTemplate description
messagestringNoDefault message to client
line_itemsarray of object or objectNoArray of line item objects. Two shapes are accepted: a regular priced row ({ name, quantity, unit_price }) or an inline image row ({ _type: "image", image_path, image_id, description }). For image rows: first call upload_file with module_type="workspace", category="line_item", is_public=true to upload the image, then pass the returned path as image_path and id as image_id.
line_items[]._type"lineItem"NoFor lineItem rows. Defaults to lineItem when omitted.
line_items[].namestringFor this variantFor lineItem rows. Item name
line_items[].descriptionstringNoFor lineItem rows. Plain text description for this line item. Omit when not needed. Default: "".
line_items[].quantitynumberNoFor lineItem rows. Quantity Default: 1.
line_items[].unit_pricenumberFor this variantFor lineItem rows. Price per unit
line_items[].taxablebooleanNoFor lineItem rows. Whether the item is taxable
line_items[].optionalbooleanNoFor lineItem rows. Whether the item is optional
line_items[]._type"image"For this variantFor image rows.
line_items[].image_pathstringFor this variantFor image rows. Storage path returned by a prior upload_file call. Upload with module_type="workspace", category="line_item", is_public=true to get a usable path. minLength: 1.
line_items[].image_idintegerNoFor image rows. Upload link ID (id) returned by the same upload_file call.
line_items[].descriptionstringNoFor image rows. Caption shown beneath the image in the line items list.
discountnumberNoDiscount amount
discount_unit"percent", "amount"NoHow the discount is expressed. One of: 'percent' (a percentage of the subtotal) or 'amount' (a fixed currency amount).
depositnumberNoDeposit amount
deposit_unitJSON valueNoHow the deposit is expressed. One of: 'percent' or 'amount'.
tax_ratenumberNoTax rate percentage
tax_rate_idJSON valueNoTax rate preset ID
totalnumberNoTemplate total

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

create_quote_from_template

Create a new draft quote from an existing quote template. The new quote inherits the template's line items, pricing, discounts, deposits, tax rate, message, and payment instructions. Requires the quotes:write scope.

Parameters

FieldType / accepted valuesRequiredDetails
template_idintegerYesQuote template ID to create the quote from
contact_idJSON valueNoClient to attach the new quote to. A template carries pricing but no client, so without this the quote arrives unaddressed.
property_idJSON valueNoProperty the work is for.
namestringNoOverride the quote name copied from the template.
salesperson_idstringNoUUID of the salesperson. Use list_users to resolve names. Format: uuid.
expire_onstring or stringNoExpiry date (YYYY-MM-DD).

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

delete_quote_template

Delete a quote template by ID. Deleting a quote template will not affect existing quotes that use it.

Parameters

FieldType / accepted valuesRequiredDetails
idintegerYesQuote template ID

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

The downloadable tool schemas include the full input and output contracts. Tables describe schema-level required fields; cross-field rules still apply.

On this page