I am currently working on integrating Microsoft 365 Copilot (via Copilot Studio / Power Platform) with Snowflake using Entra ID delegated OAuth.
The goal is to let Copilot agents query Snowflake data, applying existing row access policies automatically based on the signed-in user’s Entra identity.
What I have already done
-
-
Azure Entra ID setup
- Registered a client application in Entra for delegated OAuth.
- Configured redirect URIs such as `https://global.consent.azure-apim.net/redirect/snowflakev2`.
- Verified that delegated sign-in works correctly.
2. Snowflake setup
- Created a `SECURITY INTEGRATION` in Snowflake for external OAuth (Entra delegated flow).
- Verified the integration works — I can log into Snowflake UI with the same Entra user.
- Confirmed the user has:
- Non-null `DEFAULT_ROLE`, `DEFAULT_WAREHOUSE`, and `DEFAULT_NAMESPACE`
- With this user I can:
- Connect to Snowflake in the web UI.
- Connect to Power BI using SSO and query data successfully.
3. Copilot connection
- Created a Snowflake connection in Power Platform / Copilot Studio using delegated OAuth.
- Authentication succeeds and I can see the server name populated.
The issue encountered
When I attempt to select a dataset in Copilot Studio after signing in, I consistently get the following error trace:
Error message: Snowflake server or database are null for Snowflake connection.
Internal API payload (from DiscoverFederatedKnowledgeV2):
{
"connectorId":"/providers/Microsoft.PowerApps/apis/shared_snowflakev2",
"connectionId":"cc021c0aaac6408d928dc1ccb6e0a9fc",
"federatedTableSearchConfiguration":" {\"SqlServerName\":\"GENERICDATASETNAME\",\"SqlDbName\":\"default\"}"
}
As you can see, even though my Snowflake user has a valid default namespace and I can connect successfully in Power BI and the Snowflake UI, the Copilot connector appears to be sending placeholder values (`GENERICDATASETNAME` and `default`) instead of the real Snowflake host and database. This results in the 500 error during dataset discovery.
Is there a supported way to ensure the delegated OAuth connection from Microsoft 365 Copilot to Snowflake passes a valid Server and Database into the connection object?
Or is this something that must be explicitly supplied by the Power Platform connector, outside of Snowflake’s control?
Any guidance, best practices, or known workarounds for making delegated OAuth work with Copilot Studio’s Snowflake connector would be greatly appreciated.