CONNECT APP
Build with TOPdesk
Help Desk & Support
- API key
MCP
Give your agent TOPdesk tools
Every TOPdesk action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's TOPdesk account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "topdesk",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Create Incident:
const result = await mcp.callTool({
name: "topdesk-create-incident",
arguments: {
callerLookupId: "Caller Lookup ID",
status: "Status",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "topdesk",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Create Incident:
result = await session.call_tool("topdesk-create-incident", {
"callerLookupId": "Caller Lookup ID",
"status": "Status",
})API PROXY
Call the TOPdesk API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the TOPdesk API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.example.com/v1/me",
})
// Any allowed TOPdesk endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.example.com/v1/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdjEvbWU?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run TOPdesk actions from your backend
Connect a user's TOPdesk account once, then run Create Incident on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "topdesk-create-incident",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
topdesk: { authProvisionId: "apn_xxxxxxx" },
callerLookupId: "Caller Lookup ID",
status: "Status",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="topdesk-create-incident",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"topdesk": {"authProvisionId": "apn_xxxxxxx"},
"callerLookupId": "Caller Lookup ID",
"status": "Status",
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "topdesk-create-incident",
"configured_props": {
"topdesk": { "authProvisionId": "apn_xxxxxxx" },
"callerLookupId": "Caller Lookup ID",
"status": "Status"
}
}'TOOLS
TOPdesk actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Create Incident
actionCreates a new incident. See the documentationWritev0.0.4 -
Get Incident
actionReturns an incident by ID. See the documentationRead-onlyv0.0.3 -
Get Incident Actions By ID
actionGet incident actions by incident ID. See the documentationRead-onlyv0.0.1 -
Get Incident Actions By Number
actionGet incident actions by incident number. See the documentationRead-onlyv0.0.1 -
Get Incident Progress Trail By ID
actionGet incident progress trail by incident ID. See the documentationRead-onlyv0.0.1 -
Get Incident Progress Trail By Number
actionGet incident progress trail by incident number. See the documentationRead-onlyv0.0.1 -
Get Incidents
actionReturns a list of incidents. See the documentationRead-onlyv0.0.4 -
Get Knowledge Item Statuses
actionReturns the list of possible Knowledge Item statuses. See the documentationRead-onlyv0.0.3 -
Get Knowledge Items
actionReturns a list of Knowledge Items. See the documentationRead-onlyv0.0.4 -
List Branch ID Options
actionRetrieves available options for the Branch ID field.Read-onlyv0.0.1 -
List Call Type ID Options
actionRetrieves available options for the Call Type ID field.Read-onlyv0.0.1 -
List Category ID Options
actionRetrieves available options for the Category ID field.Read-onlyv0.0.1 -
List Closure Code ID Options
actionRetrieves available options for the Closure Code ID field.Read-onlyv0.0.1 -
List Duration ID Options
actionRetrieves available options for the Duration ID field.Read-onlyv0.0.1 -
List Entry Type ID Options
actionRetrieves available options for the Entry Type ID field.Read-onlyv0.0.1 -
List Impact ID Options
actionRetrieves available options for the Impact ID field.Read-onlyv0.0.1 -
List Location ID Options
actionRetrieves available options for the Location ID field.Read-onlyv0.0.1 -
List Priority ID Options
actionRetrieves available options for the Priority ID field.Read-onlyv0.0.1 -
List Processing Status ID Options
actionRetrieves available options for the Processing Status ID field.Read-onlyv0.0.1 -
List SLA ID Options
actionRetrieves available options for the SLA ID field.Read-onlyv0.0.1 -
List Urgency ID Options
actionRetrieves available options for the Urgency ID field.Read-onlyv0.0.1 -
Update Incident
actionUpdates an existing incident. See the documentationWritev0.0.3
EVENTS
TOPdesk triggers
Event sources your backend can deploy for users and receive through a webhook.
-
Incident Updated
triggerEmit new event when an incident is updated. See the documentationv0.0.2 -
New Incident Assignee
triggerEmit new event when an incident is assigned to a new user. See the documentationv0.0.2 -
New Incident Created
triggerEmit new event when a new incident is created. See the documentationv0.0.2 -
New Incident Group Assigned
triggerEmit new event when an incident is assigned to a new group. See the documentationv0.0.2 -
New Incident Memo Reply
triggerEmit new event when a new memo reply is created. See the documentationv0.0.3 -
New Incident Reply
triggerEmit new event when a new incident reply is created. See the documentationv0.0.3 -
New Incident Status
triggerEmit new event when an incident status is updated. See the documentationv0.0.2
MULTI-APP
Use TOPdesk with other popular apps
Most products don't stop at one integration. Pair TOPdesk with the other apps your users rely on, and ship use cases that span both.
- App slug
- topdesk
- Authentication
- API key
- Categories
- Help Desk & Support
- Actions
- 22
- Triggers
- 7
- API proxy
- Available