Nothing Ships WithoutYour Sign-Off.

Flip a workspace switch and every member-submitted post lands in an approval queue. Owners and admins approve, reject with a reason, or batch-clear. The post ships on its original schedule the moment it’s green-lit — no schedule rewrite, no client surprises.

What you get

🚦

Server-side gate

Approval status set at the API layer, not the UI. Client tampering can’t bypass the queue.

👥

Role-aware bypass

Owners and admins skip the gate. Only member submissions wait for sign-off.

📝

Reject with a reason

Required comment on rejection — the member sees exactly why and what to fix.

Bulk approve / reject

Multi-select pending posts. One action clears the queue.

🗂️

Audit trail

Every submit / approve / reject / comment writes to post_approval_events. Visible in Activity Log.

Schedule preserved

Approval doesn’t rewrite the schedule. Post ships at its original time once green-lit.

💬

Pairs with Draft Discussions

Discuss freely on the draft, then submit. The two flows stay distinct on purpose.

🌍

i18n complete

Full UI shipped in all 8 supported languages — no English-only chrome.

How it works

01

Flip the workspace setting

Workspace settings → Team Approvals → toggle "Require member approval before publish". Owners and admins only.

02

Members submit as usual

Members compose and schedule like normal. Aidelly silently puts the post in approval_status = pending — no extra step in the composer.

03

Owner / admin reviews

Open /team-approvals. Approve, reject with a reason, or batch-clear. Filters for platform, account, and date.

04

Approved posts ship on schedule

Once approved, the post enters the normal publish pipeline at its original scheduled_at — no schedule rewrite.

Team Approvals FAQ

How does the approval gate decide what to hold?

When the workspace toggle "require member approval" is on, any scheduled post created by a workspace member is held with approval_status = pending. Owners and admins always bypass the gate — their posts publish on schedule. The gate is evaluated server-side at create time so client tampering can’t skip it.

Who can review pending posts?

Workspace owners and admins. Members can see their own pending submissions on the Team Approvals page (read-only), but only owners/admins see the approve/reject controls. This matches the existing role model — admins are managed by the owner.

What happens when I approve or reject?

Approve: the post’s approval_status flips to approved and it enters the regular publish pipeline at its original scheduled_at. Reject: the post moves to approval_status = rejected and is returned to draft with the rejection reason attached. The submitting member is notified in-app and (if configured) by email.

Is there an audit trail?

Yes. Every approval action — submitted, approved, rejected, returned to draft, commented — writes a row to post_approval_events. Visible on the post detail drawer and in the workspace activity log. Useful for client SLAs and internal incident reviews.

Can I bulk-approve?

Yes. Multi-select on the Team Approvals page, then "Approve selected" or "Reject selected". A rejection requires a reason — Aidelly will prompt for a single comment that applies to the batch.

How does this interact with Draft Discussions and the Activity Log?

Draft Discussions still works for back-and-forth before submission. Approvals are the formal sign-off step — typically the discussion happens first, then the member submits, then the owner approves. Every approval action is also recorded in the Activity Log so the full chain is in one place.

Stop chasing your team in Slack.

One queue. One sign-off. Every post audited.