CONNECT APP
Build with Zendesk
Help Desk & Support
- OAuth
MCP
Give your agent Zendesk tools
Every Zendesk 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 Zendesk 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": "zendesk",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Add Ticket Tags:
const result = await mcp.callTool({
name: "zendesk-add-ticket-tags",
arguments: {
ticketId: "Ticket ID",
ticketTags: ["Tags"],
},
})# 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": "zendesk",
}
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 Add Ticket Tags:
result = await session.call_tool("zendesk-add-ticket-tags", {
"ticketId": "Ticket ID",
"ticketTags": ["Tags"],
})API PROXY
Call the Zendesk API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Zendesk 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 Zendesk 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 Zendesk actions from your backend
Connect a user's Zendesk account once, then run Add Ticket Tags 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: "zendesk-add-ticket-tags",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
zendesk: { authProvisionId: "apn_xxxxxxx" },
ticketId: "Ticket ID",
ticketTags: ["Tags"],
},
})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="zendesk-add-ticket-tags",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"zendesk": {"authProvisionId": "apn_xxxxxxx"},
"ticketId": "Ticket ID",
"ticketTags": ["Tags"],
},
)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": "zendesk-add-ticket-tags",
"configured_props": {
"zendesk": { "authProvisionId": "apn_xxxxxxx" },
"ticketId": "Ticket ID",
"ticketTags": ["Tags"]
}
}'TOOLS
Zendesk actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Add Ticket Tags
actionAdd tags to a ticket (appends to existing tags). See the documentation.Writev0.0.16 -
Create Side Conversation
actionCreate a side conversation on a Zendesk ticket using email, Zendesk agent, Slack, Microsoft Teams, or child-ticket participants. Requires the Zendesk Collaboration add-on. Use List Side Conversations to inspect existing conversations. See the documentationWritev0.0.2 -
Create Ticket
actionCreates a ticket. See the documentation.Writev0.1.20 -
Delete Ticket
actionDeletes a ticket. See the documentation.Writev0.1.20 -
Get Article
actionRetrieves an article by its ID. See the documentation.Read-onlyv0.0.10 -
Get Dynamic Content Item
actionRetrieves a dynamic content item. Note: Dynamic content is available only on the Professional plan and above. See the documentation.Read-onlyv0.0.3 -
Get Dynamic Content Items by Name
actionRetrieves multiple dynamic content items by their names. Note: Dynamic content is available only on the Professional plan and above. See the documentation.Read-onlyv0.0.3 -
Get Macro
actionRetrieves a macro by its ID. See the documentation.Read-onlyv0.0.10 -
Get Side Conversation
actionRetrieve a single Zendesk side conversation by ID (UUID, e.g.8566255a-ece5-11e8-857d-493066fa7b17). Use List Side Conversations to discover IDs for a given ticket. SetincludeEventstotrueto sideload the conversation's events (creation, replies, state changes). See the documentation.Read-onlyv0.0.7 -
Get Ticket Info
actionRetrieves information about a specific ticket. See the documentation.Read-onlyv0.0.18 -
Get User Info
actionRetrieves information about a specific user. See the documentation.Read-onlyv0.0.15 -
List Active Macros
actionLists all active shared and personal macros available to the current user. See the documentation.Read-onlyv0.0.11 -
List Articles
actionRetrieves a list of articles. See the documentation.Read-onlyv0.0.11 -
List Dynamic Content Items
actionRetrieves a list of dynamic content items. Note: Dynamic content is available only on the Professional plan and above. See the documentation.Read-onlyv0.0.3 -
List Fields Options
actionRetrieves available options for the Fields field.Read-onlyv0.0.7 -
List Locales
actionRetrieves all locales. See the documentation.Read-onlyv0.0.15 -
List Macro Category Options
actionRetrieves available options for the Macro Category field.Read-onlyv0.0.8 -
List Macros
actionRetrieves all macros. See the documentation.Read-onlyv0.0.15 -
List Side Conversations
actionRetrieve all side conversations on a Zendesk ticket. Side conversations are collaboration threads attached to a ticket (email, Slack, Microsoft Teams, or linked child tickets). Use Get Side Conversation to fetch a single side conversation by ID. SetincludeEventstotrueto sideload each conversation's events (creation, replies, state changes). See the documentation.Read-onlyv0.0.7 -
List Ticket Comments
actionRetrieves all comments for a specific ticket. See the documentation.Read-onlyv0.0.15 -
List Tickets
actionRetrieves a list of tickets. See the documentation.Read-onlyv0.0.18 -
Remove Ticket Tags
actionRemove specific tags from a ticket. See the documentation.Writev0.0.16 -
Reply to Side Conversation
actionReply to an existing Zendesk side conversation. Zendesk requires recipients on every reply, so pass the participants the reply should go to. See the documentationWritev0.0.2 -
Search Articles
actionSearches Help Center articles. See the documentation.Read-onlyv0.0.9 -
Search Community Posts
actionSearches Help Center community posts. See the documentation.Read-onlyv0.0.9 -
Search Help Center
actionSearches across knowledge base articles, community posts, and external records using the Zendesk unified Guide search. See the documentation.Read-onlyv0.0.9 -
Search Macros
actionSearch for macros by name. See the documentation.Read-onlyv0.0.9 -
Search Tickets
actionSearches for tickets using Zendesk's search API. See the documentation.Read-onlyv0.0.20 -
Set Custom Ticket Fields
actionSets one or more custom field values on a ticket. See the documentation.Writev0.0.14 -
Set Ticket Tags
actionSet tags on a ticket (replaces all existing tags). See the documentation.Writev0.0.17 -
Update Side Conversation
actionUpdate the state or subject of a Zendesk side conversation. See the documentationWritev0.0.2 -
Update Ticket
actionUpdates a ticket. See the documentation.Writev0.3.2 -
Upload Ticket Attachments
actionUpload one or more files as ticket attachments via the Zendesk Uploads API. Returns upload tokens that can be used when creating or updating tickets. See the documentation.Writev0.0.6
EVENTS
Zendesk triggers
Event sources your backend can deploy for users and receive through a webhook.
-
Locale Updated
triggerEmit new event when a locale has been updatedv0.0.14 -
New Side Conversation
triggerEmit new event when a side conversation is created on a ticket. See the documentationv0.0.7 -
New Side Conversation Reply
triggerEmit new event when a reply is added to an existing side conversation on a ticket. See the documentationv0.0.7 -
New Ticket (Instant)
triggerEmit new event when a ticket is createdInstantv0.2.19 -
New Ticket Added to View (Instant)
triggerEmit new event when a ticket is added to the specified viewInstantv0.0.19 -
New Ticket Comment Added (Instant)
triggerEmit new event when a ticket comment has been addedInstantv0.1.11 -
Ticket Closed (Instant)
triggerEmit new event when a ticket has changed to closed statusInstantv0.2.19 -
Ticket Pending (Instant)
triggerEmit new event when a ticket has changed to pending statusInstantv0.2.19 -
Ticket Solved (Instant)
triggerEmit new event when a ticket has changed to solved statusInstantv0.2.19 -
Ticket Updated (Instant)
triggerEmit new event when a ticket has been updatedInstantv0.2.19
MULTI-APP
Use Zendesk with other popular apps
Most products don't stop at one integration. Pair Zendesk with the other apps your users rely on, and ship use cases that span both.
- App slug
- zendesk
- Authentication
- OAuth
- Categories
- Help Desk & Support
- Actions
- 33
- Triggers
- 10
- API proxy
- Available
OAuth scopes
These are the scopes Pipedream's managed Zendesk OAuth client requests when one of your users connects an account. Supply your own OAuth client to request a different set.
- triggers:write
- webhooks:write
- read
- tickets:write
- tickets:read
- users:write
- organizations:read
- organizations:write