Integration

OneDesk integration

OneDesk combines help desk and project management. An agent can create, read, update and filter work items (tickets, tasks), projects, portfolios, users, customers, customer organizations, teams, timesheets, conversations and their messages, read and update quotes and invoices, start, pause, resume or cancel work timers, upload attachments to items, projects, portfolios and customer organizations, read the recent activity feed (last 30 days) and the organization's item types, lifecycle statuses and profile. Every answer carries a code (SUCCESS or an error code); update tools return that code alone. An error code arrives as a successful call, not as an HTTP error, so check it. There is no delete in the public API. Tools that read work items, users, customers, customer organizations, conversations, messages, projects, timesheets, quotes and invoices return personal data (names, emails, message and ticket text). Authentication is a OneDesk public API key sent in the OD-Public-API-Key header.

Ask it in chat

Say what should happen.
The workflow builds itself.

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

What you can do with OneDesk

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.

External id, 26 operations

  • get_attachment_by_external_idGet attachment by external idGETReturns one attachment by its external id (a UUID, as returned by filter_attachment_ids or create_attachment), with all its details.
  • get_conversation_by_external_idGet conversation by external idGETReturns one conversation by its external id (ending in @conference.im.onedesk.com, as returned by filter_conversation_ids or create_conversation), with all its details. Returns personal data (message text and authors).
  • get_customer_by_external_idGet customer by external idGETReturns one customer by its external id (a UUID, as returned by filter_customer_ids or create_customer), with all its details. Returns personal data (names, emails, phones, postal addresses).
  • get_customer_organization_by_external_idGet customer organization by external idGETReturns one customer organization by its external id (a UUID, as returned by filter_customer_organization_ids or create_customer_organization), with all its details. Returns personal data (billing contact name and email, phone).
  • get_invoice_by_external_idGet invoice by external idGETReturns one invoice by its external id (a UUID, as returned by filter_invoice_ids), with all its details. Returns personal data (billed contact name, email and postal address).
  • get_item_by_external_idGet item by external idGETReturns one work item by its external id (a UUID, as returned by filter_item_ids or create_item), with all its details. Returns personal data (ticket text, names and emails).
  • get_message_by_external_idGet message by external idGETReturns one conversation message by its external id (a UUID, as returned by filter_message_ids or create_message), with all its details. Returns personal data (message text and authors).
  • get_portfolio_by_external_idGet portfolio by external idGETReturns one portfolio by its external id (a UUID, as returned by filter_portfolio_ids or create_portfolio), with all its details.
  • get_project_by_external_idGet project by external idGETReturns one project by its external id (a UUID, as returned by filter_project_ids or create_project), with all its details. Returns personal data (names and emails of authors and followers).
  • get_quote_by_external_idGet quote by external idGETReturns one quote by its external id (a UUID, as returned by filter_quote_ids), with all its details. Returns personal data (billed contact name, email and postal address).
  • get_team_by_external_idGet team by external idGETReturns one team by its external id (a UUID, as returned by filter_team_ids or create_team), with all its details.
  • get_timer_by_external_idGet timer by external idGETReturns one work timer by its external id (a UUID, as returned by filter_timer_ids), with all its details.
  • get_timesheet_by_external_idGet timesheet by external idGETReturns one timesheet by its external id (a UUID, as returned by filter_timesheet_ids or create_timesheet), with all its details. Returns personal data (assignee names and emails).
  • get_user_by_external_idGet user by external idGETReturns one user by its external id (a UUID, as returned by filter_user_ids or create_user), with all its details. Returns personal data (names, emails, phones, postal addresses).
  • update_conversation_by_external_idUpdate conversation by external idPOSTUpdates the fields you send on one conversation, found by its external id. Returns result: SUCCESS, or an error code such as ERROR_INVALID_ID that arrives as a successful call (no HTTP error), so check it.
  • update_customer_by_external_idUpdate customer by external idPOSTUpdates the fields you send on one customer, found by its external id. Returns result: SUCCESS, or an error code such as ERROR_INVALID_ID that arrives as a successful call (no HTTP error), so check it.
  • update_customer_organization_by_external_idUpdate customer organization by external idPOSTUpdates the fields you send on one customer organization, found by its external id. Returns result: SUCCESS, or an error code such as ERROR_INVALID_ID that arrives as a successful call (no HTTP error), so check it.
  • update_invoice_by_external_idUpdate invoice by external idPOSTUpdates the fields you send on one invoice, found by its external id. Returns result: SUCCESS, or an error code such as ERROR_INVALID_ID that arrives as a successful call (no HTTP error), so check it.
  • update_item_by_external_idUpdate item by external idPOSTUpdates the fields you send on one work item, found by its external id. Returns result: SUCCESS, or an error code such as ERROR_CANNOT_FIND_ITEM that arrives as a successful call (no HTTP error), so check it.
  • update_message_by_external_idUpdate message by external idPOSTUpdates the fields you send on one conversation message, found by its external id. Returns result: SUCCESS, or an error code such as ERROR_INVALID_ID that arrives as a successful call (no HTTP error), so check it.
  • update_portfolio_by_external_idUpdate portfolio by external idPOSTUpdates the fields you send on one portfolio, found by its external id. Returns result: SUCCESS, or an error code such as ERROR_INVALID_ID that arrives as a successful call (no HTTP error), so check it.
  • update_project_by_external_idUpdate project by external idPOSTUpdates the fields you send on one project, found by its external id. Returns result: SUCCESS, or an error code such as ERROR_CANNOT_FIND_ITEM that arrives as a successful call (no HTTP error), so check it.
  • update_quote_by_external_idUpdate quote by external idPOSTUpdates the fields you send on one quote, found by its external id. Returns result: SUCCESS, or an error code such as ERROR_INVALID_ID that arrives as a successful call (no HTTP error), so check it.
  • update_team_by_external_idUpdate team by external idPOSTUpdates the fields you send on one team, found by its external id. Returns result: SUCCESS, or an error code such as ERROR_INVALID_ID that arrives as a successful call (no HTTP error), so check it.
  • update_timesheet_by_external_idUpdate timesheet by external idPOSTUpdates the fields you send on one timesheet, found by its external id. Returns result: SUCCESS, or an error code such as ERROR_INVALID_ID that arrives as a successful call (no HTTP error), so check it.
  • update_user_by_external_idUpdate user by external idPOSTUpdates the fields you send on one user, found by its external id. Returns result: SUCCESS, or an error code such as ERROR_INVALID_ID that arrives as a successful call (no HTTP error), so check it.

