# RepairShopr

RepairShopr is a comprehensive repair shop management software designed to streamline operations, manage customer relationships, and enhance business efficiency.

- **Category:** crm
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 147
- **Triggers:** 0
- **Slug:** `REPAIRSHOPR`
- **Version:** 20260312_00

## Tools

### Add Estimate Line Item

**Slug:** `REPAIRSHOPR_ADD_ESTIMATE_LINE_ITEM`

Tool to add a line item to an existing estimate. Use when you need to add products or services to an estimate in RepairShopr.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the estimate to add the line item to |
| `cost` | number | No | Cost amount of the item |
| `item` | string | No | SKU or identifier for the line item |
| `name` | string | No | Display name of the line item |
| `price` | number | No | Price charged for the item |
| `taxable` | boolean | No | Whether the item is taxable |
| `user_id` | integer | No | ID of user creating the line item |
| `position` | integer | No | Position of the item in the estimate list |
| `quantity` | number | No | Quantity of the item |
| `tax_note` | string | No | Tax note for the item |
| `upc_code` | string | No | UPC code of the item |
| `product_id` | integer | No | ID of an existing product |
| `tax_rate_id` | integer | No | Specific tax rate ID to apply |
| `discount_percent` | number | No | Discount percentage applied |
| `product_category` | string | No | Category of the product |

#### 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 |

### Add Purchase Order Line Item

**Slug:** `REPAIRSHOPR_ADD_PURCHASE_ORDER_LINE_ITEM`

Tool to add a product line item to an existing purchase order. Use when you need to add inventory items to a purchase order. The product must have stock tracking enabled (maintain_stock=true).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the purchase order to add the line item to. |
| `quantity` | integer | Yes | Quantity of the product to add to the purchase order. Must be at least 1. |
| `product_id` | integer | Yes | ID of the product to add to the purchase order. The product must have 'maintain_stock' set to true. |

#### 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 |

### Add Schedule Line Item

**Slug:** `REPAIRSHOPR_ADD_SCHEDULE_LINE_ITEM`

Tool to add a line item to an invoice schedule. Use when adding recurring charges or one-time items to an existing schedule. Required permission: Recurring Invoices - Edit.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the schedule to add the line item to |
| `name` | string | No | Display name of the line item |
| `taxable` | boolean | No | Whether the line item is taxable |
| `user_id` | integer | No | ID of the user creating the line item |
| `position` | integer | No | Position of the item in the schedule list |
| `quantity` | number | No | Quantity of the item. Must be non-negative. |
| `cost_cents` | integer | No | Cost price in cents. Must be non-negative. |
| `product_id` | integer | No | ID of an existing product to bill |
| `description` | string | No | Detailed description of the line item |
| `retail_cents` | integer | No | Retail price in cents. Must be non-negative. |
| `asset_type_id` | integer | No | ID of the asset type associated with the line item |
| `one_time_charge` | boolean | No | Whether this is a one-time charge or recurring |
| `recurring_type_id` | string ("monthly" | "quarterly" | "semi_annually" | "annually" | "biweekly" | "weekly") | No | Recurring type for schedule line items. |
| `contact_field_type_id` | integer | No | ID of the contact field type |
| `saved_asset_search_id` | integer | No | ID of a saved asset search |
| `contact_field_answer_id` | integer | No | ID of the contact field answer |

#### 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 |

### Add Ticket Comment

**Slug:** `REPAIRSHOPR_ADD_TICKET_COMMENT`

Tool to add a comment to an existing ticket in RepairShopr. Use when you need to add notes, updates, or responses to a ticket. Requires Tickets - Edit permission. Single-Customer Users can only access their own tickets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the ticket to add the comment to. Required. |
| `body` | string | Yes | The text content of the comment. Required. |
| `tech` | string | No | Technician name or identifier to associate with this comment. Optional. |
| `hidden` | boolean | No | Whether the comment should be hidden from the customer (private comment). Default is false. |
| `subject` | string | Yes | Subject or title of the comment. Required. |
| `sms_body` | string | No | Optional text content to send as an SMS notification. If not provided, no SMS is sent. |
| `do_not_email` | boolean | No | If true, prevents sending an email notification to the customer about this comment. Default is false. |

#### 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 |

### Add Ticket Line Item

**Slug:** `REPAIRSHOPR_ADD_TICKET_LINE_ITEM`

Tool to add a line item to an existing ticket in RepairShopr. Use when you need to add products, services, or charges to a ticket. Requires Tickets - Edit permission. Single-customer users can only access their own tickets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the ticket to add the line item to. Required. |
| `name` | string | Yes | Name/title of the line item. Required. |
| `taxable` | boolean | No | Whether the line item is taxable. Defaults to false if not provided. |
| `quantity` | number | No | Quantity of the line item. Defaults to 1 if not provided. |
| `upc_code` | string | No | UPC code of the line item. |
| `price_cost` | number | No | Cost price of the line item. |
| `product_id` | integer | No | ID of an existing product to use for this line item. |
| `description` | string | Yes | Description of the line item. Required by the API. |
| `price_retail` | number | No | Retail price of the line item. |

#### 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 |

### Charge Ticket Timer

**Slug:** `REPAIRSHOPR_CHARGE_TICKET_TIMER`

Tool to charge a timer entry for a specific ticket. Use when a timer entry needs to be converted to a billable line item on the ticket. Requires 'Ticket Timers - Overview' permission. The timer entry must exist and be associated with the specified ticket.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the ticket containing the timer to charge. |
| `timer_entry_id` | integer | Yes | The ID of the timer entry to charge. This timer entry must exist for the specified ticket. |

#### 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 |

### Convert Estimate to Invoice

**Slug:** `REPAIRSHOPR_CONVERT_ESTIMATE_TO_INVOICE`

Tool to convert an existing estimate to an invoice in RepairShopr. Use when you have an approved estimate that needs to be billed. Requires the estimate ID and appropriate permissions ("Estimates - View Details" and "Invoices - Create"). Returns the created invoice with all line items copied from the estimate.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the estimate to convert to an invoice |

#### 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 Appointment Type

**Slug:** `REPAIRSHOPR_CREATE_APPOINTMENT_TYPE`

Tool to create a new appointment type in RepairShopr. Use when defining appointment categories with specific location settings. Requires Global Admin permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the appointment type. This field is required. |
| `location_type` | string | Yes | The type of location for this appointment. Required field. Known values: 1 = 'shop'. Pass either a LocationType enum value or an integer. |
| `email_instructions` | string | No | Email instructions to be sent with appointment confirmations. |
| `location_hard_code` | string | No | Hard-coded location string. Used when location_type is set to pre-defined/hard-coded location mode. |

#### 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 Canned Response

**Slug:** `REPAIRSHOPR_CREATE_CANNED_RESPONSE`

Tool to create a new Canned Response. Use when you need to add a pre-formatted response template for tickets. Requires 'Ticket Canned Responses - Manage' permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | Yes | The body/content of the canned response. This is required. |
| `title` | string | Yes | The title of the canned response. This is required. |
| `subject` | string | No | The subject line for the canned response. |
| `canned_response_category_id` | integer | No | The ID of the category to assign this canned response to. |

#### 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 Contact

**Slug:** `REPAIRSHOPR_CREATE_CONTACT`

Tool to create a new contact associated with a customer. Use when you need to add a contact record to a customer account. Requires 'Customers - Edit' permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `zip` | string | No | ZIP or postal code of the contact's address. |
| `city` | string | No | City of the contact's address. |
| `name` | string | No | Name of the contact. |
| `email` | string | No | Email address of the contact. |
| `notes` | string | No | Additional notes about the contact. |
| `phone` | string | No | Phone number of the contact. |
| `state` | string | No | State of the contact's address. |
| `mobile` | string | No | Mobile phone number of the contact. |
| `address1` | string | No | Primary address line of the contact. |
| `address2` | string | No | Secondary address line of the contact. |
| `customer_id` | integer | Yes | Customer ID to associate the contact with. Required field. |

#### 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 Contract

**Slug:** `REPAIRSHOPR_CREATE_CONTRACT`

Tool to create a new contract for a customer. Use when you need to establish a service contract with specified terms and conditions. Requires Contracts - Edit permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Name of the contract. |
| `sla_id` | integer | No | ID of the Service Level Agreement associated with this contract. |
| `status` | string | No | Status of the contract (e.g., 'Active', 'Inactive', 'Pending'). |
| `end_date` | string | No | End date of the contract in ISO 8601 date-time format. |
| `likelihood` | integer | No | Likelihood score or percentage for contract completion. |
| `start_date` | string | No | Start date of the contract in ISO 8601 date-time format. |
| `customer_id` | integer | Yes | ID of the customer to associate with this contract. This is a required field. |
| `description` | string | No | Detailed description of the contract. |
| `apply_to_all` | boolean | No | Whether this contract applies to all customers or assets. |
| `contract_amount` | string | No | Amount of the contract as a string. |
| `primary_contact` | string | No | Primary contact for this contract. |

#### 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 Invoice Line Item

**Slug:** `REPAIRSHOPR_CREATE_INVOICE_LINE_ITEM`

Tool to create a new line item on an existing invoice in RepairShopr. Use when adding products or services to an invoice that already exists. Required permission: Invoices - Edit.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the invoice to add the line item to |
| `cost` | number | No | Cost amount of the item |
| `item` | string | No | SKU or identifier for the line item |
| `name` | string | No | Display name of the line item |
| `price` | number | No | Price charged for the item |
| `taxable` | boolean | No | Whether the item is taxable |
| `discount_dollars` | string | No | Discount amount in dollars as a string |
| `line_discount_percent` | integer | No | Discount percentage applied to the line item |

#### 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 Phone

**Slug:** `REPAIRSHOPR_CREATE_PHONE`

Tool to create a phone number for a customer. Use when you need to add a new phone number record to a customer's profile. Requires Customers - Edit permission. Single-Customer Users can only access their own records.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `label` | string | No | Label for the phone number (e.g., Office, Home, Mobile) |
| `number` | string | Yes | Phone number to create. Include country code if applicable. |
| `extension` | string | No | Phone extension number if applicable |
| `customer_id` | integer | Yes | The unique identifier of the customer who owns the phone |

#### 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 Portal User

**Slug:** `REPAIRSHOPR_CREATE_PORTAL_USER`

Tool to create a portal user in RepairShopr. Use when you need to give a customer or contact access to the customer portal. Requires Global Admin permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Email address for the portal user. Required. |
| `password` | string | Yes | Password for the portal user account. Required. |
| `contact_id` | integer | No | ID of the contact to associate with this portal user. |
| `customer_id` | integer | No | ID of the customer to associate with this portal user. |
| `portal_group_id` | integer | No | ID of the portal group to assign this user to. |
| `password_confirmation` | string | Yes | Password confirmation - must match the password field. Required. |

#### 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 Product Serial

**Slug:** `REPAIRSHOPR_CREATE_PRODUCT_SERIAL`

Tool to create a product serial for a specific product. Use when you need to add a serial number to track individual product instances.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `condition` | string | No | Condition of the product serial (e.g., 'New', 'Used', 'Refurbished'). |
| `product_id` | integer | Yes | The unique identifier of the product to create a serial for. |
| `serial_number` | string | Yes | The serial number to assign to this product. |
| `price_cost_cents` | integer | No | Cost price in cents. Must be non-negative. |
| `price_retail_cents` | integer | No | Retail price in cents. Must be non-negative. |

