Integration

TOPdesk integration

TOPdesk is an IT and facility service management (service desk) platform. Create, read and update incidents by id or number, read their progress trail, actions, requests, images and attachments, upload and download attachments, register time spent, escalate, de-escalate and archive them, and read the lookup lists incidents use (categories, call types, priorities, statuses, operators, groups, SLAs). Manage the supporting files (persons, person groups, operators, operator groups, branches, locations, departments, budget holders) and read suppliers, and list, create, archive and rate knowledge items. Change management, assets, reservations, self-service (requester) routes, session login and knowledge base folders are not exposed. Authentication is HTTP Basic with an operator login name and an application token (TOPdesk: My Settings, Application tokens); tenant is the first part of the yourcompany.topdesk.net address.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in TOPdesk.Built from the 118 TOPdesk tools below, on the connection you add once.

What you can do with TOPdesk

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Id, 11 operations

  • get_branchGet branchGETReturns one branch with its address, contact details, branch type, specifications and optional fields.
  • get_emailGet emailGETReturns one email sent or received on an incident, change or change activity: sender, recipients, subject, body and attachments.
  • get_incidentGet incidentGETReturns one incident by its id: number, caller, descriptions, category, priority, operator and group, status, dates, SLA, escalation and costs.
  • get_locationGet locationGETReturns one location with its branch, room number, type, functional use, capacity, building zone, area and status.
  • get_operatorGet operatorGETReturns one operator with contact details, branch, login name, tasks, access roles and optional fields.
  • get_operator_groupGet operator groupGETReturns one operator group with its branch, location, contact details and the tasks the group performs.
  • update_branchUpdate branchPATCHUpdates a branch: only the fields sent change.
  • update_incidentUpdate incidentPATCHUpdates an incident by id: only the fields sent change. Sending action adds an action (a new progress trail entry).
  • update_locationUpdate locationPATCHUpdates a location: only the fields sent change.
  • update_operatorUpdate operatorPATCHUpdates an operator: only the fields sent change.
  • update_operator_groupUpdate operator groupPATCHUpdates an operator group: only the fields sent change.

Lookup, 11 operations

  • list_incident_callersList incident callersGETLists persons who can be the caller of an incident (only persons marked as callers), with their id and name for callerLookup.
  • list_incident_operator_groupsList incident operator groupsGETLists the operator groups an incident can be assigned to, with id and name for operatorGroup.
  • list_incident_operatorsList incident operatorsGETLists the operators an incident can be assigned to, with id and name for operator.
  • list_service_windowsList service windowsGETLists the service windows (id and name), optionally filtered by name.
  • lookup_branchesLookup branchesGETReturns branch id and name pairs, optionally filtered by name, for fields that reference a branch.
  • lookup_locationsLookup locationsGETReturns location id and name pairs, optionally filtered by name or branch, for fields that reference a location.
  • lookup_operator_groupsLookup operator groupsGETReturns operator group id and name pairs, optionally filtered by name, for fields that reference an operator group.
  • lookup_operatorsLookup operatorsGETReturns operator id and name pairs, optionally filtered by name, for fields that reference an operator.
  • lookup_person_groupsLookup person groupsGETReturns person group id and name pairs, optionally filtered by name, for fields that reference a person group.
  • lookup_personsLookup personsGETReturns person id and name pairs, optionally filtered by name, for fields that reference a person.
  • lookup_suppliersLookup suppliersGETReturns supplier id and name pairs, optionally filtered by name, for fields that reference a supplier.

Archive, 7 operations

  • archive_branchArchive branchPATCHArchives a branch, with an archiving reason.
  • archive_incidentArchive incidentPUTArchives an incident (and its partial incidents), with an archiving reason by id or name when no default is set.
  • archive_knowledge_itemArchive knowledge itemPOSTArchives a knowledge item; an already archived item stays as it is.
  • archive_locationArchive locationPATCHArchives a location, with an archiving reason.
  • archive_operatorArchive operatorPATCHArchives an operator (not oneself or an administrator), with an archiving reason.
  • archive_operator_groupArchive operator groupPATCHArchives an operator group, with an archiving reason.
  • archive_personArchive personPATCHArchives a person and its linked operator, if there is one, with an archiving reason.

