Skip to content

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:

  1. Open TeamsDesk.
  2. Switch to Global Admin.
  3. Open API Keys and create a key for the integration.
  4. Choose the narrowest scopes that work.
  5. 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:

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

  1. Open Power Automate.
  2. Go to Data → Custom connectors.
  3. Choose New custom connector → Import an OpenAPI file.
  4. Upload teamsdesk-power-automate.swagger.json.
  5. Confirm the connector host.
  6. In Security, use API key authentication in the Authorization header.
  7. 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.

  1. Create a Power Automate cloud flow.
  2. Use Microsoft Forms trigger When a new response is submitted.
  3. Add Get response details.
  4. Add TeamsDesk action Create ticket.
  5. 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.

  1. Create a Power Automate flow with When an HTTP request is received.
  2. Create a TeamsDesk webhook for ticket.created.
  3. Add Microsoft Teams action Post message in a chat or channel.
  4. Format the message using data.id, data.title, data.status, and data.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.

  1. Create a webhook for ticket.closed.
  2. Add SharePoint Create item or Excel Online Add a row.
  3. Store the ticket ID, title, department ID, severity, created date, closed date, and assigned agent ID.
  4. Store X-TeamsDesk-Event-Id if your destination supports idempotency.

Public comment → SharePoint list

Use this when a team wants a comment trail outside the help desk.

  1. Create a webhook for comment.added.
  2. Add a condition for department, severity, or target queue if needed.
  3. Add SharePoint Create item.
  4. Map data.ticketId, data.authorDisplayName, data.message, and data.createdAt.

External approval → TeamsDesk update

Use this when an approval must happen outside TeamsDesk, such as procurement or finance approval.

  1. Trigger from ticket.created and filter by department, category, or title pattern.
  2. Add Power Automate action Start and wait for an approval.
  3. If approved, call TeamsDesk Add comment or Update ticket.
  4. 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.

  1. Create a webhook for ticket.updated.
  2. Add a condition for data.status, data.severity, or data.assignedToAgentId.
  3. Upsert the ticket in the downstream system.
  4. Use X-TeamsDesk-Event-Id to avoid duplicate processing.

SLA breach → escalation channel

Use this when managers need fast visibility when response or resolution targets slip.

  1. Create a webhook for sla.breached.
  2. Add a condition for data.departmentId, data.breachType, or data.assignedAgentEmail.
  3. Post a high-priority Microsoft Teams message or create a Planner task.
  4. Include data.ticketId, data.title, and data.departmentName.

Approval and CSAT → reporting table

Use this when service owners want approval bottleneck and satisfaction reporting outside TeamsDesk.

  1. Subscribe to approval.requested, approval.completed, and csat.submitted.
  2. Add SharePoint Create item, Dataverse Add a new row, or Excel Online Add a row.
  3. Store the event id, ticket id, service name, approval status, rating, and timestamp.
  4. 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

  1. Create a Zap with Webhooks by Zapier → Catch Hook.
  2. Copy the hook URL.
  3. Create a TeamsDesk webhook with that URL.
  4. Filter on event, data.severity, data.status, or data.departmentId.
  5. 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-Signature for custom webhook receivers.
  • Use X-TeamsDesk-Event-Id for 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.


Start your free trial →