Platform Connections
Connections are the authenticated integrations Reactor uses to post content on your behalf. Each channel you publish on requires a connection.
Supported platforms
| Platform | Auth method | What it posts |
|---|---|---|
| X (Twitter) | OAuth 2.0 | Tweets |
| OAuth 2.0 | Posts and articles | |
| Discord | Bot token | Messages to a channel |
| Webflow | OAuth 2.0 | CMS items (blog posts) |
| Ghost | Admin API key | Posts |
Setting up a connection
Go to Settings > Connections and click Connect next to the platform you want to add.
X (Twitter)
- Click Connect X
- You are redirected to Twitter's OAuth flow
- Authorize Reactor to post on your behalf
- You are redirected back and the connection is shown as active
Required environment variables: TWITTER_CLIENT_ID, TWITTER_CLIENT_SECRET
LinkedIn
- Click Connect LinkedIn
- Authorize via LinkedIn OAuth
- Reactor stores your access token and profile ID
Required environment variables: LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET
Discord
- Paste your bot token
- Enter the channel ID you want to post to
- Click Save
Your bot must have Send Messages permission in the target channel.
Required environment variable: DISCORD_BOT_TOKEN
Webflow
- Click Connect Webflow
- Authorize via Webflow OAuth
- Select the site and CMS collection to publish to
Required environment variables: WEBFLOW_CLIENT_ID, WEBFLOW_CLIENT_SECRET
Ghost
- Enter your Ghost instance URL
- Enter your Admin API key (format:
id:secret) - Click Save
Ghost API keys are created in Ghost Admin under Settings > Integrations.
Token refresh
OAuth tokens for X and LinkedIn expire. Reactor automatically refreshes them using stored refresh tokens. If a connection shows expired, reconnect via Settings > Connections.
Multiple connections
You can have multiple connections for the same platform (e.g., two different LinkedIn accounts). When publishing or scheduling, you select which connection to use.
Connection status
| Status | Meaning |
|---|---|
| Connected | Token is valid and ready |
| Expired | Token expired, needs reconnection |
| Error | Last API call failed |