Synchroteam MCP by usefulapi
Read Synchroteam jobs, customers, sites, equipment and parts; create, schedule and complete jobs.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"synchroteam": {
"url": "https://synchroteam.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://synchroteam.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (33)
🟢synchroteam_list_customers(name, email, active, changed_since, sort, ...)
List or search customers (name wildcard, e-mail, active flag, change time). Returns name, address, contact, custom fields, tags. GET /customer/list.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"description": "Wildcard name search.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"email": {
"description": "Exact contact e-mail.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"active": {
"description": "Active customers (default true); false lists deactivated ones.",
"type": "boolean"
},
"changed_since": {
"description": "Only customers modified after this UTC date-time.",
"type": "string"
},
"sort": {
"type": "string",
"enum": [
"name",
"dateModified",
"dateCreated",
"myId"
]
},
"sort_order": {
"description": "Sort order (default ascending; invoices and quotations default to descending).",
"type": "string",
"enum": [
"ascending",
"descending"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_get_customer(by, value)
One customer by id, myId, exact name or e-mail, with address, contact, custom fields and tags. GET /customer/details.
Esquema de entrada
{
"type": "object",
"properties": {
"by": {
"type": "string",
"enum": [
"id",
"myId",
"name",
"email"
],
"description": "Which identifier `value` is."
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The identifier."
}
},
"required": [
"by",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_list_sites(name, customer_id, customer_my_id, active, changed_since, ...)
List or search sites (a customer's locations): by name, customer, active flag, change time. GET /site/list.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"description": "Wildcard name search.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"customer_id": {
"description": "Only sites of this customer id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"customer_my_id": {
"description": "Only sites of the customer with this myId.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"active": {
"description": "Active sites (default true).",
"type": "boolean"
},
"changed_since": {
"description": "Only sites modified after this UTC date-time.",
"type": "string"
},
"sort": {
"type": "string",
"enum": [
"name",
"dateModified",
"dateCreated",
"myId"
]
},
"sort_order": {
"description": "Sort order (default ascending; invoices and quotations default to descending).",
"type": "string",
"enum": [
"ascending",
"descending"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_get_site(by, value)
One site by id, myId or exact name: address, contact, customer, custom fields, tags. GET /site/details.
Esquema de entrada
{
"type": "object",
"properties": {
"by": {
"type": "string",
"enum": [
"id",
"myId",
"name"
],
"description": "Which identifier `value` is."
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The identifier."
}
},
"required": [
"by",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_list_equipment(name, customer_id, customer_my_id, site_id, site_my_id, ...)
List or search pieces of equipment (assets) by name, customer, site, active flag, change time. GET /equipment/list.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"description": "Wildcard name search.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"customer_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"site_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"site_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"active": {
"description": "Active equipment (default true).",
"type": "boolean"
},
"changed_since": {
"description": "Only equipment modified after this UTC date-time.",
"type": "string"
},
"sort": {
"type": "string",
"enum": [
"name",
"dateModified",
"dateCreated",
"myId"
]
},
"sort_order": {
"description": "Sort order (default ascending; invoices and quotations default to descending).",
"type": "string",
"enum": [
"ascending",
"descending"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_get_equipment(by, value)
One piece of equipment by id, myId or exact name, with its customer and site. GET /equipment/details.
Esquema de entrada
{
"type": "object",
"properties": {
"by": {
"type": "string",
"enum": [
"id",
"myId",
"name"
],
"description": "Which identifier `value` is."
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The identifier."
}
},
"required": [
"by",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_list_jobs(status, date_from, date_to, created_since, changed_since, ...)
List jobs (simplified: no report, parts or time entries) filtered by status, schedule window, technician, team, customer, site, equipment, job type or project. Use synchroteam_get_job for the full record. GET /job/list.
Esquema de entrada
{
"type": "object",
"properties": {
"status": {
"description": "One or more job statuses.",
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"enum": [
"created",
"scheduled",
"synchronized",
"started",
"paused",
"completed",
"validated",
"cancelled"
]
}
},
"date_from": {
"description": "Jobs planned, ongoing or completed on or after this date-time.",
"type": "string"
},
"date_to": {
"description": "Jobs planned, ongoing or completed on or before this date-time.",
"type": "string"
},
"created_since": {
"description": "Jobs created on or after this date-time.",
"type": "string"
},
"changed_since": {
"description": "Jobs modified on or after this date-time.",
"type": "string"
},
"validated_since": {
"description": "Jobs validated on or after this date-time.",
"type": "string"
},
"my_id": {
"description": "Exact job myId.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"user_login": {
"description": "Technician login.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"user_id": {
"description": "Technician user id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"team_id": {
"description": "Jobs of technicians in this team id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"customer_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"site_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"site_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"equipment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"equipment_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"type_id": {
"description": "Job type id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"type_name": {
"description": "Job type name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"project_id": {
"description": "Project id.",
"type": "string",
"minLength": 1,
"maxLength": 80
},
"has_photos": {
"description": "Only jobs that have (true) or lack (false) photos.",
"type": "boolean"
},
"sort": {
"type": "string",
"enum": [
"num",
"scheduledstart",
"scheduledend",
"actualstart",
"actualend",
"datemodified"
]
},
"sort_order": {
"description": "Sort order (default ascending; invoices and quotations default to descending).",
"type": "string",
"enum": [
"ascending",
"descending"
]
},
"show": {
"description": "Default active.",
"type": "string",
"enum": [
"active",
"deleted",
"all"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_get_job(by, value)
One job by num (the job number shown in the app), id or myId: status, customer/site/equipment, technician(s), schedule, actual times, time entries, parts used, report and custom fields. GET /job/details.
Esquema de entrada
{
"type": "object",
"properties": {
"by": {
"type": "string",
"enum": [
"num",
"id",
"myId"
],
"description": "Which identifier `value` is."
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "The identifier."
}
},
"required": [
"by",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_get_job_photos(by, value)
Photo links of a job (url, file name, comment, report iteration). Image bytes are never returned. GET /job/photos.
Esquema de entrada
{
"type": "object",
"properties": {
"by": {
"type": "string",
"enum": [
"num",
"id",
"myId"
],
"description": "Which identifier `value` is."
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "The identifier."
}
},
"required": [
"by",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_list_job_types(name, page, page_size)
List job types (name, default duration, priority, skills, default report). Use their id or name when creating a job. GET /jobtype/list.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"description": "Types whose name contains this.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_list_users(team_id, team_name, skilled_trade, show, page, ...)
List users: login, name, profile (technician, manager, administrator), teams, skills, last known location. Passwords are never returned. GET /user/list.
Esquema de entrada
{
"type": "object",
"properties": {
"team_id": {
"description": "Only users of this team id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"team_name": {
"description": "Only users of this team name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"skilled_trade": {
"description": "Only users with this skill.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"show": {
"description": "Default active.",
"type": "string",
"enum": [
"active",
"deleted",
"all"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_get_user(by, value)
One user by login or id. GET /user/details.
Esquema de entrada
{
"type": "object",
"properties": {
"by": {
"type": "string",
"enum": [
"login",
"id"
],
"description": "Which identifier `value` is."
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "The identifier."
}
},
"required": [
"by",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_list_teams(name, show, page, page_size)
List teams with member counts and tags. GET /team/list.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"description": "Teams whose name contains this.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"show": {
"type": "string",
"enum": [
"active",
"deleted",
"all"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_list_parts(category_id, category_name, is_tracked, is_serializable, status, ...)
List the parts and services catalog (reference, name, price, category, tax, tracked/serialized flags, type). GET /part/list.
Esquema de entrada
{
"type": "object",
"properties": {
"category_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"category_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"is_tracked": {
"description": "Only parts tracked (true) or not tracked (false) in inventory.",
"type": "boolean"
},
"is_serializable": {
"type": "boolean"
},
"status": {
"type": "string",
"enum": [
"active",
"inactive"
]
},
"type": {
"type": "string",
"enum": [
"part",
"service",
"travel",
"other"
]
},
"changed_since": {
"description": "Only parts modified after this UTC date-time.",
"type": "string"
},
"sort": {
"type": "string",
"enum": [
"name",
"reference",
"category"
]
},
"sort_order": {
"description": "Sort order (default ascending; invoices and quotations default to descending).",
"type": "string",
"enum": [
"ascending",
"descending"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_get_part(by, value)
One part or service by id or reference. GET /part/details.
Esquema de entrada
{
"type": "object",
"properties": {
"by": {
"type": "string",
"enum": [
"id",
"reference"
],
"description": "Which identifier `value` is."
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "The identifier."
}
},
"required": [
"by",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_list_depots(name, is_provider, is_default, sort, sort_order, ...)
List stock depots (warehouses and technician vans). The part quantities of one depot come from synchroteam_get_depot. GET /depot/list.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"description": "Wildcard name search.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"is_provider": {
"description": "Only depots that are (true) or are not (false) providers.",
"type": "boolean"
},
"is_default": {
"type": "boolean"
},
"sort": {
"type": "string",
"enum": [
"name",
"isProvider"
]
},
"sort_order": {
"description": "Sort order (default ascending; invoices and quotations default to descending).",
"type": "string",
"enum": [
"ascending",
"descending"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_get_depot(id)
One stock depot by id, with the quantity of each part it holds. GET /depot/details.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Depot id (a GUID from synchroteam_list_depots)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_list_part_requests(is_urgent, is_sent, is_complete, is_deleted, created_since, ...)
List technicians' part requests (urgent, sent, completed, deleted flags). GET /partrequest/list.
Esquema de entrada
{
"type": "object",
"properties": {
"is_urgent": {
"type": "boolean"
},
"is_sent": {
"type": "boolean"
},
"is_complete": {
"type": "boolean"
},
"is_deleted": {
"type": "boolean"
},
"created_since": {
"type": "string",
"description": "Date-time as yyyy-mm-dd hh:mm:ss (a date alone means midnight). No timezone conversion is applied."
},
"changed_since": {
"type": "string",
"description": "Date-time as yyyy-mm-dd hh:mm:ss (a date alone means midnight). No timezone conversion is applied."
},
"sort_order": {
"description": "Sort order (default ascending; invoices and quotations default to descending).",
"type": "string",
"enum": [
"ascending",
"descending"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_list_invoices(status, customer_id, customer_my_id, site_id, site_my_id, ...)
List invoices (read only): number, status, customer, job, lines, totals. Filter by status, customer, site, job or time. GET /invoice/list.
Esquema de entrada
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"draft",
"new",
"sent",
"late",
"paid",
"cancelled"
]
},
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"customer_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"site_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"site_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"job_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"job_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"job_num": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"created_since": {
"type": "string",
"description": "Date-time as yyyy-mm-dd hh:mm:ss (a date alone means midnight). No timezone conversion is applied."
},
"changed_since": {
"type": "string",
"description": "Date-time as yyyy-mm-dd hh:mm:ss (a date alone means midnight). No timezone conversion is applied."
},
"paid_since": {
"type": "string",
"description": "Date-time as yyyy-mm-dd hh:mm:ss (a date alone means midnight). No timezone conversion is applied."
},
"sort_order": {
"description": "Sort order (default ascending; invoices and quotations default to descending).",
"type": "string",
"enum": [
"ascending",
"descending"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_get_invoice(by, value)
One invoice by id, reference or number, with its lines. GET /invoice/details.
Esquema de entrada
{
"type": "object",
"properties": {
"by": {
"type": "string",
"enum": [
"id",
"reference",
"num"
],
"description": "Which identifier `value` is."
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "The identifier."
}
},
"required": [
"by",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_list_quotations(status, customer_id, customer_my_id, site_id, site_my_id, ...)
List quotations (read only): number, status, customer, job, lines, totals. GET /quotation/list.
Esquema de entrada
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"draft",
"new",
"sent",
"accepted"
]
},
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"customer_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"site_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"site_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"job_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"job_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"job_num": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"created_since": {
"type": "string",
"description": "Date-time as yyyy-mm-dd hh:mm:ss (a date alone means midnight). No timezone conversion is applied."
},
"changed_since": {
"type": "string",
"description": "Date-time as yyyy-mm-dd hh:mm:ss (a date alone means midnight). No timezone conversion is applied."
},
"sort_order": {
"description": "Sort order (default ascending; invoices and quotations default to descending).",
"type": "string",
"enum": [
"ascending",
"descending"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_get_quotation(by, value)
One quotation by id, reference or number, with its lines. GET /quotation/details.
Esquema de entrada
{
"type": "object",
"properties": {
"by": {
"type": "string",
"enum": [
"id",
"reference",
"num"
],
"description": "Which identifier `value` is."
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "The identifier."
}
},
"required": [
"by",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_list_contracts(name, customer_id, customer_my_id, site_id, site_my_id, ...)
List service contracts by name, customer, site, period or active flag. GET /contract/list.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"customer_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"site_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"site_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"start": {
"description": "Contracts on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"end": {
"description": "Contracts on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"active": {
"description": "Active contracts (default true).",
"type": "boolean"
},
"sort": {
"type": "string",
"enum": [
"num",
"start",
"end",
"datemodified"
]
},
"sort_order": {
"description": "Sort order (default ascending; invoices and quotations default to descending).",
"type": "string",
"enum": [
"ascending",
"descending"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_list_projects(customer_id, customer_my_id, site_id, site_my_id, equipment_id, ...)
List projects (groups of jobs) by customer, site, equipment or project type. GET /project/list.
Esquema de entrada
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"customer_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"site_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"site_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"equipment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"equipment_my_id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"type_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"type_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"sort_order": {
"description": "Sort order (default ascending; invoices and quotations default to descending).",
"type": "string",
"enum": [
"ascending",
"descending"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢synchroteam_list_activities(start_date, end_date, activity_type_name, activity_type_category, user_id, ...)
List time entries and unavailabilities (travel, at work, clock, unavailable) of technicians. start_date and end_date go together and return anything overlapping that range. GET /activity/list.
Esquema de entrada
{
"type": "object",
"properties": {
"start_date": {
"description": "Range start (requires end_date).",
"type": "string"
},
"end_date": {
"description": "Range end (requires start_date).",
"type": "string"
},
"activity_type_name": {
"description": "Exact activity type name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"activity_type_category": {
"type": "string",
"enum": [
"unavailability",
"atwork",
"travel",
"clock"
]
},
"user_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"user_login": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"team_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"sort": {
"type": "string",
"enum": [
"startDate",
"endDate",
"activityType_name",
"user_login"
]
},
"sort_order": {
"description": "Sort order (default ascending; invoices and quotations default to descending).",
"type": "string",
"enum": [
"ascending",
"descending"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴synchroteam_create_customer(name, address, addressComplement, my_id, contact_first_name, ...)
WRITE: create a new customer (name and an address are required). If you pass myId and a customer with that myId already exists, nothing is created and an error is returned (use synchroteam_update_customer). POST /customer/send.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Customer name."
},
"address": {
"description": "Full address on one line (e.g. '6605 Fisher Avenue, Falls Church, VA 22046, United States').",
"type": "string",
"minLength": 1,
"maxLength": 400
},
"addressComplement": {
"description": "Complementary address line (unit, floor...).",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"my_id": {
"description": "Your own reference for this customer.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"contact_first_name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"contact_last_name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"contact_email": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"contact_phone": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"contact_fax": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"vat_number": {
"type": "string",
"minLength": 1,
"maxLength": 60
}
},
"required": [
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴synchroteam_update_customer(id, name, address, addressComplement, contact_first_name, ...)
WRITE: change fields of an existing customer by its numeric id. Only the fields you pass are changed; nothing is cleared. The customer id must exist (an unknown id fails). POST /customer/send.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Customer id (synchroteam_list_customers)."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"address": {
"description": "Full address on one line (e.g. '6605 Fisher Avenue, Falls Church, VA 22046, United States').",
"type": "string",
"minLength": 1,
"maxLength": 400
},
"addressComplement": {
"description": "Complementary address line (unit, floor...).",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"contact_first_name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"contact_last_name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"contact_email": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"contact_phone": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"contact_fax": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"vat_number": {
"type": "string",
"minLength": 1,
"maxLength": 60
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴synchroteam_create_site(name, address, addressComplement, customer, my_id, ...)
WRITE: create a new site (a location of a customer). Needs a name, an address and the customer (id or myId). If myId already exists nothing is created and an error is returned. POST /site/send.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Site name."
},
"address": {
"description": "Full address on one line (e.g. '6605 Fisher Avenue, Falls Church, VA 22046, United States').",
"type": "string",
"minLength": 1,
"maxLength": 400
},
"addressComplement": {
"description": "Complementary address line (unit, floor...).",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"customer": {
"type": "object",
"properties": {
"id": {
"description": "Synchroteam id.",
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"minLength": 1,
"maxLength": 80
}
]
},
"myId": {
"description": "Your own reference (myId).",
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"description": "The customer: exactly one of id or myId."
},
"my_id": {
"description": "Your own reference for this site.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"contact_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"contact_email": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"contact_phone": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"contact_mobile": {
"type": "string",
"minLength": 1,
"maxLength": 60
}
},
"required": [
"name",
"customer"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴synchroteam_create_equipment(name, site, customer, my_id)
WRITE: create a new piece of equipment under a site or a customer (give exactly one of site or customer; both is refused). If myId already exists nothing is created and an error is returned. POST /equipment/send.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Equipment name."
},
"site": {
"description": "The site: exactly one of id or myId.",
"type": "object",
"properties": {
"id": {
"description": "Synchroteam id.",
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"minLength": 1,
"maxLength": 80
}
]
},
"myId": {
"description": "Your own reference (myId).",
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
"customer": {
"description": "The customer (when there is no site): exactly one of id or myId.",
"type": "object",
"properties": {
"id": {
"description": "Synchroteam id.",
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"minLength": 1,
"maxLength": 80
}
]
},
"myId": {
"description": "Your own reference (myId).",
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
"my_id": {
"description": "Your own reference for this equipment.",
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"required": [
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴synchroteam_create_job(customer, site, equipment, type, description, ...)
WRITE: create a new job for a customer (status created, not yet scheduled; use synchroteam_schedule_job to assign a technician and time). The customer is required (id, myId or exact name); site, equipment and job type are optional. If myId already exists nothing is created and an error is returned. Synchroteam may send the account's 'job created' notifications (email/SMS/webhook, possibly to the customer), as configured. POST /job/send.
Esquema de entrada
{
"type": "object",
"properties": {
"customer": {
"type": "object",
"properties": {
"id": {
"description": "Synchroteam id.",
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"minLength": 1,
"maxLength": 80
}
]
},
"myId": {
"description": "Your own reference (myId).",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"name": {
"description": "Exact name (customers and job types only).",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"description": "The customer: exactly one of id, myId or name."
},
"site": {
"description": "The site: exactly one of id or myId.",
"type": "object",
"properties": {
"id": {
"description": "Synchroteam id.",
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"minLength": 1,
"maxLength": 80
}
]
},
"myId": {
"description": "Your own reference (myId).",
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
"equipment": {
"description": "The equipment: exactly one of id or myId.",
"type": "object",
"properties": {
"id": {
"description": "Synchroteam id.",
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"minLength": 1,
"maxLength": 80
}
]
},
"myId": {
"description": "Your own reference (myId).",
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
"type": {
"description": "Job type: exactly one of id or name (synchroteam_list_job_types).",
"type": "object",
"properties": {
"id": {
"description": "Synchroteam id.",
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"minLength": 1,
"maxLength": 80
}
]
},
"name": {
"description": "Exact name (customers and job types only).",
"type": "string",
"minLength": 1,
"maxLength": 200
}
}
},
"description": {
"description": "Job description.",
"type": "string",
"minLength": 1,
"maxLength": 4000
},
"priority": {
"description": "Default medium.",
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"my_id": {
"description": "Your own reference for this job.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"address": {
"description": "Full address on one line (e.g. '6605 Fisher Avenue, Falls Church, VA 22046, United States').",
"type": "string",
"minLength": 1,
"maxLength": 400
},
"addressComplement": {
"description": "Complementary address line (unit, floor...).",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"contact_first_name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"contact_last_name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"contact_email": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"contact_phone": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"contact_mobile": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"skills": {
"description": "Required skills.",
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
"required": [
"customer"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴synchroteam_schedule_job(id, my_id, num, scheduled_start, scheduled_end, ...)
WRITE: schedule a job for a technician between two times (also re-schedules a scheduled or paused job). Synchroteam may notify technicians and/or customers (email/SMS/webhook) as configured in the account's notification settings (SMS uses the account's paid credits). Identify the job by exactly one of id, my_id or num. POST /job/schedule.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"description": "Job id.",
"type": "string",
"minLength": 1,
"maxLength": 80
},
"my_id": {
"description": "Job myId.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"num": {
"description": "Job number.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"scheduled_start": {
"type": "string",
"description": "Start, yyyy-mm-dd hh:mm:ss."
},
"scheduled_end": {
"type": "string",
"description": "End, yyyy-mm-dd hh:mm:ss (after the start)."
},
"technician": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"login": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"description": "The technician: exactly one of id or login (synchroteam_list_users)."
},
"other_technician_logins": {
"description": "Logins of additional technicians.",
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
"required": [
"scheduled_start",
"scheduled_end",
"technician"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴synchroteam_start_job(id, my_id, num)
WRITE: mark a job as started (status started, actual start now). If the job's technician already has another started job, Synchroteam pauses that one. Starting may trigger the account's 'job started' notifications (email/SMS/webhook to managers, technicians or the customer). Identify the job by exactly one of id, my_id or num. POST /job/start.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"description": "Job id.",
"type": "string",
"minLength": 1,
"maxLength": 80
},
"my_id": {
"description": "Job myId.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"num": {
"description": "Job number.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴synchroteam_complete_job(id, my_id, num, actual_start, actual_end)
WRITE: mark a job as completed, optionally with the real start and end times (give actual_start and actual_end together: Synchroteam may refuse the call with only one of them). Completing may trigger the account's 'job completed' notifications (email/SMS/webhook to managers, technicians or the customer), as configured in Synchroteam. Identify the job by exactly one of id, my_id or num. POST /job/complete.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"description": "Job id.",
"type": "string",
"minLength": 1,
"maxLength": 80
},
"my_id": {
"description": "Job myId.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"num": {
"description": "Job number.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"actual_start": {
"description": "Real start, yyyy-mm-dd hh:mm:ss.",
"type": "string"
},
"actual_end": {
"description": "Real end, yyyy-mm-dd hh:mm:ss.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia