Guides

Publish a post to several channels

One post, a variant per channel, a first comment, a schedule, and what to do when it needs approval.

Find your channels

tracee channels

--channel in the CLI takes a channel id, a platform (linkedin) or part of a channel's name. Over HTTP, use ids from GET /channels. Only channels marked allowed take posts from the API.

Create and publish

tracee posts create \
  --body "Our new dashboard is live." \
  --channel linkedin --channel x \
  --link https://acme.com/launch \
  --thread "Details in the first comment: https://acme.com/launch" \
  --publish 2026-11-20T09:00
  • publish takes now or a time; leave it out to keep a draft.
  • linkUrl gets UTM tags per channel, so contacts in your CRM trace back to the post.
  • thread parts become replies on X and Threads, and comments on LinkedIn, Facebook, Instagram, YouTube and Reddit.
  • variants give a channel its own copy, media or settings (an Instagram reel, a YouTube title…). See POST /posts.

The answer includes brandIssues per channel. Issues block publishing until you fix the copy with PATCH /posts/{postId}.

When it needs approval

If the workspace requires approval to publish, the answer's publish.status is pending_approval (CLI: Sent for approval). A person approves it in Tracee, and it goes out at the time you asked for. Follow it with tracee approvals or GET /approvals.

Afterwards

tracee posts next-slot --channel-ids <channel_id>       # the next free posting time
tracee posts reschedule <post_id> --scheduled-for 2026-11-21T09:00:00Z
tracee posts unschedule <post_id>                       # keeps its approval
tracee posts duplicate <post_id>                        # a new draft from any post
tracee posts unpublish <post_id> --note "Wrong link"    # asks a person
tracee analytics engagement --days 7                    # views, likes, comments, clicks