#### 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 RMM Alert

**Slug:** `REPAIRSHOPR_CREATE_RMM_ALERT`

Tool to create an RMM Alert. Use when you need to register a new monitoring alert for an asset or customer. Requires 'RMM Alerts - Create' permission. Single-customer users can only create alerts for their own resources.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string | No | Status of the alert (e.g., 'active', 'resolved') |
| `asset_id` | integer | No | ID of the asset (device) that triggered the alert |
| `resolved` | boolean | No | Whether the alert has been resolved |
| `properties` | object | No | Properties object containing additional alert details. |
| `customer_id` | integer | No | ID of the customer associated with this alert |
| `description` | string | No | Description of the RMM alert |

#### 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 Invoice Schedule

**Slug:** `REPAIRSHOPR_CREATE_SCHEDULE`

Tool to create a recurring invoice schedule. Use when setting up automated invoicing for a customer at regular intervals. Requires Recurring Invoices - New permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the schedule to identify it |
| `paused` | boolean | No | Whether the schedule is paused (will not run if true) |
| `next_run` | string | Yes | Next scheduled run date in YYYY-MM-DD format |
| `frequency` | string ("Daily" | "Weekly" | "Biweekly" | "Monthly" | "Quarterly" | "Semi-Annually" | "Annually" | "Biennially" | "Triennially") | Yes | How often the invoice should recur |
| `charge_mop` | boolean | No | Whether to charge the method of payment on file automatically |
| `snail_mail` | boolean | No | Whether to send physical mail to the customer |
| `customer_id` | integer | Yes | ID of the customer for the recurring invoice schedule |
| `email_customer` | boolean | No | Whether to email the customer when the invoice is generated |
| `invoice_unbilled_ticket_charges` | boolean | No | Whether to invoice any unbilled ticket charges automatically |

#### 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 Ticket

**Slug:** `REPAIRSHOPR_CREATE_TICKET`

