Client video publishing

Agency short-form ops, one client at a time

Agency short-form ops in Postdom means giving each client a separate workspace, supplying the finished videos, deciding who reviews them, and checking what actually published. Your team keeps creative production and client sign-off; an agent can handle the publishing work within the authority you give it.

Where Postdom fits in your agency

You bring the finished work

Your team produces and edits the video, agrees the caption and gets the client’s sign-off. Postdom publishes supplied videos to TikTok, Instagram Reels, YouTube Shorts, LinkedIn, Facebook Reels, X, Snapchat Spotlight, Threads and Bluesky; it does not generate them.

The agent follows the publishing request

It reads the client’s brief, submits authorized work and checks the returned post ID. Your reviewer controls approvals and policy, and decides what happens when the work needs attention.

Keep your creative review, project management and client reporting tools where they already work. Start with a client whose finished-video workflow and destination settings fit the publishing path you choose.

Set up agency short-form ops for each client

  1. Choose the client workspace

    Open New workspace… from the workspace menu, Cmd+K, or the switcher to create a client workspace, or use Switch workspace to move to an existing one. Cmd+K marks the current workspace Current. Keep that client’s connected accounts, brief, agent access and billing there; switching the dashboard does not switch a separately configured agent connection.

  2. Connect the right people and accounts

    In Accounts, connect the agent to this workspace and have an authorized human complete social-account authorization. Owners and admins can invite collaborators from Invite people. Choose their role deliberately: membership is not permission to change every approval or policy control.

  3. Save the brief and name the reviewer

    In Policy, save a new Workspace Brief version with the client’s voice, approved claims and things to avoid. The brief guides the agent; enforceable schedules, caps and visibility rules belong in Policy. Name the person who will review the actual video, caption, audience and planned time.

  4. Choose when a human must approve

    For review of every agent post, set that account to L1 Post review before submission. Do not assume it is the default. Choose plan review only when a human is ready to approve the accounts, time window and scope; bounded autonomy uses the account’s saved policy instead.

  5. Submit the finished video, then follow its ID

    Give the agent an accepted video URL or already-stored media handle, the selected account IDs, the reviewed caption and a future UTC time. Keep the returned post ID. If review is required, an authorized human checks the exact request in Review. Then use Schedule and the run result to distinguish waiting, publishing and published.

Client separation is a habit as well as an access boundary. A workspace credential scopes API requests; it does not clear the agent’s memory or choose the correct connection. Start a separate task for each client and verify the workspace, brief and accounts before submitting.

Workspace settings · Accounts and agent access · Policy and Workspace Brief · How human authority works

Choose the review point before the agent posts

Agree who is responsible for client sign-off and who records the decision in Postdom. They may be the same person, but an email approval and a Postdom approval are different steps.

ModeWhat the human decides
L0 · ManualThe agent creates a draft. A human chooses whether and when it publishes.
L1 · Post reviewEach agent post waits for exact human approval before provider handoff.
L2 · Plan reviewPosts flow only inside one approved plan covering the accounts, UTC window, and post maximum.
L3 · Bounded autonomyPosts flow only inside the account's saved daily cap, visibility allowlist, and quiet hours.

For a client who expects to sign off every post, use L1 Post review before submission. Do not assume new accounts start there. An agent cannot approve its own work or increase its authority. Invite reviewers with an appropriate role. Admin access is not a narrow client-review permission.

A client handoff you can use

Imagine Harbor, a fictional client, has approved a launch video. Your agency lead opens Harbor’s workspace, confirms its Instagram account and current brief, and asks the agent to submit the reviewed video for the agreed UTC time. The account is set to Post review.

The returned post needs approval. The lead opens Review, checks the video, caption, audience and disclosures, then records the decision. In Schedule, they check the saved time and status. After handoff, the agent reads the same ID and reports the actual Instagram result, not just “submitted.” If anything fails, the lead owns the next decision.

Before moving to Cedar, another fictional client, stop Harbor’s task. Choose Cedar’s connection and read Cedar’s brief and accounts again. Switching the browser workspace alone is not enough.

