Aveiro Documentation
Getting Started
What Is Aveiro?
Create Your Account
Create Your First Site
Dashboard Tour
Key Concepts
Members and Permissions
API Tokens
Aveiro MCP server
Organization
Affiliate Program
Sites
Sites Overview
Choosing a Template
Managing Sites
Preview and Live URLs
Social
Social Publishing Overview
Connecting Social Accounts
Social Approval Workflow
Social Agents and API
Audience
Audience Overview
Campaigns
Automation
Segments
Deliverability
Sending Domains
Embed Forms
Subscribers
Audience Agents and API
Messaging
Messaging Overview
Visitor Support Chat
Inbox
Analytics
Analytics Overview
Events
Live Visitors
Page Analytics
Editor
Editor Overview
Media Library
Pages
Pages Overview
File Tree and Collections
Creating and Organizing Pages
Page Settings
Publishing Pages
Version History
Ai
AI Overview
Chat and Suggestions
Working with AI Changes
Translations
Translations Overview
Layout
Layout Overview
Site Layouts
Collection Layouts
Header, Footer, and Sidebars
Ad Placements
Components
Components Overview
Adding and Editing Components
Component Categories
Writing with MDX
Editing
Keyboard Shortcuts
Preview, Visual, and Source
Styles
Styles Overview
Block Styles
Site Theme and Branding
Settings
Visitor Login
Analytics and Privacy
Custom Domains
Settings Overview
Publishing Settings vs Content
SEO and Social Sharing
Site Name and URL
Visitor Assistant
Site Ad Settings
Integrations
Integrations Overview
Fourthwall Integration
Studio
Studio Overview
Frametic Studio
Monetization
Monetization Overview
Products
Merchant of Record
Ads
Ads Overview
Managing Ad Inventory
TrademarkTrademark
Ctrl k
Search…
Sign up
Aveiro Documentation
Getting Started
What Is Aveiro?
Create Your Account
Create Your First Site
Dashboard Tour
Key Concepts
Members and Permissions
API Tokens
Aveiro MCP server
Organization
Affiliate Program
Sites
Sites Overview
Choosing a Template
Managing Sites
Preview and Live URLs
Social
Social Publishing Overview
Connecting Social Accounts
Social Approval Workflow
Social Agents and API
Audience
Audience Overview
Campaigns
Automation
Segments
Deliverability
Sending Domains
Embed Forms
Subscribers
Audience Agents and API
Messaging
Messaging Overview
Visitor Support Chat
Inbox
Analytics
Analytics Overview
Events
Live Visitors
Page Analytics
Editor
Editor Overview
Media Library
Pages
Pages Overview
File Tree and Collections
Creating and Organizing Pages
Page Settings
Publishing Pages
Version History
Ai
AI Overview
Chat and Suggestions
Working with AI Changes
Translations
Translations Overview
Layout
Layout Overview
Site Layouts
Collection Layouts
Header, Footer, and Sidebars
Ad Placements
Components
Components Overview
Adding and Editing Components
Component Categories
Writing with MDX
Editing
Keyboard Shortcuts
Preview, Visual, and Source
Styles
Styles Overview
Block Styles
Site Theme and Branding
Settings
Visitor Login
Analytics and Privacy
Custom Domains
Settings Overview
Publishing Settings vs Content
SEO and Social Sharing
Site Name and URL
Visitor Assistant
Site Ad Settings
Integrations
Integrations Overview
Fourthwall Integration
Studio
Studio Overview
Frametic Studio
Monetization
Monetization Overview
Products
Merchant of Record
Ads
Ads Overview
Managing Ad Inventory
TrademarkTrademark
AveiroBlogContact
© Aveiro. All rights reserved.
Built with Aveiro

Connecting Social Accounts

Link Instagram, Threads, LinkedIn, and X (paid plans) through Chirio's OAuth flow. Connect Supa Hub with a one-time connect code on the Accounts page. Approved posts publish to the right profiles.
Updated 1mo ago
Social Publishing Overview
Social Approval Workflow
In short
On Dashboard → Social → Accounts, open the Add menu and pick a platform (Instagram, Threads, LinkedIn, X on paid plans, or Orbit). Chirio hosts OAuth for the social networks; Orbit opens a connect dialog with a one-time code from your hub. Your organization ID is the Chirio profile — one connection set per workspace.