Tool to create a new ticket in RepairShopr. Use when you need to create a support ticket for a customer. Requires customer_id. Single-customer users can only access their own tickets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end_at` | string | No | End date and time for the ticket work (ISO 8601 format) |
| `number` | string | No | Custom ticket number. If not provided, will be auto-generated. |
| `sla_id` | integer | No | Service Level Agreement ID to apply to this ticket |
| `status` | string | No | Current status of the ticket (e.g., New, In Progress, Waiting on Customer, Resolved) |
| `subject` | string | No | Subject or title of the ticket |
| `user_id` | integer | No | ID of the technician or staff to assign to this ticket |
| `due_date` | string | No | Due date for resolving the ticket (format: YYYY-MM-DD) |
| `priority` | string | No | Priority level of the ticket (e.g., '0 Urgent', '1 High', '2 Normal', '3 Low') |
| `start_at` | string | No | Start date and time for the ticket work (ISO 8601 format) |
| `tag_list` | array | No | List of tags to associate with the ticket |
| `asset_ids` | array | No | List of asset IDs to associate with this ticket |
| `contact_id` | integer | No | ID of the primary contact for this ticket |
| `properties` | object | No | Custom properties object for additional ticket metadata |
| `customer_id` | integer | Yes | ID of the customer associated with this ticket. Required field. |
| `location_id` | integer | No | Location ID if applicable |
| `problem_type` | string | No | Type of problem (e.g., Remote Support, Network Project, Onboarding) |
| `signature_data` | string | No | Signature data (e.g., base64 encoded image) |
| `signature_name` | string | No | Name of the person who signed |
| `ticket_type_id` | integer | No | Ticket type ID to categorize the ticket |
| `outtake_form_data` | string | No | Data from the outtake form |
| `outtake_form_date` | string | No | Date of the outtake form completion (ISO 8601 format) |
| `outtake_form_name` | string | No | Name of the outtake form if applicable |
| `comments_attributes` | array | No | List of comments to add to the ticket upon creation |

#### 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 Ticket Timer

**Slug:** `REPAIRSHOPR_CREATE_TICKET_TIMER`

Tool to create a ticket timer entry for a specific ticket in RepairShopr. Use when you need to log time spent on a ticket. Requires Ticket Timers - Overview permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the ticket to create a timer entry for. Required. |
| `notes` | string | No | Notes about the timer entry. Optional. |
| `end_at` | string | No | End time for the timer entry in ISO 8601 format (e.g., '2026-02-15T10:30:00-08:00'). Either 'end_at' or 'duration_minutes' is required. |
| `user_id` | integer | No | User ID for the timer entry. Defaults to current user if not specified. Optional. |
| `start_at` | string | Yes | Start time for the timer entry in ISO 8601 format (e.g., '2026-02-15T10:00:00-08:00'). Required. |
| `product_id` | integer | No | Product ID associated with the timer entry. Optional. |
| `duration_minutes` | integer | No | Duration of the timer entry in minutes. Either 'duration_minutes' or 'end_at' is required. |

#### 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 Vendor

**Slug:** `REPAIRSHOPR_CREATE_VENDOR`

Tool to create a new vendor. Use when you need to add a vendor record with contact details and information. Required permission: Vendors - New.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `zip` | string | No | ZIP or postal code of the vendor's address. |
| `city` | string | No | City of the vendor's address. |
| `name` | string | No | Name of the vendor. |
| `email` | string | No | Email address of the vendor. |
| `notes` | string | No | Additional notes about the vendor. |
| `phone` | string | No | Phone number of the vendor. |
| `state` | string | No | State of the vendor's address. |
| `address` | string | No | Street address of the vendor. |
| `website` | string | No | Website URL of the vendor. |
| `rep_last_name` | string | No | Last name of the vendor representative. |
| `account_number` | string | No | Account number associated with the vendor. |
| `rep_first_name` | string | No | First name of the vendor representative. |

#### 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 Wiki Page

**Slug:** `REPAIRSHOPR_CREATE_WIKI_PAGE`

Tool to create a Wiki Page in RepairShopr. Use when you need to add documentation or knowledge base content. Requires Documentation - Create permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | Yes | Content of the wiki page. Can include HTML or markdown formatting. |
| `name` | string | Yes | Title/name of the wiki page. |
| `slug` | string | No | URL slug for the wiki page. Auto-generated if not provided. |
| `asset_id` | integer | No | ID of the asset to associate with this wiki page. |
| `visibility` | string | No | Visibility setting for the wiki page (e.g., 'public', 'private'). |
| `customer_id` | integer | No | ID of the customer to associate with this wiki page. |

#### 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 Appointment

**Slug:** `REPAIRSHOPR_DELETE_APPOINTMENT`

Tool to delete a specific appointment by its ID. Use when an appointment is canceled and needs removal permanently.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the appointment 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 Appointment Type

**Slug:** `REPAIRSHOPR_DELETE_APPOINTMENT_TYPE`

Tool to delete an Appointment Type by ID. Use when an appointment type is no longer needed and requires permanent removal. Requires Global Admin permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the appointment type 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 Canned Response

**Slug:** `REPAIRSHOPR_DELETE_CANNED_RESPONSE`

Tool to delete a specific canned response by ID. Use when a canned response template is no longer needed and should be permanently removed. Required permission: Ticket Canned Responses - Manage.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the canned response 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 Contact

**Slug:** `REPAIRSHOPR_DELETE_CONTACT`

Tool to delete a specific contact by ID. Use when you need to permanently remove a contact record. Requires permission: Customers - Edit. Single-Customer Users can only access own contacts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the contact 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 Contract

**Slug:** `REPAIRSHOPR_DELETE_CONTRACT`

Tool to delete a contract by its unique ID. Use when a contract needs to be permanently removed from the system. Required permission: Contracts - Delete.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique numeric ID of the contract to permanently delete from the system |

#### 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 Customer

**Slug:** `REPAIRSHOPR_DELETE_CUSTOMER`

Tool to delete a specific customer by ID. Use after confirming the customer ID when you need to remove a customer record permanently.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the customer 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 Estimate

**Slug:** `REPAIRSHOPR_DELETE_ESTIMATE`

Permanently deletes an estimate from RepairShopr by its unique ID. Use this action when you need to remove an estimate that is no longer needed, was created in error, or has been replaced. The deletion is permanent and cannot be undone. The API will return a confirmation message indicating successful deletion, or notify if the estimate was not found or already deleted.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique numeric ID of the estimate to permanently delete from the system |

#### 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 Estimate Line Item

**Slug:** `REPAIRSHOPR_DELETE_ESTIMATE_LINE_ITEM`

Tool to delete a line item from an estimate in RepairShopr. Use when you need to remove a specific product or service entry from an estimate. Required permission: Estimates - Edit. The API returns the updated estimate object with recalculated totals after deletion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique numeric ID of the estimate containing the line item |
| `line_item_id` | integer | Yes | The unique numeric ID of the line item to delete from the estimate |

#### 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 Invoice

**Slug:** `REPAIRSHOPR_DELETE_INVOICE`

Tool to delete a specific invoice by ID. Use when you need to remove an invoice permanently after confirming it's no longer needed. Ensure no dependent records require it before running.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the invoice 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 Invoice Line Item

**Slug:** `REPAIRSHOPR_DELETE_INVOICE_LINE_ITEM`

Tool to delete a specific line item from an invoice by invoice ID and line item ID. Use when you need to remove an individual line item from an existing invoice.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the invoice containing the line item |
| `line_item_id` | integer | Yes | The unique ID of the line item to delete from the invoice |

#### 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 Phone

**Slug:** `REPAIRSHOPR_DELETE_PHONE`

Tool to delete a specific phone by ID for a given customer. Use when you need to remove a phone number record permanently. Requires Customers - Edit permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the phone to delete |
| `customer_id` | integer | Yes | The unique identifier of the customer who owns the phone |

#### 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 Portal User

**Slug:** `REPAIRSHOPR_DELETE_PORTAL_USER`

Tool to permanently delete a portal user by ID. Use when removing portal user access. Requires Global Admin permission to execute successfully.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the portal user to delete. Required permission: Global Admin |

#### 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 RMM Alert

**Slug:** `REPAIRSHOPR_DELETE_RMM_ALERT`

Tool to delete/clear an RMM alert by its ID. Use when an RMM alert needs to be cleared or removed. Requires 'RMM Alerts - Delete' permission. Single-customer users can only delete their own alerts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the RMM alert 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 Schedule

**Slug:** `REPAIRSHOPR_DELETE_SCHEDULE`

Tool to delete a specific schedule by its ID. Use when a recurring invoice schedule needs to be permanently removed. Required permission: Recurring Invoices - Delete.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the schedule 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 Ticket

**Slug:** `REPAIRSHOPR_DELETE_TICKET`

Tool to delete a specific ticket by its ID. Use when a ticket needs to be permanently removed. Requires 'Tickets - Delete' permission. Single-Customer Users can only delete their own tickets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the ticket to delete. Single-Customer Users can only delete their own tickets. |

#### 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 Ticket Timer

**Slug:** `REPAIRSHOPR_DELETE_TICKET_TIMER`

Tool to delete a specific ticket timer entry by its ID. Use when a timer entry needs to be removed from a ticket. Required permission: Ticket Timers - Overview.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the ticket containing the timer to delete |
| `timer_entry_id` | integer | Yes | The unique ID of the timer entry 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 Wiki Page

**Slug:** `REPAIRSHOPR_DELETE_WIKI_PAGE`

Tool to delete a Wiki Page by its ID. Use when a wiki page needs to be permanently removed. Required permission: Documentation - Delete.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the wiki page 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 |

### Email Estimate

**Slug:** `REPAIRSHOPR_EMAIL_ESTIMATE`

Tool to send an estimate to a customer via email. Use when you need to email an existing estimate to the associated customer.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the estimate to email |

#### 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 |

### Email Invoice

**Slug:** `REPAIRSHOPR_EMAIL_INVOICE`

Tool to send an invoice to a customer via email. Use when you need to email an existing invoice to the associated customer. Requires the invoice ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the invoice to email to the customer |

#### 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 Appointment

**Slug:** `REPAIRSHOPR_GET_APPOINTMENT`

Tool to retrieve details of a specific appointment by its ID. Use when you need exact details of an appointment by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the appointment 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 Appointments

**Slug:** `REPAIRSHOPR_GET_APPOINTMENTS`

Retrieves a list of appointments from RepairShopr. Supports filtering by date range and user assignment, with pagination for large result sets. Each appointment includes full details such as summary, description, start/end times, location, and associated customer information when available. Returns up to 25 appointments per page.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `mine` | boolean | No | When true, returns only appointments assigned to the authenticated user. Defaults to all appointments when omitted. |
| `page` | integer | No | Page number for pagination. Each page contains up to 25 appointments. Defaults to page 1 when omitted. |
| `date_to` | string | No | Filter appointments starting on or before this date. Format: 'YYYY-MM-DD' (e.g., '2026-12-31'). |
| `date_from` | string | No | Filter appointments starting on or after this date. Format: 'YYYY-MM-DD' (e.g., '2026-01-25'). |

#### 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 Appointment Type

**Slug:** `REPAIRSHOPR_GET_APPOINTMENT_TYPE`

Tool to retrieve details of a specific appointment type by ID. Use when you need to fetch appointment type configuration including name, location settings, and email instructions. Requires Global Admin permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the appointment type 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 Asset

**Slug:** `REPAIRSHOPR_GET_ASSET`

Tool to retrieve details of a specific asset by its ID. Use when you need to confirm asset details after obtaining its ID. Requires Assets - View Details permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the asset to retrieve. Single-Customer Users can only access their own assets. |

#### 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 Assets

**Slug:** `REPAIRSHOPR_GET_ASSETS`

Tool to retrieve a paginated list of assets. Use when you need to list or search assets by SNMP status, customer, asset type, or query after authenticating. Returns 25 items per page.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Returns provided page of results, each page contains 25 results |
| `query` | string | No | Search query |
| `customer_id` | integer | No | Any assets attached to a Customer ID |
| `snmp_enabled` | boolean | No | Any assets with SNMP enabled |
| `asset_type_id` | integer | No | Any assets attached to an Asset Type ID |

#### 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 Caller ID

**Slug:** `REPAIRSHOPR_GET_CALLER_ID`

Tool to retrieve caller identification information based on a phone number. Use when you need to identify a caller by their phone number and check associated ticket status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `did` | string | Yes | Phone number to look up caller information for |
| `outbound` | boolean | No | Whether this is an outbound call. If True, looks up outbound caller info |

#### 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 Canned Response Settings

**Slug:** `REPAIRSHOPR_GET_CANNED_RESPONSE_SETTING`

Tool to retrieve settings for Canned Responses. Use when you need to get available categories and subjects for canned responses. Requires 'Ticket Canned Responses - Manage' permission. Single-Customer Users can only access their own canned responses.

#### 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 Contact

**Slug:** `REPAIRSHOPR_GET_CONTACT`

Tool to retrieve a specific contact by ID. Use when you need to fetch detailed information about a single contact. Requires 'Customers - View Detail' permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the contact 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 Contacts

**Slug:** `REPAIRSHOPR_GET_CONTACTS`

Tool to retrieve a paginated list of contacts. Use when you need to fetch contacts optionally filtered by customer. Returns up to 50 contacts per page.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number of results (50 results per page). |
| `customer_id` | integer | No | Any contacts attached to a Customer ID. |

#### 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 Contract

**Slug:** `REPAIRSHOPR_GET_CONTRACT`

Tool to retrieve details of a specific contract by ID. Use when you need contract information including terms, dates, and status. Requires Contracts - Edit permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the contract 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 Customer

**Slug:** `REPAIRSHOPR_GET_CUSTOMER`

Tool to retrieve details of a specific customer by ID. Use after confirming the customer exists. Example: "Get customer details for ID 123".

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the customer 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 Customer Payment Profiles

**Slug:** `REPAIRSHOPR_GET_CUSTOMER_PAYMENT_PROFILES`

Tool to retrieve a paginated list of payment profiles for a specific customer. Use when you need to view saved payment methods for a customer.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `customer_id` | integer | Yes | Unique identifier of the customer whose payment profiles 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 Customers

**Slug:** `REPAIRSHOPR_GET_CUSTOMERS`

Tool to retrieve a list of customers. Use when you need to search or filter customers with pagination. Returns up to 25 results per page.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | array | No | Any customers with ID included in the list. |
| `page` | integer | No | Returns provided page of results, each 'page' contains 25 results. |
| `sort` | string | No | A customer field to order by. Examples 'firstname ASC', 'city DESC'. |
| `email` | string | No | Filter customers by exact email address. |
| `query` | string | No | Search query to filter customers by name or business. |
| `not_id` | array | No | Any customers with ID not included in the list. |
| `lastname` | string | No | Any customers with a last name like the parameter. |
| `firstname` | string | No | Any customers with a first name like the parameter. |
| `business_name` | string | No | Any customers with a business name like the parameter. |
| `include_disabled` | boolean | No | Whether or not the returned list of customers includes disabled customers. |

#### 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 Customers Autocomplete

**Slug:** `REPAIRSHOPR_GET_CUSTOMERS_AUTOCOMPLETE`

Tool to retrieve a list of customers for autocomplete query. Use when you need to search for customers to populate autocomplete suggestions or dropdown menus. Returns customers matching the search query.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | No | Search query to filter customers by name or business. Returns matching customers for autocomplete suggestions. |

#### 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 Employee Time Clock

**Slug:** `REPAIRSHOPR_GET_EMPLOYEE_TIME_CLOCK`

Tool to retrieve the last time clock entry for a specific user. Use when needing the most recent clock-in/out. Example: "Get the latest time clock entry for user 5".

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | integer | No | ID of the user to retrieve the last time clock entry for. Defaults to current user if omitted. |

#### 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 Estimate

**Slug:** `REPAIRSHOPR_GET_ESTIMATE`

Tool to retrieve details of a specific estimate by ID. Use when you need exact details of an estimate by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the estimate 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 Estimates

**Slug:** `REPAIRSHOPR_GET_ESTIMATES`

Retrieves a paginated list of estimates from RepairShopr. Returns estimate details including ID, number, customer information, status, amounts (subtotal, tax, total), and timestamps. Use this action to: - List all estimates in the system - Filter estimates by customer_id - Paginate through large result sets using page and per_page parameters The response includes pagination metadata showing total pages and current page number.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Optional: Page number for paginated results (starts at 1) |
| `per_page` | integer | No | Optional: Number of results to return per page |
| `customer_id` | integer | No | Optional: Filter estimates to only show those for a specific customer ID |

#### 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 Invoice

**Slug:** `REPAIRSHOPR_GET_INVOICE`

Tool to retrieve details of a specific invoice by ID. Use after confirming the invoice exists. Example: "Get invoice details for ID 456".

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID or number of the invoice 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 Invoices

**Slug:** `REPAIRSHOPR_GET_INVOICES`

Tool to retrieve a paginated list of invoices. Use when you need to list invoices, optionally filtered by payment status, ticket association, or update date. Returns up to 25 invoices per page.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Returns provided page of results, each page contains 25 results |
| `paid` | boolean | No | Whether or not the returned list of invoices has been marked as paid |
| `unpaid` | boolean | No | Whether or not the returned list of invoices has been marked as unpaid |
| `ticket_id` | integer | No | Filter invoices attached to this Ticket ID |
| `since_updated_at` | string | No | Return invoices updated since this date. Format 'YYYY-MM-DDTHH:MM:SSZ' (ISO 8601) |

#### 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 Invoice Ticket

**Slug:** `REPAIRSHOPR_GET_INVOICE_TICKET`

Tool to retrieve the associated ticket for a specific invoice. Use when you need ticket details linked to an invoice. Requires "Invoices - View Details" and "Tickets - View Details" permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the invoice whose associated ticket will be returned |

#### 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 Latest Customer

**Slug:** `REPAIRSHOPR_GET_LATEST_CUSTOMER`

Tool to retrieve the most recently created customer. Use when you need to access the latest customer record without knowing their ID. Requires Customers - Edit permission.

#### 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 Lead

**Slug:** `REPAIRSHOPR_GET_LEAD`

Tool to retrieve details of a specific lead by its ID. Use when you need to inspect a single lead after obtaining its ID. Example: "Get lead details for ID 123".

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the lead 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 Leads

**Slug:** `REPAIRSHOPR_GET_LEADS`

Tool to retrieve a paginated list of leads. Use when you need to browse or filter potential customers. Returns up to 25 leads per page.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Returns provided page of results, each page contains 25 leads. |

#### 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 Current User

**Slug:** `REPAIRSHOPR_GET_ME`

Tool to retrieve information about the currently authenticated user. Use when you need to verify authentication, get the current user's details, or check their permissions across different modules.

#### 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 Payment

**Slug:** `REPAIRSHOPR_GET_PAYMENT`

Tool to retrieve details of a specific payment by ID. Use after obtaining the payment ID. Example: "Get payment details for ID 123".

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the payment 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 Payments

**Slug:** `REPAIRSHOPR_GET_PAYMENTS`

Tool to retrieve a paginated list of payments. Use when you need to view or search payment records, with optional filtering by query or pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number of results to return, each page contains 25 results. |
| `query` | string | No | Search query to filter payments by invoice number, customer name, or reference number. |

#### 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 Product

**Slug:** `REPAIRSHOPR_GET_PRODUCT`

Retrieves comprehensive details for a specific product by its unique ID. Use this action when you need detailed product information including pricing, inventory levels, category, and other metadata. Requires a valid product ID (obtain via Get Products action if needed). Returns: Complete product details including retail/cost/wholesale pricing, current stock quantity, category information, tax status, and various product attributes. Example use cases: - "Get details for product ID 12345" - "What's the price and stock level for product 98765?" - "Retrieve full information about product 54321"

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the product 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 Product by Barcode

**Slug:** `REPAIRSHOPR_GET_PRODUCT_BY_BARCODE`

Retrieves product details by searching for a specific barcode (UPC code). Use this action when you have a product's barcode and need to look up its full details including pricing, inventory, and metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `barcode` | string | Yes | Product barcode string to search for. This is typically the UPC code or other barcode identifier assigned to the product. |

#### 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 Products

**Slug:** `REPAIRSHOPR_GET_PRODUCTS`

Retrieve a list of products from RepairShopr with optional filtering, searching, and sorting. All filters are optional - call without parameters to get all products. Results are paginated; use the 'meta' field in the response to determine if there are more pages.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | array | No | Include only products with IDs in this list. |
| `sku` | string | No | Filter products by exact SKU. |
| `name` | string | No | Filter products whose name matches the given string. |
| `page` | integer | No | Page number to return (starting from 1). Check the 'meta' field in the response for pagination details. |
| `sort` | string | No | Sort products by a field name followed by ASC or DESC. Examples: 'name ASC', 'price_retail DESC', 'id DESC'. |
| `query` | string | No | Search query to filter products. |
| `id_not` | array | No | Exclude products with IDs in this list. |
| `upc_code` | string | No | Filter products whose UPC code matches the given string. |
| `category_id` | integer | No | Filter products by category ID. |

#### 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 Product Categories

**Slug:** `REPAIRSHOPR_GET_PRODUCTS_CATEGORIES`

Retrieve all product categories from RepairShopr. Returns a list of categories with their IDs, names, descriptions, and hierarchical relationships. Use this to discover available categories for organizing products, filtering product queries, or creating new products with proper categorization.

#### 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 Product Serials

**Slug:** `REPAIRSHOPR_GET_PRODUCT_SERIALS`

Tool to retrieve all serial numbers for a specific product. Use when you need to list serials by product ID after confirming the product exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the product to retrieve serials 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 Purchase Order

**Slug:** `REPAIRSHOPR_GET_PURCHASE_ORDER`

Tool to retrieve details of a specific purchase order by ID. Use when you need to view purchase order details. Requires Purchase Orders - View Details permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the purchase order 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 RMM Alert

**Slug:** `REPAIRSHOPR_GET_RMM_ALERT`

Tool to retrieve details of an RMM Alert by its ID. Use when you need to check the status or details of a specific RMM alert. Requires 'RMM Alerts - List' permission. Single-customer users can only access their own RMM alerts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the RMM alert 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 Schedule

**Slug:** `REPAIRSHOPR_GET_SCHEDULE`

Tool to retrieve a specific schedule by ID. Use when you need to fetch detailed information about a recurring invoice schedule. Requires Recurring Invoices - List permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the schedule 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 Settings

**Slug:** `REPAIRSHOPR_GET_SETTINGS`

Tool to retrieve account settings for the RepairShopr instance. Use when you need to access system configuration, preferences, or account-level settings.

#### 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 Printing Settings

**Slug:** `REPAIRSHOPR_GET_SETTINGS_PRINTING`

Tool to retrieve printing settings configuration. Use when you need to get the messaging channel ID or registered printers for 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 Settings Tabs

**Slug:** `REPAIRSHOPR_GET_SETTINGS_TABS`

Tool to retrieve the tabs settings configuration. Use when you need to determine which tabs (features) are enabled in the RepairShopr system. Returns boolean flags for each available tab, indicating whether it's enabled or disabled.

#### 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 Ticket

**Slug:** `REPAIRSHOPR_GET_TICKET`

Tool to retrieve details of a specific ticket by its ID. Use when you need full ticket information after obtaining its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the ticket 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 Tickets Settings

**Slug:** `REPAIRSHOPR_GET_TICKETS_SETTINGS`

Tool to retrieve tickets settings and configuration. Use when you need to obtain available ticket statuses, appointment types, users for assignment, worksheet templates, or other ticket-related configuration metadata.

#### 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 User

**Slug:** `REPAIRSHOPR_GET_USER`

Retrieve detailed information about a specific user (staff/technician) by their unique ID. Returns user details including full name, email, group membership, admin status, and timestamps. Use this when you need to look up a specific user's information or verify a user exists in the system. Example: "Get details for user ID 223535"

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the user 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 User Device

**Slug:** `REPAIRSHOPR_GET_USER_DEVICE`

Tool to retrieve details of a specific user device by its UUID. Use when you need to fetch information about a user's device.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The UUID of the user device to retrieve. Must be a valid UUID format (e.g., '550e8400-e29b-41d4-a716-446655440000'). |

#### 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 Users

**Slug:** `REPAIRSHOPR_GET_USERS`

Retrieves a list of all users (staff members and technicians) in the RepairShopr system. Use this action when you need to: - List all available staff members and technicians - Map user IDs to names for assignment or display purposes - Get a complete roster of team members This endpoint requires no parameters and returns all active users in the system.

#### 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 Vendor

**Slug:** `REPAIRSHOPR_GET_VENDOR`

Tool to retrieve details of a specific vendor by ID. Use after confirming the vendor exists. Required permission: Vendors - View Details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the vendor 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 Wiki Page

**Slug:** `REPAIRSHOPR_GET_WIKI_PAGE`

Tool to retrieve a Wiki Page by its ID. Use when you need to view documentation or knowledge base content. Required permission: Documentation - Allow Usage.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the wiki page 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 |

### List Appointment Types

**Slug:** `REPAIRSHOPR_LIST_APPOINTMENT_TYPES`

Tool to retrieve a paginated list of all appointment types. Use when you need to view available appointment type configurations. Requires Global Admin permission.

#### 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 Canned Responses

**Slug:** `REPAIRSHOPR_LIST_CANNED_RESPONSES`

Tool to retrieve a list of Canned Responses with optional search query. Use when you need to find pre-formatted response templates for tickets. Requires 'Ticket Canned Responses - Manage' permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | No | Search query to filter canned responses by title, body, or subject. |

#### 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 Contracts

**Slug:** `REPAIRSHOPR_LIST_CONTRACTS`

Tool to retrieve a paginated list of contracts. Use when you need to list contracts with details including terms, dates, and status. Returns up to 50 contracts per page. Requires Contracts - List/Search permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Returns provided page of results, each 'page' contains 50 results |

#### 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 Items

**Slug:** `REPAIRSHOPR_LIST_ITEMS`

Tool to retrieve a paginated list of Part Orders. Use when you need to list part orders, optionally filtered by completion status or search query. Returns up to 50 items per page. Requires Parts Orders - List/Search permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Returns provided page of results, each page contains 50 results |
| `query` | string | No | Search query to filter part orders |
| `completed` | boolean | No | Returns only completed part orders when set to true, or only uncompleted when set to false |

#### 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 Line Items

**Slug:** `REPAIRSHOPR_LIST_LINE_ITEMS`

Tool to retrieve a paginated list of Line Items from RepairShopr. Use when you need to list line items across invoices or estimates, with optional filtering by specific invoice/estimate ID or to get all line items associated with any invoice or estimate. Required permission: Global Admin.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `invoice_id` | integer | No | Returns Line Items that belong to a specific Invoice ID |
| `estimate_id` | integer | No | Returns Line Items that belong to a specific Estimate ID |
| `invoice_id_not_null` | boolean | No | Returns Line Items that belong to any Invoice |
| `estimate_id_not_null` | boolean | No | Returns Line Items that belong to any Estimate |

#### 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 New Ticket Forms

**Slug:** `REPAIRSHOPR_LIST_NEW_TICKET_FORMS`

Tool to retrieve a paginated list of Ticket Forms. Use when you need to view available ticket form configurations for ticket workflows. Requires permission: Ticket Workflows - Manage.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Returns provided page of results, each page contains 25 results |

#### 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 Payment Methods

**Slug:** `REPAIRSHOPR_LIST_PAYMENT_METHODS`

Tool to retrieve a paginated list of payment methods. Use when you need to view available payment methods in the system. All users except Single Customer Users may use this action.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to return (starting from 1). Check the 'meta' field in the response for pagination details. |

#### 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 Phones

**Slug:** `REPAIRSHOPR_LIST_PHONES`

Tool to retrieve a paginated list of phone numbers for a specific customer. Use when you need to view all phone contacts for a customer. Requires Customers - View Detail permission. Single-Customer Users can only access their own records.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Returns provided page of results. Each page contains 25 results by default. |
| `customer_id` | integer | Yes | The unique identifier of the customer whose phones 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 |

### List Portal Users

**Slug:** `REPAIRSHOPR_LIST_PORTAL_USERS`

Tool to retrieve a paginated list of Portal Users. Use when you need to search or filter portal users by customer or email. Returns up to 100 results per page. Requires Global Admin permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Returns provided page of results, each 'page' contains 100 results. |
| `email` | string | No | Portal User email address to filter by. |
| `customer_id` | integer | No | Returns Portal Users that belong to a Customer ID. |

#### 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 Purchase Orders

**Slug:** `REPAIRSHOPR_LIST_PURCHASE_ORDERS`

Tool to retrieve a paginated list of purchase orders. Use when you need to list all purchase orders in the system. Returns up to 20 purchase orders per page. Requires Purchase Orders - List/Search permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Returns provided page of results, each page contains 20 results |

#### 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 RMM Alerts

**Slug:** `REPAIRSHOPR_LIST_RMM_ALERTS`

Tool to retrieve a paginated list of RMM Alerts. Use when you need to browse or filter RMM alerts by status. Returns up to 25 alerts per page. Requires 'RMM Alerts - List' permission. Single-customer users can only access their own RMM alerts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Returns provided page of results, each page contains 25 results |
| `status` | string ("resolved" | "all" | "active") | No | Enum for RMM alert status filter values. |

#### 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 Schedules

**Slug:** `REPAIRSHOPR_LIST_SCHEDULES`

Tool to retrieve a paginated list of invoice schedules. Use when you need to list recurring invoice schedules, optionally filtered by customer. Returns up to 25 schedules per page. Requires Recurring Invoices - List permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Returns provided page of results, each 'page' contains 25 results |
| `customer_id` | integer | No | Returns a list of Schedules that belong to a Customer ID |

#### 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 Ticket Comments

**Slug:** `REPAIRSHOPR_LIST_TICKET_COMMENTS`

Tool to retrieve comments for a specific ticket by its ID. Use when you need to view all comments or filter comments by date. Requires Tickets - View Details or Tickets - View 'Their Ticket' Details permission. Single-Customer Users can only access comments for their own tickets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the ticket to retrieve comments for. Required. |
| `page` | integer | No | Page number of results to retrieve. Each page contains 10 comments by default unless per_page is specified. Optional. |
| `sort_by` | string ("created_at" | "updated_at") | No | Sort field options for ticket comments |
| `per_page` | integer | No | Number of comments to return per page. Default is 10. Optional. |
| `created_after` | string | No | Filter comments created after this date (ISO 8601 format). Optional. |
| `updated_after` | string | No | Filter comments updated after this date (ISO 8601 format). Optional. |
| `comment_format` | string ("plaintext" | "richtext" | "original") | No | Comment format options |
| `created_before` | string | No | Filter comments created before this date (ISO 8601 format). Optional. |
| `sort_direction` | string ("ASC" | "DESC") | No | Sort direction options |
| `updated_before` | string | No | Filter comments updated before this date (ISO 8601 format). Optional. |

#### 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 Tickets

**Slug:** `REPAIRSHOPR_LIST_TICKETS`

Tool to retrieve a paginated list of tickets. Use when you need to list or search tickets with optional filtering by customer, status, date ranges, or assigned user. Returns up to 25 tickets per page. Single-customer users can only access their own tickets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `mine` | boolean | No | When true, returns only tickets assigned to the current API user |
| `page` | integer | No | Page number for pagination, each page contains 25 results |
| `query` | string | No | Search query to filter tickets by subject or content |
| `number` | string | No | Filter tickets by ticket number |
| `status` | string | No | Filter by ticket status. Examples: 'New', 'In Progress', 'Resolved', 'Invoiced', 'Waiting for Parts', 'Waiting on Customer', 'Scheduled', 'Customer Reply', 'Not Closed' |
| `user_id` | integer | No | Filter tickets assigned to a specific user ID |
| `contact_id` | integer | No | Filter tickets by contact ID |
| `customer_id` | integer | No | Filter tickets by customer ID |
| `all_comments` | boolean | No | When true, includes all ticket comments. When false, only returns the initial comment. Defaults to true |
| `created_after` | string | No | Returns tickets created after this date. Format 'YYYY-MM-DD' |
| `comment_format` | string ("plaintext" | "richtext" | "original") | No | Format for ticket comments in response |
| `resolved_after` | string | No | Returns tickets resolved after this date. Format 'YYYY-MM-DD' |
| `since_updated_at` | string | No | Returns tickets updated after this date. Format 'YYYY-MM-DD' |
| `ticket_search_id` | integer | No | Returns results of a saved ticket search by its ID |

#### 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 Ticket Timers

**Slug:** `REPAIRSHOPR_LIST_TICKET_TIMERS`

Tool to retrieve a paginated list of Ticket Timers from RepairShopr. Use when you need to list timer entries, optionally filtered by creation date range. Returns up to 25 timer entries per page. Requires 'Ticket Timers - Overview' permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Returns provided page of results, each page contains 25 results. Defaults to page 1 when omitted. |
| `created_at_gt` | string | No | Returns Ticket Timers created after the date. Format: 'YYYY-MM-DD' (e.g., '2019-12-22'). |
| `created_at_lt` | string | No | Returns Ticket Timers created before the date. Format: 'YYYY-MM-DD' (e.g., '2019-01-22'). |

#### 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 Timelogs

**Slug:** `REPAIRSHOPR_LIST_TIMELOGS`

Tool to retrieve a paginated list of timelogs. Returns timelogs for any/all users if you have 'Timelogs - Manage' permission, otherwise results are scoped to the current user. Use when you need to view time tracking records.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | integer | No | Filter timelogs by user ID. Returns timelogs belonging to the specified user. Users with 'Timelogs - Manage' permission can see any user's timelogs, otherwise results are scoped to current user. |

#### 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 Vendors

**Slug:** `REPAIRSHOPR_LIST_VENDORS`

Tool to retrieve a paginated list of vendors. Use when you need to browse or search through vendors. Returns up to 100 results per page. Required permission: Vendors - List.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Returns provided page of results, each 'page' contains 100 results. |

#### 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 Wiki Pages

**Slug:** `REPAIRSHOPR_LIST_WIKI_PAGES`

Tool to retrieve a paginated list of Wiki Pages. Use when you need to browse or search documentation. Returns 100 results per page. Required permission: Documentation - Allow Usage.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Returns provided page of results, each 'page' contains 100 results |

#### 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 Worksheet Results

**Slug:** `REPAIRSHOPR_LIST_WORKSHEET_RESULTS`

Tool to retrieve a paginated list of Worksheet Results for a specific ticket. Use when you need to view worksheets/checklists completed on a ticket. Required permissions: "Tickets - View Details" or "Tickets - View 'Their Ticket' Details (assigned to them)". Single-Customer Users can only access their own tickets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. Each page contains 25 results |
| `ticket_id` | integer | Yes | ID of the ticket to retrieve worksheet results 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 |

### Mute RMM Alert

**Slug:** `REPAIRSHOPR_MUTE_RMM_ALERT`

Tool to mute an RMM Alert by ID for a specified duration. Use when you need to temporarily silence an alert. Requires RMM Alerts - Clear/Manage permission. Single-Customer Users can only access their own RMM Alerts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the RMM alert to mute |
| `mute_for` | string ("1-hour" | "1-day" | "2-days" | "1-week" | "2-weeks" | "1-month" | "forever") | Yes | Length of time to mute the alert. Accepted values: '1-hour', '1-day', '2-days', '1-week', '2-weeks', '1-month', 'forever' |

#### 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 Appointment

**Slug:** `REPAIRSHOPR_POST_APPOINTMENT`

Tool to create a new appointment. Use after gathering summary and date range.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end_at` | string | Yes | Scheduled end time in ISO 8601 format |
| `all_day` | boolean | No | If true, marks the appointment as all day |
| `summary` | string | Yes | Brief summary or title of the appointment |
| `user_id` | integer | No | Primary user ID assigned to this appointment |
| `location` | string | No | Location of the appointment |
| `start_at` | string | Yes | Scheduled start time in ISO 8601 format |
| `user_ids` | array | No | List of user IDs assigned to this appointment |
| `ticket_id` | integer | No | ID of the related ticket |
| `customer_id` | integer | No | ID of the customer for the appointment |
| `description` | string | No | Detailed notes for the appointment |
| `do_not_email` | boolean | No | If true, suppresses email notification to the customer |
| `email_customer` | boolean | No | If true, sends email notification to the customer |
| `appointment_type_id` | integer | No | ID of the appointment type |
| `appointment_duration` | string | No | Duration string, e.g., '4h' |