Unarchive, 7 operations

  • unarchive_branchUnarchive branchPATCHUnarchives an archived branch.
  • unarchive_incidentUnarchive incidentPUTUnarchives an archived incident; unarchive_partials also unarchives its partial incidents.
  • unarchive_knowledge_itemUnarchive knowledge itemPOSTUnarchives a knowledge item, unless its parent folder is archived.
  • unarchive_locationUnarchive locationPATCHUnarchives an archived location.
  • unarchive_operatorUnarchive operatorPATCHUnarchives an operator and its linked person, if there is one.
  • unarchive_operator_groupUnarchive operator groupPATCHUnarchives an archived operator group.
  • unarchive_personUnarchive personPATCHUnarchives an archived person.

Operatorgroup, 5 operations

  • create_operator_groupCreate operator groupPOSTCreates an operator group: group name, branch, contact details and access roles.
  • link_operator_groups_to_operatorLink operator groups to operatorPOSTAdds an operator to operator groups, given as a list of group ids.
  • list_operator_groupsList operator groupsGETLists operator groups with their branch, contact details and the tasks the group performs, filtered with a FIQL query and paged.
  • list_operator_operator_groupsList operator operator groupsGETLists the operator groups an operator belongs to (id and name).
  • unlink_operator_groups_from_operatorUnlink operator groups from operatorDELETERemoves an operator from operator groups, given as a list of group ids.

Person, 5 operations

  • create_personCreate personPOSTCreates a person: surname, first name, email, phone, branch, department, job title, caller and manager roles, and optional fields.
  • get_personGet personGETReturns one person with contact details, branch, location, department, budget holder, manager, roles and optional fields.
  • list_person_group_membersList person group membersGETLists the persons that are members of a person group, paged.
  • list_personsList personsGETLists persons (employees, customers and callers) with contact details, branch, department and roles, filtered with a FIQL query and paged.
  • update_personUpdate personPATCHUpdates a person: only the fields sent change.

Persongroup, 5 operations

  • create_person_groupCreate person groupPOSTCreates a person group: name, branch, location, department, budget holder, contact person and contact details.
  • get_person_groupGet person groupGETReturns one person group with its branch, contact details and optional fields.
  • list_person_groupsList person groupsGETLists person groups with their branch and contact details, filtered with a FIQL query and paged.
  • list_person_person_groupsList person person groupsGETLists the person groups a person belongs to, paged.
  • update_person_groupUpdate person groupPATCHUpdates a person group: only the fields sent change.

Attachment, 4 operations

  • delete_incident_attachmentDelete incident attachmentDELETEDeletes an attachment from an incident.
  • list_incident_attachmentsList incident attachmentsGETLists the attachments of an incident: file name, size, description, who added it, when, and its download URL.
  • list_knowledge_item_attachmentsList knowledge item attachmentsGETLists the attachments of a knowledge item: file name, description, size, upload date and uploader.
  • upload_incident_attachmentUpload incident attachmentPOSTUploads a file to an incident as an attachment, with an optional description and visibility for the caller.

Branch, 3 operations

  • create_branchCreate branchPOSTCreates a branch: name, client reference number, address, phone, email, website, branch type and optional fields.
  • list_branchesList branchesGETLists branches (sites of the organisation) with address, contact details and specifications, filtered with a FIQL query.
  • list_knowledge_item_branchesList knowledge item branchesGETLists the branches a knowledge item is linked to (id and name).

Knowledge item, 3 operations

  • create_knowledge_itemCreate knowledge itemPOSTCreates a knowledge item from a translation (language and title are required), status, manager and parent; where folders are in use the parent is a folder.
  • get_knowledge_itemGet knowledge itemGETReturns one knowledge item by id or number (for example KI 0080): translation (title and content), visibility, status, manager and URLs.
  • list_knowledge_itemsList knowledge itemsGETLists knowledge base items in one language (first 100 by number by default), filtered with a FIQL query; fields selects extra fields.

Operator, 3 operations

  • create_operatorCreate operatorPOSTCreates an operator: name, email, branch, login name, the tasks it may perform and other details.
  • list_operator_group_membersList operator group membersGETLists the operators that are members of an operator group (id and name).
  • list_operatorsList operatorsGETLists operators (service desk staff accounts) with contact details, branch, tasks and permissions, filtered with a FIQL query.

