Skill 164 · Flowstudio Power Automate Build
Subchapter 164.6
references/trigger-types.mdMarkdown5 KBView on GitHub
Copy-paste trigger definitions for Power Automate flow definitions.
Run on a schedule.
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Day",
"interval": 1,
"startTime": "2026-01-01T08:00:00Z",
"timeZone": "AUS Eastern Standard Time"
}
}Weekly on specific days:
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Week",
"interval": 1,
"schedule": {
"weekDays": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
},
"startTime": "2026-01-05T09:00:00Z",
"timeZone": "AUS Eastern Standard Time"
}
}Common timeZone values:
"AUS Eastern Standard Time" — Sydney/Melbourne (UTC+10/+11)"UTC" — Universal time"E. Australia Standard Time" — Brisbane (UTC+10 no DST)"New Zealand Standard Time" — Auckland (UTC+12/+13)"Pacific Standard Time" — Los Angeles (UTC-8/-7)"GMT Standard Time" — London (UTC+0/+1)Receive an HTTP POST with a JSON body.
"manual": {
"type": "Request",
"kind": "Http",
"inputs": {
"schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"value": { "type": "integer" }
},
"required": ["name"]
}
}
}Access values: @triggerBody()?['name']
Trigger URL available after saving: @listCallbackUrl()
When the incoming payload structure is unknown or varies, omit the schema to accept any valid JSON body without validation:
"manual": {
"type": "Request",
"kind": "Http",
"inputs": {
"schema": {}
}
}Access any field dynamically: @triggerBody()?['anyField']
Use this for external webhooks (Stripe, GitHub, Employment Hero, etc.) where the payload shape may change or is not fully documented. The flow accepts any JSON without returning 400 for unexpected properties.
Use the Skills trigger when the flow is meant to be called by a Copilot Studio agent tool. Keep the trigger schema explicit so the agent receives predictable input names and types.
"manual": {
"type": "Request",
"kind": "Skills",
"inputs": {
"schema": {
"type": "object",
"properties": {
"itemId": { "type": "string" },
"notes": { "type": "string" }
},
"required": ["itemId"]
}
},
"metadata": {
"operationMetadataId": "<stable-guid>"
}
}After deploying a production Skills-triggered flow, call
add_live_flow_to_solution with the target solutionId; Copilot Studio agent
tool discovery expects the flow to be solution-aware. To test it from MCP, call
trigger_live_flow with the inputs in body — Skills triggers run through the
connector runtime the same way Button and PowerApps triggers do.
"When_an_item_is_created": {
"type": "OpenApiConnectionNotification",
"inputs": {
"host": {
"apiId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline",
"connectionName": "<connectionName>",
"operationId": "OnNewItem"
},
"parameters": {
"dataset": "https://mytenant.sharepoint.com/sites/mysite",
"table": "MyList"
},
"subscribe": {
"body": { "notificationUrl": "@listCallbackUrl()" },
"queries": {
"dataset": "https://mytenant.sharepoint.com/sites/mysite",
"table": "MyList"
}
}
}
}Access trigger data: @triggerBody()?['ID'], @triggerBody()?['Title'], etc.
"When_an_existing_item_is_modified": {
"type": "OpenApiConnectionNotification",
"inputs": {
"host": {
"apiId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline",
"connectionName": "<connectionName>",
"operationId": "OnUpdatedItem"
},
"parameters": {
"dataset": "https://mytenant.sharepoint.com/sites/mysite",
"table": "MyList"
},
"subscribe": {
"body": { "notificationUrl": "@listCallbackUrl()" },
"queries": {
"dataset": "https://mytenant.sharepoint.com/sites/mysite",
"table": "MyList"
}
}
}
}"When_a_new_email_arrives": {
"type": "OpenApiConnectionNotification",
"inputs": {
"host": {
"apiId": "/providers/Microsoft.PowerApps/apis/shared_office365",
"connectionName": "<connectionName>",
"operationId": "OnNewEmail"
},
"parameters": {
"folderId": "Inbox",
"to": "monitored@contoso.com",
"isHTML": true
},
"subscribe": {
"body": { "notificationUrl": "@listCallbackUrl()" }
}
}
}"manual": {
"type": "Request",
"kind": "Button",
"inputs": {
"schema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": { "type": "object" }
}
}
}
}
}Access parent-supplied data: @triggerBody()?['items']
To return data to the parent, add a Response action:
"Respond_to_Parent": {
"type": "Response",
"runAfter": { "Compose_Result": ["Succeeded"] },
"inputs": {
"statusCode": 200,
"body": "@outputs('Compose_Result')"
}
}