Detail, 15 operations

  • filter_activitiesFilter activitiesPOSTReturns the activity feed (what changed, on which item or project, by whom) matching your filter conditions, limited to the last 30 days, plus totalNum and which filters were applied or ignored. Up to 50 per page.
  • filter_attachmentsFilter attachmentsPOSTReturns the full details of the attachments matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 50 per page.
  • filter_conversationsFilter conversationsPOSTReturns the full details of the conversations matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 50 per page. Returns personal data (message text and authors).
  • filter_customer_organizationsFilter customer organizationsPOSTReturns the full details of the customer organizations matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 50 per page. Returns personal data (billing contacts).
  • filter_customersFilter customersPOSTReturns the full details of the customers matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 50 per page. Returns personal data (names, emails, phones, postal addresses).
  • filter_invoicesFilter invoicesPOSTReturns the full details of the invoices matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 50 per page. Returns personal data (billed contacts).
  • filter_itemsFilter itemsPOSTReturns the full details of the work items matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 50 per page. Returns personal data (ticket text, names, emails).
  • filter_messagesFilter messagesPOSTReturns the full details of the conversation messages matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 50 per page. Returns personal data (message text and authors).
  • filter_portfoliosFilter portfoliosPOSTReturns the full details of the portfolios matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 50 per page.
  • filter_projectsFilter projectsPOSTReturns the full details of the projects matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 50 per page. Returns personal data (names, emails).
  • filter_quotesFilter quotesPOSTReturns the full details of the quotes matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 50 per page. Returns personal data (billed contacts).
  • filter_teamsFilter teamsPOSTReturns the full details of the teams matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 50 per page.
  • filter_timersFilter timersPOSTReturns the full details of the work timers matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 50 per page.
  • filter_timesheetsFilter timesheetsPOSTReturns the full details of the timesheets matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 50 per page. Returns personal data (assignee names, emails).
  • filter_usersFilter usersPOSTReturns the full details of the users matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 50 per page. Returns personal data (names, emails, phones, postal addresses).

