# Bidsketch

Bidsketch is a proposal software that helps businesses create professional proposals quickly and efficiently.

- **Category:** proposal & invoice management
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 38
- **Triggers:** 0
- **Slug:** `BIDSKETCH`
- **Version:** 20260227_00

## Tools

### Create Client

**Slug:** `BIDSKETCH_CREATE_CLIENT`

Tool to create a client. Use when adding a new client record to Bidsketch.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `city` | string | No | City in the client's address. |
| `name` | string | No | Client's full name or company name. |
| `email` | string | Yes | Client's primary email address. |
| `notes` | string | No | Notes about the client; quotes need not be escaped. |
| `phone` | string | No | Client's primary phone number. |
| `state` | string | No | State in the client's address. |
| `country` | string | No | Country in the client's address. |
| `website` | string | No | Client's website. |
| `alt_phone` | string | No | Client's alternate phone number. |
| `last_name` | string | Yes | Client's last name if they are a person. |
| `first_name` | string | Yes | Client's first name if they are a person. |
| `postal_zip` | string | No | Postal or ZIP code of the client's address. |
| `other_contact` | object | No | Secondary contact information for client creation. |
| `address_field_one` | string | No | First line of the client's address. |
| `address_field_two` | string | No | Second line of the client's address. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Proposal

**Slug:** `BIDSKETCH_CREATE_PROPOSAL`

Tool to create a new proposal. Use when you need to create a proposal for a client with a name, description, and other details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tax` | number | No | Tax as decimal (e.g., 0.1 for 10%). |
| `name` | string | Yes | The proposal's name/title. |
| `tax2` | number | No | Secondary tax as decimal (e.g., 0.05 for 5%). |
| `currency` | string | No | ISO currency code (e.g., USD, EUR, GBP). |
| `discount` | number | No | Discount as decimal (e.g., 0.1 for 10%). |
| `settings` | object | No | Settings for the proposal. |
| `client_id` | integer | Yes | The ID of the client for this proposal. |
| `description` | string | No | A summary of the proposal. |
| `proposal_date` | string | No | Date for the proposal in MM/DD/YYYY format. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Client

**Slug:** `BIDSKETCH_DELETE_CLIENT`

Tool to delete a client and all their proposals. Use when you want to permanently remove a client and its associated proposals from your account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the client to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Fee

**Slug:** `BIDSKETCH_DELETE_FEE`

Tool to delete a fee. Use when a saved fee is no longer needed. Use after confirming this fee isn't referenced in any live proposals.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fee_id` | integer | Yes | Unique ID of the fee to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Proposal

**Slug:** `BIDSKETCH_DELETE_PROPOSAL`

Tool to delete a proposal and all its content. Use after confirming the proposal ID to prevent accidental deletions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the proposal to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Proposal Fee

**Slug:** `BIDSKETCH_DELETE_PROPOSAL_FEE`

Tool to delete a proposal fee. Use when you need to remove an existing fee before finalizing or sending a proposal.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fee_id` | integer | Yes | The ID of the fee to delete. |
| `proposal_id` | integer | Yes | ID of the proposal containing the fee. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Proposal Section

**Slug:** `BIDSKETCH_DELETE_PROPOSAL_SECTION`

Tool to delete a proposal section. Use when you need to remove a section from a proposal after verifying its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `section_id` | integer | Yes | ID of the section to delete |
| `proposal_id` | integer | Yes | ID of the proposal containing the section to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Section

**Slug:** `BIDSKETCH_DELETE_SECTION`

Tool to delete a section. Use when you need to permanently remove a saved section after confirming its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the section to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Webhook

**Slug:** `BIDSKETCH_DELETE_WEBHOOK`

Permanently delete a webhook subscription by ID. This removes the webhook and stops all future event notifications to its endpoint. Use this tool when you no longer need to receive events at a specific webhook URL, or when cleaning up test webhooks. Returns HTTP 204 No Content on success, or HTTP 404 if the webhook ID doesn't exist.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the webhook to permanently delete. This removes the webhook subscription and stops all future event notifications to the endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Client

**Slug:** `BIDSKETCH_GET_CLIENT`

Tool to get a client by ID. Use when you need detailed client info after obtaining its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the client to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Client Proposals

**Slug:** `BIDSKETCH_GET_CLIENT_PROPOSALS`

Tool to list proposals for a specific client. Use after confirming the client ID exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `client_id` | integer | Yes | The ID of the client whose proposals to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Clients

**Slug:** `BIDSKETCH_GET_CLIENTS`

Tool to retrieve all clients. Use when you need to list all clients on the account.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Fee

**Slug:** `BIDSKETCH_GET_FEE`

Tool to get a single fee. Use when you need detailed information about a fee by its ID after confirming its existence.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fee_id` | integer | Yes | Unique ID of the fee to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Fees

