Skip to main content
Tools Reference

Syncro Tools

Written By Christopher Scaminaci

Last updated 7 days ago

Syncro Tools

syncro_ · 169 tools · Free 70 · Pro 99 API-key auth; raw JSON passthrough.

All connector tools · Syncro setup guide

Syncro tool groups

Customers

ToolPlanAccessSummary
syncro_autocomplete_customersFreeRead-onlySearch customers for autocomplete UI.
syncro_create_customerProWriteCreate a new customer.
syncro_delete_customerProDestructivePermanently delete a customer by ID.
syncro_get_customerFreeRead-onlyRetrieve full customer details by ID.
syncro_get_latest_customerFreeRead-onlyReturn the most recently created customer.
syncro_list_customersFreeRead-onlyList customers with optional filters (query, firstname, lastname, business_name, email, include_disabled).
syncro_update_customerProWriteUpdate customer fields by ID.

[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.

ParamTypeRequiredDefaultDescription
businessNamestringnonullFilter by business/company name.
emailstringnonullFilter by primary email address.
firstnamestringnonullFilter by contact first name.
lastnamestringnonullFilter by contact last name.
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
querystringnonullFree-text search term matched against customer/business name and email.

[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.

ParamTypeRequiredDefaultDescription
businessNamestringnonullBusiness/company name for a company customer. Provide this OR both firstname and lastname.
emailstringnonullPrimary email address for the customer.
fieldsJsonstringnonullOptional 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.
firstnamestringnonullFirst name for an individual customer. Must be paired with lastname when creating an individual.
lastnamestringnonullLast name for an individual customer. Must be paired with firstname when creating an individual.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro customer ID to delete. Use syncro_list_customers or syncro_autocomplete_customers to find valid IDs.

[Syncro] Retrieve full customer details by ID. Returns the complete customer record including business info, address, email, phone numbers, notes, and custom properties.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro customer ID. Use syncro_list_customers or syncro_autocomplete_customers to find valid IDs.

[Syncro] Return the most recently created customer. Useful for confirming a just-created customer or auditing new customer intake.

[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.

ParamTypeRequiredDefaultDescription
businessNamestringnonullFilter by business/company name.
emailstringnonullFilter by primary email address.
firstnamestringnonullFilter by contact first name.
includeDisabledbooleannonullInclude disabled customers in the results when true. Defaults to false.
lastnamestringnonullFilter by contact last name.
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
querystringnonullFree-text query matched against customer name, business name, and email.
sortstringnonullSort field/direction (e.g. 'business_name asc').

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON 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.
idintegeryesThe Syncro customer ID to update. Use syncro_list_customers or syncro_autocomplete_customers to find valid IDs.

Contacts

ToolPlanAccessSummary
syncro_create_contactProWriteCreate a new contact attached to an existing customer.
syncro_delete_contactProDestructivePermanently delete a contact by ID.
syncro_get_contactFreeRead-onlyRetrieve full contact details by ID.
syncro_list_contactsFreeRead-onlyList contacts with optional customer_id filter.
syncro_update_contactProWriteUpdate contact fields by ID.

[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.

ParamTypeRequiredDefaultDescription
customerIdintegeryesThe Syncro customer ID to attach this contact to. Required. Use syncro_list_customers to find valid IDs.
emailstringnonullPrimary email address for the contact.
fieldsJsonstringnonullOptional 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.
mobilestringnonullMobile phone number for the contact.
namestringnonullFull display name for the contact.
phonestringnonullPrimary phone number for the contact.

[Syncro] Permanently delete a contact by ID. This action cannot be undone. Requires a valid contact ID.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro contact ID to delete. Use syncro_list_contacts to find valid IDs.

[Syncro] Retrieve full contact details by ID. Returns the complete contact record including name, email, phone numbers, address fields, and notes.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro contact ID. Use syncro_list_contacts to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
customerIdintegernonullFilter contacts to a specific customer by Syncro customer ID. Omit to list contacts across all customers.
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON 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.
idintegeryesThe Syncro contact ID to update. Use syncro_list_contacts to find valid IDs.

Customer Phones

ToolPlanAccessSummary
syncro_create_customer_phoneProWriteAdd a phone number to a customer.
syncro_delete_customer_phoneProDestructivePermanently delete a phone number from a customer.
syncro_list_customer_phonesFreeRead-onlyList all phone numbers for a customer.
syncro_update_customer_phoneProWriteUpdate an existing phone number for a customer.

[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.

ParamTypeRequiredDefaultDescription
customerIdintegeryesThe Syncro customer ID to attach this phone to. Use syncro_list_customers to find valid IDs.
extensionstringnonullOptional extension for the phone number (e.g. '1234').
fieldsJsonstringnonullOptional JSON object with additional phone fields. Example: {"primary":true}. Field names must match the Syncro API.
labelstringnonullLabel classifying the phone line (e.g. 'Main', 'Mobile', 'Fax', 'Home').
numberstringnonullThe phone number in any display format accepted by Syncro (e.g. '555-0100', '+1 555 010 0100').

[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.

ParamTypeRequiredDefaultDescription
customerIdintegeryesThe Syncro customer ID that owns the phone. Use syncro_list_customers to find valid IDs.
idintegeryesThe Syncro phone ID to delete. Use syncro_list_customer_phones to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
customerIdintegeryesThe Syncro customer ID whose phones to list. Use syncro_list_customers to find valid IDs.
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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.

ParamTypeRequiredDefaultDescription
customerIdintegeryesThe Syncro customer ID that owns the phone. Use syncro_list_customers to find valid IDs.
extensionstringnonullUpdated extension value.
fieldsJsonstringnonullOptional JSON object with additional phone fields to update. Example: {"primary":true}. Field names must match the Syncro API.
idintegeryesThe Syncro phone ID to update. Use syncro_list_customer_phones to find valid IDs.
labelstringnonullNew label for the phone line (e.g. 'Main', 'Mobile', 'Fax').
numberstringnonullUpdated phone number.

Payment Profiles

ToolPlanAccessSummary
syncro_create_payment_profileProDestructiveAdd a payment profile (stored card reference) to a customer.
syncro_delete_payment_profileProDestructivePermanently delete a payment profile from a customer.
syncro_get_payment_profileFreeRead-onlyRetrieve a specific payment profile by ID.
syncro_list_payment_profilesFreeRead-onlyList payment profiles (stored cards) for a customer.
syncro_update_payment_profileProDestructiveUpdate an existing payment profile for a customer.

[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.

ParamTypeRequiredDefaultDescription
customerIdintegeryesThe Syncro customer ID to attach this payment profile to. Use syncro_list_customers to find valid IDs.
expirationstringnonullCard expiration in the format expected by Syncro (commonly 'MM/YYYY' or 'MM/YY').
externalIdstringnonullExternal identifier from your payment processor (e.g. customer profile ID in the gateway).
fieldsJsonstringnonullOptional JSON object with additional payment profile fields. Example: {"card_type":"Visa","default":true}. Field names must match the Syncro API.
lastFourstringnonullLast four digits of the card number, as a string.
paymentProfileIdstringnonullThe processor's payment profile ID (e.g. the tokenized card reference).

[Syncro] Permanently delete a payment profile from a customer. This action cannot be undone. Requires both the customer ID and the payment profile ID.

ParamTypeRequiredDefaultDescription
customerIdintegeryesThe Syncro customer ID that owns the payment profile. Use syncro_list_customers to find valid IDs.
idintegeryesThe Syncro payment profile ID to delete. Use syncro_list_payment_profiles to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
customerIdintegeryesThe Syncro customer ID that owns the payment profile. Use syncro_list_customers to find valid IDs.
idintegeryesThe Syncro payment profile ID. Use syncro_list_payment_profiles to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
customerIdintegeryesThe Syncro customer ID whose payment profiles to list. Use syncro_list_customers to find valid IDs.
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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.

ParamTypeRequiredDefaultDescription
customerIdintegeryesThe Syncro customer ID that owns the payment profile. Use syncro_list_customers to find valid IDs.
fieldsJsonstringyesJSON object with payment profile fields to update. Example: {"expiration":"12/2030","last_four":"4242"}. Field names must match the Syncro API.
idintegeryesThe Syncro payment profile ID to update. Use syncro_list_payment_profiles to find valid IDs.

Tickets

ToolPlanAccessSummary
syncro_add_ticket_commentProDestructiveAdd a new comment to a ticket.
syncro_add_ticket_line_itemProDestructiveAdd a line item (product, service, or labor) to a ticket.
syncro_add_ticket_timer_entryProDestructiveAdd a timer entry (time log) to a ticket.
syncro_attach_file_to_ticketProDestructiveAttach one or more files to a ticket by URL.
syncro_charge_ticket_timer_entryProDestructiveMark a timer entry as charged / converted to a billable line item on the ticket.
syncro_create_ticketProDestructiveCreate a new ticket.
syncro_delete_ticketProDestructivePermanently delete a ticket and all associated comments, line items, and timer entries.
syncro_delete_ticket_attachmentProDestructiveDelete an attachment from a ticket.
syncro_delete_ticket_timer_entryProDestructiveDelete a timer entry from a ticket.
syncro_get_ticketFreeRead-onlyRetrieve full details for a single ticket by ID.
syncro_get_ticket_settingsFreeRead-onlyRetrieve the account-wide ticket configuration: ticket types, statuses, problem types, priorities, SLAs, and custom field definitions.
syncro_list_ticket_commentsFreeRead-onlyList comments on a single ticket, paginated.
syncro_list_ticketsFreeRead-onlyList tickets with optional filters and pagination.
syncro_print_ticketProDestructiveQueue a print job for a ticket.
syncro_remove_ticket_line_itemProDestructiveRemove a line item from a ticket.
syncro_update_ticketProDestructiveUpdate an existing ticket's fields such as subject, status, priority, assigned user, or custom fields.
syncro_update_ticket_line_itemProDestructiveUpdate an existing line item on a ticket.
syncro_update_ticket_timer_entryProDestructiveUpdate an existing timer entry on a ticket.

[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.

ParamTypeRequiredDefaultDescription
bodystringyesThe comment body / message text.
doNotEmailbooleannonullIf true, suppress the customer email notification for this comment.
hiddenbooleannonullIf true, mark the comment as hidden (internal-only, not visible to the customer).
smsBodystringnonullOptional SMS body to send alongside the comment.
subjectstringyesThe comment subject / title.
techstringnonullTechnician name to display as the author. Optional.
ticketIdintegeryesThe Syncro ticket ID to comment on. Use syncro_list_tickets to find valid IDs.

[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).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON 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}.
ticketIdintegeryesThe Syncro ticket ID to add the line item to. Use syncro_list_tickets to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
durationMinutesintegernonullDuration in minutes. Alternative to startAt/endAt for a flat logged duration.
endAtstringnonullEnd timestamp (ISO 8601, e.g. '2026-04-22T10:00:00Z'). Use together with startAt for a time range.
notesstringnonullNotes describing the work performed.
productIdintegernonullProduct ID for the labor product to bill this time against. Use syncro_list_products to find valid IDs.
startAtstringnonullStart timestamp (ISO 8601, e.g. '2026-04-22T09:00:00Z'). Use together with endAt for a time range.
ticketIdintegeryesThe Syncro ticket ID to add the timer entry to. Use syncro_list_tickets to find valid IDs.
userIdintegernonullUser ID to attribute the timer entry to. Use syncro_list_users to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
filesJsonstringyesJSON 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.
ticketIdintegeryesThe Syncro ticket ID to attach files to. Use syncro_list_tickets to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
ticketIdintegeryesThe Syncro ticket ID containing the timer entry. Use syncro_list_tickets to find valid IDs.
timerEntryIdintegeryesThe timer_entry_id to charge. Retrieve via syncro_get_ticket.

[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.

ParamTypeRequiredDefaultDescription
contactIdintegernonullContact ID to associate with the ticket. Use syncro_list_contacts to find valid IDs.
customerIdintegeryesThe Syncro customer ID the ticket belongs to. Use syncro_list_customers to find valid IDs.
dueDatestringnonullDue date (ISO 8601, e.g. '2026-05-01T17:00:00Z').
fieldsJsonstringnonullOptional JSON object with additional ticket fields, including properties_attributes for custom fields. Example: {"properties_attributes":{"Custom Field 1":"value"}}.
prioritystringnonullPriority (e.g. 'Low', 'Normal', 'High', 'Urgent').
problemTypestringnonullProblem type (e.g. 'Hardware', 'Software'). Use syncro_get_ticket_settings to discover valid values.
slaIdintegernonullSLA ID to attach to the ticket. Use syncro_get_ticket_settings to discover valid SLAs.
statusstringnonullInitial status (e.g. 'New', 'In Progress'). Use syncro_get_ticket_settings to discover valid values.
subjectstringyesThe ticket subject / title.
ticketTypeIdintegernonullTicket type ID. Use syncro_get_ticket_settings to discover valid ticket types.
userIdintegernonullAssigned user ID. Use syncro_list_users to find valid IDs.

[Syncro] Permanently delete a ticket and all associated comments, line items, and timer entries. This action cannot be undone. Requires a valid ticket ID.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro ticket ID to delete. Use syncro_list_tickets to find valid IDs.

[Syncro] Delete an attachment from a ticket. This action cannot be undone. Requires ticket ID and the attachment ID.

ParamTypeRequiredDefaultDescription
attachmentIdintegeryesThe attachment ID to delete. Retrieve via syncro_get_ticket.
ticketIdintegeryesThe Syncro ticket ID containing the attachment. Use syncro_list_tickets to find valid IDs.

[Syncro] Delete a timer entry from a ticket. This action cannot be undone. Requires ticket ID and the timer entry ID.

ParamTypeRequiredDefaultDescription
ticketIdintegeryesThe Syncro ticket ID containing the timer entry. Use syncro_list_tickets to find valid IDs.
timerEntryIdintegeryesThe timer_entry_id to delete. Retrieve via syncro_get_ticket.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro ticket ID. Use syncro_list_tickets to find valid IDs.

[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 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.

ParamTypeRequiredDefaultDescription
createdAfterstringnonullFilter to comments created after the given timestamp (ISO 8601, e.g. '2026-01-01T00:00:00Z').
createdBeforestringnonullFilter to comments created before the given timestamp (ISO 8601, e.g. '2026-01-01T00:00:00Z').
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
perPageintegerno10Results per page (default 10, max 100). This endpoint is the only Syncro endpoint that honours per_page.
sortBystringnonullField to sort by (e.g. 'created_at'). Optional.
sortDirectionstringnonullSort direction: 'asc' or 'desc'. Optional.
ticketIdintegeryesThe Syncro ticket ID whose comments to list. Use syncro_list_tickets to find valid IDs.

[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).

ParamTypeRequiredDefaultDescription
allCommentsbooleannofalseIMPORTANT: 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.
contactIdintegernonullFilter by contact ID. Use syncro_list_contacts to find valid IDs.
createdAfterstringnonullFilter to tickets created after the given timestamp (ISO 8601, e.g. '2026-01-01T00:00:00Z').
customerIdintegernonullFilter by customer ID. Use syncro_list_customers to find valid IDs.
minebooleannonullIf true, return only tickets assigned to the currently authenticated API user.
numberstringnonullFilter by ticket number (human-facing ticket number, not the internal ID).
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
querystringnonullFree-text search query across ticket subject and body.
resolvedAfterstringnonullFilter to tickets resolved after the given timestamp (ISO 8601, e.g. '2026-01-01T00:00:00Z').
sinceUpdatedAtstringnonullFilter to tickets updated since the given timestamp (ISO 8601, e.g. '2026-01-01T00:00:00Z').
statusstringnonullFilter by ticket status (e.g. 'New', 'In Progress', 'Resolved'). Use syncro_get_ticket_settings to discover configured statuses.
userIdintegernonullFilter by assigned user ID. Use syncro_list_users to find valid IDs.

[Syncro] Queue a print job for a ticket. This generates a printable ticket document via Syncro's print pipeline. Requires a valid ticket ID.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro ticket ID to print. Use syncro_list_tickets to find valid IDs.

[Syncro] Remove a line item from a ticket. This action cannot be undone. Requires ticket ID and the ticket line item ID.

ParamTypeRequiredDefaultDescription
ticketIdintegeryesThe Syncro ticket ID containing the line item. Use syncro_list_tickets to find valid IDs.
ticketLineItemIdintegeryesThe ticket_line_item_id of the line item to remove. Retrieve via syncro_get_ticket.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON 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.
idintegeryesThe Syncro ticket ID to update. Use syncro_list_tickets to find valid IDs.

[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.).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with ticket_line_item_id and the fields to update. Example: {"ticket_line_item_id":123,"quantity":3,"price":149.00}.
ticketIdintegeryesThe Syncro ticket ID containing the line item. Use syncro_list_tickets to find valid IDs.

[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.).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON 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"}.
ticketIdintegeryesThe Syncro ticket ID containing the timer entry. Use syncro_list_tickets to find valid IDs.

Ticket Timers

ToolPlanAccessSummary
syncro_list_ticket_timersFreeRead-onlyList standalone ticket timer entries across all tickets with pagination.
syncro_update_ticket_timer_billableProDestructiveToggle the billable flag on a ticket timer entry.

[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.

ParamTypeRequiredDefaultDescription
createdAtLtstringnonullFilter to timer entries created before the given timestamp (ISO 8601, e.g. '2026-01-01T00:00:00Z'). Useful for backwards pagination through history.
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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.

ParamTypeRequiredDefaultDescription
billablebooleanyesWhether the timer entry should be marked billable (true) or non-billable (false).
idintegeryesThe Syncro ticket timer entry ID to update. Use syncro_list_ticket_timers to find valid IDs.

Worksheet Results

ToolPlanAccessSummary
syncro_create_worksheet_resultProWriteAttach a new worksheet result (instance of a worksheet template) to a ticket.
syncro_delete_worksheet_resultProDestructivePermanently delete a worksheet result from a ticket.
syncro_get_worksheet_resultFreeRead-onlyRetrieve a single worksheet result by ticket ID and worksheet result ID.
syncro_list_worksheet_resultsFreeRead-onlyList worksheet results (filled-out checklists/templates) for a specific ticket.
syncro_update_worksheet_resultProWriteUpdate an existing worksheet result on a ticket.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringnonullOptional 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"}]}.
ticketIdintegeryesThe Syncro ticket ID to attach the worksheet to. Use syncro_list_tickets to find valid IDs.
titlestringyesTitle for this worksheet result instance.
worksheetTemplateIdintegeryesThe worksheet template ID to instantiate. Discover configured templates via Syncro admin or syncro_get_ticket_settings.

[Syncro] Permanently delete a worksheet result from a ticket. This action cannot be undone. Requires valid ticket and worksheet result IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro worksheet result ID to delete. Use syncro_list_worksheet_results to find valid IDs.
ticketIdintegeryesThe Syncro ticket ID that owns the worksheet result. Use syncro_list_tickets to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro worksheet result ID. Use syncro_list_worksheet_results to find valid IDs.
ticketIdintegeryesThe Syncro ticket ID that owns the worksheet result. Use syncro_list_tickets to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
ticketIdintegeryesThe Syncro ticket ID whose worksheet results to list. Use syncro_list_tickets to find valid IDs.

[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).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON 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"}]}.
idintegeryesThe Syncro worksheet result ID to update. Use syncro_list_worksheet_results to find valid IDs.
ticketIdintegeryesThe Syncro ticket ID that owns the worksheet result. Use syncro_list_tickets to find valid IDs.

Invoices

ToolPlanAccessSummary
syncro_add_invoice_line_itemProDestructiveAdd a single line item to an existing invoice.
syncro_create_invoiceProDestructiveCreate a new invoice for a customer.
syncro_delete_invoiceProDestructivePermanently delete an invoice by ID.
syncro_delete_invoice_line_itemProDestructivePermanently remove a line item from an invoice.
syncro_email_invoiceProDestructiveEmail an invoice to the customer at the email address on file.
syncro_get_invoiceFreeRead-onlyRetrieve a single invoice by ID with full details including line items, tax breakdown, balance due, billing/shipping addresses, and status.
syncro_get_invoice_ticketFreeRead-onlyReturn the ticket associated with a given invoice.
syncro_list_invoicesFreeRead-onlyList invoices with optional filters for paid/unpaid status, associated ticket, and last-updated timestamp.
syncro_list_line_itemsFreeRead-onlyList line items globally across all invoices and estimates.
syncro_print_invoiceProDestructiveQueue an invoice for printing via the configured Syncro print job workflow.
syncro_update_invoiceProDestructiveUpdate fields on an existing invoice.
syncro_update_invoice_line_itemProDestructiveUpdate a single line item on an existing invoice by its line item ID.

[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.

ParamTypeRequiredDefaultDescription
costnumbernonullOptional cost (your cost, not customer price) in the invoice currency.
discountPercentnumbernonullOptional discount percent applied to this line (0-100).
fieldsJsonstringnonullOptional JSON object with additional line item fields. Example: {"sku":"LAB-HR","position":2,"properties":{"tech":"Alice"}}. Field names must match the Syncro API.
invoiceIdintegeryesThe Syncro invoice ID to add the line item to. Use syncro_list_invoices to find valid IDs.
namestringyesThe display name / description of the line item.
pricenumbernonullOptional unit price (customer-facing) in the invoice currency.
productIdintegernonullOptional Syncro product ID to link the line item to a catalog product (inherits pricing/taxability).
quantitynumbernonullOptional quantity (defaults to 1 on Syncro's side if omitted). Supports decimals for hourly labor.
taxablebooleannonullOptional flag marking the line item as taxable. Defaults to the product/invoice tax settings when omitted.

[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.

ParamTypeRequiredDefaultDescription
customerIdintegeryesThe Syncro customer ID the invoice is billed to. Use syncro_list_customers to find valid IDs.
datestringyesThe invoice date in ISO 8601 format (e.g. '2026-04-22').
fieldsJsonstringnonullOptional 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.
numberstringyesThe invoice number/identifier (string). Commonly a monotonic counter such as '1042'.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro invoice ID to delete. Use syncro_list_invoices to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
invoiceIdintegeryesThe Syncro invoice ID containing the line item. Use syncro_list_invoices to find valid IDs.
lineItemIdintegeryesThe Syncro line item ID to delete. Use syncro_get_invoice to find line item IDs.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro invoice ID to email. Use syncro_list_invoices to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro invoice ID. Use syncro_list_invoices to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro invoice ID. Use syncro_list_invoices to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
paidbooleannonullFilter to only paid invoices when true, or only non-paid when false. Omit for no paid/unpaid filter.
sinceUpdatedAtstringnonullReturn only invoices updated at or after this ISO 8601 timestamp (e.g. '2026-01-01T00:00:00Z'). Useful for incremental syncs.
ticketIdintegernonullFilter to invoices linked to a specific ticket ID. Use syncro_list_tickets to find ticket IDs.
unpaidbooleannonullFilter to only unpaid invoices when true. Mutually exclusive with `paid` but either may be used; omit for no filter.

[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.

ParamTypeRequiredDefaultDescription
estimateIdintegernonullFilter to line items belonging to a specific estimate ID.
estimateIdNotNullbooleannonullWhen true, return only line items that are attached to some estimate (estimate_id IS NOT NULL).
invoiceIdintegernonullFilter to line items belonging to a specific invoice ID.
invoiceIdNotNullbooleannonullWhen true, return only line items that are attached to some invoice (invoice_id IS NOT NULL).
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro invoice ID to print. Use syncro_list_invoices to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with invoice fields to update. Example: {"due_date":"2026-06-01","comment":"Extended terms"}. Field names must match the Syncro API.
idintegeryesThe Syncro invoice ID to update. Use syncro_list_invoices to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with line item fields to update. Example: {"quantity":3,"price":95.00,"discount_percent":10}. Field names must match the Syncro API.
invoiceIdintegeryesThe Syncro invoice ID containing the line item. Use syncro_list_invoices to find valid IDs.
lineItemIdintegeryesThe Syncro line item ID to update. Use syncro_get_invoice to find line item IDs.

Estimates

ToolPlanAccessSummary
syncro_add_estimate_line_itemProWriteAdd a single line item to an existing estimate.
syncro_convert_estimate_to_invoiceProDestructiveConvert an approved estimate into a real invoice, copying all line items and customer info.
syncro_create_estimateProWriteCreate a new estimate (quote) for a customer.
syncro_delete_estimateProDestructivePermanently delete an estimate by ID.
syncro_delete_estimate_line_itemProDestructivePermanently remove a line item from an estimate.
syncro_email_estimateProDestructiveEmail an estimate to the customer at the email address on file.
syncro_get_estimateFreeRead-onlyRetrieve a single estimate by ID with full details including line items, pricing, status, and customer info.
syncro_list_estimatesFreeRead-onlyList estimates (quotes) with pagination and optional filters.
syncro_print_estimateProDestructiveQueue an estimate for printing via the configured Syncro print job workflow.
syncro_update_estimateProWriteUpdate fields on an existing estimate.
syncro_update_estimate_line_itemProWriteUpdate a single line item on an existing estimate by its line item ID.

[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.

ParamTypeRequiredDefaultDescription
costnumbernonullOptional cost (your cost, not customer price) in the estimate currency.
discountPercentnumbernonullOptional discount percent applied to this line (0-100).
estimateIdintegeryesThe Syncro estimate ID to add the line item to. Use syncro_list_estimates to find valid IDs.
fieldsJsonstringnonullOptional JSON object with additional line item fields. Example: {"sku":"LAB-HR","position":2,"properties":{"tech":"Alice"}}. Field names must match the Syncro API.
namestringyesThe display name / description of the line item.
pricenumbernonullOptional unit price (customer-facing) in the estimate currency.
productIdintegernonullOptional Syncro product ID to link the line item to a catalog product (inherits pricing/taxability).
quantitynumbernonullOptional quantity (defaults to 1 on Syncro's side if omitted). Supports decimals for hourly labor.
taxablebooleannonullOptional flag marking the line item as taxable. Defaults to the product/estimate tax settings when omitted.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro estimate ID to convert. Use syncro_list_estimates to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
customerIdintegeryesThe Syncro customer ID the estimate is issued to. Use syncro_list_customers to find valid IDs.
fieldsJsonstringnonullOptional 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] 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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro estimate ID to delete. Use syncro_list_estimates to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
estimateIdintegeryesThe Syncro estimate ID containing the line item. Use syncro_list_estimates to find valid IDs.
lineItemIdintegeryesThe Syncro line item ID to delete. Use syncro_get_estimate to find line item IDs.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro estimate ID to email. Use syncro_list_estimates to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro estimate ID. Use syncro_list_estimates to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
customerIdintegernonullFilter to estimates for a specific customer ID. Use syncro_list_customers to find customer IDs.
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
querystringnonullFree-text query matched against estimate number and customer name.
sinceUpdatedAtstringnonullReturn only estimates updated at or after this ISO 8601 timestamp (e.g. '2026-01-01T00:00:00Z'). Useful for incremental syncs.
statusstringnonullFilter by estimate status (e.g. 'open', 'approved', 'declined', 'converted').

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro estimate ID to print. Use syncro_list_estimates to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with estimate fields to update. Example: {"expires_at":"2026-06-01","status":"approved"}. Field names must match the Syncro API.
idintegeryesThe Syncro estimate ID to update. Use syncro_list_estimates to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
estimateIdintegeryesThe Syncro estimate ID containing the line item. Use syncro_list_estimates to find valid IDs.
fieldsJsonstringyesJSON object with line item fields to update. Example: {"quantity":3,"price":95.00,"discount_percent":10}. Field names must match the Syncro API.
lineItemIdintegeryesThe Syncro line item ID to update. Use syncro_get_estimate to find line item IDs.

Payments

ToolPlanAccessSummary
syncro_create_paymentProDestructiveRecord a new payment from a customer.
syncro_get_paymentFreeRead-onlyRetrieve a single payment record by ID including amount, method, reference number, customer, and the invoices the payment was applied to.
syncro_list_payment_methodsFreeRead-onlyList the payment methods configured on the tenant's Syncro account (e.g. 'Cash', 'Check', 'Credit Card', custom methods).
syncro_list_paymentsFreeRead-onlyList payments with pagination and an optional free-text query.

[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.

ParamTypeRequiredDefaultDescription
amountCentsintegeryesThe payment amount in integer CENTS. Example: 11000 represents $110.00.
applyPaymentsJsonstringnonullOptional 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.
customerIdintegeryesThe Syncro customer ID the payment is received from. Use syncro_list_customers to find valid IDs.
fieldsJsonstringnonullOptional JSON object with additional payment fields. Example: {"notes":"Paid in full via wire transfer"}. Field names must match the Syncro API.
invoiceIdintegernonullOptional Syncro invoice ID to apply the full payment to. Mutually exclusive with invoiceNumber and applyPayments.
invoiceNumberstringnonullOptional invoice number (string) to apply the full payment to. Useful when the caller only has the printed number. Mutually exclusive with invoiceId and applyPayments.
paymentMethodstringyesThe payment method string (e.g. 'Cash', 'Check', 'Credit Card'). Use syncro_list_payment_methods to list valid values.
refNumstringnonullOptional reference number (e.g. check number, transaction ID) stored on the payment record.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro payment ID. Use syncro_list_payments to find valid IDs.

[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 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.

ParamTypeRequiredDefaultDescription
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
querystringnonullFree-text query to filter payments (matches reference numbers, customer name, notes).

Contracts

ToolPlanAccessSummary
syncro_create_contractProDestructiveCreate a new contract for a customer.
syncro_delete_contractProDestructivePermanently delete a contract by ID.
syncro_get_contractFreeRead-onlyRetrieve 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.
syncro_list_contractsFreeRead-onlyList customer contracts (managed-service agreements, prepaid blocks, SLA agreements) with pagination.
syncro_update_contractProDestructiveUpdate fields on an existing contract.

[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.

ParamTypeRequiredDefaultDescription
applyToAllbooleannonullWhen true, apply this contract to ALL of the customer's assets/tickets. Defaults to false if omitted, which requires manually linking assets.
contractAmountnumbernonullOptional total contract amount (currency value, e.g. 1200.00 for a $1,200 retainer).
customerIdintegeryesThe Syncro customer ID the contract belongs to. Use syncro_list_customers to find valid IDs.
descriptionstringnonullOptional free-text description of the contract scope.
endDatestringnonullOptional end date in ISO 8601 format (e.g. '2027-04-22').
fieldsJsonstringnonullOptional JSON object with additional contract fields. Example: {"billing_schedule":"monthly","auto_renew":true}. Field names must match the Syncro API.
namestringnonullOptional contract name (display label).
slaIdintegernonullOptional SLA ID to associate with the contract.
startDatestringnonullOptional start date in ISO 8601 format (e.g. '2026-04-22').
statusstringnonullOptional contract status string (values are tenant-configured; common examples: 'active', 'expired', 'pending').

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro contract ID to delete. Use syncro_list_contracts to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro contract ID. Use syncro_list_contracts to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with contract fields to update. Example: {"status":"expired","end_date":"2026-06-01"}. Field names must match the Syncro API.
idintegeryesThe Syncro contract ID to update. Use syncro_list_contracts to find valid IDs.

Recurring Invoices

ToolPlanAccessSummary
syncro_add_schedule_line_itemProWriteAdd a line item to an existing recurring invoice schedule.
syncro_create_scheduleProWriteCreate a new recurring invoice schedule.
syncro_delete_scheduleProDestructivePermanently delete a recurring invoice schedule and all its line items.
syncro_get_scheduleFreeRead-onlyRetrieve full details of a single recurring invoice schedule by ID, including customer, frequency, next run date, delivery options, paused state, and line items.
syncro_list_schedulesFreeRead-onlyList recurring invoice schedules with optional customer filter.
syncro_remove_schedule_line_itemProDestructiveRemove a line item from a recurring invoice schedule.
syncro_update_scheduleProWriteUpdate a recurring invoice schedule's fields (name, frequency, next_run, email_customer, snail_mail, charge_mop, paused, invoice_unbilled_ticket_charges, notes, etc.).
syncro_update_schedule_line_itemProWriteUpdate fields on an existing schedule line item (quantity, price, name, taxable, product_id, etc.).

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON 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.
scheduleIdintegeryesThe Syncro recurring invoice schedule ID to add a line item to. Use syncro_list_schedules to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
chargeMopbooleannonullWhen true, charge the customer's saved payment method (MOP) automatically on each run.
customerIdintegeryesCustomer ID that will be billed by this schedule. Use syncro_list_customers to find customer IDs.
emailCustomerbooleannonullWhen true, email the generated invoice to the customer automatically on each run.
fieldsJsonstringnonullOptional 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.
frequencystringyesBilling cadence. One of: Daily, Weekly, Biweekly, Monthly, Quarterly, Semi-Annually, Annually, Biennially, Triennially.
invoiceUnbilledTicketChargesbooleannonullWhen true, roll any unbilled ticket charges for the customer into the generated invoice.
namestringyesDisplay name for this recurring invoice (visible internally and on generated invoices).
nextRunstringyesDate of the next scheduled run (ISO 8601 date, e.g. '2026-05-01'). Subsequent runs derive from the frequency.
pausedbooleannonullWhen true, pause the schedule (no invoices generated until unpaused).
snailMailbooleannonullWhen true, mark the invoice for snail-mail delivery on each run.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro recurring invoice schedule ID to delete. Use syncro_list_schedules to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro recurring invoice schedule ID. Use syncro_list_schedules to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
customerIdintegernonullOptional customer ID to filter schedules to a single customer. Use syncro_list_customers to find customer IDs.
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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).

ParamTypeRequiredDefaultDescription
scheduleIdintegeryesThe Syncro recurring invoice schedule ID that owns the line item. Use syncro_list_schedules to find valid IDs.
scheduleLineItemIdintegeryesThe schedule line item ID to remove. Inspect the schedule via syncro_get_schedule to find line item IDs.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON 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.
idintegeryesThe Syncro recurring invoice schedule ID to update. Use syncro_list_schedules to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with line item fields to update. Example: {"quantity":2,"price":149.00,"name":"Managed Services - Premium"}. Field names must match the Syncro API.
scheduleIdintegeryesThe Syncro recurring invoice schedule ID that owns the line item. Use syncro_list_schedules to find valid IDs.
scheduleLineItemIdintegeryesThe schedule line item ID to update. Inspect the schedule via syncro_get_schedule to find line item IDs.

Products

ToolPlanAccessSummary
syncro_add_product_imagesProWriteAttach one or more images to a product via publicly reachable URLs.
syncro_create_productProWriteCreate a new product in the catalog.
syncro_delete_product_imageProDestructivePermanently delete a single image from a product.
syncro_get_productFreeRead-onlyRetrieve full details for a single product by ID, including pricing (cost + retail), stock levels across locations, images, custom properties, and tax settings.
syncro_get_product_by_barcodeFreeRead-onlyLook up a product by its barcode (UPC/EAN/custom).
syncro_list_part_ordersFreeRead-onlyList part orders (parts ordered to fulfill specific tickets).
syncro_list_product_categoriesFreeRead-onlyList all product categories.
syncro_list_productsFreeRead-onlyList products in the catalog with optional filters (sku, name, upc_code, category_id, free-text query).
syncro_update_productProWriteUpdate fields on an existing product (name, description, price_cost, price_retail, taxable, upc_code, category_id, properties, etc.).
syncro_update_product_location_quantityProDestructiveAdjust the on-hand quantity of a product at a specific location (inventory adjustment).

[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.

ParamTypeRequiredDefaultDescription
filesJsonstringyesJSON 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.
idintegeryesThe Syncro product ID to attach images to. Use syncro_list_products to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
descriptionstringyesThe product's description. Required.
fieldsJsonstringnonullOptional 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.
maintainStockbooleannonullWhen true, Syncro will track on-hand stock for this product. When false, it is treated as a service or non-stocked item.
namestringyesThe product's display name. Required.
priceCostnumbernonullCost price paid to the vendor for this product.
priceRetailnumbernonullRetail/selling price shown on invoices and estimates.
quantityintegernonullInitial on-hand quantity (used when maintainStock is true).
taxablebooleannonullWhen true, the product is taxable and will have tax applied on sales.
upcCodestringnonullUPC/EAN/custom barcode for point-of-sale scanning.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro product ID that owns the image. Use syncro_list_products to find valid IDs.
photoIdintegeryesThe image/photo ID to remove from the product. Inspect the product via syncro_get_product to find photo IDs.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro product ID. Use syncro_list_products or syncro_get_product_by_barcode to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
barcodestringyesThe barcode value to look up (UPC, EAN, or custom barcode as stored on the product).

[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.

ParamTypeRequiredDefaultDescription
completedbooleannonullWhen true, return only completed part orders. When false, return only incomplete/open part orders. Omit for all.
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
querystringnonullFree-text search across part order fields (product name, ticket number, notes).

[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.

ParamTypeRequiredDefaultDescription
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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.

ParamTypeRequiredDefaultDescription
categoryIdintegernonullFilter by product category ID. Use syncro_list_product_categories to find category IDs.
namestringnonullFilter by product name (partial match).
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
querystringnonullFree-text search across product name, SKU, and description.
skustringnonullFilter by exact SKU.
sortstringnonullSort field/direction (e.g. 'name asc' or 'price_retail desc').
upcCodestringnonullFilter by exact UPC/barcode.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with product fields to update. Example: {"price_retail":129.00,"description":"Updated description","taxable":false}. Field names must match the Syncro API.
idintegeryesThe Syncro product ID to update. Use syncro_list_products or syncro_get_product_by_barcode to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON 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.
idintegeryesThe Syncro product ID whose location quantity is being adjusted. Use syncro_list_products to find valid IDs.

Product Serials

ToolPlanAccessSummary
syncro_attach_product_serials_to_line_itemProDestructiveAttach one or more serial numbers to an invoice line item or ticket line item, recording which physical units were sold or assigned.
syncro_create_product_serialProWriteCreate a new serial number record for a product.
syncro_list_product_serialsFreeRead-onlyList serial numbers tracked for a specific product.
syncro_update_product_serialProWriteUpdate fields on an existing product serial (serial string, notes, location_id, etc.).

[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.

ParamTypeRequiredDefaultDescription
productIdintegeryesThe Syncro product ID whose serials are being attached. Use syncro_list_products to find valid IDs.
recordIdintegeryesThe ID of the invoice line item or ticket line item to attach serials to.
recordTypestringyesThe record type to attach serials to. Must be 'LineItem' (invoice line item) or 'TicketLineItem' (ticket line item).
serialIdsJsonstringyesJSON array of serial IDs to attach. Example: [101, 102, 103]. Use syncro_list_product_serials to find serial IDs.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object describing the serial. Example: {"serial":"SN123456789","notes":"Received 2026-04-10","location_id":1}. Field names must match the Syncro API.
productIdintegeryesThe Syncro product ID the serial belongs to. Use syncro_list_products to find valid IDs.

[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).

ParamTypeRequiredDefaultDescription
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
productIdintegeryesThe Syncro product ID whose serials are being listed. Use syncro_list_products to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with serial fields to update. Example: {"serial":"SN-CORRECTED","notes":"Corrected typo in serial number"}. Field names must match the Syncro API.
idintegeryesThe serial record ID to update. Use syncro_list_product_serials to find serial IDs.
productIdintegeryesThe Syncro product ID the serial belongs to. Use syncro_list_products to find valid IDs.

Product SKUs

ToolPlanAccessSummary
syncro_create_product_skuProWriteAdd an alternate SKU to a product.
syncro_list_product_skusFreeRead-onlyList alternate SKUs registered for a product.
syncro_update_product_skuProWriteUpdate fields on an existing product SKU (code, notes, etc.).

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object describing the SKU. Example: {"code":"VEND-PN-12345","notes":"Vendor part number"}. Field names must match the Syncro API.
productIdintegeryesThe Syncro product ID the SKU belongs to. Use syncro_list_products to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
productIdintegeryesThe Syncro product ID whose SKUs are being listed. Use syncro_list_products to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with SKU fields to update. Example: {"code":"VEND-PN-12345-REV2","notes":"Revised vendor part number"}. Field names must match the Syncro API.
idintegeryesThe SKU record ID to update. Use syncro_list_product_skus to find SKU IDs.
productIdintegeryesThe Syncro product ID the SKU belongs to. Use syncro_list_products to find valid IDs.

Purchase Orders

ToolPlanAccessSummary
syncro_add_po_line_itemProDestructiveAdd a line item to an existing purchase order.
syncro_create_purchase_orderProDestructiveCreate a new purchase order for a vendor.
syncro_get_purchase_orderFreeRead-onlyRetrieve full purchase order details by ID.
syncro_list_purchase_ordersFreeRead-onlyList purchase orders with pagination.
syncro_receive_purchase_orderProDestructiveMark a purchase order as received and update inventory quantities.

[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.

ParamTypeRequiredDefaultDescription
costintegernonullUnit cost in cents (e.g. 5000 for $50.00). Defaults to the product's cost if omitted.
fieldsJsonstringnonullOptional JSON object with additional line-item fields. Example: {"notes":"Need by Friday","taxable":true}. Field names must match the Syncro API.
idintegeryesThe Syncro purchase order ID to add the line item to. Use syncro_list_purchase_orders to find valid IDs.
productIdintegeryesThe Syncro product ID for this line item. Required. Use syncro_list_products to find valid IDs.
quantityintegernonullQuantity to order. Defaults to 1 if omitted.

[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.

ParamTypeRequiredDefaultDescription
deliveryTrackingstringnonullDelivery tracking number or description.
discountPercentnumbernonullDiscount percentage applied to the PO (e.g. 5.0 for 5%).
dueDatestringnonullDue date for payment (ISO 8601 format, e.g. '2026-05-30').
expectedDatestringnonullExpected delivery date (ISO 8601 format, e.g. '2026-05-15').
fieldsJsonstringnonullOptional JSON object with additional purchase order fields. Example: {"reference_number":"PO-2026-001","internal_notes":"Rush order"}. Field names must match the Syncro API.
generalNotesstringnonullFree-text general notes for the purchase order.
orderDatestringnonullOrder date (ISO 8601 format, e.g. '2026-04-20').
shippingCentsintegernonullShipping cost in cents (e.g. 1500 for $15.00).
vendorIdintegeryesThe Syncro vendor ID for this purchase order. Required. Use syncro_list_vendors to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro purchase order ID. Use syncro_list_purchase_orders to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON 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.
idintegeryesThe Syncro purchase order ID to receive against. Use syncro_list_purchase_orders to find valid IDs.

Vendors

ToolPlanAccessSummary
syncro_create_vendorProWriteCreate a new vendor.
syncro_get_vendorFreeRead-onlyRetrieve full vendor details by ID.
syncro_list_vendorsFreeRead-onlyList vendors with pagination.
syncro_update_vendorProWriteUpdate vendor fields by ID.

[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.

ParamTypeRequiredDefaultDescription
accountNumberstringnonullYour account number with this vendor.
address1stringnonullStreet address line 1.
address2stringnonullStreet address line 2.
citystringnonullCity.
emailstringnonullPrimary email address for the vendor.
fieldsJsonstringnonullOptional JSON object with additional vendor fields. Example: {"website":"https://vendor.example","notes":"Net 30 terms"}. Field names must match the Syncro API.
namestringyesThe vendor name. Required.
phonestringnonullPrimary phone number for the vendor.
repFirstNamestringnonullFirst name of the primary sales/account rep.
repLastNamestringnonullLast name of the primary sales/account rep.
statestringnonullState or province.
zipstringnonullPostal/ZIP code.

[Syncro] Retrieve full vendor details by ID. Returns the complete vendor record including name, rep contact, email, phone, account number, address, and custom properties.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro vendor ID. Use syncro_list_vendors to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON 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.
idintegeryesThe Syncro vendor ID to update. Use syncro_list_vendors to find valid IDs.

Customer Assets

ToolPlanAccessSummary
syncro_create_customer_assetProWriteCreate a new customer asset (non-RMM — RMM agents register themselves automatically when installed).
syncro_get_asset_patchesFreeRead-onlyRetrieve Windows Update patch data for an RMM-managed customer asset.
syncro_get_assets_chat_informationFreeRead-onlyFetch chat information (Syncro Live Chat agent availability and session state) for one or more customer assets in a single call.
syncro_get_customer_assetFreeRead-onlyRetrieve full customer asset details by ID, including RMM data for agent-managed devices.
syncro_list_customer_assetsFreeRead-onlyList customer assets (RMM-managed devices and other tracked assets) with optional filters.
syncro_update_customer_assetProWriteUpdate customer asset fields by ID.

[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.

ParamTypeRequiredDefaultDescription
assetSerialstringnonullThe hardware serial number or unique device identifier.
assetTypeIdintegernonullThe asset type ID. Mutually useful with assetTypeName — pick whichever you have.
assetTypeNamestringnonullThe asset type name (e.g. 'Workstation', 'Printer'). Alternative to assetTypeId.
customerIdintegernonullThe Syncro customer ID that owns this asset. Use syncro_list_customers to find valid IDs.
fieldsJsonstringnonullOptional JSON object with additional asset fields. Example: {"notes":"Spare unit in closet"}. Field names must match the Syncro API.
namestringyesThe display name for the new asset. Required.
propertiesstringnonullOptional 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] 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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro customer asset ID (must be an RMM-managed Windows device). Use syncro_list_customer_assets to find valid IDs.
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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.

ParamTypeRequiredDefaultDescription
idsCsvstringyesComma-separated list of customer asset IDs (e.g. '101,102,103'). Use syncro_list_customer_assets to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro customer asset ID. Use syncro_list_customer_assets to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
assetTypeIdintegernonullFilter by asset type ID.
customerIdintegernonullFilter assets to a specific customer by Syncro customer ID.
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
querystringnonullFree-text query matched against asset name, serial, and properties.
snmpEnabledbooleannonullFilter to only SNMP-enabled assets when true, or non-SNMP when false. Omit to return all.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with asset fields to update. Example: {"name":"DESKTOP-A1B2C3 (updated)","properties":{"location":"HQ-Floor3"}}. Field names must match the Syncro API.
idintegeryesThe Syncro customer asset ID to update. Use syncro_list_customer_assets to find valid IDs.

RMM Alerts

ToolPlanAccessSummary
syncro_create_rmm_alertProWriteCreate a new RMM alert for a customer asset.
syncro_delete_rmm_alertProDestructiveClears (deletes) an RMM alert by ID.
syncro_get_rmm_alertFreeRead-onlyRetrieve full RMM alert details by ID.
syncro_list_rmm_alertsFreeRead-onlyList RMM alerts with optional status filter.
syncro_mute_rmm_alertProDestructiveSuppresses notifications for this alert for the specified duration.

[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.

ParamTypeRequiredDefaultDescription
assetIdintegeryesThe Syncro customer asset ID this alert is about. Required. Use syncro_list_customer_assets to find valid IDs.
customerIdintegeryesThe Syncro customer ID this alert belongs to. Required. Use syncro_list_customers to find valid IDs.
descriptionstringyesHuman-readable alert description. Required.
propertiesJsonstringnonullOptional JSON object of alert properties/metadata. Example: {"severity":"high","source":"cpu_monitor","threshold":95}.
resolvedbooleannonullSet true to create the alert in an already-resolved state.
statusstringnonullAlert status string (connector-specific semantics).

[Syncro] Clears (deletes) an RMM alert by ID. Destructive — this action cannot be undone. Prefer muting when you only need to suppress notifications temporarily.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro RMM alert ID to delete. Use syncro_list_rmm_alerts to find valid IDs.

[Syncro] Retrieve full RMM alert details by ID. Returns the complete alert record including customer, asset, description, status, properties, and timestamps.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro RMM alert ID. Use syncro_list_rmm_alerts to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
statusstringno"active"Alert status filter. Options: 'active' (default), 'resolved', 'all'.

[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'.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro RMM alert ID to mute. Use syncro_list_rmm_alerts to find valid IDs.
muteForstringyesMute duration. Required. Valid values: '1-hour', '1-day', '2-days', '1-week', '2-weeks', '1-month', 'forever'.

Appointments

ToolPlanAccessSummary
syncro_create_appointmentProDestructiveCreate a new appointment.
syncro_delete_appointmentProDestructivePermanently delete an appointment by ID.
syncro_get_appointmentFreeRead-onlyRetrieve full details for a single appointment by ID.
syncro_list_appointmentsFreeRead-onlyList appointments with optional date-range filters and pagination.
syncro_update_appointmentProDestructiveUpdate appointment fields by ID.

[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.

ParamTypeRequiredDefaultDescription
allDaybooleannonullWhen true, mark the appointment as all-day. Defaults to false.
appointmentLocationTypestringnonullLocation type label (e.g. 'onsite', 'remote', 'phone'). Corresponds to the appointment type's location configuration.
customerIdintegernonullOptional Syncro customer ID to associate with the appointment.
descriptionstringnonullLonger free-text description of the appointment.
doNotEmailbooleannonullWhen true, suppress notification emails to participants. Defaults to false.
endAtstringyesAppointment end time in ISO 8601 format (e.g. '2026-04-22T11:00:00Z').
fieldsJsonstringnonullOptional JSON object with additional appointment fields. Example: {"appointment_type_id":5,"user_ids":[1,2]}. Field names must match the Syncro API.
locationstringnonullPhysical or virtual location (e.g. '123 Main St' or 'Zoom').
startAtstringyesAppointment start time in ISO 8601 format (e.g. '2026-04-22T10:00:00Z').
summarystringyesShort summary/title for the appointment (e.g. 'Onsite at Acme HQ').
ticketIdintegernonullOptional Syncro ticket ID to associate with the appointment.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro appointment ID to delete. Use syncro_list_appointments to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro appointment ID. Use syncro_list_appointments to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
dateFromstringnonullFilter by start date (ISO 8601 format, e.g. '2026-04-22T00:00:00Z'). Returns appointments starting on or after this date.
dateTostringnonullFilter by end date (ISO 8601 format, e.g. '2026-04-30T23:59:59Z'). Returns appointments ending on or before this date.
minebooleannonullWhen true, limit results to appointments owned by the current user. Defaults to false.
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON 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.
idintegeryesThe Syncro appointment ID to update. Use syncro_list_appointments to find valid IDs.

Appointment Types

ToolPlanAccessSummary
syncro_create_appointment_typeProWriteCreate a new appointment type.
syncro_delete_appointment_typeProDestructivePermanently delete an appointment type by ID.
syncro_get_appointment_typeFreeRead-onlyRetrieve full details for a single appointment type by ID.
syncro_list_appointment_typesFreeRead-onlyList all configured appointment types with pagination.
syncro_update_appointment_typeProWriteUpdate appointment type fields by ID.

[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.

ParamTypeRequiredDefaultDescription
emailInstructionsstringnonullInstructions or boilerplate text included in appointment confirmation emails.
fieldsJsonstringnonullOptional JSON object with additional appointment type fields. Field names must match the Syncro API.
locationHardCodestringnonullFixed/hard-coded location value used when locationType is set to a hard-coded variant.
locationTypeintegernonullLocation type as an integer code (corresponds to Syncro's location-type enum).
namestringyesDisplay name for the appointment type (e.g. 'Onsite Visit', 'Phone Consultation').

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro appointment type ID to delete. Use syncro_list_appointment_types to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro appointment type ID. Use syncro_list_appointment_types to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON 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.
idintegeryesThe Syncro appointment type ID to update. Use syncro_list_appointment_types to find valid IDs.

Leads

ToolPlanAccessSummary
syncro_create_leadProWriteCreate a new lead.
syncro_get_leadFreeRead-onlyRetrieve full details for a single lead by ID.
syncro_list_leadsFreeRead-onlyList leads with optional status and keyword filters.
syncro_update_leadProWriteUpdate lead fields by ID.

[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.

ParamTypeRequiredDefaultDescription
businessNamestringnonullBusiness/company name for the lead.
emailstringnonullPrimary email address for the lead.
fieldsJsonstringnonullOptional JSON object with additional lead fields. Field names must match the Syncro API.
firstNamestringnonullFirst name of the lead contact.
lastNamestringnonullLast name of the lead contact.
mobilestringnonullMobile phone number for the lead.
phonestringnonullPrimary phone number for the lead.
statusstringnonullLead status (e.g. 'New', 'Contacted', 'Qualified'). Must match a configured Syncro lead status.
ticketDescriptionstringnonullDescription/body to use if the lead is converted into a ticket.
ticketSubjectstringnonullSubject line to use if the lead is converted into a ticket.
userIdintegernonullSyncro user ID to assign this lead to.

[Syncro] Retrieve full details for a single lead by ID. Returns the complete lead record including contact info, status, assigned user, and ticket linkage.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro lead ID. Use syncro_list_leads to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
hasTicketbooleannonullWhen true, only return leads that have been converted into a ticket. When false, only return leads with no ticket.
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
querystringnonullFree-text search across lead name, business name, and contact details.
statusListstringnonullFilter by one or more lead statuses. Comma-separated when supplying multiple (e.g. 'New,Contacted').

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with lead fields to update. Example: {"status":"Qualified","user_id":7}. Field names must match the Syncro API.
idintegeryesThe Syncro lead ID to update. Use syncro_list_leads to find valid IDs.

New Ticket Forms

ToolPlanAccessSummary
syncro_get_new_ticket_formFreeRead-onlyRetrieve full details for a single new-ticket form by ID, including the configured customer fields, ticket fields, and appointment fields.
syncro_list_new_ticket_formsFreeRead-onlyList all configured new-ticket intake forms with pagination.
syncro_process_new_ticket_formProDestructiveUse this to submit a new-ticket intake form that creates a customer (if needed) and ticket in one call.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro new-ticket form ID. Use syncro_list_new_ticket_forms to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON 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.
idintegeryesThe Syncro new-ticket form ID to submit against. Use syncro_list_new_ticket_forms to find valid IDs.

Wiki Pages

ToolPlanAccessSummary
syncro_create_wiki_pageProWriteCreate a new wiki page with the provided name and body content.
syncro_delete_wiki_pageProDestructivePermanently delete a wiki page by ID.
syncro_get_wiki_pageFreeRead-onlyRetrieve a single wiki page by ID, including the full body/content, slug, visibility, attached customer/asset, and metadata.
syncro_list_wiki_pagesFreeRead-onlyList wiki pages (internal documentation/knowledge base).
syncro_update_wiki_pageProWriteUpdate an existing wiki page by ID.

[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.

ParamTypeRequiredDefaultDescription
assetIdintegernonullOptional Syncro customer asset ID to attach this wiki page to. Use syncro_list_customer_assets to find valid IDs.
bodystringyesMarkdown or HTML body content for the wiki page. Required.
customerIdintegernonullOptional Syncro customer ID to attach this wiki page to. Use syncro_list_customers to find valid IDs.
fieldsJsonstringnonullOptional JSON object with additional wiki fields. Example: {"tag_list":["onboarding","ops"]}. Field names must match the Syncro API.
namestringyesDisplay name/title for the wiki page. Required.
slugstringnonullOptional URL slug for the wiki page. When omitted, Syncro generates one from the name.
visibilitystringnonullOptional visibility setting (e.g. 'public', 'private', 'customer'). Field accepted by the Syncro API.

[Syncro] Permanently delete a wiki page by ID. This action cannot be undone. Requires a valid wiki page ID.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro wiki page ID to delete. Use syncro_list_wiki_pages to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro wiki page ID. Use syncro_list_wiki_pages to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with wiki page fields to update. Example: {"name":"Updated title","body":"# New content","visibility":"public"}. Field names must match the Syncro API.
idintegeryesThe Syncro wiki page ID to update. Use syncro_list_wiki_pages to find valid IDs.

Canned Responses

ToolPlanAccessSummary
syncro_create_canned_responseProWriteCreate a new canned response template.
syncro_delete_canned_responseProDestructivePermanently delete a canned response by ID.
syncro_get_canned_response_settingsFreeRead-onlyRetrieve the account's canned response settings, including available categories and any account-wide configuration used when listing or creating canned responses.
syncro_list_canned_responsesFreeRead-onlyList canned responses (pre-written reply templates used on tickets).
syncro_update_canned_responseProWriteUpdate an existing canned response by ID via PATCH.

[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.

ParamTypeRequiredDefaultDescription
bodystringyesBody content of the canned response (ticket comment text). Required.
cannedResponseCategoryIdintegernonullOptional canned response category ID to group this response under. Use syncro_get_canned_response_settings to discover available categories.
fieldsJsonstringnonullOptional JSON object with additional fields. Example: {"private":true}. Field names must match the Syncro API.
subjectstringnonullOptional default subject line applied when the canned response is used.
titlestringyesTitle/name of the canned response (used in the picker UI). Required.

[Syncro] Permanently delete a canned response by ID. This action cannot be undone. Requires a valid canned response ID.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro canned response ID to delete. Use syncro_list_canned_responses to find valid IDs.

[Syncro] List canned responses (pre-written reply templates used on tickets). Supports optional free-text search. Returns id, title, subject, body, category, and metadata.

ParamTypeRequiredDefaultDescription
querystringnonullOptional free-text search matched against title/body of canned responses.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with canned response fields to update. Example: {"title":"Updated title","body":"New content"}. Field names must match the Syncro API.
idintegeryesThe Syncro canned response ID to update. Use syncro_list_canned_responses to find valid IDs.

Users

ToolPlanAccessSummary
syncro_get_current_userFreeRead-onlyRetrieve information about the user backing the current API token (the `/me` endpoint).
syncro_get_userFreeRead-onlyRetrieve full details for a single internal user by ID, including email, role, and profile fields.
syncro_list_usersFreeRead-onlyList internal Syncro users (technicians/staff, NOT portal/customer users).

[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] 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).

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro user ID. Use syncro_list_users to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

Portal Users

ToolPlanAccessSummary
syncro_create_portal_userProWriteCreate a new portal user (customer-facing client portal login).
syncro_delete_portal_userProDestructivePermanently delete a portal user by ID, revoking their ability to sign into the client portal.
syncro_invite_portal_userProDestructiveSend an invitation email to an existing portal user.
syncro_list_portal_usersFreeRead-onlyList portal users (customer-facing logins for the client portal, NOT internal Syncro staff).
syncro_update_portal_userProWriteUpdate an existing portal user by ID.

[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.

ParamTypeRequiredDefaultDescription
contactIdintegeryesThe Syncro contact ID to associate with this portal login. Required. Use syncro_list_contacts to find valid IDs.
customerIdintegeryesThe Syncro customer ID the portal user belongs to. Required. Use syncro_list_customers to find valid IDs.
emailstringyesLogin email address for the portal user. Required.
fieldsJsonstringnonullOptional JSON object with additional portal user fields. Example: {"first_name":"Jane","last_name":"Doe"}. Field names must match the Syncro API.
passwordstringyesInitial password for the portal user. Required.
passwordConfirmationstringnonullOptional password confirmation. Typically should match password; some deployments require it.
portalGroupIdintegernonullOptional portal group ID to assign the user to.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro portal user ID to delete. Use syncro_list_portal_users to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
idintegeryesThe Syncro portal user ID to invite. Required. Use syncro_list_portal_users to find valid IDs.

[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.

ParamTypeRequiredDefaultDescription
customerIdintegernonullFilter portal users to a single customer by Syncro customer ID.
emailstringnonullFilter portal users by email address.
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with portal user fields to update. Example: {"email":"new@example.com","portal_group_id":7}. Field names must match the Syncro API.
idintegeryesThe Syncro portal user ID to update. Use syncro_list_portal_users to find valid IDs.

User Devices

ToolPlanAccessSummary
syncro_create_user_deviceProWriteRegister a new mobile user device (typically called by the Syncro mobile app on install).
syncro_get_user_deviceFreeRead-onlyRetrieve a registered mobile user device by its UUID.
syncro_update_user_deviceProWriteUpdate a registered mobile user device by UUID.

[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.

ParamTypeRequiredDefaultDescription
deviceNamestringyesHuman-readable device name (e.g. "Jane's iPhone 15"). Required.
deviceUuidstringyesUnique identifier (UUID) for the mobile device. Required.
fieldsJsonstringnonullOptional JSON object with additional device fields. Field names must match the Syncro API.
modelstringnonullOptional device model string (e.g. 'iPhone15,3').
registrationTokenGcmstringnonullOptional push notification token (Google Cloud Messaging / Firebase Cloud Messaging).
screenSizestringnonullOptional screen size descriptor (e.g. '6.1 inch', '2556x1179').
systemNamestringnonullOptional operating system name (e.g. 'iOS', 'Android').

[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).

ParamTypeRequiredDefaultDescription
idstringyesThe Syncro user device UUID (string, not integer).

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with user device fields to update. Example: {"registration_token_gcm":"new-fcm-token"}. Field names must match the Syncro API.
idstringyesThe Syncro user device UUID to update (string, not integer).

Timelogs

ToolPlanAccessSummary
syncro_get_last_timelogFreeRead-onlyRetrieve the most recent timelog entry, optionally scoped to a single user by user_id.
syncro_list_timelogsFreeRead-onlyList timelog entries (clock-in/clock-out records for Syncro users).
syncro_update_timelogProDestructiveUpdate the currently-active timelog for the API token's user.

[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.

ParamTypeRequiredDefaultDescription
userIdintegernonullOptional Syncro user ID to scope the lookup to a single technician.

[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.

ParamTypeRequiredDefaultDescription
pageintegerno1Page number (default 1). Increment to retrieve subsequent pages.
userIdintegernonullFilter timelogs to a specific Syncro user (technician) by user ID. Omit to list across all users.

[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.

ParamTypeRequiredDefaultDescription
inAtstringnonullOptional clock-in timestamp (ISO 8601).
inNotestringnonullOptional note to attach to the clock-in.
lunchbooleannonullOptional lunch flag for the timelog entry.
outAtstringnonullOptional clock-out timestamp (ISO 8601).
outNotestringnonullOptional note to attach to the clock-out.
ToolPlanAccessSummary
syncro_caller_lookupFreeRead-onlyLook up caller information by Dialed Identification Number (phone number).
syncro_get_account_settingsFreeRead-onlyRetrieve account-wide settings including customer_fields, asset_type_fields, ticket_type_fields, business_hours, and other tenant-level configuration.
syncro_get_printing_settingsFreeRead-onlyRetrieve printing configuration for this Syncro account, including registered print registers and the messaging_channel used to dispatch print jobs.
syncro_get_tabs_settingsFreeRead-onlyRetrieve which product modules/tabs are enabled on this Syncro account (e.g. MSP dashboard, assets, alerts, contracts, point-of-sale).
syncro_searchFreeRead-onlyRun a global cross-entity search against the Syncro account.

[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.

ParamTypeRequiredDefaultDescription
didstringyesThe Dialed Identification Number (phone number) to look up. Required.
outboundbooleannonullOptional flag indicating the call is outbound rather than inbound.

[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] 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] 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.

ParamTypeRequiredDefaultDescription
querystringyesFree-text query to search across customers, tickets, assets, invoices, etc. Required.