Filter, 14 operations

  • filter_attachment_idsFilter attachment idsPOSTReturns the external ids of the attachments matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 200 per page.
  • filter_conversation_idsFilter conversation idsPOSTReturns the external ids of the conversations matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 200 per page.
  • filter_customer_idsFilter customer idsPOSTReturns the external ids of the customers matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 200 per page.
  • filter_customer_organization_idsFilter customer organization idsPOSTReturns the external ids of the customer organizations matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 200 per page.
  • filter_invoice_idsFilter invoice idsPOSTReturns the external ids of the invoices matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 200 per page.
  • filter_item_idsFilter item idsPOSTReturns the external ids of the work items matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 200 per page.
  • filter_message_idsFilter message idsPOSTReturns the external ids of the conversation messages matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 200 per page.
  • filter_portfolio_idsFilter portfolio idsPOSTReturns the external ids of the portfolios matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 200 per page.
  • filter_project_idsFilter project idsPOSTReturns the external ids of the projects matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 200 per page.
  • filter_quote_idsFilter quote idsPOSTReturns the external ids of the quotes matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 200 per page.
  • filter_team_idsFilter team idsPOSTReturns the external ids of the teams matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 200 per page.
  • filter_timer_idsFilter timer idsPOSTReturns the external ids of the work timers matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 200 per page.
  • filter_timesheet_idsFilter timesheet idsPOSTReturns the external ids of the timesheets matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 200 per page.
  • filter_user_idsFilter user idsPOSTReturns the external ids of the users matching your filter conditions (all of them when you send none), plus totalNum and which filters were applied or ignored. Up to 200 per page.

Id, 14 operations

  • get_customerGet customerGETReturns one customer by its id (the number shown in OneDesk), with all its details. Returns personal data (names, emails, phones, postal addresses).
  • get_invoiceGet invoiceGETReturns one invoice by its id (the number shown in OneDesk), with all its details. Returns personal data (billed contact name, email and postal address).
  • get_itemGet itemGETReturns one work item by its id (the number shown in OneDesk), with all its details. Returns personal data (ticket text, names and emails of authors, assignees, followers).
  • get_projectGet projectGETReturns one project by its id (the number shown in OneDesk), with all its details. Returns personal data (names and emails of authors and followers).
  • get_quoteGet quoteGETReturns one quote by its id (a string that starts with Q-, for example Q-1), with all its details. Returns personal data (billed contact name, email and postal address).
  • get_timesheetGet timesheetGETReturns one timesheet by its id (for example 123-12), with all its details. Returns personal data (assignee names and emails).
  • get_userGet userGETReturns one user by its id (the number shown in OneDesk), with all its details. Returns personal data (names, emails, phones, postal addresses).
  • update_customerUpdate customerPOSTUpdates the fields you send on one customer, found by its id (the number shown in OneDesk). Returns result: SUCCESS, or an error code such as ERROR_INVALID_ID that arrives as a successful call (no HTTP error), so check it.
  • update_invoiceUpdate invoicePOSTUpdates the fields you send on one invoice, found by its id (the number shown in OneDesk). Returns result: SUCCESS, or an error code such as ERROR_INVALID_ID that arrives as a successful call (no HTTP error), so check it.
  • update_itemUpdate itemPOSTUpdates the fields you send on one work item, found by its id (the number shown in OneDesk). Returns result: SUCCESS, or an error code such as ERROR_CANNOT_FIND_ITEM that arrives as a successful call (no HTTP error), so check it.
  • update_projectUpdate projectPOSTUpdates the fields you send on one project, found by its id (the number shown in OneDesk). Returns result: SUCCESS, or an error code such as ERROR_CANNOT_FIND_ITEM that arrives as a successful call (no HTTP error), so check it.
  • update_quoteUpdate quotePOSTUpdates the fields you send on one quote, found by its id (a string that starts with Q-, for example Q-1). Returns result: SUCCESS, or an error code such as ERROR_INVALID_ID that arrives as a successful call (no HTTP error), so check it.
  • update_timesheetUpdate timesheetPOSTUpdates the fields you send on one timesheet, found by its id (for example 123-12). Returns result: SUCCESS, or an error code such as ERROR_INVALID_ID that arrives as a successful call (no HTTP error), so check it.
  • update_userUpdate userPOSTUpdates the fields you send on one user, found by its id (the number shown in OneDesk). Returns result: SUCCESS, or an error code such as ERROR_INVALID_ID that arrives as a successful call (no HTTP error), so check it.

Customer organization, 2 operations

  • add_customer_organization_attachmentAdd customer organization attachmentPOSTUploads a file and attaches it directly to one customer organization, found by its external id (multipart). Returns code and data, the new attachment external id.
  • create_customer_organizationCreate customer organizationPOSTCreates a customer organization. Returns code (SUCCESS, or an error such as ERROR_SERVICE_UNAVAILABLE, ERROR_SECURITY_ACCESS) and data, the new customer organization external id.

Item, 2 operations

  • add_item_attachmentAdd item attachmentPOSTUploads a file and attaches it directly to one work item, found by its external id (multipart). Returns code and data, the new attachment external id.
  • create_itemCreate itemPOSTCreates a work item. Returns code (SUCCESS, or an error such as ERROR_SERVICE_UNAVAILABLE, ERROR_CANNOT_FIND_ITEM) and data, the new work item external id.