Action, 2 operations

  • list_incident_actionsList incident actionsGETLists the actions (operator and caller replies) of an incident by id, paged with start and page_size.
  • list_incident_actions_by_numberList incident actions by numberGETLists the actions (operator and caller replies) of an incident by its number, paged with start and page_size.

Budgetholder, 2 operations

  • create_budget_holderCreate budget holderPOSTCreates a budget holder (cost centre) with the given name and optional external link.
  • list_budget_holdersList budget holdersGETLists the budget holders (cost centres, id and name) that persons can be linked to.

Category, 2 operations

  • list_all_categoriesList all categoriesGETLists the categories and subcategories of all modules: id, name, parent category, the modules using it and translations, paged.
  • list_incident_categoriesList incident categoriesGETLists the incident categories (id and name) to use in an incident's category.

Department, 2 operations

  • create_departmentCreate departmentPOSTCreates a department with the given name and optional external link.
  • list_departmentsList departmentsGETLists the departments (id and name) that persons can belong to.

Incident, 2 operations

  • create_incidentCreate incidentPOSTCreates an incident: caller, brief description, request text, category, call type, impact, urgency, operator or group, status and more. Returns the new incident with its number.
  • list_incidentsList incidentsGETLists incidents the operator may see (first and second line by default; all=true adds partials and archived), filtered with a FIQL query, sorted and paged.

Location, 2 operations

  • create_locationCreate locationPOSTCreates a location in a branch: name, room number, type, functional use, capacity, building zone, room status and optional fields.
  • list_locationsList locationsGETLists locations (rooms and spaces of branches) with room number, type, functional use, capacity, building zone and status, filtered with FIQL.

Number, 2 operations

  • get_incident_by_numberGet incident by numberGETReturns one incident by its number (for example I 2011 007), with the same fields as get_incident.
  • update_incident_by_numberUpdate incident by numberPATCHUpdates an incident by its number (for example I 2011 007): only the fields sent change.

Progresstrail, 2 operations

  • get_incident_progress_trailGet incident progress trailGETReturns the progress trail of an incident by id: actions, requests, emails and attachments in order, paged with start and page_size (at most 100).
  • get_incident_progress_trail_by_numberGet incident progress trail by numberGETReturns the progress trail of an incident by its number, paged with start and page_size (at most 100).

Supplier, 2 operations

  • get_supplierGet supplierGETReturns one supplier: name, address, phone, email, website, main contact, the processes it serves and optional fields.
  • list_suppliersList suppliersGETLists suppliers (id and name) and which processes each serves (first or second line incidents, services, operations, changes), filtered with FIQL.

Supplier contact, 2 operations

  • get_supplier_contactGet supplier contactGETReturns one supplier contact with name, supplier, branch and contact details.
  • list_supplier_contactsList supplier contactsGETLists supplier contacts (people at suppliers) with their supplier and contact details, filtered with a FIQL query.

Timeregistration, 2 operations

  • get_time_registrationGet time registrationGETReturns one time registration: incident, minutes, operator, group, reason, notes and dates.
  • list_time_registrationsList time registrationsGETLists time registrations across incidents (first and second line by default), filtered with a FIQL query and paged.

Timespent, 2 operations

  • list_incident_time_spentList incident time spentGETLists the time registrations of one incident: minutes, operator, group, reason, notes and entry date.
  • register_incident_time_spentRegister incident time spentPOSTRegisters time spent on an incident, in minutes, with optional notes, entry date, operator, group and reason. Needs the time registration feature.

Archiving reason, 1 operation

  • list_archiving_reasonsList archiving reasonsGETLists the reasons (id and name) that can be given when archiving a record.

Call type, 1 operation

  • list_incident_call_typesList incident call typesGETLists the incident call types (id and name) to use in an incident's callType.

Closure code, 1 operation

  • list_incident_closure_codesList incident closure codesGETLists the incident closure codes (id and name) to use in an incident's closureCode.

Count, 1 operation

  • count_personsCount personsGETReturns the number of persons, optionally only those matching a FIQL query.

