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

Social Approval Workflow

Write or receive a draft, submit for review, approve with a schedule (or reject with feedback), and let the dispatcher publish — or click Post now.
Updated 10d ago
Connecting Social Accounts
Social Agents and API
In short
Write or receive a draft, submit for review, approve with a schedule (or reject with feedback), and let the dispatcher publish at the right time — or click Post now. Editing someone else's approval sends it back for review; editing your own re-stamps it.

End-to-end flow

draft → needs review → scheduled → published
              ↓             ↓
          rejected       failed
  • Create or receive a draft — from New post in the dashboard (opens a composition dialog), or from an agent via API/MCP (social:write)
  • Submit for review — moves the post to Needs review
  • Approve or reject — a human decides; rejections keep the post with a feedback trail
  • Schedule — click Set schedule to pick a time from the calendar picker; approval copies it into the confirmed publish time; a future time is required
  • Publish — the dispatcher sends due posts every minute, or you click Post now
A proposed schedule (from an agent) is shown on the row but never publishes until approval copies it into the confirmed time — and approval only accepts it if it is still in the future.

Creating a draft

From Dashboard → Social:
  • Click New post — a composition dialog opens; nothing is saved until you confirm
  • Write the base caption
  • Check target accounts under Publish to
  • Add media (library, upload, AI generate, or public URL) — uploads and library picks get aspect-ratio tags automatically
  • Optionally click Set schedule or open Platform override for per-platform captions and first comments
  • Click Save draft to create the row
  • Drafts stay in the Draft tab until you submit them.
    Agents create drafts with POST /api/v1/social/posts or aveiro_social_create_draft. By default, agent drafts submit straight to Needs review.
    When reviewing media, check aspect ratio tags on library assets. Generic assets publish as carousel slides in order; use the per-slide platform selector when one target needs its own crop or a different picture.

    Submit for review

    Click Submit for review when the draft is ready. Status becomes Needs review.
    Use this step even for your own posts — it separates composition from the approval action and matches how agent drafts enter the queue.

    Approve

    When status is Needs review (or Draft / Rejected for a quick path):
    • Expand the row and confirm caption, targets, and media
    • Click Set schedule to open the calendar and time picker — a future time is required
    • Click Approve
    A Schedule is required, and it has to be in the future. Approving is scheduling: the dispatcher publishes any scheduled post whose time has passed, so approving with a time already gone would send the post out on the next pass — an immediate publish nobody chose. Approving with no time at all would leave the post in a status the dispatcher never picks up. Both are refused, with a message saying what to fix.
    Approval records who approved and when, and the post moves to Scheduled.
    If you edited fields since the last save, Approve saves pending changes first.

    Approve and post now

    To send a post out immediately, use Approve and post now from the row's ⋯ menu. This approves and dispatches in a single step, at a publish time of now. It runs the same checks as Approve — targets, caption limits, reddit title and subreddit, live accounts, plan entitlement — and, because it spends credits straight away, it refuses on an insufficient balance rather than warning about it the way Approve does. Like Approve, it saves pending edits first and records who approved in the post's timeline.
    Approve also checks that every target still points at a connected account. If someone reconnected a platform since the draft was saved, you'll see a Disconnected accounts warning in the editor — remove stale targets and re-select, or Approve and Post now refuse with the platform names.

    Reject

    On a Needs review post, click Reject. Optionally add a comment in the feedback thread explaining what to change.
    Rejected posts stay in the list with status Rejected. Edit the draft, address feedback, and Submit for review again. Agents can read rejection comments in the post's event timeline and revise with PATCH /api/v1/social/posts/{id} or aveiro_social_update_draft.

    Comments and feedback

    The feedback thread at the bottom of each expanded row records:
    • Comments — notes between teammates or for agents to read
    • Approved / rejected events — with timestamps
    • Status changes — automatic audit trail
    • AI revision notes — when an agent updates a draft
    Agents read this thread via GET /api/v1/social/posts/{id} or aveiro_social_get_post to revise rejected drafts without guessing what went wrong.

    Scheduling and dispatch

    After approval:
    • Status is Scheduled; a background job checks every minute and publishes posts whose time has passed
    • To go out sooner than the scheduled time, click Post now
    • Rescheduling an approved post follows the same rule as approving it: the new time must be in the future, and it cannot be cleared. To take a post off the schedule, use Move to review
    While publishing, status shows Publishing. Success moves to Published with per-target links and outcome tags. If a first comment was set, it posts from the author's account right after each target publishes; the per-target Results list shows a first comment · published tag (or a warning if the comment failed — the post itself still published). Failures also appear as First comment not posted in the event timeline. Partial publish failure shows Failed with error details per platform.

    Publishing credits

    Every publish path checks whether your organization can afford the post. The estimate counts every target and every first comment — but only successful writes are charged after dispatch.
    Action
    Credit check
    What happens when short
    ApproveAdvisory — shows estimated costYou can still approve; the dispatcher decides at publish time
    Post nowHard check — blocks dispatchError explains cost vs remaining balance
    Scheduled dispatcherAuthoritative at publish timeTarget fails with a credit error; post row shows per-target outcome
    RetrySame as Post nowAlready-published targets are never charged again
    Credits bucket per billing window — approval today does not reserve credits for a post that publishes next month. Check the Publishing credits meter at the top of Dashboard → Social, or Billing → Usage for all metered features.
    Plan entitlements are separate from credits. Targeting X on a free plan is blocked before dispatch — even with credits remaining — because X's per-post cost can exceed the entire free grant. Upgrade to a paid plan to connect and publish there. See Connecting accounts.

    Post now and retry

    Button
    When it appears
    What it does
    Approve and post nowDraft, Needs review or Rejected (in the ⋯ menu)Approves and dispatches in one step, at a publish time of now
    Post nowScheduled (or a legacy Approved post)Immediately runs the same publish path as the dispatcher, ahead of the scheduled time
    RetryFailed (after a prior approval)Re-attempts publish for approved posts that errored

    Editing an approved post

    You can edit drafts, posts awaiting review, approved posts, scheduled posts, and rejected posts.
    When you edit a post you approved, your approval carries over: the post keeps its status and its scheduled time, and the approval is simply re-stamped to you with the new timestamp. Fixing a typo in tomorrow morning's post does not send it back through review.
    Approval is revoked automatically — the post returns to Needs review and loses its scheduled time — when you edit a post that somebody else approved. Your changes need their sign-off again.
    To demote deliberately without saving half-finished editor changes, open the row menu (⋯) on an Approved, Scheduled, or Failed post and choose Move to review. This patches status alone — unsaved caption or media edits stay in the editor until you save. Demoting clears the approval stamp, schedule, and any prior failure so the post can go through review again from a clean state.
    When you edit content on a failed post, the recorded failure is cleared so a fixed post never keeps a red error describing copy that no longer exists.
    Agents can only edit posts in draft, pending_approval, or rejected status over the API — they can never reach an approved or scheduled post, which is why an edit at that stage is always a human decision.

    Captions and media tips

    • One caption cannot fit every platform — Instagram allows 2,200 characters; Threads allows 500; LinkedIn allows 3,000. Use Platform override when posting to multiple targets.
    • First comments publish with the post — put links in the first-comment field (or per-platform overrides) and keep the caption clean. Comment limits are tighter than captions on some platforms — size Threads comments separately.
    • Media must be publicly reachable — Meta fetches image URLs at publish time. Uploaded and AI-generated assets in the org library already have public URLs.
    • Instagram stories skip captions — when every Instagram target on a post is a story, the caption and first-comment fields are not published; attach exactly one media item per story target
    • Carousels — attach several slides on All platforms; assign a slide to a platform when it needs its own set. Platform caps are enforced at approval.

    Related

    • Social overview
    • Connecting accounts
    • Agents and API