Power Automate & Zapier
TeamsDesk can connect to Microsoft Power Automate, Zapier, and other low-code automation tools through three building blocks:
- API keys for authenticated calls to
/api/v1/* - A Power Automate-ready connector definition for common TeamsDesk actions
- Signed webhooks for ticket events that should trigger flows
Use this page when you want TeamsDesk to create tickets from forms, post updates into Teams channels, sync ticket activity to SharePoint or Excel, or mirror support work into another system.
What you need
Before building flows, create credentials inside TeamsDesk:
- Open TeamsDesk.
- Switch to Global Admin.
- Open API Keys and create a key for the integration.
- Choose the narrowest scopes that work.
- Copy the key immediately. It is shown only once.
Recommended scopes:
| Flow type | Recommended scopes |
| --- | --- |
| Reporting or lookup flows | read |
| Create/update ticket flows | read, write |
| Audit/admin workflows | read, write, admin |
For full key handling, rotation, rate limit, and webhook signature details, see API Keys & Webhooks.
Power Automate connector
Download the current connector file:
Download TeamsDesk Power Automate connector
Starter assets:
- Download webhook trigger schema
- Ticket created → Teams channel blueprint
- SLA breach → escalation blueprint
- Approvals and CSAT → SharePoint blueprint
The connector exposes common TeamsDesk actions:
- List, create, get, update, and close tickets
- List and add ticket comments
- List departments, categories, agents, users, and service catalog items
- List approvals and submit approval decisions
- List audit events with an admin-scoped key
Import the connector
- Open Power Automate.
- Go to Data → Custom connectors.
- Choose New custom connector → Import an OpenAPI file.
- Upload
teamsdesk-power-automate.swagger.json. - Confirm the connector host.
- In Security, use API key authentication in the
Authorizationheader. - When creating a connection, enter the value as:
Bearer tdsk_your_api_key
The downloadable connector currently points to the TeamsDesk dev API host used for pilot/testing. For production tenants, use the API base URL shown in Global Admin → Integrations → Power Automate ready or Global Admin → API Keys.
Webhook triggers
Power Automate does not need a native trigger to receive TeamsDesk events. Use the Power Automate trigger When an HTTP request is received, then subscribe that URL in TeamsDesk → Global Admin → Webhooks.
Current TeamsDesk webhook events:
| Event | Fires when |
| --- | --- |
| ticket.created | A ticket is created |
| ticket.updated | A ticket field changes |
| ticket.closed | A ticket is closed |
| ticket.assigned | A ticket is assigned or auto-assigned |
| approval.requested | One or more approvers receive an approval request |
| approval.completed | An approval flow is approved or rejected |
| sla.breached | A response or resolution SLA breach is detected |
| csat.submitted | A requester submits satisfaction feedback |
| device.detection.created | An endpoint agent reports a device detection |
| comment.added | A public comment is posted |
Internal notes are excluded from comment.added webhooks.
Delivery body
TeamsDesk sends a JSON body with this shape:
{
"event": "ticket.created",
"createdAt": "2026-05-06T12:00:00.000Z",
"tenantId": "76025cc5-4a4f-4606-891c-afa4ff7a3013",
"data": {
"id": 51948,
"title": "VPN issue",
"status": "Open",
"severity": "Medium"
}
}
TeamsDesk also sends:
X-TeamsDesk-Event: ticket.created
X-TeamsDesk-Event-Id: 7d2f8c4e-...
X-TeamsDesk-Delivery: 9b1a3f12-...
X-TeamsDesk-Signature: t=1714248000,v1=ab12cd34...
Use X-TeamsDesk-Event-Id as your idempotency key because failed deliveries may retry.
Use this schema in Power Automate's HTTP trigger: teamsdesk-webhook-power-automate-schema.json.
Starter recipes
Microsoft Forms → TeamsDesk ticket
Use this when employees or external stakeholders already submit requests through Microsoft Forms.
- Create a Power Automate cloud flow.
- Use Microsoft Forms trigger When a new response is submitted.
- Add Get response details.
- Add TeamsDesk action Create ticket.
- Map form fields to ticket fields:
{
"title": "@{triggerBody()?['issueTitle']}",
"description": "@{triggerBody()?['issueDetails']}",
"departmentId": 1,
"severity": "Medium"
}
Ticket created → Teams channel post
Use this when managers or department teams want awareness without living in the ticket queue.
- Create a Power Automate flow with When an HTTP request is received.
- Create a TeamsDesk webhook for
ticket.created. - Add Microsoft Teams action Post message in a chat or channel.
- Format the message using
data.id,data.title,data.status, anddata.severity.
Example:
New TeamsDesk ticket #@{triggerBody()?['data']?['id']}
@{triggerBody()?['data']?['title']}
Severity: @{triggerBody()?['data']?['severity']}
Ticket closed → SharePoint or Excel row
Use this when finance, operations, or compliance teams need a lightweight export.
- Create a webhook for
ticket.closed. - Add SharePoint Create item or Excel Online Add a row.
- Store the ticket ID, title, department ID, severity, created date, closed date, and assigned agent ID.
- Store
X-TeamsDesk-Event-Idif your destination supports idempotency.
Public comment → SharePoint list
Use this when a team wants a comment trail outside the help desk.
- Create a webhook for
comment.added. - Add a condition for department, severity, or target queue if needed.
- Add SharePoint Create item.
- Map
data.ticketId,data.authorDisplayName,data.message, anddata.createdAt.
External approval → TeamsDesk update
Use this when an approval must happen outside TeamsDesk, such as procurement or finance approval.
- Trigger from
ticket.createdand filter by department, category, or title pattern. - Add Power Automate action Start and wait for an approval.
- If approved, call TeamsDesk Add comment or Update ticket.
- If rejected, call TeamsDesk Add comment and optionally Close ticket.
Mirror ticket updates to another system
Use this when TeamsDesk needs to keep a downstream system informed.
- Create a webhook for
ticket.updated. - Add a condition for
data.status,data.severity, ordata.assignedToAgentId. - Upsert the ticket in the downstream system.
- Use
X-TeamsDesk-Event-Idto avoid duplicate processing.
SLA breach → escalation channel
Use this when managers need fast visibility when response or resolution targets slip.
- Create a webhook for
sla.breached. - Add a condition for
data.departmentId,data.breachType, ordata.assignedAgentEmail. - Post a high-priority Microsoft Teams message or create a Planner task.
- Include
data.ticketId,data.title, anddata.departmentName.
Approval and CSAT → reporting table
Use this when service owners want approval bottleneck and satisfaction reporting outside TeamsDesk.
- Subscribe to
approval.requested,approval.completed, andcsat.submitted. - Add SharePoint Create item, Dataverse Add a new row, or Excel Online Add a row.
- Store the event id, ticket id, service name, approval status, rating, and timestamp.
- Build reports from the target list or table.
Zapier
Zapier can use Webhooks by Zapier with the same API key and webhook model.
TeamsDesk event → Zapier
- Create a Zap with Webhooks by Zapier → Catch Hook.
- Copy the hook URL.
- Create a TeamsDesk webhook with that URL.
- Filter on
event,data.severity,data.status, ordata.departmentId. - Add the destination action, such as Slack, Jira, ServiceNow, Google Sheets, or a CRM.
Zapier action → TeamsDesk ticket
Use Webhooks by Zapier → Custom Request:
POST https://helpdesk-multitenant-api-dev-hyfbbmbkcqhnggf9.westus2-01.azurewebsites.net/api/v1/tickets
Authorization: Bearer tdsk_your_api_key
Content-Type: application/json
Body:
{
"title": "{{zap_source_title}}",
"description": "{{zap_source_description}}",
"departmentId": 1,
"severity": "Medium"
}
Use your production API base URL instead of the dev host when configuring customer production flows.
Security checklist
- Create one API key per integration.
- Use the narrowest scope that works.
- Store keys and webhook signing secrets in a secret manager.
- Do not paste API keys into Teams chats, tickets, or source control.
- Verify
X-TeamsDesk-Signaturefor custom webhook receivers. - Use
X-TeamsDesk-Event-Idfor idempotency. - Keep internal notes inside TeamsDesk unless the destination is approved for sensitive data.
- Use separate keys for test, production, and partner-managed automations.
Next: read API Keys & Webhooks for signing, retries, allowed endpoints, and rate limits.