{#if enabled} {#if name != 'slack' && name != 'ms_teams'} {/if} {#if name == 'slack'} {/if} {#if name == 'microsoft' || name == 'ms_teams'} {:else if login} {/if} {#if name == 'google'}
Create a new OAuth 2.0 Client in Google console and set the redirect URI to BASE_URL/user/login_callback/google where BASE_URL is what you configured as core BASE_URL
{:else if name == 'slack'} {:else if name == 'microsoft'}
1. Create App Registration
Create a new OAuth 2.0 Client in Microsoft portal:
  • Click "Add" → "App Registration"
  • Select "Accounts in this organizational directory only (Default Directory only - Single tenant)"
2. Authentication Configuration
In the "Authentication" tab:
  • Set the redirect URI to Web
  • Add redirect URI: BASE_URL/user/login_callback/microsoft
3. Copy Credentials
Copy the following values to Windmill:
  • Copy "Directory (tenant ID)" to the tenant ID field
  • Copy "Application (client) ID" to the Client ID field
  • Create a secret in "Client credentials" and copy to Client Secret field
4. API Permissions
Under "Delegated Permissions", include:
  • Sign in
  • Read user profile
{:else if name == 'ms_teams'}
Follow this guide on Windmill Docs to create a new Microsoft Teams App. Then paste Client ID, Tenant ID, and Client Secret here. The same app serves the Teams bot (Enterprise Edition) and the Microsoft Teams OAuth resource: to connect that resource, also add the redirect URI BASE_URL/oauth/callback/ms_teams and the delegated Microsoft Graph permissions you need to the app.
{/if}
{/if}