Skip to main content

OAuth Connections

OAuth 2.0 is the most common authentication method for modern APIs. FlowStack handles the entire OAuth flow, including automatic token refresh.

How OAuth Works in FlowStack

  1. You click Connect on an OAuth-supported integration
  2. A popup window opens with the service's login page
  3. You log in and grant FlowStack the requested permissions
  4. The service redirects back to FlowStack with an authorization code
  5. FlowStack exchanges the code for access and refresh tokens
  6. Tokens are encrypted and stored securely

From this point on, FlowStack automatically refreshes tokens before they expire — you never need to re-authenticate unless you revoke access.

Supported OAuth Providers

Over 200 services support OAuth in FlowStack, including:

  • Google (Gmail, Sheets, Drive, Calendar, Analytics)
  • Microsoft (Outlook, Teams, OneDrive, SharePoint)
  • Slack
  • GitHub / GitLab
  • Salesforce
  • HubSpot
  • Shopify
  • Notion
  • Zoom
  • Dropbox
  • Twitter / X
  • LinkedIn
  • Facebook / Meta

Permissions (Scopes)

Each OAuth connection requests specific permissions (scopes) from the service. FlowStack requests the minimum scopes needed for the available triggers and actions.

Example — Google Gmail scopes:

  • gmail.readonly — Read emails (for triggers)
  • gmail.send — Send emails (for actions)
  • gmail.modify — Modify labels and mark as read

You can see the requested scopes in the OAuth consent screen before granting access.

Troubleshooting

"Access Denied" Error

  • Verify you're logging in with the correct account
  • Check that your account has the required permissions in the external service
  • Some organizations restrict OAuth access — contact your IT admin

Connection Expires Frequently

  • The service may have short-lived refresh tokens
  • Check if the service requires re-consent periodically
  • Go to the service's settings and verify FlowStack's access hasn't been revoked

OAuth Popup Blocked

  • Disable popup blockers for app.onflowstack.com
  • Try a different browser
  • Check that cookies and JavaScript are enabled