- OAuth: the user grants bundle.social access to the platform account.
- Channel selection: bundle.social selects the exact Page, channel, organization, location, board, subreddit, or workspace target to use for this team.
Hosted Flow
Create a portal link and let bundle.social handle OAuth, pickers, language, and UI.
Custom UI Flow
Build the account picker yourself and call the connect and channel endpoints directly.
Channel Management
Use
set-channel, refresh-channels, and unset-channel for platforms with multiple targets.OAuth Options
Understand
disableAutoLogin, forceBrowserOAuth, withBusinessScope, and Instagram connection methods.Callback Parameters
Handle success and error query parameters after OAuth completes.
Which Flow Should I Use?
| Flow | Best for | What you build |
|---|---|---|
| Hosted flow | Most apps | A button that opens the portal link |
| Custom UI flow | Apps that need a fully custom account connection UI | OAuth button, callback handling, channel picker, and reconnect states |
The Meta Rule
For Facebook and Instagram via Facebook, ask the user to select all Pages and Instagram accounts they manage in the Meta OAuth screen. After OAuth, choose the one Page or Instagram account for the current bundle.social team in the hosted picker or withPOST /api/v1/social-account/set-channel.
This does not mean one team publishes to every Page. Meta keeps the app grant for every Page the user manages, while bundle.social stores the selected target separately per team.
Correct flow:
- Reconnect Facebook or Instagram via Facebook.
- In Meta OAuth, choose Select all or manually select every Page and Instagram account the Meta user manages.
- Back in bundle.social, select the one Page or Instagram account for this team.
- Retry the failed post.
Platform Selection Rules
| Platform | OAuth enough? | Needs set-channel? | Notes |
|---|---|---|---|
| No | Yes | Select a Facebook Page. | |
| Instagram via Facebook | No | Yes | Select an Instagram account connected to a Facebook Page. |
| Instagram direct OAuth | Yes | No | Pass instagramConnectionMethod: "INSTAGRAM" in custom UI. |
| No | Yes | Select a member profile or Company Page. | |
| YouTube | No | Yes | Select a YouTube channel. |
| Google Business | No | Yes | Select a business location. |
| Usually yes | No | Boards can be refreshed with refresh-channels. | |
| Usually yes | No | Destinations can be refreshed with refresh-channels. | |
| Slack | Usually yes | No | Webhook channels can be refreshed with refresh-channels. |
| Discord | Usually yes | No | Webhook channels can be refreshed with refresh-channels. |