Open a copyable client handoff note

This is a record for your team, not a request payload or a completed result. Fill it from the actual client workspace.

Client / workspace: [name and verified workspace reference]
Agent connection: [connection authorized for this workspace; never paste a key]
Accounts: [returned providerAccountIds and destinations]
Brief: [current version read from this workspace]
Finished video: [accepted URL or stored handle reviewed by a human]
Caption, audience and disclosures: [exact reviewed settings]
Reviewer and authority: [person, account review mode, approved plan if required]
Schedule: [future UTC time; record the client’s local time and date-specific offset separately]
Post ID: [returned after submission; do not invent one]
Outcome: [each destination’s exact result and error, if any]
Next action / owner: [review, wait, reconcile or a human recovery decision]

Check the agent’s settings before a client launch

Connecting an agent authorizes workspace access. It does not approve a particular post or guarantee the audience your client expects. The released convenience helpers have fixed destination settings:

Do not use these helpers for a public client launch while assuming they can change those settings. Stop if a disclosure is false or a required control is unavailable. The platform-specific scheduling guides explain the supported paths: TikTok, Instagram Reels and YouTube Shorts.

Open the agency agent brief and connection options

Use the supported connection setup first. In Accounts, authorize the selected workspace through OAuth, or have an owner/admin create a workspace key for a custom agent. Store keys privately, never in a prompt or source control. Revoke obsolete access when a client engagement ends.

Work only in the explicitly selected client workspace and configured connection. Do not reveal credentials.
Read get_workspace_status, list_accounts and get_brief. Confirm the workspace reference, current brief and providerAccountIds with me. Stop on a mismatch, pause, locked connection or unclear policy. Do not reuse another client’s context or IDs.
Use only the finished video I supply. Show me the video, caption, selected accounts, audience/disclosure settings and future UTC time before submission. Do not generate replacement media.
Use a released helper only if its actual settings fit: TikTok is private with AI and preview/consent assertions, Instagram asserts AI generation without a private override, and YouTube is private with synthetic-media disclosure and not-made-for-kids. LinkedIn receives no settings: it sets its own required visibility value, which Postdom neither chooses nor reads, and it carries no AI disclosure. Treat LinkedIn as a destination where audience and disclosure are unavailable controls, and stop rather than assume them. Facebook Reels is sent one fixed setting, the Reel format, and carries no AI disclosure on the publishing path. X and Snapchat Spotlight are sent nothing at all, and neither carries an AI disclosure; Snapchat also requires a Public Profile on the account, so a client account without one cannot publish. Threads is sent nothing either and carries no AI disclosure; a Threads profile being public or private is what decides the audience, and the post inherits it from the account. Bluesky is sent nothing either, and there it is because the post record has no visibility field at all - every Bluesky post is public, which is a fact about Bluesky rather than about Postdom. Treat all five the same way as LinkedIn: audience and disclosure are not controls you have here. Stop if any assertion is wrong or a required control is unavailable.
I decide approval mode and policy. Submit only after my review and permission; include plan_id only for work inside a human-approved plan. Never approve yourself or widen authority.
Save the returned post ID and read get_publish for that same ID. Stop for required human review. Wait for scheduled/publishing only within an agreed waiting budget, then return the ID if unresolved. Preserve each destination result. Reconcile an uncertain submission before retrying; do not replay successful destinations.
Before another client, stop this task and verify that client’s connection, accounts and brief again.

The brief is guidance, not a substitute for enforced Policy or a human approval. Use a stable idempotency key for the same intended request; if its outcome is uncertain, reconcile it before retrying. An accepted request is not a completed publication.

See the released SDK request and same-ID outcome flow. This page describes the workflow; it does not claim a real authenticated publish was tested.

When a client post needs attention

Return the post ID, destination, current state and error to the named owner. Do not hide a missed slot behind a new submission.