**Slug:** `BIDSKETCH_GET_FEES`

Tool to list all the fees for the account. Use when you need to fetch every saved fee.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Proposal

**Slug:** `BIDSKETCH_GET_PROPOSAL`

Tool to get a proposal by ID. Use when you need detailed information for a specific proposal after obtaining its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the proposal to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Proposal Content

**Slug:** `BIDSKETCH_GET_PROPOSAL_CONTENT`

Tool to get a proposal with all its content (sections and fees). Use when you need a full proposal in one call.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `proposal_id` | integer | Yes | ID of the proposal to retrieve content for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Proposal Fee

**Slug:** `BIDSKETCH_GET_PROPOSAL_FEE`

Tool to get a single fee item for a proposal. Use when you need detailed information about a specific fee before updating or displaying it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fee_id` | integer | Yes | ID of the fee to retrieve within the proposal. |
| `proposal_id` | integer | Yes | ID of the proposal containing the fee. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Proposal Fees

**Slug:** `BIDSKETCH_GET_PROPOSAL_FEES`

Tool to list all fees for a proposal. Use after confirming the proposal ID exists; supports pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of items per page for pagination. |
| `proposal_id` | integer | Yes | ID of the proposal to list fees for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Proposals

**Slug:** `BIDSKETCH_GET_PROPOSALS`

Tool to retrieve all proposals for the account. Use when you need an overview of existing proposals.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Proposal Section

**Slug:** `BIDSKETCH_GET_PROPOSAL_SECTION`

Tool to fetch a single proposal section. Use when you need detailed information for a section after listing proposal sections.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `section_id` | integer | Yes | ID of the specific section to retrieve |
| `proposal_id` | integer | Yes | ID of the proposal containing the section to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Proposal Sections

**Slug:** `BIDSKETCH_GET_PROPOSAL_SECTIONS`

Tool to get all sections for a proposal. Use when you need to list opening or closing sections by proposal ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `proposal_id` | integer | Yes | ID of the proposal to retrieve sections for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Proposal Stats

**Slug:** `BIDSKETCH_GET_PROPOSAL_STATS`

Get proposal statistics for your Bidsketch account. This endpoint retrieves the total count of proposals in your account, including all proposals regardless of their status (draft, sent, won, lost, or archived). Use this when you need to: - Get a quick overview of total proposal count - Track the number of proposals created over time - Display proposal statistics in dashboards or reports No parameters required - simply call this action to get the current proposal count.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Section

**Slug:** `BIDSKETCH_GET_SECTION`

Tool to fetch a section by ID. Use when you need detailed section information after confirming its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the section to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Sections

**Slug:** `BIDSKETCH_GET_SECTIONS`

Retrieves all reusable proposal sections saved to your Bidsketch account. Sections are text blocks that can be included in proposals, categorized as 'opening' (appear at the start) or 'closing' (appear at the end). Use this to browse available sections before adding them to proposals.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Templates

**Slug:** `BIDSKETCH_GET_TEMPLATES`

Retrieves all proposal templates saved in the account. Templates contain predefined sections, fees, and structure that can be used to create new proposals. Use this action to discover available templates before creating proposals or to display template options to users.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Proposal Closing Sections

**Slug:** `BIDSKETCH_LIST_PROPOSAL_CLOSING_SECTIONS`

Tool to get a collection of closing sections for a proposal. Closing sections appear at the end of the proposal. Use when you need to retrieve all closing sections for a specific proposal.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `proposal_id` | integer | Yes | The unique ID of the proposal to retrieve closing sections for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Proposal Opening Sections

**Slug:** `BIDSKETCH_LIST_PROPOSAL_OPENING_SECTIONS`

Tool to get a collection of opening sections for a proposal. Opening sections appear first in the proposal. Use when you need to retrieve all opening sections for a specific proposal.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `proposal_id` | integer | Yes | The unique ID of the proposal to retrieve opening sections for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Fee

**Slug:** `BIDSKETCH_POST_FEE`

Tool to create a fee. Use when you need to add a reusable fee to the account before adding it to a proposal. Ensure required fields are set (e.g., unit for custom fees).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the fee to create. |
| `unit` | string | No | Unit label for custom fees. Required only when feetype is 'custom'. |
| `amount` | number | Yes | Fee amount. For fixed fees, this is a total; for calculated fees, this is the amount per unit. |
| `feetype` | string ("fixed" | "hourly" | "monthly" | "yearly" | "custom") | Yes | Type of fee. Must be one of 'fixed', 'hourly', 'monthly', 'yearly', or 'custom'. |
| `category` | string | No | A fee category to group fees together. |
| `quantity` | integer | No | Quantity used for calculated fees. |
| `description` | string | Yes | HTML formatted description for the fee. Required by the API. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Proposal Fee

**Slug:** `BIDSKETCH_POST_PROPOSAL_FEE`

Tool to create a proposal fee. Use after confirming the proposal exists to add a cost line item; require unit when feetype is custom.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Title of the fee line item |
| `unit` | string | No | Unit label for calculated or custom fees. Required when feetype is 'custom'. |
| `amount` | number | Yes | Base amount per unit or total amount for fixed fees. |
| `feetype` | string ("fixed" | "hourly" | "monthly" | "yearly" | "custom") | Yes | Type of fee. Must be one of 'fixed', 'hourly', 'monthly', 'yearly', or 'custom'. |
| `optional` | boolean | No | Whether the fee is optional. Defaults to false. |
| `quantity` | integer | No | Quantity for calculated fees (e.g., hours). |
| `description` | string | No | HTML formatted description for the fee. |
| `proposal_id` | integer | Yes | ID of the proposal to which this fee will be added |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Proposal Section

**Slug:** `BIDSKETCH_POST_PROPOSAL_SECTION`

Tool to create a proposal section. Use after confirming a proposal exists to add a new opening or closing section.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name/title of the section |
| `description` | string | Yes | HTML content of the section |
| `proposal_id` | integer | Yes | ID of the proposal to which this section will be added |
| `sectiontype` | string ("opening" | "closing") | Yes | Section placement: 'opening' or 'closing' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Section

**Slug:** `BIDSKETCH_POST_SECTION`

Tool to create a section. Use when you need to add a new section to your account before including it in proposals.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the section. |
| `category` | string | No | A section category to group sections together. |
| `description` | string | Yes | HTML-formatted content of the section. This field is required by the API. |
| `sectiontype` | string ("opening" | "closing") | Yes | Specifies where the section will appear in a proposal. Must be 'opening' or 'closing'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Webhook

**Slug:** `BIDSKETCH_POST_WEBHOOK`

Create a webhook subscription in Bidsketch to receive real-time notifications when specific events occur. Webhooks enable your application to receive immediate notifications when events happen in Bidsketch, such as when clients are created or proposals are sent, viewed, accepted, or declined. Your webhook endpoint must be publicly accessible and respond with HTTP 200 OK to webhook POST requests. Bidsketch will retry failed deliveries up to 20 times. Common use cases: - Sync client data to your CRM when a new client is created - Trigger workflows when proposals are sent or viewed - Update project management tools when proposals are accepted - Send notifications to your team when proposals are declined

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `event` | string ("client_created" | "proposal_created" | "proposal_sent" | "proposal_viewed" | "proposal_accepted" | "proposal_declined" | "proposal_accepted_or_declined") | Yes | Type of event to subscribe to. Supported values: 'client_created', 'proposal_created', 'proposal_sent', 'proposal_viewed', 'proposal_accepted', 'proposal_declined', or 'proposal_accepted_or_declined'. |
| `endpoint` | string | Yes | Publicly accessible URL to receive webhook POST callbacks. Endpoint must respond with HTTP 200 OK or Bidsketch will retry delivery up to 20 times. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Client

**Slug:** `BIDSKETCH_PUT_CLIENT`

Tool to update a client. Use when you need to modify existing client records with new data.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the client to update. |
| `city` | string | No | City in the client's address. |
| `name` | string | No | Client's full name or company name. |
| `email` | string | No | Client's primary email address. |
| `notes` | string | No | Notes about the client; quotes need not be escaped. |
| `phone` | string | No | Client's primary phone number. |
| `state` | string | No | State in the client's address. |
| `country` | string | No | Country in the client's address. |
| `website` | string | No | Client's website. |
| `alt_phone` | string | No | Client's alternate phone number. |
| `last_name` | string | No | Client's last name if they are a person. |
| `first_name` | string | No | Client's first name if they are a person. |
| `postal_zip` | string | No | Postal or ZIP code of the client's address. |
| `other_contact` | object | No | Secondary contact information for client update. |
| `address_field_one` | string | No | First line of the client's address. |
| `address_field_two` | string | No | Second line of the client's address. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Fee

**Slug:** `BIDSKETCH_PUT_FEE`

Tool to update a fee. Use when you need to modify existing fee records with new data after verifying current values.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Name of the fee. |
| `unit` | string | No | Unit label for custom fees. Required only when feetype is 'custom'. |
| `amount` | number | No | Fee amount. For fixed fees, this is total; for calculated fees, this is per-unit amount. |
| `fee_id` | integer | Yes | Unique ID of the fee to update. |
| `feetype` | string ("fixed" | "hourly" | "monthly" | "yearly" | "custom") | No | Type of fee. Must be one of 'fixed', 'hourly', 'monthly', 'yearly', or 'custom'. |
| `category` | string | No | A fee category to group fees together. |
| `quantity` | integer | No | Quantity used for calculated fees. |
| `description` | string | No | HTML-formatted description of the fee. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Proposal

**Slug:** `BIDSKETCH_PUT_PROPOSAL`

Tool to update a specific proposal's details. Use after retrieving a proposal to apply changes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the proposal to update |
| `tax` | number | No | Primary tax rate as a decimal percentage |
| `name` | string | No | Name/title of the proposal |
| `tax2` | number | No | Secondary tax rate as a decimal percentage |
| `currency` | string | No | ISO 4217 currency code for the proposal |
| `discount` | number | No | Discount rate as a decimal percentage |
| `settings` | object | No | Nested settings for a proposal. |
| `client_id` | integer | No | ID of the client associated with the proposal |
| `description` | string | No | Summary or description of the proposal |
| `proposal_date` | string | No | Date for the proposal (YYYY-MM-DD or datetime string) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Proposal Fee

**Slug:** `BIDSKETCH_PUT_PROPOSAL_FEE`

Tool to update a proposal fee. Use when modifying specific properties of an existing fee within a proposal after verifying its existence.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New name/title for the fee line item |
| `unit` | string | No | Unit label for custom fees; required when feetype is 'custom' |
| `amount` | number | No | Updated amount or per-unit amount for the fee |
| `fee_id` | integer | Yes | ID of the specific fee to update within the proposal |
| `feetype` | string ("fixed" | "hourly" | "monthly" | "yearly" | "custom") | No | Type of fee; one of 'fixed', 'hourly', 'monthly', 'yearly', or 'custom'. |
| `optional` | boolean | No | Whether the fee is optional; leave blank to keep existing value |
| `quantity` | integer | No | Updated quantity for calculated fees |
| `description` | string | No | Updated HTML description for the fee |
| `proposal_id` | integer | Yes | ID of the proposal containing the fee to update |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Proposal Section

**Slug:** `BIDSKETCH_PUT_PROPOSAL_SECTION`

Tool to update a proposal section. Use when you need to modify the name or content of an existing section after verifying its existence.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New name/title for the section |
| `section_id` | integer | Yes | ID of the specific section to update |
| `description` | string | No | New HTML content for the section |
| `proposal_id` | integer | Yes | ID of the proposal containing the section to update |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Section

**Slug:** `BIDSKETCH_PUT_SECTION`

Tool to update a section. Use when you need to modify an existing section after confirming its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the section to update. |
| `name` | string | No | The name of the section. |
| `category` | string | No | A section category to group sections together. |
| `description` | string | No | HTML-formatted content of the section. |
| `sectiontype` | string ("opening" | "closing") | No | Specifies where the section will appear in a proposal. Must be 'opening' or 'closing'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