#### 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 Asset

**Slug:** `REPAIRSHOPR_POST_ASSET`

Tool to create a new asset. Use when you need to register a device under a customer with either an existing or new asset type.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the asset, e.g., 'Office PC' |
| `properties` | object | No | Custom key-value properties for the asset. |
| `customer_id` | integer | Yes | ID of the customer to attach the asset to. |
| `asset_serial` | string | No | Serial number of the asset. |
| `asset_type_id` | integer | No | ID of an existing asset type. Required if asset_type_name is omitted. |
| `asset_type_name` | string | No | Name of a new asset type to be created. Required if asset_type_id is omitted. |

#### 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 Customer

**Slug:** `REPAIRSHOPR_POST_CUSTOMER`

Tool to create a new customer. Use when you need to add a customer record with contact details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `zip` | string | No | ZIP or postal code of the customer's address. |
| `city` | string | No | City of the customer's address. |
| `email` | string | No | Email address of the customer. |
| `phone` | string | No | Primary phone number of the customer. |
| `state` | string | No | State of the customer's address. |
| `mobile` | string | No | Mobile phone number of the customer. |
| `address` | string | No | Street address of the customer. |
| `lastname` | string | No | Last name of the customer. |
| `address_2` | string | No | Second line of the street address. |
| `firstname` | string | No | First name of the customer. |
| `business_name` | string | No | Business name associated with the customer. |

