{
  "name": "TeamsDesk approval and CSAT to SharePoint",
  "trigger": {
    "type": "When an HTTP request is received",
    "teamsdeskWebhookEvents": [
      "approval.requested",
      "approval.completed",
      "csat.submitted"
    ],
    "schemaUrl": "/connectors/teamsdesk-webhook-power-automate-schema.json"
  },
  "steps": [
    {
      "type": "Switch",
      "expression": "@triggerBody()?['event']",
      "cases": [
        {
          "event": "approval.requested",
          "action": "SharePoint - Create item",
          "fields": {
            "EventType": "@triggerBody()?['event']",
            "TicketId": "@triggerBody()?['data']?['ticketId']",
            "Service": "@triggerBody()?['data']?['serviceName']",
            "RequiredApprovals": "@triggerBody()?['data']?['requiredApprovalCount']"
          }
        },
        {
          "event": "approval.completed",
          "action": "SharePoint - Create item",
          "fields": {
            "EventType": "@triggerBody()?['event']",
            "TicketId": "@triggerBody()?['data']?['ticketId']",
            "ApprovalStatus": "@triggerBody()?['data']?['status']",
            "DecisionBy": "@triggerBody()?['data']?['decisionByEmail']"
          }
        },
        {
          "event": "csat.submitted",
          "action": "SharePoint - Create item",
          "fields": {
            "EventType": "@triggerBody()?['event']",
            "TicketId": "@triggerBody()?['data']?['ticketId']",
            "Rating": "@triggerBody()?['data']?['rating']",
            "HasComment": "@triggerBody()?['data']?['hasComment']"
          }
        }
      ]
    }
  ],
  "notes": [
    "Use one SharePoint list with an EventType column, or split each case into a separate list.",
    "For analytics, keep CreatedAt, TenantId, and X-TeamsDesk-Event-Id."
  ]
}