Country, 1 operation

  • list_countriesList countriesGETLists the countries (id and name) used in addresses.

Current, 1 operation

  • get_current_operatorGet current operatorGETReturns the operator behind the credential: name, contact details, branch, tasks and permissions.

Deescalate, 1 operation

  • deescalate_incidentDeescalate incidentPUTDe-escalates a second line incident back to first line, with a reason by id or name when required.

Deescalation reason, 1 operation

  • list_deescalation_reasonsList deescalation reasonsGETLists the reasons that can be given when de-escalating an incident (needs the escalation feature).

Download, 1 operation

  • download_incident_attachmentDownload incident attachmentGETDownloads one attachment of an incident as a file.

Duration, 1 operation

  • list_incident_durationsList incident durationsGETLists the incident durations (id, name, number of basic periods and time span type) for an incident's duration.

Entry type, 1 operation

  • list_incident_entry_typesList incident entry typesGETLists the incident entry types (id and name), for example e-mail or telephone, to use in entryType.

Escalate, 1 operation

  • escalate_incidentEscalate incidentPUTEscalates a first line incident to second line, with a reason by id or name when the settings require one. Needs the escalation feature.

Escalation reason, 1 operation

  • list_escalation_reasonsList escalation reasonsGETLists the reasons that can be given when escalating an incident (needs the escalation feature).

Give feedback, 1 operation

  • give_knowledge_item_feedbackGive knowledge item feedbackPOSTRecords feedback on a knowledge item: whether it answered the question (questionAnswered) and an optional feedback text.

Image, 1 operation

  • list_incident_imagesList incident imagesGETLists the images of an incident: file name, original file name, size, entry date and download URL.

Impact, 1 operation

  • list_incident_impactsList incident impactsGETLists the incident impacts (id and name) to use in an incident's impact.

Knowledge item status, 1 operation

  • list_knowledge_item_statusesList knowledge item statusesGETLists the statuses a knowledge item can have (id and name).

Language, 1 operation

  • list_languagesList languagesGETLists the languages (id, name and language code) available for persons and operators.

Permissiongroup, 1 operation

  • list_permission_groupsList permission groupsGETLists the permission groups (id and name) operators can be linked to.

Priority, 1 operation

  • list_incident_prioritiesList incident prioritiesGETLists the incident priorities (id, name, first and second line durations) for an incident's priority.

Product version, 1 operation

  • get_product_versionGet product versionGETReturns the TOPdesk product version (major, minor and patch numbers).

Request, 1 operation

  • list_incident_requestsList incident requestsGETLists the requests (the caller's request texts) of an incident by id, paged with start and page_size.

Searchlist, 1 operation

  • list_incident_optional_field_valuesList incident optional field valuesGETLists the values of one optional drop-down field of incidents (tab 1 or 2, search list 1 to 5) for optionalFields1 or optionalFields2.

Service, 1 operation

  • list_sla_servicesList sla servicesGETLists the services (id and name) that SLAs belong to.

Sla, 1 operation

  • list_incident_slasList incident slasGETLists the SLA services that can be linked to an incident, filtered by caller, branch, object, service and more.

Status, 1 operation

  • list_incident_statusesList incident statusesGETLists the incident processing statuses: id, name, whether it puts the incident on hold, its processing state and whether it counts as a response.

Subcategory, 1 operation

  • list_incident_subcategoriesList incident subcategoriesGETLists the incident subcategories with the category each belongs to, for an incident's subcategory.

Timespent reason, 1 operation

  • list_timespent_reasonsList timespent reasonsGETLists the reasons (id and name) that can be given when registering time spent.

Urgency, 1 operation

  • list_incident_urgenciesList incident urgenciesGETLists the incident urgencies (id and name) to use in an incident's urgency.

Version, 1 operation

  • get_api_versionGet api versionGETReturns the version of the TOPdesk REST API.

Use TOPdesk from Claude Code, Cursor or Codex

Connect TOPdesk in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its TOPdesk operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect TOPdesk

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect TOPdesk once

    Add your TOPdesk connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

TOPdesk integration FAQ

What can you do with the TOPdesk integration?

LiveContext exposes 118 operations on TOPdesk, covering id, lookup, archive and unarchive.

Popular integrations

Browse the whole catalog