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 an approved post sends it back for review.
End-to-end flow
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
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.
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
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. If an agent attached several generic crops from one AI prompt, Aveiro picks the best match per platform at publish — you do not need to assign each crop manually unless you want a specific override.
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, or leave unset for immediate publish
Click Approve
Approval records who approved and when. The post moves to Approved (immediate) or Scheduled (future time).
If you edited fields since the last save, Approve saves pending changes first.
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:
Future schedule — status is Scheduled; a background job checks every minute and publishes posts whose time has passed
No schedule or past time — status is Approved; use Post now or wait for the next dispatcher pass if the time is already due
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
Approve
Advisory — shows estimated cost
You can still approve; the dispatcher decides at publish time
Post now
Hard check — blocks dispatch
Error explains cost vs remaining balance
Scheduled dispatcher
Authoritative at publish time
Target fails with a credit error; post row shows per-target outcome
Retry
Same as Post now
Already-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
Post now
Approved or Scheduled
Immediately runs the same publish path as the dispatcher
Retry
Failed (after a prior approval)
Re-attempts publish for approved posts that errored
Editing revokes approval
You can edit drafts, posts awaiting review, approved posts, scheduled posts, and rejected posts. Once a post was approved or scheduled, any edit revokes approval and sends it back through review.
This prevents silent changes from going live without a second human check. Agents can only edit posts in draft, pending_approval, or rejected status over the API.
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.
One image per platform target in Phase 1 — carousels require a future Chirio update.