#### 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 Estimate

**Slug:** `REPAIRSHOPR_POST_ESTIMATE`

Tool to create a new estimate. Use when you have final customer details and line items ready to generate an estimate in RepairShopr.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | Yes | Date of the estimate in ISO 8601 format |
| `name` | string | No | Title or name for the estimate |
| `note` | string | No | Additional notes included on the estimate |
| `number` | string | No | Custom estimate number (defaults to auto-generated) |
| `status` | string | No | Status of the estimate. Defaults to 'Fresh' if not specified. Common values may include status names configured in your RepairShopr account. |
| `ticket_id` | integer | No | ID of the related ticket, if any |
| `created_at` | string | No | Override creation timestamp (ISO 8601) |
| `line_items` | array | No | List of line items to include on the estimate |
| `updated_at` | string | No | Override update timestamp (ISO 8601) |
| `customer_id` | integer | Yes | Unique identifier of the customer for this estimate |
| `location_id` | integer | No | Location ID associated with this estimate |

#### 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 Invoice

**Slug:** `REPAIRSHOPR_POST_INVOICE`

Create a new invoice for a customer in RepairShopr. Requires a valid customer_id, invoice date, and due date. Optionally include line items with SKU/item codes, quantities, prices, and tax settings. Supports custom invoice numbers, purchase orders, notes, and hardware costs. Returns the created invoice with auto-generated invoice number if not provided.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | Yes | Invoice date (ISO 8601) |
| `note` | string | No | Additional notes for the invoice |
| `number` | string | No | Invoice number; auto-assigned if omitted |
| `due_date` | string | Yes | Due date of the invoice (YYYY-MM-DD) |
| `po_number` | string | No | Purchase order number |
| `ticket_id` | integer | No | Associated ticket ID |
| `contact_id` | integer | No | Contact ID to bill |
| `line_items` | array | No | List of line items to include in the invoice |
| `customer_id` | integer | Yes | ID of the customer to bill |
| `location_id` | integer | No | Location ID for the invoice |
| `hardwarecost` | number | No | Hardware cost amount |

#### 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 Lead

**Slug:** `REPAIRSHOPR_POST_LEAD`

Tool to create a new lead. Use when you need to add a potential customer to the system.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `zip` | string | No | ZIP code of the lead. |
| `city` | string | No | City of the lead. |
| `email` | string | No | Email address of the lead. |
| `phone` | string | No | Phone number of the lead. |
| `state` | string | No | State of the lead. |
| `mobile` | string | No | Mobile number of the lead. |
| `address` | string | No | Street address of the lead. |
| `converted` | boolean | No | Whether the lead has been converted into a customer. |
| `last_name` | string | No | Last name of the lead. |
| `first_name` | string | No | First name of the lead. |
| `business_name` | string | No | Business name of the lead. |

#### 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 Payment

**Slug:** `REPAIRSHOPR_POST_PAYMENT`

Create a payment record in RepairShopr. Records a payment against an invoice for a customer. Requires customer_id and amount_cents. Either invoice_id or invoice_number must be provided to link the payment to an invoice.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cvv` | string | No | Credit card CVV code. |
| `ref_num` | string | No | Reference number for the payment (e.g., check number). |
| `lastname` | string | No | Last name of the cardholder. |
| `date_year` | string | No | Credit card expiration year (YYYY). |
| `firstname` | string | No | First name of the cardholder. |
| `date_month` | string | No | Credit card expiration month (MM). |
| `invoice_id` | integer | No | ID of the invoice to apply this payment to. Provide either invoice_id or invoice_number. |
| `address_zip` | string | No | Billing ZIP/postal code. |
| `customer_id` | integer | Yes | ID of the customer associated with this payment. Required. |
| `register_id` | integer | No | ID of the register processing the payment. |
| `address_city` | string | No | Billing city. |
| `amount_cents` | integer | Yes | Payment amount in cents. Must be non-negative. |
| `address_street` | string | No | Billing street address. |
| `apply_payments` | object | No | Additional object describing specific invoice-application splits. |
| `invoice_number` | string | No | Invoice number to apply this payment to. Provide either invoice_id or invoice_number. |
| `payment_method` | string | No | Payment method used. Common values: 'credit_card', 'cash', 'check'. |
| `signature_data` | string | No | Base64-encoded signature data. |
| `signature_date` | string | No | ISO 8601 timestamp of the signature. |
| `signature_name` | string | No | Name on the customer signature. |
| `credit_card_number` | string | No | Credit card number. |

#### 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 Product

**Slug:** `REPAIRSHOPR_POST_PRODUCT`

Tool to create a new product in inventory. Use when you need to add an item with price and details to your RepairShopr catalog.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sku` | string | No | Stock keeping unit identifier. |
| `cost` | number | No | Cost price of the product, if provided, must be non-negative. |
| `name` | string | Yes | Name of the product. |
| `photo` | string | No | URL of the product photo. |
| `price` | number | Yes | Selling price of the product, must be non-negative. |
| `active` | boolean | No | Whether the product is active. |
| `weight` | number | No | Weight of the product (in pounds), must be non-negative. |
| `taxable` | boolean | No | Whether the product is taxable. |
| `quantity` | integer | No | Available stock quantity, must be non-negative. |
| `upc_code` | string | No | Universal Product Code. |
| `serialized` | boolean | No | Whether the product is serialized. |
| `vendor_ids` | array | No | List of vendor identifiers associated with this product. |
| `category_id` | integer | No | Identifier of the category this product belongs to. |
| `description` | string | Yes | Detailed description of the product. This field is required by the API. |
| `manufacturer` | string | No | Manufacturer name of the product. |
| `model_number` | string | No | Manufacturer model number. |