Portfolio, 2 operations

  • add_portfolio_attachmentAdd portfolio attachmentPOSTUploads a file and attaches it directly to one portfolio, found by its external id (multipart). Returns code and data, the new attachment external id.
  • create_portfolioCreate portfolioPOSTCreates a portfolio. Returns code (SUCCESS, or an error such as ERROR_SERVICE_UNAVAILABLE, ERROR_CANNOT_FIND_USER) and data, the new portfolio external id.

Project, 2 operations

  • add_project_attachmentAdd project attachmentPOSTUploads a file and attaches it directly to one project, found by its external id (multipart). Returns code and data, the new attachment external id.
  • create_projectCreate projectPOSTCreates a project. Returns code (SUCCESS, or an error such as ERROR_SERVICE_UNAVAILABLE, ERROR_CANNOT_FIND_ITEM) and data, the new project external id.

Attachment, 1 operation

  • create_attachmentCreate attachmentPOSTUploads a file as a standalone attachment (multipart). Returns code and data, the new attachment external id, to pass in attachmentExternalIds when creating an item, project, portfolio or message.

Cancel, 1 operation

  • cancel_timerCancel timerGETCancels a work timer (this read-style call changes its state). Returns code (SUCCESS or ERROR_SERVICE_UNAVAILABLE, ERROR_INVALID_ID) and data with reason and amountOfWork.

Container type, 1 operation

  • list_container_typesList container typesGETReturns the container types (project and portfolio types) defined in the organization, with their external ids and labels.

Conversation, 1 operation

  • create_conversationCreate conversationPOSTCreates a conversation. Returns code (SUCCESS, or an error such as ERROR_SERVICE_UNAVAILABLE, ERROR_CANNOT_FIND_ITEM) and data, the new conversation external id.

Conversation message, 1 operation

  • create_messageCreate messagePOSTCreates a conversation message. Returns code (SUCCESS, or an error such as ERROR_SERVICE_UNAVAILABLE) and data, the new conversation message external id.

Customer, 1 operation

  • create_customerCreate customerPOSTCreates a customer. Returns code (SUCCESS, or an error such as ERROR_SERVICE_UNAVAILABLE, ERROR_SECURITY_ACCESS) and data, the new customer external id.

Item type, 1 operation

  • list_item_typesList item typesGETReturns the work item types defined in the organization (for example Ticket, Task), with their external ids; a type label is what create_item expects in type.

Lifecycle status, 1 operation

  • get_lifecycle_statusesGet lifecycle statusesGETReturns the organization's lifecycle statuses (name, externalId, type, state), the values accepted as lifecycleStatusName when updating a work item.

Pause, 1 operation

  • pause_timerPause timerGETPauses a work timer (this read-style call changes its state). Returns code (SUCCESS or ERROR_SERVICE_UNAVAILABLE, ERROR_INVALID_ID) and data with reason and amountOfWork.

Profile and policy, 1 operation

  • get_organization_profileGet organization profileGETReturns the organization's profile and policy: name, URI, date format and default conversation visibility.

Resume, 1 operation

  • resume_timerResume timerGETResumes a work timer (this read-style call changes its state). Returns code (SUCCESS or ERROR_SERVICE_UNAVAILABLE, ERROR_INVALID_ID) and data with reason and amountOfWork.

Start, 1 operation

  • start_timerStart timerGETStarts the work timer on a work item (this read-style call changes its state). Returns code (SUCCESS or ERROR_SERVICE_UNAVAILABLE, ERROR_INVALID_ID) and data with reason and amountOfWork.

Team, 1 operation

  • create_teamCreate teamPOSTCreates a team. Returns code (SUCCESS, or an error such as ERROR_SERVICE_UNAVAILABLE, ERROR_SECURITY_ACCESS) and data, the new team external id.

Timesheet, 1 operation

  • create_timesheetCreate timesheetPOSTCreates a timesheet. Returns code (SUCCESS, or an error such as ERROR_SERVICE_UNAVAILABLE, ERROR_INVALID_ID) and data, the new timesheet external id.

User, 1 operation

  • create_userCreate userPOSTCreates a user. Returns code (SUCCESS, or an error such as ERROR_SERVICE_UNAVAILABLE, ERROR_SECURITY_ACCESS) and data, the new user external id.

User type, 1 operation

  • list_user_typesList user typesGETReturns the user types defined in the organization (label and icon).

Use OneDesk from Claude Code, Cursor or Codex

Connect OneDesk in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its OneDesk 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 OneDesk

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect OneDesk once

    Add your OneDesk 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.

OneDesk integration FAQ

What can you do with the OneDesk integration?

LiveContext exposes 93 operations on OneDesk, covering external id, detail, filter and id.

Popular integrations

Browse the whole catalog