Syncro Tools
syncro_ · 169 tools · Free 70 · Pro 99
API-key auth; raw JSON passthrough.
Customers
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_autocomplete_customers |
Free | Read-only | [Syncro] Search customers for autocomplete UI. Use for quick name-based lookup. Returns a slimmer, faster payload than syncro_list_customers when you only need IDs and display names. |
syncro_create_customer |
Pro | Write | [Syncro] Create a new customer. Provide either business_name (for a company customer) OR both firstname and lastname (for an individual). Additional fields (email, phone, mobile, address, city, state, zip, notes, tax_rate_id, properties) can be supplied via fieldsJson. Returns the created customer with its assigned ID. |
syncro_delete_customer |
Pro | Destructive | [Syncro] Permanently delete a customer by ID. This action cannot be undone and may cascade to related records (contacts, tickets, invoices). Consider updating the customer or marking it disabled instead. Requires a valid customer ID. |
syncro_get_customer |
Free | Read-only | [Syncro] Retrieve full customer details by ID. Returns the complete customer record including business info, address, email, phone numbers, notes, and custom properties. |
syncro_get_latest_customer |
Free | Read-only | [Syncro] Return the most recently created customer. Useful for confirming a just-created customer or auditing new customer intake. |
syncro_list_customers |
Free | Read-only | [Syncro] List customers with optional filters (query, firstname, lastname, business_name, email, include_disabled). Returns paginated list. Use to find customer IDs for tickets, invoices, assets. |
syncro_update_customer |
Pro | Write | [Syncro] Update customer fields by ID. Supply any updatable fields via fieldsJson (business_name, firstname, lastname, email, phone, mobile, address, city, state, zip, notes, tax_rate_id, properties, etc.). Use syncro_get_customer to check current values before updating. |
syncro_autocomplete_customers parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
businessName |
string | no | null | Filter by business/company name. |
email |
string | no | null | Filter by primary email address. |
firstname |
string | no | null | Filter by contact first name. |
lastname |
string | no | null | Filter by contact last name. |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
query |
string | no | null | Free-text search term matched against customer/business name and email. |
syncro_create_customer parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
businessName |
string | no | null | Business/company name for a company customer. Provide this OR both firstname and lastname. |
email |
string | no | null | Primary email address for the customer. |
fieldsJson |
string | no | null | Optional JSON object with additional customer fields. Example: {"phone":"555-0100","address":"123 Main St","city":"Denver","state":"CO","zip":"80202","notes":"VIP customer","tax_rate_id":42,"properties":{"industry":"Retail"}}. Field names must match the Syncro API. |
firstname |
string | no | null | First name for an individual customer. Must be paired with lastname when creating an individual. |
lastname |
string | no | null | Last name for an individual customer. Must be paired with firstname when creating an individual. |
syncro_delete_customer parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro customer ID to delete. Use syncro_list_customers or syncro_autocomplete_customers to find valid IDs. |
syncro_get_customer parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro customer ID. Use syncro_list_customers or syncro_autocomplete_customers to find valid IDs. |
syncro_list_customers parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
businessName |
string | no | null | Filter by business/company name. |
email |
string | no | null | Filter by primary email address. |
firstname |
string | no | null | Filter by contact first name. |
includeDisabled |
boolean | no | null | Include disabled customers in the results when true. Defaults to false. |
lastname |
string | no | null | Filter by contact last name. |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
query |
string | no | null | Free-text query matched against customer name, business name, and email. |
sort |
string | no | null | Sort field/direction (e.g. 'business_name asc'). |
syncro_update_customer parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with customer fields to update. Example: {"email":"new@example.com","phone":"555-0200","notes":"Updated preferred contact method"}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro customer ID to update. Use syncro_list_customers or syncro_autocomplete_customers to find valid IDs. |
Contacts
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_contact |
Pro | Write | [Syncro] Create a new contact attached to an existing customer. customer_id is required. Provide name, email, phone, and mobile inline or supply additional fields (address1, address2, city, state, zip, notes) via fieldsJson. Returns the created contact with its assigned ID. |
syncro_delete_contact |
Pro | Destructive | [Syncro] Permanently delete a contact by ID. This action cannot be undone. Requires a valid contact ID. |
syncro_get_contact |
Free | Read-only | [Syncro] Retrieve full contact details by ID. Returns the complete contact record including name, email, phone numbers, address fields, and notes. |
syncro_list_contacts |
Free | Read-only | [Syncro] List contacts with optional customer_id filter. Returns paginated list. Use to find contact IDs associated with a customer, or to enumerate all contacts across the tenant. |
syncro_update_contact |
Pro | Write | [Syncro] Update contact fields by ID. Supply any updatable fields (name, email, phone, mobile, address1, city, state, zip, notes, etc.) via fieldsJson. Use syncro_get_contact to check current values before updating. |
syncro_create_contact parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | yes | The Syncro customer ID to attach this contact to. Required. Use syncro_list_customers to find valid IDs. | |
email |
string | no | null | Primary email address for the contact. |
fieldsJson |
string | no | null | Optional JSON object with additional contact fields. Example: {"address1":"123 Main St","city":"Denver","state":"CO","zip":"80202","notes":"Primary billing contact"}. Field names must match the Syncro API. |
mobile |
string | no | null | Mobile phone number for the contact. |
name |
string | no | null | Full display name for the contact. |
phone |
string | no | null | Primary phone number for the contact. |
syncro_delete_contact parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro contact ID to delete. Use syncro_list_contacts to find valid IDs. |
syncro_get_contact parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro contact ID. Use syncro_list_contacts to find valid IDs. |
syncro_list_contacts parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | no | null | Filter contacts to a specific customer by Syncro customer ID. Omit to list contacts across all customers. |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_update_contact parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with contact fields to update. Example: {"email":"new@example.com","phone":"555-0200","notes":"Updated title to VP of Operations"}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro contact ID to update. Use syncro_list_contacts to find valid IDs. |
Customer Phones
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_customer_phone |
Pro | Write | [Syncro] Add a phone number to a customer. Provide label (e.g. 'Main', 'Mobile', 'Fax'), number, and optional extension. Additional fields may be supplied via fieldsJson. Returns the created phone record with its assigned ID. |
syncro_delete_customer_phone |
Pro | Destructive | [Syncro] Permanently delete a phone number from a customer. This action cannot be undone. Use syncro_list_customer_phones to find the phone ID first. |
syncro_list_customer_phones |
Free | Read-only | [Syncro] List all phone numbers for a customer. Returns each phone's ID, label (e.g. 'Main', 'Mobile', 'Fax'), number, and extension. Use to discover phone IDs before updating or deleting. |
syncro_update_customer_phone |
Pro | Write | [Syncro] Update an existing phone number for a customer. Provide label, number, extension inline or supply additional fields via fieldsJson. Use syncro_list_customer_phones to find the phone ID first. |
syncro_create_customer_phone parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | yes | The Syncro customer ID to attach this phone to. Use syncro_list_customers to find valid IDs. | |
extension |
string | no | null | Optional extension for the phone number (e.g. '1234'). |
fieldsJson |
string | no | null | Optional JSON object with additional phone fields. Example: {"primary":true}. Field names must match the Syncro API. |
label |
string | no | null | Label classifying the phone line (e.g. 'Main', 'Mobile', 'Fax', 'Home'). |
number |
string | no | null | The phone number in any display format accepted by Syncro (e.g. '555-0100', '+1 555 010 0100'). |
syncro_delete_customer_phone parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | yes | The Syncro customer ID that owns the phone. Use syncro_list_customers to find valid IDs. | |
id |
integer | yes | The Syncro phone ID to delete. Use syncro_list_customer_phones to find valid IDs. |
syncro_list_customer_phones parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | yes | The Syncro customer ID whose phones to list. Use syncro_list_customers to find valid IDs. | |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_update_customer_phone parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | yes | The Syncro customer ID that owns the phone. Use syncro_list_customers to find valid IDs. | |
extension |
string | no | null | Updated extension value. |
fieldsJson |
string | no | null | Optional JSON object with additional phone fields to update. Example: {"primary":true}. Field names must match the Syncro API. |
id |
integer | yes | The Syncro phone ID to update. Use syncro_list_customer_phones to find valid IDs. | |
label |
string | no | null | New label for the phone line (e.g. 'Main', 'Mobile', 'Fax'). |
number |
string | no | null | Updated phone number. |
Payment Profiles
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_payment_profile |
Pro | Write | [Syncro] Add a payment profile (stored card reference) to a customer. Typically takes an external_id plus the processor's payment_profile_id, expiration, and last_four. Additional fields may be supplied via fieldsJson. Returns the created payment profile with its assigned ID. |
syncro_delete_payment_profile |
Pro | Destructive | [Syncro] Permanently delete a payment profile from a customer. This action cannot be undone. Requires both the customer ID and the payment profile ID. |
syncro_get_payment_profile |
Free | Read-only | [Syncro] Retrieve a specific payment profile by ID. Returns the full payment profile record (external_id, payment_profile_id, expiration, last_four, card metadata). Requires both the customer ID and the payment profile ID. |
syncro_list_payment_profiles |
Free | Read-only | [Syncro] List payment profiles (stored cards) for a customer. Returns each profile's ID, external_id, payment_profile_id, last_four, and expiration. Use to discover payment profile IDs before charging an invoice or updating a stored card. |
syncro_update_payment_profile |
Pro | Write | [Syncro] Update an existing payment profile for a customer. Supply any updatable fields (external_id, payment_profile_id, expiration, last_four, card_type, default, etc.) via fieldsJson. Use syncro_get_payment_profile to check current values before updating. |
syncro_create_payment_profile parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | yes | The Syncro customer ID to attach this payment profile to. Use syncro_list_customers to find valid IDs. | |
expiration |
string | no | null | Card expiration in the format expected by Syncro (commonly 'MM/YYYY' or 'MM/YY'). |
externalId |
string | no | null | External identifier from your payment processor (e.g. customer profile ID in the gateway). |
fieldsJson |
string | no | null | Optional JSON object with additional payment profile fields. Example: {"card_type":"Visa","default":true}. Field names must match the Syncro API. |
lastFour |
string | no | null | Last four digits of the card number, as a string. |
paymentProfileId |
string | no | null | The processor's payment profile ID (e.g. the tokenized card reference). |
syncro_delete_payment_profile parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | yes | The Syncro customer ID that owns the payment profile. Use syncro_list_customers to find valid IDs. | |
id |
integer | yes | The Syncro payment profile ID to delete. Use syncro_list_payment_profiles to find valid IDs. |
syncro_get_payment_profile parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | yes | The Syncro customer ID that owns the payment profile. Use syncro_list_customers to find valid IDs. | |
id |
integer | yes | The Syncro payment profile ID. Use syncro_list_payment_profiles to find valid IDs. |
syncro_list_payment_profiles parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | yes | The Syncro customer ID whose payment profiles to list. Use syncro_list_customers to find valid IDs. | |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_update_payment_profile parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | yes | The Syncro customer ID that owns the payment profile. Use syncro_list_customers to find valid IDs. | |
fieldsJson |
string | yes | JSON object with payment profile fields to update. Example: {"expiration":"12/2030","last_four":"4242"}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro payment profile ID to update. Use syncro_list_payment_profiles to find valid IDs. |
Tickets
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_add_ticket_comment |
Pro | Write | [Syncro] Add a new comment to a ticket. Requires subject and body. Set hidden=true to make the comment internal-only (not visible to customers). Set doNotEmail=true to suppress the customer email notification. |
syncro_add_ticket_line_item |
Pro | Write | [Syncro] Add a line item (product, service, or labor) to a ticket. Pass fieldsJson with the line item properties. Typical fields: product_id (int), quantity (number), price (number), name (string), cost (number), taxable (bool). |
syncro_add_ticket_timer_entry |
Pro | Write | [Syncro] Add a timer entry (time log) to a ticket. Supply either start_at + end_at to mark a time range, or duration_minutes for a flat logged duration. Use productId to bill the time as a specific labor product. |
syncro_attach_file_to_ticket |
Pro | Write | [Syncro] Attach one or more files to a ticket by URL. Syncro fetches files asynchronously from the URLs you provide. URLs must be publicly accessible (signed S3 URLs, public CDN, etc.). Expect 'Processing' response; re-fetch the ticket with syncro_get_ticket to confirm attachment. |
syncro_charge_ticket_timer_entry |
Pro | Write | [Syncro] Mark a timer entry as charged / converted to a billable line item on the ticket. This is a billing action and may create a ticket line item depending on account configuration. Requires ticket ID and the timer entry ID. |
syncro_create_ticket |
Pro | Write | [Syncro] Create a new ticket. Requires customer ID and subject. Use syncro_get_ticket_settings to discover valid values for status, priority, problemType, ticketTypeId, and slaId. Returns the created ticket with its assigned ID. |
syncro_delete_ticket |
Pro | Destructive | [Syncro] Permanently delete a ticket and all associated comments, line items, and timer entries. This action cannot be undone. Requires a valid ticket ID. |
syncro_delete_ticket_attachment |
Pro | Destructive | [Syncro] Delete an attachment from a ticket. This action cannot be undone. Requires ticket ID and the attachment ID. |
syncro_delete_ticket_timer_entry |
Pro | Destructive | [Syncro] Delete a timer entry from a ticket. This action cannot be undone. Requires ticket ID and the timer entry ID. |
syncro_get_ticket |
Free | Read-only | [Syncro] Retrieve full details for a single ticket by ID. Returns the ticket with all comments, line items, timer entries, and custom fields. Requires a valid ticket ID -- use syncro_list_tickets to find IDs. |
syncro_get_ticket_settings |
Free | Read-only | [Syncro] Retrieve the account-wide ticket configuration: ticket types, statuses, problem types, priorities, SLAs, and custom field definitions. Use this to discover valid values for syncro_create_ticket and syncro_update_ticket parameters. |
syncro_list_ticket_comments |
Free | Read-only | [Syncro] List comments on a single ticket, paginated. This is the recommended way to retrieve ticket comments -- it is faster than fetching the full ticket with allComments=true and supports per_page sizing (unique among Syncro endpoints). Default 10 per page, max 100. |
syncro_list_tickets |
Free | Read-only | [Syncro] List tickets with optional filters and pagination. Returns ticket summaries including ID, number, subject, status, customer, and assigned user. Use this to discover ticket IDs or browse the ticket queue. For per-ticket comments, prefer syncro_list_ticket_comments (paginated, faster than allComments=true). |
syncro_print_ticket |
Pro | Write | [Syncro] Queue a print job for a ticket. This generates a printable ticket document via Syncro's print pipeline. Requires a valid ticket ID. |
syncro_remove_ticket_line_item |
Pro | Destructive | [Syncro] Remove a line item from a ticket. This action cannot be undone. Requires ticket ID and the ticket line item ID. |
syncro_update_ticket |
Pro | Write | [Syncro] Update an existing ticket's fields such as subject, status, priority, assigned user, or custom fields. Returns the updated ticket. Use syncro_get_ticket to check current values before updating. |
syncro_update_ticket_line_item |
Pro | Write | [Syncro] Update an existing line item on a ticket. The fieldsJson body must include ticket_line_item_id identifying the line item to update, plus any fields to change (quantity, price, name, etc.). |
syncro_update_ticket_timer_entry |
Pro | Write | [Syncro] Update an existing timer entry on a ticket. The fieldsJson body must include the timer_entry_id plus any fields to change (start_at, end_at, duration_minutes, notes, etc.). |
syncro_add_ticket_comment parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
body |
string | yes | The comment body / message text. | |
doNotEmail |
boolean | no | null | If true, suppress the customer email notification for this comment. |
hidden |
boolean | no | null | If true, mark the comment as hidden (internal-only, not visible to the customer). |
smsBody |
string | no | null | Optional SMS body to send alongside the comment. |
subject |
string | yes | The comment subject / title. | |
tech |
string | no | null | Technician name to display as the author. Optional. |
ticketId |
integer | yes | The Syncro ticket ID to comment on. Use syncro_list_tickets to find valid IDs. |
syncro_add_ticket_line_item parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with line item fields. Typical fields: product_id (int), quantity (number), price (number), name (string), cost (number), taxable (bool). Example: {"product_id":42,"quantity":2,"price":99.00}. | |
ticketId |
integer | yes | The Syncro ticket ID to add the line item to. Use syncro_list_tickets to find valid IDs. |
syncro_add_ticket_timer_entry parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
durationMinutes |
integer | no | null | Duration in minutes. Alternative to startAt/endAt for a flat logged duration. |
endAt |
string | no | null | End timestamp (ISO 8601, e.g. '2026-04-22T10:00:00Z'). Use together with startAt for a time range. |
notes |
string | no | null | Notes describing the work performed. |
productId |
integer | no | null | Product ID for the labor product to bill this time against. Use syncro_list_products to find valid IDs. |
startAt |
string | no | null | Start timestamp (ISO 8601, e.g. '2026-04-22T09:00:00Z'). Use together with endAt for a time range. |
ticketId |
integer | yes | The Syncro ticket ID to add the timer entry to. Use syncro_list_tickets to find valid IDs. | |
userId |
integer | no | null | User ID to attribute the timer entry to. Use syncro_list_users to find valid IDs. |
syncro_attach_file_to_ticket parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
filesJson |
string | yes | JSON array of files to fetch. Each item needs 'url' and 'filename'. Example: [{"url":"https://example.com/file.pdf","filename":"doc.pdf"}]. URLs must be publicly fetchable by Syncro's backend. | |
ticketId |
integer | yes | The Syncro ticket ID to attach files to. Use syncro_list_tickets to find valid IDs. |
syncro_charge_ticket_timer_entry parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
ticketId |
integer | yes | The Syncro ticket ID containing the timer entry. Use syncro_list_tickets to find valid IDs. | |
timerEntryId |
integer | yes | The timer_entry_id to charge. Retrieve via syncro_get_ticket. |
syncro_create_ticket parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
contactId |
integer | no | null | Contact ID to associate with the ticket. Use syncro_list_contacts to find valid IDs. |
customerId |
integer | yes | The Syncro customer ID the ticket belongs to. Use syncro_list_customers to find valid IDs. | |
dueDate |
string | no | null | Due date (ISO 8601, e.g. '2026-05-01T17:00:00Z'). |
fieldsJson |
string | no | null | Optional JSON object with additional ticket fields, including properties_attributes for custom fields. Example: {"properties_attributes":{"Custom Field 1":"value"}}. |
priority |
string | no | null | Priority (e.g. 'Low', 'Normal', 'High', 'Urgent'). |
problemType |
string | no | null | Problem type (e.g. 'Hardware', 'Software'). Use syncro_get_ticket_settings to discover valid values. |
slaId |
integer | no | null | SLA ID to attach to the ticket. Use syncro_get_ticket_settings to discover valid SLAs. |
status |
string | no | null | Initial status (e.g. 'New', 'In Progress'). Use syncro_get_ticket_settings to discover valid values. |
subject |
string | yes | The ticket subject / title. | |
ticketTypeId |
integer | no | null | Ticket type ID. Use syncro_get_ticket_settings to discover valid ticket types. |
userId |
integer | no | null | Assigned user ID. Use syncro_list_users to find valid IDs. |
syncro_delete_ticket parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro ticket ID to delete. Use syncro_list_tickets to find valid IDs. |
syncro_delete_ticket_attachment parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
attachmentId |
integer | yes | The attachment ID to delete. Retrieve via syncro_get_ticket. | |
ticketId |
integer | yes | The Syncro ticket ID containing the attachment. Use syncro_list_tickets to find valid IDs. |
syncro_delete_ticket_timer_entry parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
ticketId |
integer | yes | The Syncro ticket ID containing the timer entry. Use syncro_list_tickets to find valid IDs. | |
timerEntryId |
integer | yes | The timer_entry_id to delete. Retrieve via syncro_get_ticket. |
syncro_get_ticket parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro ticket ID. Use syncro_list_tickets to find valid IDs. |
syncro_list_ticket_comments parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
createdAfter |
string | no | null | Filter to comments created after the given timestamp (ISO 8601, e.g. '2026-01-01T00:00:00Z'). |
createdBefore |
string | no | null | Filter to comments created before the given timestamp (ISO 8601, e.g. '2026-01-01T00:00:00Z'). |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
perPage |
integer | no | 10 | Results per page (default 10, max 100). This endpoint is the only Syncro endpoint that honours per_page. |
sortBy |
string | no | null | Field to sort by (e.g. 'created_at'). Optional. |
sortDirection |
string | no | null | Sort direction: 'asc' or 'desc'. Optional. |
ticketId |
integer | yes | The Syncro ticket ID whose comments to list. Use syncro_list_tickets to find valid IDs. |
syncro_list_tickets parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
allComments |
boolean | no | false | IMPORTANT: As of March 2026 Syncro defaults this to false. Pass true to include comments in the response, or use syncro_list_ticket_comments for paginated comment retrieval. Default: false. |
contactId |
integer | no | null | Filter by contact ID. Use syncro_list_contacts to find valid IDs. |
createdAfter |
string | no | null | Filter to tickets created after the given timestamp (ISO 8601, e.g. '2026-01-01T00:00:00Z'). |
customerId |
integer | no | null | Filter by customer ID. Use syncro_list_customers to find valid IDs. |
mine |
boolean | no | null | If true, return only tickets assigned to the currently authenticated API user. |
number |
string | no | null | Filter by ticket number (human-facing ticket number, not the internal ID). |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
query |
string | no | null | Free-text search query across ticket subject and body. |
resolvedAfter |
string | no | null | Filter to tickets resolved after the given timestamp (ISO 8601, e.g. '2026-01-01T00:00:00Z'). |
sinceUpdatedAt |
string | no | null | Filter to tickets updated since the given timestamp (ISO 8601, e.g. '2026-01-01T00:00:00Z'). |
status |
string | no | null | Filter by ticket status (e.g. 'New', 'In Progress', 'Resolved'). Use syncro_get_ticket_settings to discover configured statuses. |
userId |
integer | no | null | Filter by assigned user ID. Use syncro_list_users to find valid IDs. |
syncro_print_ticket parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro ticket ID to print. Use syncro_list_tickets to find valid IDs. |
syncro_remove_ticket_line_item parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
ticketId |
integer | yes | The Syncro ticket ID containing the line item. Use syncro_list_tickets to find valid IDs. | |
ticketLineItemId |
integer | yes | The ticket_line_item_id of the line item to remove. Retrieve via syncro_get_ticket. |
syncro_update_ticket parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with ticket fields to update. Example: {"status":"Resolved","subject":"Updated subject","properties_attributes":{"Custom Field":"value"}}. Field names must match Syncro API field names. | |
id |
integer | yes | The Syncro ticket ID to update. Use syncro_list_tickets to find valid IDs. |
syncro_update_ticket_line_item parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with ticket_line_item_id and the fields to update. Example: {"ticket_line_item_id":123,"quantity":3,"price":149.00}. | |
ticketId |
integer | yes | The Syncro ticket ID containing the line item. Use syncro_list_tickets to find valid IDs. |
syncro_update_ticket_timer_entry parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with timer_entry_id and the fields to update. Typical fields: start_at, end_at, duration_minutes, notes, product_id, user_id. Example: {"timer_entry_id":456,"duration_minutes":45,"notes":"Updated notes"}. | |
ticketId |
integer | yes | The Syncro ticket ID containing the timer entry. Use syncro_list_tickets to find valid IDs. |
Ticket Timers
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_list_ticket_timers |
Free | Read-only | [Syncro] List standalone ticket timer entries across all tickets with pagination. Returns timer entries including ID, ticket association, user, duration, and billable flag. Use createdAtLt to page backwards through history. For timers on a specific ticket, prefer syncro_get_ticket. |
syncro_update_ticket_timer_billable |
Pro | Write | [Syncro] Toggle the billable flag on a ticket timer entry. Set billable=true to mark time as billable to the customer, or false to mark it as non-billable / internal. Returns the updated timer entry. |
syncro_list_ticket_timers parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
createdAtLt |
string | no | null | Filter to timer entries created before the given timestamp (ISO 8601, e.g. '2026-01-01T00:00:00Z'). Useful for backwards pagination through history. |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_update_ticket_timer_billable parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
billable |
boolean | yes | Whether the timer entry should be marked billable (true) or non-billable (false). | |
id |
integer | yes | The Syncro ticket timer entry ID to update. Use syncro_list_ticket_timers to find valid IDs. |
Worksheet Results
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_worksheet_result |
Pro | Write | [Syncro] Attach a new worksheet result (instance of a worksheet template) to a ticket. Requires worksheetTemplateId and title. Optional fieldsJson can include complete (bool) and answers (array/object) to pre-populate the worksheet. |
syncro_delete_worksheet_result |
Pro | Destructive | [Syncro] Permanently delete a worksheet result from a ticket. This action cannot be undone. Requires valid ticket and worksheet result IDs. |
syncro_get_worksheet_result |
Free | Read-only | [Syncro] Retrieve a single worksheet result by ticket ID and worksheet result ID. Returns the full worksheet including template info, title, completion status, and all answers. Requires valid ticket and worksheet result IDs. |
syncro_list_worksheet_results |
Free | Read-only | [Syncro] List worksheet results (filled-out checklists/templates) for a specific ticket. Returns worksheet results including ID, template, title, completion status, and answers. Requires a valid ticket ID. |
syncro_update_worksheet_result |
Pro | Write | [Syncro] Update an existing worksheet result on a ticket. Pass fieldsJson with any fields to change. Typical fields: title (string), complete (bool), answers (array or object of template question answers). |
syncro_create_worksheet_result parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | no | null | Optional JSON object with additional worksheet fields. Typical fields: complete (bool), answers (array or object of template question answers). Example: {"complete":false,"answers":[{"question_id":1,"value":"Yes"}]}. |
ticketId |
integer | yes | The Syncro ticket ID to attach the worksheet to. Use syncro_list_tickets to find valid IDs. | |
title |
string | yes | Title for this worksheet result instance. | |
worksheetTemplateId |
integer | yes | The worksheet template ID to instantiate. Discover configured templates via Syncro admin or syncro_get_ticket_settings. |
syncro_delete_worksheet_result parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro worksheet result ID to delete. Use syncro_list_worksheet_results to find valid IDs. | |
ticketId |
integer | yes | The Syncro ticket ID that owns the worksheet result. Use syncro_list_tickets to find valid IDs. |
syncro_get_worksheet_result parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro worksheet result ID. Use syncro_list_worksheet_results to find valid IDs. | |
ticketId |
integer | yes | The Syncro ticket ID that owns the worksheet result. Use syncro_list_tickets to find valid IDs. |
syncro_list_worksheet_results parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
ticketId |
integer | yes | The Syncro ticket ID whose worksheet results to list. Use syncro_list_tickets to find valid IDs. |
syncro_update_worksheet_result parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with worksheet fields to update. Typical fields: title (string), complete (bool), answers (array or object). Example: {"complete":true,"answers":[{"question_id":1,"value":"Done"}]}. | |
id |
integer | yes | The Syncro worksheet result ID to update. Use syncro_list_worksheet_results to find valid IDs. | |
ticketId |
integer | yes | The Syncro ticket ID that owns the worksheet result. Use syncro_list_tickets to find valid IDs. |
Invoices
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_add_invoice_line_item |
Pro | Write | [Syncro] Add a single line item to an existing invoice. At minimum supply a name (or a product_id to copy pricing from the product catalog). Quantity defaults to 1 on Syncro's side if omitted. Use fieldsJson for additional fields (taxable flag overrides, sku, position, custom properties, etc.). Returns the updated invoice including the new line item and its ID, which you can reuse with syncro_update_invoice_line_item. |
syncro_create_invoice |
Pro | Write | [Syncro] Create a new invoice for a customer. Requires customer_id, invoice number, and invoice date. Additional fields (due_date, ticket_id, billing/shipping address overrides, tax_rate_id, comment, `line_items` array, etc.) can be supplied via fieldsJson. Returns the created invoice with its assigned ID. Use syncro_list_customers to find customerId; use syncro_add_invoice_line_item afterward to add line items if not supplied here. |
syncro_delete_invoice |
Pro | Destructive | [Syncro] Permanently delete an invoice by ID. This action cannot be undone and may affect ledgers and paid/balance reports. Prefer voiding through a syncro_update_invoice call when possible. Requires a valid invoice ID. |
syncro_delete_invoice_line_item |
Pro | Destructive | [Syncro] Permanently remove a line item from an invoice. This action cannot be undone and will update the invoice totals. Requires both invoice ID and line item ID. Use syncro_get_invoice to find line item IDs. |
syncro_email_invoice |
Pro | Write | [Syncro] Email an invoice to the customer at the email address on file. Uses the tenant's configured invoice email template. Verify the customer has a valid email (see syncro_get_customer) before calling -- sending to a missing/invalid address will fail in Syncro. |
syncro_get_invoice |
Free | Read-only | [Syncro] Retrieve a single invoice by ID with full details including line items, tax breakdown, balance due, billing/shipping addresses, and status. Use syncro_list_invoices to discover invoice IDs. |
syncro_get_invoice_ticket |
Free | Read-only | [Syncro] Return the ticket associated with a given invoice. Useful for reconciling billing against labor/services tracked on the ticket (comments, timer entries, charged line items). Not all invoices have an associated ticket -- invoices created directly (POS, standalone) may return an empty response. |
syncro_list_invoices |
Free | Read-only | [Syncro] List invoices with optional filters for paid/unpaid status, associated ticket, and last-updated timestamp. Returns a paginated collection of invoice summaries including ID, number, customer, totals, and payment status. Use this to discover invoice IDs before calling syncro_get_invoice, syncro_update_invoice, or payment tools. Combine `paid=false` (or `unpaid=true`) with `sinceUpdatedAt` to pull only recently changed open invoices for syncs. |
syncro_list_line_items |
Free | Read-only | [Syncro] List line items globally across all invoices and estimates. Requires Global Admin permission on the Syncro account -- standard API users will receive a 403. Filter by `invoiceId` or `estimateId` to scope to a specific document, or use `invoiceIdNotNull` / `estimateIdNotNull` to return only line items attached to any invoice or any estimate respectively. Useful for revenue reporting and reconciliation. |
syncro_print_invoice |
Pro | Write | [Syncro] Queue an invoice for printing via the configured Syncro print job workflow. Returns the print job confirmation. Use this when the tenant has a print-to-PDF or physical print pipeline set up in Syncro. |
syncro_update_invoice |
Pro | Write | [Syncro] Update fields on an existing invoice. Supply any updatable fields via fieldsJson (due_date, date, number, comment, billing/shipping address, tax_rate_id, etc.). Use syncro_get_invoice to check current values before updating. To change individual line items use syncro_update_invoice_line_item. |
syncro_update_invoice_line_item |
Pro | Write | [Syncro] Update a single line item on an existing invoice by its line item ID. Supply any updatable fields via fieldsJson (name, quantity, cost, price, discount_percent, taxable, sku, position, properties, etc.). Use syncro_get_invoice to list current line items and their IDs. |
syncro_add_invoice_line_item parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
cost |
number | no | null | Optional cost (your cost, not customer price) in the invoice currency. |
discountPercent |
number | no | null | Optional discount percent applied to this line (0-100). |
fieldsJson |
string | no | null | Optional JSON object with additional line item fields. Example: {"sku":"LAB-HR","position":2,"properties":{"tech":"Alice"}}. Field names must match the Syncro API. |
invoiceId |
integer | yes | The Syncro invoice ID to add the line item to. Use syncro_list_invoices to find valid IDs. | |
name |
string | yes | The display name / description of the line item. | |
price |
number | no | null | Optional unit price (customer-facing) in the invoice currency. |
productId |
integer | no | null | Optional Syncro product ID to link the line item to a catalog product (inherits pricing/taxability). |
quantity |
number | no | null | Optional quantity (defaults to 1 on Syncro's side if omitted). Supports decimals for hourly labor. |
taxable |
boolean | no | null | Optional flag marking the line item as taxable. Defaults to the product/invoice tax settings when omitted. |
syncro_create_invoice parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | yes | The Syncro customer ID the invoice is billed to. Use syncro_list_customers to find valid IDs. | |
date |
string | yes | The invoice date in ISO 8601 format (e.g. '2026-04-22'). | |
fieldsJson |
string | no | null | Optional JSON object with additional invoice fields. Example: {"due_date":"2026-05-22","ticket_id":1234,"tax_rate_id":42,"comment":"Net 30","line_items":[{"name":"Labor","quantity":2,"price":100}]}. Field names must match the Syncro API. |
number |
string | yes | The invoice number/identifier (string). Commonly a monotonic counter such as '1042'. |
syncro_delete_invoice parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro invoice ID to delete. Use syncro_list_invoices to find valid IDs. |
syncro_delete_invoice_line_item parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
invoiceId |
integer | yes | The Syncro invoice ID containing the line item. Use syncro_list_invoices to find valid IDs. | |
lineItemId |
integer | yes | The Syncro line item ID to delete. Use syncro_get_invoice to find line item IDs. |
syncro_email_invoice parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro invoice ID to email. Use syncro_list_invoices to find valid IDs. |
syncro_get_invoice parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro invoice ID. Use syncro_list_invoices to find valid IDs. |
syncro_get_invoice_ticket parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro invoice ID. Use syncro_list_invoices to find valid IDs. |
syncro_list_invoices parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
paid |
boolean | no | null | Filter to only paid invoices when true, or only non-paid when false. Omit for no paid/unpaid filter. |
sinceUpdatedAt |
string | no | null | Return only invoices updated at or after this ISO 8601 timestamp (e.g. '2026-01-01T00:00:00Z'). Useful for incremental syncs. |
ticketId |
integer | no | null | Filter to invoices linked to a specific ticket ID. Use syncro_list_tickets to find ticket IDs. |
unpaid |
boolean | no | null | Filter to only unpaid invoices when true. Mutually exclusive with `paid` but either may be used; omit for no filter. |
syncro_list_line_items parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
estimateId |
integer | no | null | Filter to line items belonging to a specific estimate ID. |
estimateIdNotNull |
boolean | no | null | When true, return only line items that are attached to some estimate (estimate_id IS NOT NULL). |
invoiceId |
integer | no | null | Filter to line items belonging to a specific invoice ID. |
invoiceIdNotNull |
boolean | no | null | When true, return only line items that are attached to some invoice (invoice_id IS NOT NULL). |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_print_invoice parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro invoice ID to print. Use syncro_list_invoices to find valid IDs. |
syncro_update_invoice parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with invoice fields to update. Example: {"due_date":"2026-06-01","comment":"Extended terms"}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro invoice ID to update. Use syncro_list_invoices to find valid IDs. |
syncro_update_invoice_line_item parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with line item fields to update. Example: {"quantity":3,"price":95.00,"discount_percent":10}. Field names must match the Syncro API. | |
invoiceId |
integer | yes | The Syncro invoice ID containing the line item. Use syncro_list_invoices to find valid IDs. | |
lineItemId |
integer | yes | The Syncro line item ID to update. Use syncro_get_invoice to find line item IDs. |
Estimates
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_add_estimate_line_item |
Pro | Write | [Syncro] Add a single line item to an existing estimate. At minimum supply a name (or a product_id to copy pricing from the product catalog). Quantity defaults to 1 on Syncro's side if omitted. Use fieldsJson for additional fields (taxable flag overrides, sku, position, custom properties, etc.). Returns the updated estimate including the new line item and its ID, which you can reuse with syncro_update_estimate_line_item. |
syncro_convert_estimate_to_invoice |
Pro | Write | [Syncro] Convert an approved estimate into a real invoice, copying all line items and customer info. Returns the new invoice. This is a high-value action: the generated invoice becomes billable immediately in Syncro. Upstream permission gating requires BOTH `edit:estimates` AND `edit:invoices` -- ensure the caller holds both before using. Once converted, the estimate status moves to 'converted' and cannot be edited further. Use syncro_get_estimate to verify line items and totals beforehand. |
syncro_create_estimate |
Pro | Write | [Syncro] Create a new estimate (quote) for a customer. Requires customer_id. Additional fields (date, expires_at, number, comment, `line_items` array, etc.) can be supplied via fieldsJson. Returns the created estimate with its assigned ID. Use syncro_list_customers to find customerId; use syncro_add_estimate_line_item afterward to add line items if not supplied here. |
syncro_delete_estimate |
Pro | Destructive | [Syncro] Permanently delete an estimate by ID. This action cannot be undone. Consider marking the estimate declined via syncro_update_estimate instead to preserve the audit trail. Requires a valid estimate ID. |
syncro_delete_estimate_line_item |
Pro | Destructive | [Syncro] Permanently remove a line item from an estimate. This action cannot be undone and will update the estimate totals. Requires both estimate ID and line item ID. Use syncro_get_estimate to find line item IDs. |
syncro_email_estimate |
Pro | Write | [Syncro] Email an estimate to the customer at the email address on file. Uses the tenant's configured estimate email template. Verify the customer has a valid email (see syncro_get_customer) before calling -- sending to a missing/invalid address will fail in Syncro. |
syncro_get_estimate |
Free | Read-only | [Syncro] Retrieve a single estimate by ID with full details including line items, pricing, status, and customer info. Use syncro_list_estimates to discover estimate IDs. |
syncro_list_estimates |
Free | Read-only | [Syncro] List estimates (quotes) with pagination and optional filters. Returns a paginated collection of estimate summaries including ID, number, customer, totals, and status (open/approved/converted/declined). Use this to find estimate IDs before calling syncro_get_estimate, syncro_update_estimate, or syncro_convert_estimate_to_invoice. |
syncro_print_estimate |
Pro | Write | [Syncro] Queue an estimate for printing via the configured Syncro print job workflow. Returns the print job confirmation. Use this when the tenant has a print-to-PDF or physical print pipeline set up in Syncro. |
syncro_update_estimate |
Pro | Write | [Syncro] Update fields on an existing estimate. Supply any updatable fields via fieldsJson (number, date, expires_at, status, comment, etc.). Use syncro_get_estimate to check current values before updating. To change individual line items use syncro_update_estimate_line_item. |
syncro_update_estimate_line_item |
Pro | Write | [Syncro] Update a single line item on an existing estimate by its line item ID. Supply any updatable fields via fieldsJson (name, quantity, cost, price, discount_percent, taxable, sku, position, properties, etc.). Use syncro_get_estimate to list current line items and their IDs. |
syncro_add_estimate_line_item parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
cost |
number | no | null | Optional cost (your cost, not customer price) in the estimate currency. |
discountPercent |
number | no | null | Optional discount percent applied to this line (0-100). |
estimateId |
integer | yes | The Syncro estimate ID to add the line item to. Use syncro_list_estimates to find valid IDs. | |
fieldsJson |
string | no | null | Optional JSON object with additional line item fields. Example: {"sku":"LAB-HR","position":2,"properties":{"tech":"Alice"}}. Field names must match the Syncro API. |
name |
string | yes | The display name / description of the line item. | |
price |
number | no | null | Optional unit price (customer-facing) in the estimate currency. |
productId |
integer | no | null | Optional Syncro product ID to link the line item to a catalog product (inherits pricing/taxability). |
quantity |
number | no | null | Optional quantity (defaults to 1 on Syncro's side if omitted). Supports decimals for hourly labor. |
taxable |
boolean | no | null | Optional flag marking the line item as taxable. Defaults to the product/estimate tax settings when omitted. |
syncro_convert_estimate_to_invoice parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro estimate ID to convert. Use syncro_list_estimates to find valid IDs. |
syncro_create_estimate parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | yes | The Syncro customer ID the estimate is issued to. Use syncro_list_customers to find valid IDs. | |
fieldsJson |
string | no | null | Optional JSON object with additional estimate fields. Example: {"date":"2026-04-22","expires_at":"2026-05-22","number":"EST-2045","comment":"Initial quote","line_items":[{"name":"Labor","quantity":2,"price":100}]}. Field names must match the Syncro API. |
syncro_delete_estimate parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro estimate ID to delete. Use syncro_list_estimates to find valid IDs. |
syncro_delete_estimate_line_item parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
estimateId |
integer | yes | The Syncro estimate ID containing the line item. Use syncro_list_estimates to find valid IDs. | |
lineItemId |
integer | yes | The Syncro line item ID to delete. Use syncro_get_estimate to find line item IDs. |
syncro_email_estimate parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro estimate ID to email. Use syncro_list_estimates to find valid IDs. |
syncro_get_estimate parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro estimate ID. Use syncro_list_estimates to find valid IDs. |
syncro_list_estimates parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | no | null | Filter to estimates for a specific customer ID. Use syncro_list_customers to find customer IDs. |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
query |
string | no | null | Free-text query matched against estimate number and customer name. |
sinceUpdatedAt |
string | no | null | Return only estimates updated at or after this ISO 8601 timestamp (e.g. '2026-01-01T00:00:00Z'). Useful for incremental syncs. |
status |
string | no | null | Filter by estimate status (e.g. 'open', 'approved', 'declined', 'converted'). |
syncro_print_estimate parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro estimate ID to print. Use syncro_list_estimates to find valid IDs. |
syncro_update_estimate parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with estimate fields to update. Example: {"expires_at":"2026-06-01","status":"approved"}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro estimate ID to update. Use syncro_list_estimates to find valid IDs. |
syncro_update_estimate_line_item parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
estimateId |
integer | yes | The Syncro estimate ID containing the line item. Use syncro_list_estimates to find valid IDs. | |
fieldsJson |
string | yes | JSON object with line item fields to update. Example: {"quantity":3,"price":95.00,"discount_percent":10}. Field names must match the Syncro API. | |
lineItemId |
integer | yes | The Syncro line item ID to update. Use syncro_get_estimate to find line item IDs. |
Payments
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_payment |
Pro | Write | [Syncro] Record a new payment from a customer. Requires customer_id, amount_cents (integer CENTS -- e.g. 11000 for $110.00), and payment_method. Optionally link the payment to a single invoice (invoice_id or invoice_number), supply a reference number (ref_num), or split across multiple invoices via applyPayments. IMPORTANT: Syncro's API is inconsistent about units between the two amount fields -- amount_cents is an integer in cents, but apply_payments values are per-invoice DOLLAR AMOUNTS as STRINGS with two decimal places (e.g. "48.00"). The sum of apply_payments values must equal amount_cents / 100 (expressed in dollars). Extra fields go through fieldsJson. Use syncro_list_payment_methods to discover valid payment_method strings. |
syncro_get_payment |
Free | Read-only | [Syncro] Retrieve a single payment record by ID including amount, method, reference number, customer, and the invoices the payment was applied to. Use syncro_list_payments to discover payment IDs. |
syncro_list_payment_methods |
Free | Read-only | [Syncro] List the payment methods configured on the tenant's Syncro account (e.g. 'Cash', 'Check', 'Credit Card', custom methods). Not paginated -- returns the full set in a single call. Use before syncro_create_payment to ensure the payment_method string matches a valid value. |
syncro_list_payments |
Free | Read-only | [Syncro] List payments with pagination and an optional free-text query. Returns a paginated collection of payment records including ID, customer, amount, payment method, associated invoices, and timestamps. Use this to reconcile payments against invoices or find payment IDs for syncro_get_payment. |
syncro_create_payment parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
amountCents |
integer | yes | The payment amount in integer CENTS. Example: 11000 represents $110.00. | |
applyPaymentsJson |
string | no | null | Optional JSON object mapping invoice_id (string key) to DOLLAR AMOUNT (string value with two decimal places) to split the payment across multiple invoices. Example matching amountCents=11000: {"1649196016":"62.00","1649196007":"48.00"}. The sum of dollar values must equal amountCents / 100. NOTE: Syncro stores the top-level total in cents but splits in dollar strings -- do not mix units. |
customerId |
integer | yes | The Syncro customer ID the payment is received from. Use syncro_list_customers to find valid IDs. | |
fieldsJson |
string | no | null | Optional JSON object with additional payment fields. Example: {"notes":"Paid in full via wire transfer"}. Field names must match the Syncro API. |
invoiceId |
integer | no | null | Optional Syncro invoice ID to apply the full payment to. Mutually exclusive with invoiceNumber and applyPayments. |
invoiceNumber |
string | no | null | Optional invoice number (string) to apply the full payment to. Useful when the caller only has the printed number. Mutually exclusive with invoiceId and applyPayments. |
paymentMethod |
string | yes | The payment method string (e.g. 'Cash', 'Check', 'Credit Card'). Use syncro_list_payment_methods to list valid values. | |
refNum |
string | no | null | Optional reference number (e.g. check number, transaction ID) stored on the payment record. |
syncro_get_payment parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro payment ID. Use syncro_list_payments to find valid IDs. |
syncro_list_payments parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
query |
string | no | null | Free-text query to filter payments (matches reference numbers, customer name, notes). |
Contracts
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_contract |
Pro | Write | [Syncro] Create a new contract for a customer. Requires customer_id. Optional scalar fields cover the common contract attributes; use fieldsJson for any additional fields supported by the Syncro API. Use syncro_list_customers to find customerId. |
syncro_delete_contract |
Pro | Destructive | [Syncro] Permanently delete a contract by ID. This action cannot be undone and will unlink the contract from any assets/tickets that referenced it. Consider marking the contract expired via syncro_update_contract to preserve the audit trail. Requires a valid contract ID. |
syncro_get_contract |
Free | Read-only | [Syncro] Retrieve a single contract by ID with full details including customer, amount, description, date range, status, associated SLA, and which assets or tickets the contract applies to. Use syncro_list_contracts to discover contract IDs. |
syncro_list_contracts |
Free | Read-only | [Syncro] List customer contracts (managed-service agreements, prepaid blocks, SLA agreements) with pagination. Returns a paginated collection of contract summaries including ID, customer, name, amount, status, and date range. Use this to find contract IDs for syncro_get_contract, syncro_update_contract, or syncro_delete_contract. |
syncro_update_contract |
Pro | Write | [Syncro] Update fields on an existing contract. Supply any updatable fields via fieldsJson (name, description, contract_amount, start_date, end_date, status, sla_id, etc.). Use syncro_get_contract to check current values before updating. |
syncro_create_contract parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
applyToAll |
boolean | no | null | When true, apply this contract to ALL of the customer's assets/tickets. Defaults to false if omitted, which requires manually linking assets. |
contractAmount |
number | no | null | Optional total contract amount (currency value, e.g. 1200.00 for a $1,200 retainer). |
customerId |
integer | yes | The Syncro customer ID the contract belongs to. Use syncro_list_customers to find valid IDs. | |
description |
string | no | null | Optional free-text description of the contract scope. |
endDate |
string | no | null | Optional end date in ISO 8601 format (e.g. '2027-04-22'). |
fieldsJson |
string | no | null | Optional JSON object with additional contract fields. Example: {"billing_schedule":"monthly","auto_renew":true}. Field names must match the Syncro API. |
name |
string | no | null | Optional contract name (display label). |
slaId |
integer | no | null | Optional SLA ID to associate with the contract. |
startDate |
string | no | null | Optional start date in ISO 8601 format (e.g. '2026-04-22'). |
status |
string | no | null | Optional contract status string (values are tenant-configured; common examples: 'active', 'expired', 'pending'). |
syncro_delete_contract parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro contract ID to delete. Use syncro_list_contracts to find valid IDs. |
syncro_get_contract parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro contract ID. Use syncro_list_contracts to find valid IDs. |
syncro_list_contracts parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_update_contract parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with contract fields to update. Example: {"status":"expired","end_date":"2026-06-01"}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro contract ID to update. Use syncro_list_contracts to find valid IDs. |
Recurring Invoices
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_add_schedule_line_item |
Pro | Write | [Syncro] Add a line item to an existing recurring invoice schedule. Pass the line item payload as JSON via fieldsJson (product_id, quantity, price, name, taxable, etc.). The line item will be included on every future invoice generated from this schedule. |
syncro_create_schedule |
Pro | Write | [Syncro] Create a new recurring invoice schedule. Required: customerId, frequency, name, nextRun (ISO date). Optional flags control email delivery, snail mail, charge-on-file (chargeMop), automatic ticket charge invoicing, and paused state. After creation, use syncro_add_schedule_line_item to add billable items. |
syncro_delete_schedule |
Pro | Destructive | [Syncro] Permanently delete a recurring invoice schedule and all its line items. This action cannot be undone. If you only want to stop generating invoices temporarily, prefer syncro_update_schedule with paused=true. |
syncro_get_schedule |
Free | Read-only | [Syncro] Retrieve full details of a single recurring invoice schedule by ID, including customer, frequency, next run date, delivery options, paused state, and line items. Use syncro_list_schedules to find schedule IDs. |
syncro_list_schedules |
Free | Read-only | [Syncro] List recurring invoice schedules with optional customer filter. Schedules define automated recurring billing (frequency, next run date, line items, delivery options). Returns paginated results. Use to discover schedule IDs for updates, pauses, or line item management. |
syncro_remove_schedule_line_item |
Pro | Destructive | [Syncro] Remove a line item from a recurring invoice schedule. The line item will no longer appear on future invoices generated from this schedule. This action cannot be undone (you would need to re-add the line item to restore it). |
syncro_update_schedule |
Pro | Write | [Syncro] Update a recurring invoice schedule's fields (name, frequency, next_run, email_customer, snail_mail, charge_mop, paused, invoice_unbilled_ticket_charges, notes, etc.). Use syncro_get_schedule to check current values before updating. To change line items, use the schedule line item tools. |
syncro_update_schedule_line_item |
Pro | Write | [Syncro] Update fields on an existing schedule line item (quantity, price, name, taxable, product_id, etc.). Use syncro_get_schedule to find the line item ID and its current values before updating. |
syncro_add_schedule_line_item parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object describing the line item. Example: {"product_id":123,"quantity":1,"price":99.00,"name":"Managed Services","taxable":true}. Use product_id to reference a catalog product, or omit it and supply name/price for a custom line item. | |
scheduleId |
integer | yes | The Syncro recurring invoice schedule ID to add a line item to. Use syncro_list_schedules to find valid IDs. |
syncro_create_schedule parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
chargeMop |
boolean | no | null | When true, charge the customer's saved payment method (MOP) automatically on each run. |
customerId |
integer | yes | Customer ID that will be billed by this schedule. Use syncro_list_customers to find customer IDs. | |
emailCustomer |
boolean | no | null | When true, email the generated invoice to the customer automatically on each run. |
fieldsJson |
string | no | null | Optional JSON object with additional schedule fields (e.g. line_items array, tax_rate_id, notes). Example: {"line_items":[{"product_id":123,"quantity":1,"price":99.00}],"notes":"Monthly managed services"}. Field names must match the Syncro API. |
frequency |
string | yes | Billing cadence. One of: Daily, Weekly, Biweekly, Monthly, Quarterly, Semi-Annually, Annually, Biennially, Triennially. | |
invoiceUnbilledTicketCharges |
boolean | no | null | When true, roll any unbilled ticket charges for the customer into the generated invoice. |
name |
string | yes | Display name for this recurring invoice (visible internally and on generated invoices). | |
nextRun |
string | yes | Date of the next scheduled run (ISO 8601 date, e.g. '2026-05-01'). Subsequent runs derive from the frequency. | |
paused |
boolean | no | null | When true, pause the schedule (no invoices generated until unpaused). |
snailMail |
boolean | no | null | When true, mark the invoice for snail-mail delivery on each run. |
syncro_delete_schedule parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro recurring invoice schedule ID to delete. Use syncro_list_schedules to find valid IDs. |
syncro_get_schedule parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro recurring invoice schedule ID. Use syncro_list_schedules to find valid IDs. |
syncro_list_schedules parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | no | null | Optional customer ID to filter schedules to a single customer. Use syncro_list_customers to find customer IDs. |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_remove_schedule_line_item parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
scheduleId |
integer | yes | The Syncro recurring invoice schedule ID that owns the line item. Use syncro_list_schedules to find valid IDs. | |
scheduleLineItemId |
integer | yes | The schedule line item ID to remove. Inspect the schedule via syncro_get_schedule to find line item IDs. |
syncro_update_schedule parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with schedule fields to update. Example: {"paused":true,"next_run":"2026-06-01","name":"Managed Services - Q3"}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro recurring invoice schedule ID to update. Use syncro_list_schedules to find valid IDs. |
syncro_update_schedule_line_item parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with line item fields to update. Example: {"quantity":2,"price":149.00,"name":"Managed Services - Premium"}. Field names must match the Syncro API. | |
scheduleId |
integer | yes | The Syncro recurring invoice schedule ID that owns the line item. Use syncro_list_schedules to find valid IDs. | |
scheduleLineItemId |
integer | yes | The schedule line item ID to update. Inspect the schedule via syncro_get_schedule to find line item IDs. |
Products
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_add_product_images |
Pro | Write | [Syncro] Attach one or more images to a product via publicly reachable URLs. Syncro downloads each URL asynchronously on its side -- the response returns immediately, before the images are fully ingested. Re-read the product with syncro_get_product after a short delay to confirm the images appear. No direct file upload is supported by this endpoint. |
syncro_create_product |
Pro | Write | [Syncro] Create a new product in the catalog. Required: name and description. Common optional fields are exposed as parameters (priceCost, priceRetail, maintainStock, quantity, taxable, upcCode); supply anything else (category_id, notes, custom properties, location stock, etc.) via fieldsJson. |
syncro_delete_product_image |
Pro | Destructive | [Syncro] Permanently delete a single image from a product. Requires both the product ID and the image (photo) ID. This action cannot be undone; the image file will no longer be retrievable. Use syncro_get_product to find photo IDs. |
syncro_get_product |
Free | Read-only | [Syncro] Retrieve full details for a single product by ID, including pricing (cost + retail), stock levels across locations, images, custom properties, and tax settings. Use syncro_list_products to find product IDs. |
syncro_get_product_by_barcode |
Free | Read-only | [Syncro] Look up a product by its barcode (UPC/EAN/custom). Useful for point-of-sale, receiving, and inventory workflows where a scanner provides the barcode. Returns the matching product if found. |
syncro_list_part_orders |
Free | Read-only | [Syncro] List part orders (parts ordered to fulfill specific tickets). Filter by completion state or free-text query. Useful for tracking outstanding customer-specific parts and closing the loop between repair tickets and inventory receiving. |
syncro_list_product_categories |
Free | Read-only | [Syncro] List all product categories. Returns paginated category records with IDs and names. Use category IDs to filter syncro_list_products or to assign a category when creating/updating products. |
syncro_list_products |
Free | Read-only | [Syncro] List products in the catalog with optional filters (sku, name, upc_code, category_id, free-text query). Returns paginated product summaries including ID, name, pricing, and stock. Use to discover product IDs for invoices, estimates, recurring invoices, and purchase orders. |
syncro_update_product |
Pro | Write | [Syncro] Update fields on an existing product (name, description, price_cost, price_retail, taxable, upc_code, category_id, properties, etc.). Use syncro_get_product to inspect current values first. Stock adjustments go through syncro_update_product_location_quantity, not this tool. |
syncro_update_product_location_quantity |
Pro | Write | [Syncro] Adjust the on-hand quantity of a product at a specific location (inventory adjustment). Supply location_id and the new quantity via fieldsJson. Use this for cycle counts, damage write-offs, or manual stock corrections -- not for sales or receiving, which post automatically through invoices and purchase orders. |
syncro_add_product_images parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
filesJson |
string | yes | JSON array of image objects. Each item must have a url (publicly reachable) and filename. Example: [{"url":"https://cdn.example.com/widget.jpg","filename":"widget.jpg"},{"url":"https://cdn.example.com/widget-back.jpg","filename":"widget-back.jpg"}]. Syncro fetches the URLs asynchronously; the response returns before download completes. | |
id |
integer | yes | The Syncro product ID to attach images to. Use syncro_list_products to find valid IDs. |
syncro_create_product parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
description |
string | yes | The product's description. Required. | |
fieldsJson |
string | no | null | Optional JSON object with additional product fields. Example: {"category_id":7,"price_wholesale":79.00,"notes":"Drop-ship only","properties":{"color":"black"}}. Field names must match the Syncro API. |
maintainStock |
boolean | no | null | When true, Syncro will track on-hand stock for this product. When false, it is treated as a service or non-stocked item. |
name |
string | yes | The product's display name. Required. | |
priceCost |
number | no | null | Cost price paid to the vendor for this product. |
priceRetail |
number | no | null | Retail/selling price shown on invoices and estimates. |
quantity |
integer | no | null | Initial on-hand quantity (used when maintainStock is true). |
taxable |
boolean | no | null | When true, the product is taxable and will have tax applied on sales. |
upcCode |
string | no | null | UPC/EAN/custom barcode for point-of-sale scanning. |
syncro_delete_product_image parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro product ID that owns the image. Use syncro_list_products to find valid IDs. | |
photoId |
integer | yes | The image/photo ID to remove from the product. Inspect the product via syncro_get_product to find photo IDs. |
syncro_get_product parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro product ID. Use syncro_list_products or syncro_get_product_by_barcode to find valid IDs. |
syncro_get_product_by_barcode parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
barcode |
string | yes | The barcode value to look up (UPC, EAN, or custom barcode as stored on the product). |
syncro_list_part_orders parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
completed |
boolean | no | null | When true, return only completed part orders. When false, return only incomplete/open part orders. Omit for all. |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
query |
string | no | null | Free-text search across part order fields (product name, ticket number, notes). |
syncro_list_product_categories parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_list_products parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
categoryId |
integer | no | null | Filter by product category ID. Use syncro_list_product_categories to find category IDs. |
name |
string | no | null | Filter by product name (partial match). |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
query |
string | no | null | Free-text search across product name, SKU, and description. |
sku |
string | no | null | Filter by exact SKU. |
sort |
string | no | null | Sort field/direction (e.g. 'name asc' or 'price_retail desc'). |
upcCode |
string | no | null | Filter by exact UPC/barcode. |
syncro_update_product parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with product fields to update. Example: {"price_retail":129.00,"description":"Updated description","taxable":false}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro product ID to update. Use syncro_list_products or syncro_get_product_by_barcode to find valid IDs. |
syncro_update_product_location_quantity parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with location_id and quantity. Example: {"location_id":1,"quantity":42}. The quantity is the new on-hand count at that location, not a delta. | |
id |
integer | yes | The Syncro product ID whose location quantity is being adjusted. Use syncro_list_products to find valid IDs. |
Product Serials
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_attach_product_serials_to_line_item |
Pro | Write | [Syncro] Attach one or more serial numbers to an invoice line item or ticket line item, recording which physical units were sold or assigned. Required: recordType ('LineItem' for invoice line items or 'TicketLineItem' for ticket line items), recordId, and the array of serial IDs to attach. |
syncro_create_product_serial |
Pro | Write | [Syncro] Create a new serial number record for a product. Typical fields: serial (the serial number string), notes, location_id. Use for receiving new serialized stock or back-filling serial history. |
syncro_list_product_serials |
Free | Read-only | [Syncro] List serial numbers tracked for a specific product. Returns paginated serial records including their current status (in-stock, sold, returned). Use for products that track individual units by serial (e.g. laptops, switches, licenses). |
syncro_update_product_serial |
Pro | Write | [Syncro] Update fields on an existing product serial (serial string, notes, location_id, etc.). Use syncro_list_product_serials to find the serial ID first. Does not move the serial between customers -- use syncro_attach_product_serials_to_line_item for sale/assignment. |
syncro_attach_product_serials_to_line_item parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
productId |
integer | yes | The Syncro product ID whose serials are being attached. Use syncro_list_products to find valid IDs. | |
recordId |
integer | yes | The ID of the invoice line item or ticket line item to attach serials to. | |
recordType |
string | yes | The record type to attach serials to. Must be 'LineItem' (invoice line item) or 'TicketLineItem' (ticket line item). | |
serialIdsJson |
string | yes | JSON array of serial IDs to attach. Example: [101, 102, 103]. Use syncro_list_product_serials to find serial IDs. |
syncro_create_product_serial parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object describing the serial. Example: {"serial":"SN123456789","notes":"Received 2026-04-10","location_id":1}. Field names must match the Syncro API. | |
productId |
integer | yes | The Syncro product ID the serial belongs to. Use syncro_list_products to find valid IDs. |
syncro_list_product_serials parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
productId |
integer | yes | The Syncro product ID whose serials are being listed. Use syncro_list_products to find valid IDs. |
syncro_update_product_serial parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with serial fields to update. Example: {"serial":"SN-CORRECTED","notes":"Corrected typo in serial number"}. Field names must match the Syncro API. | |
id |
integer | yes | The serial record ID to update. Use syncro_list_product_serials to find serial IDs. | |
productId |
integer | yes | The Syncro product ID the serial belongs to. Use syncro_list_products to find valid IDs. |
Product SKUs
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_product_sku |
Pro | Write | [Syncro] Add an alternate SKU to a product. Useful for mapping vendor part numbers or manufacturer codes to an internal catalog item so scans and lookups against any of them resolve to the same product. |
syncro_list_product_skus |
Free | Read-only | [Syncro] List alternate SKUs registered for a product. A product can have multiple SKUs (e.g. vendor part number, manufacturer code, internal code) that all resolve to the same catalog item. Returns paginated SKU records. |
syncro_update_product_sku |
Pro | Write | [Syncro] Update fields on an existing product SKU (code, notes, etc.). Use syncro_list_product_skus to find the SKU ID first. To remove a SKU entirely, use the underlying API directly -- this connector does not yet expose a delete operation. |
syncro_create_product_sku parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object describing the SKU. Example: {"code":"VEND-PN-12345","notes":"Vendor part number"}. Field names must match the Syncro API. | |
productId |
integer | yes | The Syncro product ID the SKU belongs to. Use syncro_list_products to find valid IDs. |
syncro_list_product_skus parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
productId |
integer | yes | The Syncro product ID whose SKUs are being listed. Use syncro_list_products to find valid IDs. |
syncro_update_product_sku parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with SKU fields to update. Example: {"code":"VEND-PN-12345-REV2","notes":"Revised vendor part number"}. Field names must match the Syncro API. | |
id |
integer | yes | The SKU record ID to update. Use syncro_list_product_skus to find SKU IDs. | |
productId |
integer | yes | The Syncro product ID the SKU belongs to. Use syncro_list_products to find valid IDs. |
Purchase Orders
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_add_po_line_item |
Pro | Write | [Syncro] Add a line item to an existing purchase order. productId is required — use syncro_list_products to find valid product IDs. Optional quantity and cost (unit cost in cents) default to product defaults if omitted. Use fieldsJson for any additional line-item attributes. |
syncro_create_purchase_order |
Pro | Write | [Syncro] Create a new purchase order for a vendor. vendorId is required. Optional fields include expected delivery date, shipping (in cents), discount percent, general notes, due/order dates, and delivery tracking info. Use fieldsJson for any additional PO attributes. Returns the created PO with its assigned ID. |
syncro_get_purchase_order |
Free | Read-only | [Syncro] Retrieve full purchase order details by ID. Returns the complete PO record including vendor, line items, totals, expected/order/due dates, shipping, discount, and notes. |
syncro_list_purchase_orders |
Free | Read-only | [Syncro] List purchase orders with pagination. Returns summaries including ID, vendor, status, totals, and key dates. Use to find purchase order IDs for receive or line-item operations. |
syncro_receive_purchase_order |
Pro | Write | [Syncro] Mark a purchase order as received and update inventory quantities. This is an inventory action — receiving increments product stock based on the PO's line items. Supply receive-specific details (e.g. received quantities per line item, received date, serial numbers, notes) via fieldsJson. Use syncro_get_purchase_order first to view the PO's current line items and remaining quantities. |
syncro_add_po_line_item parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
cost |
integer | no | null | Unit cost in cents (e.g. 5000 for $50.00). Defaults to the product's cost if omitted. |
fieldsJson |
string | no | null | Optional JSON object with additional line-item fields. Example: {"notes":"Need by Friday","taxable":true}. Field names must match the Syncro API. |
id |
integer | yes | The Syncro purchase order ID to add the line item to. Use syncro_list_purchase_orders to find valid IDs. | |
productId |
integer | yes | The Syncro product ID for this line item. Required. Use syncro_list_products to find valid IDs. | |
quantity |
integer | no | null | Quantity to order. Defaults to 1 if omitted. |
syncro_create_purchase_order parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
deliveryTracking |
string | no | null | Delivery tracking number or description. |
discountPercent |
number | no | null | Discount percentage applied to the PO (e.g. 5.0 for 5%). |
dueDate |
string | no | null | Due date for payment (ISO 8601 format, e.g. '2026-05-30'). |
expectedDate |
string | no | null | Expected delivery date (ISO 8601 format, e.g. '2026-05-15'). |
fieldsJson |
string | no | null | Optional JSON object with additional purchase order fields. Example: {"reference_number":"PO-2026-001","internal_notes":"Rush order"}. Field names must match the Syncro API. |
generalNotes |
string | no | null | Free-text general notes for the purchase order. |
orderDate |
string | no | null | Order date (ISO 8601 format, e.g. '2026-04-20'). |
shippingCents |
integer | no | null | Shipping cost in cents (e.g. 1500 for $15.00). |
vendorId |
integer | yes | The Syncro vendor ID for this purchase order. Required. Use syncro_list_vendors to find valid IDs. |
syncro_get_purchase_order parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro purchase order ID. Use syncro_list_purchase_orders to find valid IDs. |
syncro_list_purchase_orders parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_receive_purchase_order parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with receive details. Example: {"received_date":"2026-04-22","line_items":[{"id":123,"received_quantity":5}],"notes":"Partial shipment"}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro purchase order ID to receive against. Use syncro_list_purchase_orders to find valid IDs. |
Vendors
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_vendor |
Pro | Write | [Syncro] Create a new vendor. name is required. Optional fields include rep first/last name, email, phone, account number, and address (address1, address2, city, state, zip). Use fieldsJson for any additional vendor attributes. Returns the created vendor with its assigned ID. |
syncro_get_vendor |
Free | Read-only | [Syncro] Retrieve full vendor details by ID. Returns the complete vendor record including name, rep contact, email, phone, account number, address, and custom properties. |
syncro_list_vendors |
Free | Read-only | [Syncro] List vendors with pagination. Returns summaries including ID, name, rep contact, and address. Use to find vendor IDs for purchase orders and product sourcing. |
syncro_update_vendor |
Pro | Write | [Syncro] Update vendor fields by ID. Supply any updatable fields (name, rep_firstname, rep_lastname, email, phone, account_number, address_1, city, state, zip, etc.) via fieldsJson. Use syncro_get_vendor to check current values before updating. |
syncro_create_vendor parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
accountNumber |
string | no | null | Your account number with this vendor. |
address1 |
string | no | null | Street address line 1. |
address2 |
string | no | null | Street address line 2. |
city |
string | no | null | City. |
email |
string | no | null | Primary email address for the vendor. |
fieldsJson |
string | no | null | Optional JSON object with additional vendor fields. Example: {"website":"https://vendor.example","notes":"Net 30 terms"}. Field names must match the Syncro API. |
name |
string | yes | The vendor name. Required. | |
phone |
string | no | null | Primary phone number for the vendor. |
repFirstName |
string | no | null | First name of the primary sales/account rep. |
repLastName |
string | no | null | Last name of the primary sales/account rep. |
state |
string | no | null | State or province. |
zip |
string | no | null | Postal/ZIP code. |
syncro_get_vendor parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro vendor ID. Use syncro_list_vendors to find valid IDs. |
syncro_list_vendors parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_update_vendor parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with vendor fields to update. Example: {"email":"newcontact@vendor.example","phone":"555-0300","account_number":"ACCT-98765"}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro vendor ID to update. Use syncro_list_vendors to find valid IDs. |
Customer Assets
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_customer_asset |
Pro | Write | [Syncro] Create a new customer asset (non-RMM — RMM agents register themselves automatically when installed). Syncro's /customer_assets endpoint exposes RMM data for agent-managed devices. name is required. Optional fields include customer ID, asset type (by ID or name), serial number, and arbitrary properties. Use fieldsJson for any additional attributes. |
syncro_get_asset_patches |
Free | Read-only | [Syncro] Retrieve Windows Update patch data for an RMM-managed customer asset. Syncro's /customer_assets endpoint exposes RMM data for agent-managed devices. Returns Windows Update patch data — both installed_patches and available_patches arrays with status fields (Missing/Failed/Rejected/Recently Installed). Use this to audit patch compliance on a specific endpoint. |
syncro_get_assets_chat_information |
Free | Read-only | [Syncro] Fetch chat information (Syncro Live Chat agent availability and session state) for one or more customer assets in a single call. Syncro's /customer_assets endpoint exposes RMM data for agent-managed devices. Useful for checking which endpoints are available for a live chat session before initiating one. |
syncro_get_customer_asset |
Free | Read-only | [Syncro] Retrieve full customer asset details by ID, including RMM data for agent-managed devices. Syncro's /customer_assets endpoint exposes RMM data for agent-managed devices. Returns the complete asset record — name, type, serial, customer, properties, and (for RMM-managed assets) OS info, hardware specs, online/offline status, and last checkin time. |
syncro_list_customer_assets |
Free | Read-only | [Syncro] List customer assets (RMM-managed devices and other tracked assets) with optional filters. Syncro's /customer_assets endpoint exposes RMM data for agent-managed devices. Use filters to narrow by customer, asset type, name/serial query, or SNMP capability. Returns paginated summaries including asset ID, name, type, customer, and basic RMM status. |
syncro_update_customer_asset |
Pro | Write | [Syncro] Update customer asset fields by ID. Syncro's /customer_assets endpoint exposes RMM data for agent-managed devices. Supply any updatable fields (name, asset_type_id, asset_serial, properties, etc.) via fieldsJson. Use syncro_get_customer_asset to check current values before updating. |
syncro_create_customer_asset parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
assetSerial |
string | no | null | The hardware serial number or unique device identifier. |
assetTypeId |
integer | no | null | The asset type ID. Mutually useful with assetTypeName — pick whichever you have. |
assetTypeName |
string | no | null | The asset type name (e.g. 'Workstation', 'Printer'). Alternative to assetTypeId. |
customerId |
integer | no | null | The Syncro customer ID that owns this asset. Use syncro_list_customers to find valid IDs. |
fieldsJson |
string | no | null | Optional JSON object with additional asset fields. Example: {"notes":"Spare unit in closet"}. Field names must match the Syncro API. |
name |
string | yes | The display name for the new asset. Required. | |
properties |
string | no | null | Optional JSON object of property name/value pairs to attach to the asset. Example: {"mac_address":"00:11:22:33:44:55","location":"HQ-Floor2"}. |
syncro_get_asset_patches parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro customer asset ID (must be an RMM-managed Windows device). Use syncro_list_customer_assets to find valid IDs. | |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_get_assets_chat_information parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
idsCsv |
string | yes | Comma-separated list of customer asset IDs (e.g. '101,102,103'). Use syncro_list_customer_assets to find valid IDs. |
syncro_get_customer_asset parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro customer asset ID. Use syncro_list_customer_assets to find valid IDs. |
syncro_list_customer_assets parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
assetTypeId |
integer | no | null | Filter by asset type ID. |
customerId |
integer | no | null | Filter assets to a specific customer by Syncro customer ID. |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
query |
string | no | null | Free-text query matched against asset name, serial, and properties. |
snmpEnabled |
boolean | no | null | Filter to only SNMP-enabled assets when true, or non-SNMP when false. Omit to return all. |
syncro_update_customer_asset parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with asset fields to update. Example: {"name":"DESKTOP-A1B2C3 (updated)","properties":{"location":"HQ-Floor3"}}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro customer asset ID to update. Use syncro_list_customer_assets to find valid IDs. |
RMM Alerts
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_rmm_alert |
Pro | Write | [Syncro] Create a new RMM alert for a customer asset. customerId, assetId, and description are all required. Optional resolved flag, status string, and propertiesJson (arbitrary alert metadata). Use to record custom alert conditions detected by external monitoring. |
syncro_delete_rmm_alert |
Pro | Destructive | [Syncro] Clears (deletes) an RMM alert by ID. Destructive — this action cannot be undone. Prefer muting when you only need to suppress notifications temporarily. |
syncro_get_rmm_alert |
Free | Read-only | [Syncro] Retrieve full RMM alert details by ID. Returns the complete alert record including customer, asset, description, status, properties, and timestamps. |
syncro_list_rmm_alerts |
Free | Read-only | [Syncro] List RMM alerts with optional status filter. Returns paginated alert summaries including ID, customer, asset, description, status, and timestamps. Use to triage active RMM alerts or audit resolved ones. |
syncro_mute_rmm_alert |
Pro | Write | [Syncro] Suppresses notifications for this alert for the specified duration. Use 'forever' to mute permanently (must be manually unmuted). Valid durations: '1-hour', '1-day', '2-days', '1-week', '2-weeks', '1-month', 'forever'. |
syncro_create_rmm_alert parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
assetId |
integer | yes | The Syncro customer asset ID this alert is about. Required. Use syncro_list_customer_assets to find valid IDs. | |
customerId |
integer | yes | The Syncro customer ID this alert belongs to. Required. Use syncro_list_customers to find valid IDs. | |
description |
string | yes | Human-readable alert description. Required. | |
propertiesJson |
string | no | null | Optional JSON object of alert properties/metadata. Example: {"severity":"high","source":"cpu_monitor","threshold":95}. |
resolved |
boolean | no | null | Set true to create the alert in an already-resolved state. |
status |
string | no | null | Alert status string (connector-specific semantics). |
syncro_delete_rmm_alert parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro RMM alert ID to delete. Use syncro_list_rmm_alerts to find valid IDs. |
syncro_get_rmm_alert parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro RMM alert ID. Use syncro_list_rmm_alerts to find valid IDs. |
syncro_list_rmm_alerts parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
status |
string | no | "active" | Alert status filter. Options: 'active' (default), 'resolved', 'all'. |
syncro_mute_rmm_alert parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro RMM alert ID to mute. Use syncro_list_rmm_alerts to find valid IDs. | |
muteFor |
string | yes | Mute duration. Required. Valid values: '1-hour', '1-day', '2-days', '1-week', '2-weeks', '1-month', 'forever'. |
Appointments
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_appointment |
Pro | Write | [Syncro] Create a new appointment. Requires summary, startAt, and endAt. Optional customer/ticket links, location, all-day flag, and notification suppression can be supplied. Returns the created appointment with its assigned ID. |
syncro_delete_appointment |
Pro | Destructive | [Syncro] Permanently delete an appointment by ID. This action cannot be undone. Requires a valid appointment ID. Use syncro_list_appointments to find valid IDs. |
syncro_get_appointment |
Free | Read-only | [Syncro] Retrieve full details for a single appointment by ID. Returns the complete appointment record including summary, times, customer, ticket, location, and attendees. Use syncro_list_appointments to discover valid IDs. |
syncro_list_appointments |
Free | Read-only | [Syncro] List appointments with optional date-range filters and pagination. Use this to find upcoming or past appointments for scheduling, audits, or calendar integration. Use syncro_get_appointment for full details on a single appointment. |
syncro_update_appointment |
Pro | Write | [Syncro] Update appointment fields by ID. Supply any updatable fields via fieldsJson (summary, start_at, end_at, description, customer_id, ticket_id, location, all_day, do_not_email, etc.). Date fields use ISO 8601 format (e.g. '2026-04-22T10:00:00Z'). Use syncro_get_appointment to check current values before updating. |
syncro_create_appointment parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
allDay |
boolean | no | null | When true, mark the appointment as all-day. Defaults to false. |
appointmentLocationType |
string | no | null | Location type label (e.g. 'onsite', 'remote', 'phone'). Corresponds to the appointment type's location configuration. |
customerId |
integer | no | null | Optional Syncro customer ID to associate with the appointment. |
description |
string | no | null | Longer free-text description of the appointment. |
doNotEmail |
boolean | no | null | When true, suppress notification emails to participants. Defaults to false. |
endAt |
string | yes | Appointment end time in ISO 8601 format (e.g. '2026-04-22T11:00:00Z'). | |
fieldsJson |
string | no | null | Optional JSON object with additional appointment fields. Example: {"appointment_type_id":5,"user_ids":[1,2]}. Field names must match the Syncro API. |
location |
string | no | null | Physical or virtual location (e.g. '123 Main St' or 'Zoom'). |
startAt |
string | yes | Appointment start time in ISO 8601 format (e.g. '2026-04-22T10:00:00Z'). | |
summary |
string | yes | Short summary/title for the appointment (e.g. 'Onsite at Acme HQ'). | |
ticketId |
integer | no | null | Optional Syncro ticket ID to associate with the appointment. |
syncro_delete_appointment parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro appointment ID to delete. Use syncro_list_appointments to find valid IDs. |
syncro_get_appointment parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro appointment ID. Use syncro_list_appointments to find valid IDs. |
syncro_list_appointments parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
dateFrom |
string | no | null | Filter by start date (ISO 8601 format, e.g. '2026-04-22T00:00:00Z'). Returns appointments starting on or after this date. |
dateTo |
string | no | null | Filter by end date (ISO 8601 format, e.g. '2026-04-30T23:59:59Z'). Returns appointments ending on or before this date. |
mine |
boolean | no | null | When true, limit results to appointments owned by the current user. Defaults to false. |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_update_appointment parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with appointment fields to update. Example: {"summary":"Rescheduled onsite","start_at":"2026-04-23T10:00:00Z","end_at":"2026-04-23T11:00:00Z"}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro appointment ID to update. Use syncro_list_appointments to find valid IDs. |
Appointment Types
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_appointment_type |
Pro | Write | [Syncro] Create a new appointment type. Requires name. Optional email instructions and location configuration can be supplied. Returns the created appointment type with its assigned ID. Requires Global Admin permission. |
syncro_delete_appointment_type |
Pro | Destructive | [Syncro] Permanently delete an appointment type by ID. This action cannot be undone and may affect existing appointments that reference this type. Requires a valid appointment type ID. Requires Global Admin permission. |
syncro_get_appointment_type |
Free | Read-only | [Syncro] Retrieve full details for a single appointment type by ID. Returns the complete record including name, email instructions, location configuration, and any custom fields. |
syncro_list_appointment_types |
Free | Read-only | [Syncro] List all configured appointment types with pagination. Appointment types define the shape of appointments (default duration, location, email instructions). Use this to discover valid appointment_type_id values when creating appointments. |
syncro_update_appointment_type |
Pro | Write | [Syncro] Update appointment type fields by ID. Supply any updatable fields via fieldsJson (name, email_instructions, location_type, location_hard_code, etc.). Use syncro_get_appointment_type to check current values before updating. Requires Global Admin permission. |
syncro_create_appointment_type parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
emailInstructions |
string | no | null | Instructions or boilerplate text included in appointment confirmation emails. |
fieldsJson |
string | no | null | Optional JSON object with additional appointment type fields. Field names must match the Syncro API. |
locationHardCode |
string | no | null | Fixed/hard-coded location value used when locationType is set to a hard-coded variant. |
locationType |
integer | no | null | Location type as an integer code (corresponds to Syncro's location-type enum). |
name |
string | yes | Display name for the appointment type (e.g. 'Onsite Visit', 'Phone Consultation'). |
syncro_delete_appointment_type parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro appointment type ID to delete. Use syncro_list_appointment_types to find valid IDs. |
syncro_get_appointment_type parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro appointment type ID. Use syncro_list_appointment_types to find valid IDs. |
syncro_list_appointment_types parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_update_appointment_type parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with appointment type fields to update. Example: {"name":"Remote Consultation","email_instructions":"A Zoom link will be emailed 15 minutes before the appointment."}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro appointment type ID to update. Use syncro_list_appointment_types to find valid IDs. |
Leads
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_lead |
Pro | Write | [Syncro] Create a new lead. All fields are optional -- supply whatever contact info is available (name, business, email, phone, mobile) plus optional ticket subject/description to kick off a new intake. Returns the created lead with its assigned ID. |
syncro_get_lead |
Free | Read-only | [Syncro] Retrieve full details for a single lead by ID. Returns the complete lead record including contact info, status, assigned user, and ticket linkage. |
syncro_list_leads |
Free | Read-only | [Syncro] List leads with optional status and keyword filters. Returns paginated list of prospective customers captured in the CRM. Use to triage intake or find lead IDs for follow-up. |
syncro_update_lead |
Pro | Write | [Syncro] Update lead fields by ID. Supply any updatable fields via fieldsJson (first_name, last_name, business_name, email, phone, mobile, ticket_subject, ticket_description, status, user_id, etc.). Use syncro_get_lead to check current values before updating. |
syncro_create_lead parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
businessName |
string | no | null | Business/company name for the lead. |
email |
string | no | null | Primary email address for the lead. |
fieldsJson |
string | no | null | Optional JSON object with additional lead fields. Field names must match the Syncro API. |
firstName |
string | no | null | First name of the lead contact. |
lastName |
string | no | null | Last name of the lead contact. |
mobile |
string | no | null | Mobile phone number for the lead. |
phone |
string | no | null | Primary phone number for the lead. |
status |
string | no | null | Lead status (e.g. 'New', 'Contacted', 'Qualified'). Must match a configured Syncro lead status. |
ticketDescription |
string | no | null | Description/body to use if the lead is converted into a ticket. |
ticketSubject |
string | no | null | Subject line to use if the lead is converted into a ticket. |
userId |
integer | no | null | Syncro user ID to assign this lead to. |
syncro_get_lead parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro lead ID. Use syncro_list_leads to find valid IDs. |
syncro_list_leads parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
hasTicket |
boolean | no | null | When true, only return leads that have been converted into a ticket. When false, only return leads with no ticket. |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
query |
string | no | null | Free-text search across lead name, business name, and contact details. |
statusList |
string | no | null | Filter by one or more lead statuses. Comma-separated when supplying multiple (e.g. 'New,Contacted'). |
syncro_update_lead parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with lead fields to update. Example: {"status":"Qualified","user_id":7}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro lead ID to update. Use syncro_list_leads to find valid IDs. |
New Ticket Forms
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_get_new_ticket_form |
Free | Read-only | [Syncro] Retrieve full details for a single new-ticket form by ID, including the configured customer fields, ticket fields, and appointment fields. Use this to discover the exact field names to include in the body of syncro_process_new_ticket_form. |
syncro_list_new_ticket_forms |
Free | Read-only | [Syncro] List all configured new-ticket intake forms with pagination. These forms define the fields presented to end-users and techs when creating a new ticket. Use this to discover valid form IDs before calling syncro_process_new_ticket_form. |
syncro_process_new_ticket_form |
Pro | Write | [Syncro] Use this to submit a new-ticket intake form that creates a customer (if needed) and ticket in one call. The body takes nested customer_details, ticket_details, and appointments objects matching the form's configured fields -- inspect the form shape via syncro_get_new_ticket_form first. Returns the created customer/ticket payload. |
syncro_get_new_ticket_form parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro new-ticket form ID. Use syncro_list_new_ticket_forms to find valid IDs. |
syncro_list_new_ticket_forms parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_process_new_ticket_form parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with the form submission body. Must contain nested customer_details, ticket_details, and (optionally) appointments objects. Example: {"customer_details":{"business_name":"Acme","email":"it@acme.com"},"ticket_details":{"subject":"Server down","problem_type":"Network"},"appointments":[{"start_at":"2026-04-22T14:00:00Z","end_at":"2026-04-22T15:00:00Z"}]}. Field names must match the Syncro API and the form's configured fields. | |
id |
integer | yes | The Syncro new-ticket form ID to submit against. Use syncro_list_new_ticket_forms to find valid IDs. |
Wiki Pages
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_wiki_page |
Pro | Write | [Syncro] Create a new wiki page with the provided name and body content. Optionally attach to a customer or asset and control visibility. Returns the created wiki page with its assigned ID. |
syncro_delete_wiki_page |
Pro | Destructive | [Syncro] Permanently delete a wiki page by ID. This action cannot be undone. Requires a valid wiki page ID. |
syncro_get_wiki_page |
Free | Read-only | [Syncro] Retrieve a single wiki page by ID, including the full body/content, slug, visibility, attached customer/asset, and metadata. Use syncro_list_wiki_pages to find valid IDs. |
syncro_list_wiki_pages |
Free | Read-only | [Syncro] List wiki pages (internal documentation/knowledge base). Returns a paginated list including id, name, slug, visibility, and metadata. Use to discover wiki page IDs before fetching full content with syncro_get_wiki_page. |
syncro_update_wiki_page |
Pro | Write | [Syncro] Update an existing wiki page by ID. Supply any updatable fields (name, body, slug, visibility, customer_id, asset_id, tag_list, etc.) via fieldsJson. Use syncro_get_wiki_page to inspect current values before updating. |
syncro_create_wiki_page parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
assetId |
integer | no | null | Optional Syncro customer asset ID to attach this wiki page to. Use syncro_list_customer_assets to find valid IDs. |
body |
string | yes | Markdown or HTML body content for the wiki page. Required. | |
customerId |
integer | no | null | Optional Syncro customer ID to attach this wiki page to. Use syncro_list_customers to find valid IDs. |
fieldsJson |
string | no | null | Optional JSON object with additional wiki fields. Example: {"tag_list":["onboarding","ops"]}. Field names must match the Syncro API. |
name |
string | yes | Display name/title for the wiki page. Required. | |
slug |
string | no | null | Optional URL slug for the wiki page. When omitted, Syncro generates one from the name. |
visibility |
string | no | null | Optional visibility setting (e.g. 'public', 'private', 'customer'). Field accepted by the Syncro API. |
syncro_delete_wiki_page parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro wiki page ID to delete. Use syncro_list_wiki_pages to find valid IDs. |
syncro_get_wiki_page parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro wiki page ID. Use syncro_list_wiki_pages to find valid IDs. |
syncro_list_wiki_pages parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_update_wiki_page parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with wiki page fields to update. Example: {"name":"Updated title","body":"# New content","visibility":"public"}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro wiki page ID to update. Use syncro_list_wiki_pages to find valid IDs. |
Canned Responses
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_canned_response |
Pro | Write | [Syncro] Create a new canned response template. title and body are required. Optionally attach a default subject line and canned response category. Returns the created record with its ID. |
syncro_delete_canned_response |
Pro | Destructive | [Syncro] Permanently delete a canned response by ID. This action cannot be undone. Requires a valid canned response ID. |
syncro_get_canned_response_settings |
Free | Read-only | [Syncro] Retrieve the account's canned response settings, including available categories and any account-wide configuration used when listing or creating canned responses. |
syncro_list_canned_responses |
Free | Read-only | [Syncro] List canned responses (pre-written reply templates used on tickets). Supports optional free-text search. Returns id, title, subject, body, category, and metadata. |
syncro_update_canned_response |
Pro | Write | [Syncro] Update an existing canned response by ID via PATCH. Supply any updatable fields (title, body, subject, canned_response_category_id, etc.) via fieldsJson. Use syncro_list_canned_responses to find IDs. |
syncro_create_canned_response parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
body |
string | yes | Body content of the canned response (ticket comment text). Required. | |
cannedResponseCategoryId |
integer | no | null | Optional canned response category ID to group this response under. Use syncro_get_canned_response_settings to discover available categories. |
fieldsJson |
string | no | null | Optional JSON object with additional fields. Example: {"private":true}. Field names must match the Syncro API. |
subject |
string | no | null | Optional default subject line applied when the canned response is used. |
title |
string | yes | Title/name of the canned response (used in the picker UI). Required. |
syncro_delete_canned_response parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro canned response ID to delete. Use syncro_list_canned_responses to find valid IDs. |
syncro_list_canned_responses parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
query |
string | no | null | Optional free-text search matched against title/body of canned responses. |
syncro_update_canned_response parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with canned response fields to update. Example: {"title":"Updated title","body":"New content"}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro canned response ID to update. Use syncro_list_canned_responses to find valid IDs. |
Users
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_get_current_user |
Free | Read-only | [Syncro] Retrieve information about the user backing the current API token (the `/me` endpoint). Returns the user profile plus a permissions map with boolean capabilities for asset, customer, ticket, invoice, payment, worksheet, and script. Use this first to detect what actions the configured token is actually allowed to perform before attempting privileged operations. |
syncro_get_user |
Free | Read-only | [Syncro] Retrieve full details for a single internal user by ID, including email, role, and profile fields. Use syncro_list_users to find valid IDs (note that the list endpoint returns [id, full_name] tuples). |
syncro_list_users |
Free | Read-only | [Syncro] List internal Syncro users (technicians/staff, NOT portal/customer users). IMPORTANT QUIRK: this endpoint returns a non-standard shape `{users: [[id, full_name], [id, full_name], ...]}` where each user is a two-element ARRAY (tuple) of [id, full_name] rather than an object with named fields. To get full user details use syncro_get_user with one of the returned IDs. |
syncro_get_user parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro user ID. Use syncro_list_users to find valid IDs. |
syncro_list_users parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
Portal Users
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_portal_user |
Pro | Write | [Syncro] Create a new portal user (customer-facing client portal login). contact_id, customer_id, email, and password are required. Optionally provide password_confirmation and a portal_group_id. Requires Global Admin permission on the API token. |
syncro_delete_portal_user |
Pro | Destructive | [Syncro] Permanently delete a portal user by ID, revoking their ability to sign into the client portal. This action cannot be undone. Requires Global Admin permission on the API token. |
syncro_invite_portal_user |
Pro | Write | [Syncro] Send an invitation email to an existing portal user. The request body is simply {"id": <portal_user_id>}. Requires Global Admin permission on the API token. Use syncro_list_portal_users to find the portal user ID. |
syncro_list_portal_users |
Free | Read-only | [Syncro] List portal users (customer-facing logins for the client portal, NOT internal Syncro staff). Supports optional customer_id and email filters. Requires Global Admin permission on the API token. |
syncro_update_portal_user |
Pro | Write | [Syncro] Update an existing portal user by ID. Supply any updatable fields (email, password, password_confirmation, contact_id, portal_group_id, etc.) via fieldsJson. Requires Global Admin permission on the API token. |
syncro_create_portal_user parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
contactId |
integer | yes | The Syncro contact ID to associate with this portal login. Required. Use syncro_list_contacts to find valid IDs. | |
customerId |
integer | yes | The Syncro customer ID the portal user belongs to. Required. Use syncro_list_customers to find valid IDs. | |
email |
string | yes | Login email address for the portal user. Required. | |
fieldsJson |
string | no | null | Optional JSON object with additional portal user fields. Example: {"first_name":"Jane","last_name":"Doe"}. Field names must match the Syncro API. |
password |
string | yes | Initial password for the portal user. Required. | |
passwordConfirmation |
string | no | null | Optional password confirmation. Typically should match password; some deployments require it. |
portalGroupId |
integer | no | null | Optional portal group ID to assign the user to. |
syncro_delete_portal_user parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro portal user ID to delete. Use syncro_list_portal_users to find valid IDs. |
syncro_invite_portal_user parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
integer | yes | The Syncro portal user ID to invite. Required. Use syncro_list_portal_users to find valid IDs. |
syncro_list_portal_users parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
customerId |
integer | no | null | Filter portal users to a single customer by Syncro customer ID. |
email |
string | no | null | Filter portal users by email address. |
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
syncro_update_portal_user parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with portal user fields to update. Example: {"email":"new@example.com","portal_group_id":7}. Field names must match the Syncro API. | |
id |
integer | yes | The Syncro portal user ID to update. Use syncro_list_portal_users to find valid IDs. |
User Devices
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_create_user_device |
Pro | Write | [Syncro] Register a new mobile user device (typically called by the Syncro mobile app on install). device_uuid and device_name are required. Optionally provide the GCM/FCM registration token and device metadata (system_name, model, screen_size). Returns the created device record. |
syncro_get_user_device |
Free | Read-only | [Syncro] Retrieve a registered mobile user device by its UUID. Device IDs are strings (UUIDs), not integers. Used to inspect device registration records for push notifications (e.g. the Syncro mobile app). |
syncro_update_user_device |
Pro | Write | [Syncro] Update a registered mobile user device by UUID. Device IDs are strings, not integers. Typically used to refresh the push notification token (registration_token_gcm) but any supported field may be supplied via fieldsJson. |
syncro_create_user_device parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
deviceName |
string | yes | Human-readable device name (e.g. "Jane's iPhone 15"). Required. | |
deviceUuid |
string | yes | Unique identifier (UUID) for the mobile device. Required. | |
fieldsJson |
string | no | null | Optional JSON object with additional device fields. Field names must match the Syncro API. |
model |
string | no | null | Optional device model string (e.g. 'iPhone15,3'). |
registrationTokenGcm |
string | no | null | Optional push notification token (Google Cloud Messaging / Firebase Cloud Messaging). |
screenSize |
string | no | null | Optional screen size descriptor (e.g. '6.1 inch', '2556x1179'). |
systemName |
string | no | null | Optional operating system name (e.g. 'iOS', 'Android'). |
syncro_get_user_device parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
id |
string | yes | The Syncro user device UUID (string, not integer). |
syncro_update_user_device parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
fieldsJson |
string | yes | JSON object with user device fields to update. Example: {"registration_token_gcm":"new-fcm-token"}. Field names must match the Syncro API. | |
id |
string | yes | The Syncro user device UUID to update (string, not integer). |
Timelogs
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_get_last_timelog |
Free | Read-only | [Syncro] Retrieve the most recent timelog entry, optionally scoped to a single user by user_id. Useful for determining whether a technician is currently clocked in and for reading the active timelog before calling syncro_update_timelog. |
syncro_list_timelogs |
Free | Read-only | [Syncro] List timelog entries (clock-in/clock-out records for Syncro users). Supports optional user_id filter to scope to a single technician. Returns paginated list of timelog records. |
syncro_update_timelog |
Pro | Write | [Syncro] Update the currently-active timelog for the API token's user. NOTE: this endpoint takes NO id in the URL -- it always targets the active timelog. Fields: lunch (bool), in_at, out_at, in_note, out_note. Use syncro_get_last_timelog first to inspect the current state. |
syncro_get_last_timelog parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
userId |
integer | no | null | Optional Syncro user ID to scope the lookup to a single technician. |
syncro_list_timelogs parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | no | 1 | Page number (default 1). Increment to retrieve subsequent pages. |
userId |
integer | no | null | Filter timelogs to a specific Syncro user (technician) by user ID. Omit to list across all users. |
syncro_update_timelog parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
inAt |
string | no | null | Optional clock-in timestamp (ISO 8601). |
inNote |
string | no | null | Optional note to attach to the clock-in. |
lunch |
boolean | no | null | Optional lunch flag for the timelog entry. |
outAt |
string | no | null | Optional clock-out timestamp (ISO 8601). |
outNote |
string | no | null | Optional note to attach to the clock-out. |
System & Search
| Tool | Plan | Access | Description |
|---|---|---|---|
syncro_caller_lookup |
Free | Read-only | [Syncro] Look up caller information by Dialed Identification Number (phone number). Returns any customer/contact records matching the DID. Optionally mark the lookup as outbound. Used by integrated phone systems for pop-ups on incoming calls. |
syncro_get_account_settings |
Free | Read-only | [Syncro] Retrieve account-wide settings including customer_fields, asset_type_fields, ticket_type_fields, business_hours, and other tenant-level configuration. Use to discover custom fields/types before creating customers, assets, or tickets. |
syncro_get_printing_settings |
Free | Read-only | [Syncro] Retrieve printing configuration for this Syncro account, including registered print registers and the messaging_channel used to dispatch print jobs. |
syncro_get_tabs_settings |
Free | Read-only | [Syncro] Retrieve which product modules/tabs are enabled on this Syncro account (e.g. MSP dashboard, assets, alerts, contracts, point-of-sale). Use to detect which connector capabilities the customer has provisioned before offering related tools. |
syncro_search |
Free | Read-only | [Syncro] Run a global cross-entity search against the Syncro account. IMPORTANT RESPONSE SHAPE: this endpoint returns Elasticsearch-style results: `{quick_result: ..., results: [{_id, _type, _index, _source: }, ...]}`. Each hit's entity data lives under `_source` and the entity kind is in `_type` (e.g. customer, ticket, asset, invoice). Parse accordingly -- do NOT expect a flat list of named objects. |
syncro_caller_lookup parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
did |
string | yes | The Dialed Identification Number (phone number) to look up. Required. | |
outbound |
boolean | no | null | Optional flag indicating the call is outbound rather than inbound. |
syncro_search parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
query |
string | yes | Free-text query to search across customers, tickets, assets, invoices, etc. Required. |