What happenedNext action
A review is waitingrequires_approvalSend the reviewer the post ID and open Review in the correct workspace. A chat message saying ‘approved’ does not record a Postdom approval. Upcoming can still include posts waiting for review.
The reviewer needs a changechanges_requested / rejectedRead the feedback and return it to the owner. Do not submit the same rejected work under a new ID. Agree the next request with the reviewer; do not invent an in-place revision action.
The post has no live slotdraft / missed_approval / missed_scheduleA human can choose a new UTC time with Reschedule or deliberately choose Publish now for these states. Do not publish time-sensitive client content late without a decision.
The request is still in progressscheduled / publishingRead the same post ID again later. Do not create a replacement while the original is waiting or being processed. A scheduled handoff time is not a guarantee of visible publication at that instant.
Some or all publishing failedpartial / failedRead each destination result and preserve its error. If some succeeded, keep those results; do not replay the entire post. Have the owner decide what to fix before another attempt.
Do not guess whether to retryPolicy stop / uncertain submissionIf policy stopped work before submission, resolve it and obtain fresh authorization. If the result is unclear, the provider may have received it: reconcile the original request before retrying.

Close the loop with evidence the client can understand

Separate “published” from “performed well.” Save each destination outcome, then read available performance data for that client. A missing, delayed or unsupported metric is not zero. Keep its availability and reason when you prepare the client report; do not combine unlike platform metrics into an invented total.

Use the current brief, post results and available measurements to propose the next plan. Your team still supplies the interpretation and the client-facing report. These records do not prove revenue attribution or client growth. Read how measurement availability works.

Before quoting the engagement, check current workspace pricing and the client-facing features you need. Workspace switching does not imply a consolidated portfolio report or no-login client portal. Confirm branding and custom-domain access before including them in a proposal.

Agency questions

Can one agency manage several clients in Postdom?

Yes. Use a separate workspace and agent connection for each client. The workspace menu and New workspace… modal let a human create and switch workspaces. That is not a combined client reporting dashboard, and changing the active browser workspace does not reconfigure an agent connection.

Does a workspace prevent an AI agent from mixing client instructions?

The credential scopes API access to its workspace. It does not erase the model’s conversation or choose the right connection for you. Before changing clients, confirm the connection, current brief and returned account IDs. Keep separate client tasks and never carry another client’s assets or approvals into the request.

Can the client approve a post from a shared link without signing in?

This workflow uses an authenticated, authorized workspace reviewer, not a no-login client approval portal. Agree who records the final decision in Postdom. Owners and admins can invite collaborators, but roles have different permissions; do not grant broad admin access merely to imitate a client-only approval link.

Does every post wait for approval?

Not in every mode. L1 Post review requires the exact human post decision. L0 leaves publishing to a human; L2 operates inside a human-approved plan; L3 operates inside saved account policy. A human chooses the mode, and the agent cannot promote itself. Set the desired mode before submission.

Does Postdom make the videos or deliver branded client reports?

Postdom publishes finished videos you supply to TikTok, Instagram Reels, YouTube Shorts, LinkedIn, Facebook Reels, X, Snapchat Spotlight, Threads and Bluesky. Keep production, editing and client-ready reporting in your existing workflow. Use the returned outcomes and available measurements as evidence; unavailable data is not zero or proof of poor performance.

What should we check before quoting a client?

Check current workspace pricing, usage and the exact client-facing features you need. A separate workspace does not imply a bundled agency plan, consolidated billing, branded reports or a no-login approval portal. Confirm branding and custom-domain access before including them in a proposal.

Talk to us

Not sure where to start? Let's talk.

Tell us what your agency publishes for clients today and we will show you what Postdom does and does not do, against your own workflow rather than a demo account.

  • TikTok, Instagram Reels, YouTube Shorts, LinkedIn, Facebook Reels, X, Snapchat Spotlight, Threads and Bluesky — the destinations Postdom publishes to today, and no others.
  • A permanent Free plan — you can start without talking to anyone, and this offer is for when you would rather not.
  • Human approval built in — an agent cannot approve its own work or widen its own authority.

Book a demo

Tell us about your setup.

All fields are required.

Sent to support@postdom.com. Do not include passwords, agent keys, OAuth tokens, or payment-card details. Read the Privacy Policy.