#### 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 |

### Add Product Photo

**Slug:** `REPAIRSHOPR_POST_PRODUCT_PHOTO`

Tool to add photo(s) to a specific product. Use when you need to attach one or more images to a product after confirming the product ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the product. |
| `files` | array | Yes | List of files (URL and filename) to attach to the product. |

#### 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 Purchase Order

**Slug:** `REPAIRSHOPR_POST_PURCHASE_ORDER`

Tool to create a new purchase order for a vendor. Use when you need to order inventory or supplies from a vendor in RepairShopr. Requires Purchase Orders - Edit permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | integer | No | User ID who is creating the purchase order. |
| `due_date` | string | No | Due date for the purchase order (ISO 8601 date-time format). |
| `paid_date` | string | No | Date when the purchase order was paid (ISO 8601 date-time format). |
| `vendor_id` | integer | Yes | The ID of the vendor for this purchase order. This field is required. |
| `order_date` | string | No | Date when the order was placed (ISO 8601 date-time format). |
| `location_id` | integer | No | Location ID associated with this purchase order. |
| `other_cents` | integer | No | Other costs in cents. |
| `expected_date` | string | No | Expected delivery date for the purchase order (ISO 8601 date-time format). |
| `general_notes` | string | No | General notes or comments about the purchase order. |
| `shipping_cents` | integer | No | Shipping cost in cents. |
| `shipping_notes` | string | No | Additional notes about shipping. |
| `discount_percent` | integer | No | Discount percentage applied to the purchase order. |
| `delivery_tracking` | string | No | Tracking number for delivery. |

#### 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 User Device

**Slug:** `REPAIRSHOPR_POST_USER_DEVICE`

Tool to create a new user device. Use when you need to register a device for a user in RepairShopr.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `model` | string | No | Model of the user device. |
| `device_name` | string | No | Name of the user device. |
| `device_uuid` | string | No | Unique identifier (UUID) for the user device. |
| `screen_size` | string | No | Screen size of the device. |
| `system_name` | string | No | Operating system name of the device. |
| `registration_token_gcm` | string | No | Google Cloud Messaging registration token for push notifications. |

#### 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 |

### Print Estimate

**Slug:** `REPAIRSHOPR_PRINT_ESTIMATE`

Tool to queue a print job for an estimate. Use when you need to send an existing estimate to the printer queue.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the estimate to print |

#### 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 |

### Print Invoice

**Slug:** `REPAIRSHOPR_PRINT_INVOICE`

Tool to queue a print job for an invoice in RepairShopr. Use when you need to send an invoice to the print queue. Requires Invoices - View Details permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the invoice to print. Must be a valid existing invoice ID. |

#### 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 |

### Print Ticket

**Slug:** `REPAIRSHOPR_PRINT_TICKET`

Tool to print a ticket by its ID. Use when you need to generate a printable version of a ticket. Requires 'Tickets - View Details' permission. Single-Customer Users can only print their own tickets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the ticket to print. Single-Customer Users can only print their own tickets. |

#### 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 |

### Process Ticket Form

**Slug:** `REPAIRSHOPR_PROCESS_TICKET_FORM`

Tool to process a ticket form submission and create a new ticket in RepairShopr. Use when you have a ticket form ID and need to submit customer details, ticket information, and optionally schedule an appointment. Required permission: Tickets - Create.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the ticket form to process. This is a required path parameter. |
| `appointments` | object | No | Appointment details to optionally create with the ticket. |
| `ticket_details` | object | No | Ticket details for the ticket form submission. |
| `customer_details` | object | No | Customer details for the ticket form submission. |

#### 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 |

### Receive Purchase Order

**Slug:** `REPAIRSHOPR_RECEIVE_PURCHASE_ORDER`

Tool to mark a purchase order as received in RepairShopr. Use when inventory has been delivered and needs to be received into stock. Can receive all items or a specific line item. Note: Products marked as serialized will require serial numbers to be provided. Requires Purchase Orders - Edit permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the purchase order to receive. This field is required. |
| `line_item_id` | integer | No | The specific line item to receive. Optional - if not provided, all line items are processed. Note: Products marked as serialized require serial numbers to be provided. |

#### 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 |

### Remove Ticket Line Item

**Slug:** `REPAIRSHOPR_REMOVE_TICKET_LINE_ITEM`

Tool to delete a line item from an existing ticket in RepairShopr. Use when you need to remove a product, service, or charge from a ticket. Requires Tickets - Edit permission. Single-customer users can only access their own tickets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the ticket containing the line item to remove. Required. |
| `ticket_line_item_id` | integer | Yes | ID of the specific line item to remove from the ticket. Required. |

#### 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 |

### Search All

**Slug:** `REPAIRSHOPR_SEARCH_ALL`

Tool to search across all RepairShopr entities including customers, contacts, assets, leads, invoices, estimates, tickets, products, purchase orders, vendors, reports, and wiki pages. Use when you need to find entities without knowing the specific type. Note: Requires appropriate permissions for each entity type returned in results (e.g., 'Customers - List/Search' for customer results, 'Leads - List/Search' for lead results).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | Search query string to search across all entities including customers, contacts, assets, leads, invoices, estimates, tickets, products, purchase orders, vendors, reports, and wiki pages. Requires appropriate permissions for each entity type. |

#### 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 Appointment

**Slug:** `REPAIRSHOPR_UPDATE_APPOINTMENT`

Tool to update an existing appointment by ID. Use when you need to modify appointment details like time, description, or attendees.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the appointment to update |
| `end_at` | string | No | Scheduled end time in ISO 8601 format |
| `all_day` | boolean | No | If true, marks the appointment as an all-day event |
| `summary` | string | No | Brief summary or title of the appointment |
| `user_id` | integer | No | Primary user ID assigned to this appointment |
| `location` | string | No | Physical location of the appointment |
| `start_at` | string | No | Scheduled start time in ISO 8601 format (e.g., '2026-02-16T10:00:00.000-08:00') |
| `user_ids` | array | No | List of user IDs assigned to this appointment (multiple assignees) |
| `ticket_id` | integer | No | ID of the related ticket, if any |
| `customer_id` | integer | No | ID of the customer associated with this appointment |
| `description` | string | No | Detailed notes or description for the appointment |
| `email_customer` | boolean | No | If true, sends an email notification to the customer about the update |
| `appointment_type_id` | integer | No | ID of the appointment type category |
| `appointment_duration` | string | No | Duration string (e.g., '4h', '1h30m') |

#### 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 Appointment Type

**Slug:** `REPAIRSHOPR_UPDATE_APPOINTMENT_TYPE`

Tool to update an existing appointment type by ID. Use when modifying appointment type configuration including name, location settings, and email instructions. Requires Global Admin permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the appointment type to update |
| `name` | string | No | The name of the appointment type |
| `location_type` | string | No | The type of location for this appointment. Known values: 1 = 'shop'. Pass either a LocationType enum value or an integer. |
| `email_instructions` | string | No | Email instructions to be sent with appointment confirmations |
| `location_hard_code` | string | No | Hard-coded location string. Used when location_type is set to pre-defined/hard-coded location mode |

#### 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 Asset

**Slug:** `REPAIRSHOPR_UPDATE_ASSET`

Tool to update an existing asset by its ID. Use when you need to modify asset details such as name, serial number, type, or custom properties. Requires Assets - Edit permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the asset to update. Single-Customer Users can only access their own assets. |
| `name` | string | No | Name of the asset (e.g., 'Updated Test Asset') |
| `properties` | object | No | Custom key-value properties for the asset |
| `customer_id` | integer | No | ID of the customer to assign the asset to |
| `asset_serial` | string | No | Serial number of the asset |
| `asset_type_id` | integer | No | ID of the asset type to assign to this asset |
| `asset_type_name` | string | No | Name of the asset type (alternative to asset_type_id) |

#### 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 Canned Response

**Slug:** `REPAIRSHOPR_UPDATE_CANNED_RESPONSE`

Tool to update an existing Canned Response by ID. Use when you need to modify the title, body, subject, or category of a pre-formatted response template. Required permission: Ticket Canned Responses - Manage.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the canned response to update |
| `body` | string | No | The body/content of the canned response |
| `title` | string | No | The title of the canned response |
| `subject` | string | No | The subject line for the canned response |
| `canned_response_category_id` | integer | No | The ID of the category to assign this canned response to |

#### 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 Contact

**Slug:** `REPAIRSHOPR_UPDATE_CONTACT`

Tool to update an existing contact. Use when you need to modify contact information for an existing contact record. Requires 'Customers - Edit' permission. Single-Customer Users can only access their own contacts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the contact to update. Required field. |
| `zip` | string | No | ZIP or postal code of the contact's address. |
| `city` | string | No | City of the contact's address. |
| `name` | string | No | Name of the contact. |
| `email` | string | No | Email address of the contact. |
| `notes` | string | No | Additional notes about the contact. |
| `phone` | string | No | Phone number of the contact. |
| `state` | string | No | State of the contact's address. |
| `title` | string | No | Title or position of the contact. |
| `mobile` | string | No | Mobile phone number of the contact. |
| `address1` | string | No | Primary address line of the contact. |
| `address2` | string | No | Secondary address line of the contact. |
| `customer_id` | integer | No | Customer ID to associate the contact with. |

#### 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 Contract

**Slug:** `REPAIRSHOPR_UPDATE_CONTRACT`

Tool to update an existing contract by ID. Use when you need to modify contract terms, status, or other details. Requires Contracts - Edit permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the contract to update. This is a required path parameter. |
| `name` | string | No | Name of the contract. |
| `sla_id` | integer | No | ID of the Service Level Agreement associated with this contract. |
| `status` | string | No | Status of the contract (e.g., 'Active', 'Inactive', 'Opportunity', 'Pending'). |
| `end_date` | string | No | End date of the contract in ISO 8601 date-time format. |
| `likelihood` | integer | No | Likelihood score or percentage for contract completion. |
| `start_date` | string | No | Start date of the contract in ISO 8601 date-time format. |
| `customer_id` | integer | Yes | ID of the customer to associate with this contract. This is a required field. |
| `description` | string | No | Detailed description of the contract. |
| `apply_to_all` | boolean | No | Whether this contract applies to all customers or assets. |
| `contract_amount` | string | No | Amount of the contract as a string. |
| `primary_contact` | string | No | Primary contact for this contract. |

