Skip to main content
An integration connects BundleUp to one provider using your own OAuth app. You set it up once per provider, per workspace. After that, any number of users can connect their accounts through it. When to do this: before the first user connects an account at a new provider, and once in each environment’s workspace.

How the pieces fit

You create an OAuth app at the provider and give it BundleUp’s callback URL. You copy the app’s client ID and secret into a BundleUp integration, along with the scopes you want. Separately, you register your own app’s redirect URI in BundleUp’s Auth settings.

Step 1: Start the integration in BundleUp

  1. In the dashboard, open Integrations and add a new one.
  2. Pick the provider.
  3. Keep the form open. It shows the Redirect URI to give the provider:

Step 2: Create an OAuth app at the provider

In the provider’s developer settings, create an OAuth app (the name varies: “OAuth App”, “App”, “Client”, “Connected App”, “Integration”). Wherever it asks for a callback URL, redirect URL or redirect URI, enter:
Then copy the app’s client ID and client secret. The exact steps differ for every provider. Each provider’s page on bundleup.io/integrations links to its developer documentation and notes anything unusual.
Name the app after your product, not after BundleUp. Users see this name on the consent screen.

Step 3: Fill in the integration

Back in BundleUp: Save the integration. You receive an integration.created webhook.

Step 4: Register your redirect URI

Open Auth in the dashboard and add every URL in your app where users should land after connecting, for example:
The redirect_uri you pass when starting the authorization flow must match one of these exactly.
There are two different redirect URLs, and they’re easy to mix up:
  • BundleUp’s callback (https://auth.bundleup.io/callback) goes in the provider’s OAuth app settings. The provider sends users there.
  • Your redirect URI goes in BundleUp’s Auth settings. BundleUp sends users there.

Step 5: Test it

Open this URL in your browser, with your values filled in:
You should see the provider’s consent screen with your app’s name. After approving, you’re sent to your redirect URI with a code. A new connection appears under Connections in the dashboard. If something goes wrong: More in Troubleshooting.

Updating and deleting

  • Rotating the client secret: update it at the provider, then in the integration. Existing connections keep working; their tokens were issued already.
  • Changing scopes: new connections get the new scopes. Existing connections keep what the user originally approved until the user reconnects.
  • Deleting: removes the integration and all its connections. Their connection IDs stop working immediately.