Before you connect

You need:
  • Social publishing available (on by default; re-enable under Organization → Features if you turned it off)
  • Access to the Social dashboard section (Audience manage capability)
  • Admin access to the Instagram, Threads, LinkedIn, or X account you want to link
  • Chirio configured on the Aveiro deployment (CHIRIO_API_KEY on the server)
If Chirio is not configured, the Accounts page shows an info banner and the Add button is disabled. Contact your workspace admin or Aveiro support — this is a deployment setting, not something you fix in the dashboard.

Supported platforms (Phase 1)

Platform
Add menu entry
Notes
InstagramInstagramPublishes to the linked Instagram account via Chirio
ThreadsThreadsSeparate OAuth from Instagram — connect both if you post to each
LinkedInLinkedInPersonal profile and company pages — each identity gets its own account ID
XXPaid plans only — X charges per post; link posts cost far more than the free monthly grant
OrbitOrbitHosted Supa Social hub — connect with a one-time code, not OAuth
Each platform gets a row on the Accounts page listing its connected usernames, with an active or warning status tag. X shows Paid plans on free plans — click it to upgrade.

Orbit (self-service connect)

Orbit targets hosted Supa Social instances. Pick Orbit from the same Add menu as Instagram and Threads — it opens a connect dialog instead of OAuth.
  • In your hub, open Connect and generate a one-time connect code
  • On Dashboard → Social → Accounts, open Add → Orbit
  • Enter the hub URL (for example https://orbit.dopler.app), the connect code, and the default space slug (for example general)
  • Click Connect Orbit — the account appears on Accounts like any other platform
  • Chirio redeems the code for credentials scoped to your organization. Codes are single-use and expire after redemption or timeout.
    Hub posts support captions up to 2,500 characters. First comments are not supported — Chirio reports them as unsupported and never fails the post.

    Connect flow

    • Open Dashboard → Social → Accounts
    • Click Add in the page header and choose a platform
    • Your browser redirects to Chirio's hosted OAuth page
    • Sign in and grant the requested permissions
    • Chirio redirects back to Accounts — a success toast confirms the connection (with @username when available), and the account appears in that platform's row
    • If OAuth fails, a danger banner on the page explains the reason plus any platform message from Chirio — common cases include cancelled authorization, an expired link, account limit reached, or a refused token exchange
    Connections are org-scoped. Every teammate with Social access sees the same linked accounts. Reconnect if a token expires or permissions change.

    Using accounts in posts

    When you expand a post:
    • Under Publish to, check the accounts that should receive this post
    • Each target gets the base caption unless you add a per-platform override via Platform override
    • For Orbit targets, optionally pick a Space per account with the searchable space picker — type to search (debounced), use Load more for large hubs, or choose Default space to fall back to the slug from connect time
    • Attach media before approving — Meta fetches the public image URL at publish time
    You cannot approve a post with zero targets. Connect at least one account first.
    If you reconnect an account, it gets a new id — older drafts may still target the disconnected one. The editor shows a Disconnected accounts warning with a one-click remove; Approve and Post now refuse until targets are fixed.
    Agents use the same account IDs as targets when creating drafts via API or MCP. List them with GET /api/v1/social/accounts or the aveiro_social_list_accounts MCP tool.

    Troubleshooting

    Symptom
    What to check
    No connect buttonsChirio may not be configured on this deployment — see the banner on the Accounts page
    OAuth error after redirectRead the banner on **Accounts** — it maps Chirio's reason and includes the platform message when available; then retry the connect flow
    Redirect succeeded but no account listedCheck for a success toast — if the account is still missing, refresh the page or retry; a silent failure usually meant the page ignored the callback before this update
    Orbit connect code rejectedGenerate a fresh code in your hub — codes are single-use and expire
    Account shows warning statusReconnect the account — token may have expired
    Post fails at publish timeOpen the row — per-target errors appear under Results; media URL must be publicly reachable
    Approve or Post now refuses — account no longer connectedReconnecting replaces the account — open the editor warning, click **Remove disconnected accounts**, then re-select under **Publish to**
    Post fails with Account not foundSame stale target — the post still points at an account id from before a reconnect
    X row shows Paid plansUpgrade to Starter or above — X is not included on the free plan

    Related

    • Social overview
    • Approval workflow
    • Agents and API