#### 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 Customer

**Slug:** `REPAIRSHOPR_UPDATE_CUSTOMER`

Tool to update an existing customer by ID. Use when you need to modify customer details such as contact information, address, or preferences. Single-customer users can only access their own customer record.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the customer to update. |
| `zip` | string | No | ZIP or postal code of the customer's address. |
| `city` | string | No | City of the customer's address. |
| `email` | string | No | Email address of the customer. |
| `notes` | string | No | Additional notes about the customer. |
| `phone` | string | No | Primary phone number of the customer. |
| `state` | string | No | State of the customer's address. |
| `mobile` | string | No | Mobile phone number of the customer. |
| `address` | string | No | Street address of the customer. |
| `consent` | object | No | Consent preferences object for the customer. |
| `get_sms` | boolean | No | Whether customer can receive SMS messages. |
| `opt_out` | boolean | No | Whether customer has opted out of communications. |
| `lastname` | string | No | Last name of the customer. |
| `no_email` | boolean | No | Whether the customer should not receive emails. |
| `address_2` | string | No | Second line of the street address. |
| `firstname` | string | No | First name of the customer. |
| `properties` | object | No | Arbitrary properties object for the customer. |
| `get_billing` | boolean | No | Whether customer can receive billing communications. |
| `get_reports` | boolean | No | Whether customer can receive reports. |
| `referred_by` | string | No | Source or referral information for the customer. |
| `tax_rate_id` | integer | No | Default tax rate ID for the customer. |
| `business_name` | string | No | Business name associated with the customer. |
| `get_marketing` | boolean | No | Whether customer can receive marketing communications. |
| `invoice_term_id` | integer | No | Default invoice term ID for the customer. |
| `ref_customer_id` | integer | No | Reference customer ID. |
| `invoice_cc_emails` | string | No | CC email addresses for invoices, comma-separated. |
| `notification_email` | string | No | Email address used for notifications. |

#### 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 Estimate

**Slug:** `REPAIRSHOPR_UPDATE_ESTIMATE`

Tool to update an existing estimate by ID. Use when you need to modify estimate details such as status, notes, customer, or other fields. Requires Estimates - Edit permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the estimate to update |
| `date` | string | No | Date of the estimate in ISO 8601 format |
| `name` | string | No | Title or name for the estimate |
| `note` | string | No | Additional notes included on the estimate |
| `number` | string | No | Custom estimate number |
| `status` | string ("Fresh" | "Draft" | "Approved" | "Declined") | No | Valid status values for estimates |
| `ticket_id` | integer | No | ID of the related ticket, if any |
| `customer_id` | integer | No | ID of the customer associated with the estimate |
| `location_id` | integer | No | Location ID associated with this estimate |

#### 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 Estimate Line Item

**Slug:** `REPAIRSHOPR_UPDATE_ESTIMATE_LINE_ITEM`

Tool to update an existing line item on an estimate in RepairShopr. Use when you need to modify products or services on an estimate. Required permission: Estimates - Edit.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique numeric ID of the estimate containing the line item |
| `cost` | number | No | Cost amount of the item |
| `item` | string | No | SKU or identifier for the line item |
| `name` | string | No | Display name of the line item |
| `price` | number | No | Price charged for the item |
| `taxable` | boolean | No | Whether the item is taxable |
| `user_id` | integer | No | ID of user updating the line item |
| `position` | integer | No | Position of the item in the estimate list |
| `quantity` | number | No | Quantity of the item |
| `tax_note` | string | No | Tax note for the item |
| `upc_code` | string | No | UPC code of the item |
| `product_id` | integer | No | ID of an existing product |
| `tax_rate_id` | integer | No | Specific tax rate ID to apply |
| `line_item_id` | integer | Yes | The unique numeric ID of the line item to update |
| `discount_percent` | number | No | Discount percentage applied |
| `product_category` | string | No | Category of the product |

#### 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 Invoice

**Slug:** `REPAIRSHOPR_UPDATE_INVOICE`

Tool to update an existing invoice by ID. All provided parameters overwrite existing values. Use when you need to modify invoice details such as notes, dates, amounts, or customer information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the invoice to update |
| `tax` | string | No | Tax amount as a string |
| `date` | string | No | Invoice date (ISO 8601) |
| `note` | string | No | Additional notes for the invoice |
| `total` | string | No | Total amount as a string |
| `number` | string | No | Invoice number |
| `pdf_url` | string | No | PDF URL for the invoice |
| `due_date` | string | No | Due date of the invoice (YYYY-MM-DD) |
| `subtotal` | string | No | Subtotal amount as a string |
| `po_number` | string | No | Purchase order number |
| `ticket_id` | integer | No | Associated ticket ID |
| `contact_id` | integer | No | ID of the contact to associate with the invoice |
| `created_at` | string | No | Creation timestamp of the invoice (ISO 8601) |
| `updated_at` | string | No | Last update timestamp of the invoice (ISO 8601) |
| `customer_id` | integer | No | ID of the customer to bill |
| `location_id` | integer | No | Location ID for the invoice |
| `hardwarecost` | number | No | Hardware cost amount |
| `customer_business_then_name` | string | No | Customer's business then name |

#### 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 Invoice Line Item

**Slug:** `REPAIRSHOPR_UPDATE_INVOICE_LINE_ITEM`

Tool to update an existing line item on an invoice in RepairShopr. Use when modifying the properties of a line item that already exists on an invoice. All parameters overwrite existing values.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the invoice containing the line item |
| `cost` | number | No | Cost amount of the item |
| `item` | string | No | SKU or identifier for the line item |
| `name` | string | No | Display name of the line item |
| `price` | number | No | Price charged for the item |
| `taxable` | boolean | No | Whether the item is taxable |
| `line_item_id` | integer | Yes | ID of the line item to update |
| `discount_dollars` | string | No | Discount amount in dollars as a string |
| `line_discount_percent` | integer | No | Discount percentage applied to the line item |

#### 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 Lead

**Slug:** `REPAIRSHOPR_UPDATE_LEAD`

Tool to update an existing lead by ID. Use when you need to modify lead details such as status, contact information, or notes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the lead to update. |
| `zip` | string | No | ZIP code of the lead's address. |
| `city` | string | No | City of the lead. |
| `email` | string | No | Email address of the lead. |
| `phone` | string | No | Phone number of the lead. |
| `state` | string | No | State of the lead's address. |
| `mobile` | string | No | Mobile phone number of the lead. |
| `status` | string | No | Current status of the lead. |
| `address` | string | No | Street address of the lead. |
| `user_id` | integer | No | ID of the user assigned to this lead. |
| `disabled` | boolean | No | Whether the lead is disabled. |
| `converted` | boolean | No | Whether the lead has been converted into a customer. |
| `last_name` | string | No | Last name of the lead. |
| `ticket_id` | integer | No | ID of the associated ticket if applicable. |
| `contact_id` | integer | No | ID of the contact associated with this lead. |
| `first_name` | string | No | First name of the lead. |
| `likelihood` | integer | No | Likelihood score or rating for the lead. |
| `mailbox_id` | integer | No | ID of the mailbox associated with this lead. |
| `properties` | object | No | Additional custom properties for the lead. |
| `customer_id` | integer | No | ID of the customer if lead was converted. |
| `location_id` | integer | No | ID of the location associated with this lead. |
| `hidden_notes` | string | No | Private notes about the lead that are not visible to the customer. |
| `message_read` | boolean | No | Whether the lead message has been read. |
| `business_name` | string | No | Business name of the lead. |
| `from_check_in` | boolean | No | Whether the lead was created from check-in. |
| `signature_data` | string | No | Signature data associated with the lead. |
| `signature_date` | string | No | Date of signature in ISO 8601 format. |
| `signature_name` | string | No | Name associated with the signature. |
| `ticket_subject` | string | No | Subject of associated ticket if applicable. |
| `ticket_type_id` | integer | No | ID of the ticket type if applicable. |
| `appointment_time` | string | No | Appointment time for the lead. |
| `ticket_properties` | object | No | Additional custom properties for the associated ticket. |
| `ticket_description` | string | No | Description of associated ticket if applicable. |
| `appointment_type_id` | integer | No | ID of the appointment type associated with this lead. |
| `ticket_problem_type` | string | No | Problem type of associated ticket if applicable. |
| `customer_purchase_id` | integer | No | ID of the customer purchase associated with this lead. |
| `opportunity_start_date` | string | No | Start date of the opportunity in ISO 8601 format. |
| `opportunity_amount_dollars` | number | No | Dollar amount of the opportunity associated with this lead. |

#### 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 Phone

**Slug:** `REPAIRSHOPR_UPDATE_PHONE`

Tool to update an existing phone number by ID. Use when you need to modify phone details for a customer's existing phone record. Requires Customers - Edit permission. Single-Customer Users can only access their own records.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the phone record to update |
| `label` | string | No | Label for the phone number (e.g., Office, Home, Mobile) |
| `number` | string | No | Phone number to update. Include country code if applicable. |
| `extension` | string | No | Phone extension number if applicable |
| `customer_id` | integer | Yes | The unique identifier of the customer who owns the phone |

#### 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 Portal User

**Slug:** `REPAIRSHOPR_UPDATE_PORTAL_USER`

Tool to update an existing Portal User by ID. Use when you need to modify portal user details such as email, password, or associated customer/contact. Requires Global Admin permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the portal user to update. Required. |
| `email` | string | No | Email address for the portal user. |
| `password` | string | No | New password for the portal user account. |
| `contact_id` | integer | No | ID of the contact to associate with this portal user. |
| `customer_id` | integer | No | ID of the customer to associate with this portal user. |
| `portal_group_id` | integer | No | ID of the portal group to assign this user to. |
| `password_confirmation` | string | No | Password confirmation - must match the password field if password is being updated. |

#### 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 Product

**Slug:** `REPAIRSHOPR_UPDATE_PRODUCT`

Tool to update an existing product by ID. Use when you need to modify product details such as name, description, pricing, inventory levels, or other attributes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the product to update. |
| `name` | string | No | Name of the product. |
| `notes` | string | No | Additional notes about the product. |
| `taxable` | boolean | No | Whether the product is taxable. |
| `disabled` | boolean | No | Whether the product is disabled/inactive. |
| `quantity` | integer | No | Available stock quantity, must be non-negative. |
| `upc_code` | string | No | Universal Product Code (barcode). |
| `warranty` | string | No | Warranty information for the product. |
| `condition` | string | No | Condition of the product (e.g., 'New', 'Used', 'Refurbished'). |
| `price_cost` | number | No | Cost price of the product, must be non-negative. |
| `qb_item_id` | integer | No | QuickBooks item ID for integration. |
| `reorder_at` | integer | No | Stock level at which to reorder, must be non-negative. |
| `serialized` | boolean | No | Whether the product requires serial number tracking. |
| `sort_order` | integer | No | Sort order for displaying the product. |
| `vendor_ids` | array | No | List of vendor identifiers associated with this product. |
| `description` | string | No | Detailed description of the product. |
| `tax_rate_id` | integer | No | Tax rate identifier to apply to this product. |
| `category_ids` | array | No | List of category identifiers this product belongs to. |
| `price_retail` | number | No | Retail/selling price of the product, must be non-negative. |
| `maintain_stock` | boolean | No | Whether stock levels should be maintained for this product. |
| `price_wholesale` | number | No | Wholesale price of the product, must be non-negative. |
| `discount_percent` | number | No | Discount percentage to apply to the product (0-100). |
| `product_category` | string | No | Product category name. |
| `physical_location` | string | No | Physical storage location in warehouse/store. |
| `desired_stock_level` | integer | No | Desired stock level for inventory management, must be non-negative. |
| `warranty_template_id` | integer | No | Warranty template identifier to use. |
| `product_skus_attributes` | array | No | List of product SKU attributes with vendor information. Each item should have 'value' (SKU string) and 'vendor_id' (integer). |

#### 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 Product Serial

**Slug:** `REPAIRSHOPR_UPDATE_PRODUCT_SERIAL`

Tool to update an existing product serial by ID. Use when you need to modify serial number details, pricing, or condition for a product. Required permission: Products - Edit.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the product serial to update. |
| `notes` | string | No | Additional notes about the product serial. |
| `condition` | string | No | Condition of the product serial (e.g., 'New', 'Good', 'Used', 'Refurbished'). |
| `product_id` | integer | Yes | The unique identifier of the product. |
| `serial_number` | string | No | The serial number to assign to this product. |
| `price_cost_cents` | integer | No | Cost price in cents. Must be non-negative. |
| `price_retail_cents` | integer | No | Retail price in cents. Must be non-negative. |

#### 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 Invoice Schedule

**Slug:** `REPAIRSHOPR_UPDATE_SCHEDULE`

Tool to update an existing invoice schedule by ID. Use when modifying recurring invoice settings such as frequency, name, or payment options. Requires Recurring Invoices - Edit permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the schedule to update |
| `name` | string | No | Name of the schedule to identify it |
| `paused` | boolean | No | Whether the schedule is paused (will not run if true) |
| `next_run` | string | No | Next scheduled run date in YYYY-MM-DD format |
| `frequency` | string ("Daily" | "Weekly" | "Biweekly" | "Monthly" | "Quarterly" | "Semi-Annually" | "Annually" | "Biennially" | "Triennially") | No | Enum for schedule frequency options. |
| `charge_mop` | boolean | No | Whether to charge the method of payment on file automatically |
| `snail_mail` | boolean | No | Whether to send physical mail to the customer |
| `customer_id` | integer | No | ID of the customer for the recurring invoice schedule |
| `email_customer` | boolean | No | Whether to email the customer when the invoice is generated |
| `invoice_unbilled_ticket_charges` | boolean | No | Whether to invoice any unbilled ticket charges automatically |

#### 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 Schedule Line Item

**Slug:** `REPAIRSHOPR_UPDATE_SCHEDULE_LINE_ITEM`

Tool to update a line item in an invoice schedule. Use when modifying existing recurring charges or one-time items in a schedule. Required permission: Recurring Invoices - Edit.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the schedule containing the line item |
| `name` | string | No | Display name of the line item |
| `taxable` | boolean | No | Whether the line item is taxable |
| `user_id` | integer | No | ID of the user updating the line item |
| `position` | integer | No | Position of the item in the schedule list |
| `quantity` | number | No | Quantity of the item. Must be non-negative. |
| `cost_cents` | integer | No | Cost price in cents. Must be non-negative. |
| `product_id` | integer | No | ID of an existing product to bill |
| `description` | string | No | Detailed description of the line item |
| `retail_cents` | integer | No | Retail price in cents. Must be non-negative. |
| `asset_type_id` | integer | No | ID of the asset type associated with the line item |
| `one_time_charge` | boolean | No | Whether this is a one-time charge or recurring |
| `recurring_type_id` | string ("monthly" | "quarterly" | "semi_annually" | "annually" | "biweekly" | "weekly") | No | Recurring type for schedule line items. |
| `contact_field_type_id` | integer | No | ID of the contact field type |
| `saved_asset_search_id` | integer | No | ID of a saved asset search |
| `schedule_line_item_id` | integer | Yes | ID of the line item to update |
| `contact_field_answer_id` | integer | No | ID of the contact field answer |

#### 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 Ticket

**Slug:** `REPAIRSHOPR_UPDATE_TICKET`

Tool to update an existing ticket by ID in RepairShopr. Use when you need to modify ticket details such as status, priority, subject, or other fields. Requires 'Tickets - Edit' permission. Single-Customer Users can only update their own tickets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the ticket to update. Required path parameter. Single-Customer Users can only update their own tickets. |
| `end_at` | string | No | End date and time for the ticket work (ISO 8601 format) |
| `number` | string | No | Custom ticket number |
| `sla_id` | integer | No | Service Level Agreement ID to apply to this ticket |
| `status` | string | No | Current status of the ticket (e.g., New, In Progress, Waiting on Customer, Resolved) |
| `subject` | string | No | Subject or title of the ticket |
| `user_id` | integer | No | ID of the technician or staff to assign to this ticket |
| `due_date` | string | No | Due date for resolving the ticket (format: YYYY-MM-DD) |
| `priority` | string | No | Priority level of the ticket (e.g., '0 Urgent', '1 High', '2 Normal', '3 Low') |
| `start_at` | string | No | Start date and time for the ticket work (ISO 8601 format) |
| `tag_list` | array | No | List of tags to associate with the ticket |
| `asset_ids` | array | No | List of asset IDs to associate with this ticket |
| `contact_id` | integer | No | ID of the primary contact for this ticket |
| `properties` | object | No | Custom properties object for additional ticket metadata |
| `customer_id` | integer | No | ID of the customer associated with this ticket |
| `location_id` | integer | No | Location ID if applicable |
| `problem_type` | string | No | Type of problem (e.g., Remote Support, Network Project, Onboarding) |
| `signature_data` | string | No | Signature data (e.g., base64 encoded image) |
| `signature_name` | string | No | Name of the person who signed |
| `ticket_type_id` | integer | No | Ticket type ID to categorize the ticket |
| `outtake_form_data` | string | No | Data from the outtake form |
| `outtake_form_date` | string | No | Date of the outtake form completion (ISO 8601 format) |
| `outtake_form_name` | string | No | Name of the outtake form if applicable |
| `comments_attributes` | array | No | List of comments to add to the ticket upon 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 Ticket Line Item

**Slug:** `REPAIRSHOPR_UPDATE_TICKET_LINE_ITEM`

Tool to update an existing line item on a ticket in RepairShopr. Use when you need to modify products, services, or charges already added to a ticket. Requires Tickets - Edit permission. Single-customer users can only access their own tickets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the ticket containing the line item to update. Required. |
| `name` | string | No | Updated name/title of the line item. |
| `taxable` | boolean | No | Whether the line item is taxable. |
| `quantity` | number | No | Updated quantity of the line item. |
| `upc_code` | string | No | Updated UPC code of the line item. |
| `price_cost` | number | No | Updated cost price of the line item. |
| `product_id` | integer | No | Updated product ID to associate with this line item. |
| `description` | string | No | Updated description of the line item. |
| `price_retail` | number | No | Updated retail price of the line item. |
| `ticket_line_item_id` | integer | Yes | ID of the specific line item to update. Required. |

#### 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 Ticket Timer

**Slug:** `REPAIRSHOPR_UPDATE_TICKET_TIMER`

Tool to update an existing ticket timer entry in RepairShopr. Use when you need to modify time logged on a ticket. Requires Ticket Timers - Overview permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the ticket containing the timer entry to update. Required. |
| `notes` | string | No | Notes about the timer entry. Optional. |
| `user_id` | integer | No | User ID for the timer entry. Defaults to current user if not specified. Optional. |
| `start_at` | string | No | Start time for the timer entry in ISO 8601 format (e.g., '2026-02-15T10:00:00-08:00'). Optional. |
| `product_id` | integer | No | Product ID associated with the timer entry. Optional. |
| `timer_entry_id` | integer | Yes | ID of the timer entry to update. Required. |
| `duration_minutes` | integer | No | Duration of the timer entry in minutes. Optional. |

#### 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 Timelog

**Slug:** `REPAIRSHOPR_UPDATE_TIMELOG`

Tool to update an existing timelog entry in RepairShopr. Use when you need to modify clock-in/out times, add or update notes, or record lunch breaks. Users with 'Timelogs - Manage' permission may update any user's timelogs, otherwise updates are scoped to the current user's timelogs only.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the timelog to update. Required to identify which timelog entry to modify. |
| `in_at` | string | No | Clock-in timestamp in ISO 8601 format with timezone. Example: '2026-02-15T09:00:00-08:00'. |
| `lunch` | boolean | No | Whether the employee took a lunch break during this timelog period. When true, lunch time may be deducted from total hours. |
| `out_at` | string | No | Clock-out timestamp in ISO 8601 format with timezone. Example: '2026-02-15T17:00:00-08:00'. |
| `in_note` | string | No | Note entered at clock-in time. Use to record the reason for clocking in or task context. |
| `out_note` | string | No | Note entered at clock-out time. Use to record completion status or end-of-day summary. |

#### 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 User Device

**Slug:** `REPAIRSHOPR_UPDATE_USER_DEVICE`

Tool to update an existing user device by UUID. Use when you need to modify device information such as the GCM registration token.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The UUID of the user device to update. Must be a valid UUID format (e.g., '550e8400-e29b-41d4-a716-446655440000'). Note: Use the device_uuid field value, not the numeric id field. |
| `registration_token_gcm` | string | No | Google Cloud Messaging registration token for push notifications. Updates the device's GCM token. |

#### 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 Vendor

**Slug:** `REPAIRSHOPR_UPDATE_VENDOR`

Tool to update an existing vendor by ID. Use when you need to modify vendor details such as contact information, address, or notes. Required permission: Vendors - Edit.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the vendor to update. |
| `zip` | string | No | ZIP or postal code of the vendor's address. |
| `city` | string | No | City of the vendor's address. |
| `name` | string | No | Name of the vendor. |
| `email` | string | No | Email address of the vendor. |
| `notes` | string | No | Additional notes about the vendor. |
| `phone` | string | No | Phone number of the vendor. |
| `state` | string | No | State of the vendor's address. |
| `address` | string | No | Street address of the vendor. |
| `website` | string | No | Website URL of the vendor. |
| `rep_last_name` | string | No | Last name of the vendor representative. |
| `account_number` | string | No | Account number associated with the vendor. |
| `rep_first_name` | string | No | First name of the vendor representative. |

#### 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 Wiki Page

**Slug:** `REPAIRSHOPR_UPDATE_WIKI_PAGE`

Tool to update an existing Wiki Page by ID. Use when you need to modify documentation or knowledge base content. Required permission: Documentation - Edit.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique ID of the wiki page to update |
| `body` | string | No | Content of the wiki page. Can include HTML or markdown formatting. |
| `name` | string | No | Title/name of the wiki page |
| `slug` | string | No | URL slug for the wiki page |
| `asset_id` | integer | No | ID of the asset to associate with this wiki page |
| `visibility` | string | No | Visibility setting for the wiki page (e.g., 'public', 'private') |
| `customer_id` | integer | No | ID of the customer to associate with this wiki page |

#### 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 |
