Synchroteam MCP by usefulapi

Read Synchroteam jobs, customers, sites, equipment and parts; create, schedule and complete jobs.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
97%
Vollständigkeit des Schemas
90%
Qualität der Benennung
100%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~9,794Tokens (Tool-Definitionen)
~2.6 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (7.65% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "synchroteam": {
      "url": "https://synchroteam.usefulapi.io/mcp"
    }
  }
}

Remote-Endpunkte

https://synchroteam.usefulapi.io/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (33)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet33 Tools