Skip to main content

📆 Tweet Scheduler

The Tweet Scheduler is a full composer and queue for your X account: write single posts or threads, save drafts, schedule them for later or post immediately, request a teammate's approval before anything goes out, and share preview links with people outside Fren One.

Overview

From the scheduler you can:

  • Compose posts and threads in a WYSIWYG editor that mirrors how they'll look on X
  • Save drafts, schedule for a date and time, or post now
  • Require a review approval from a teammate before a post publishes
  • Track every post in a queue with status, thread, image, and review pills
  • Share a public, revocable preview link for any draft or published post

Where to find it

  1. Open your project in the Fren One webapp.
  2. Select the X account.
  3. In the sidebar under Agent Configuration, select Messages, then the Tweet Scheduler tab.

The queue is visible to all project members, but composing, scheduling, and managing posts is limited to the project Owner and Project Admins — other members see a "Tweet Scheduler is manager-only" lock on those actions.

Enabling posting

The initial X connection is monitoring-only — Fren One never asks for write access up front. Until the account is authorized for posting, the scheduler shows a banner: "Connect your X account to enable posting" — "Authorize your X account so scheduled posts can be published on its behalf. You can compose drafts in the meantime." Select "Connect with X" to grant posting permission.

You can write and save drafts before authorizing; they just can't be published yet.

Once authorized, posting keeps working until the permissions change on X's side. If that happens, the banner switches to "Reconnect your X account" — "Posting needs updated permissions from X. Reconnect the account to resume publishing scheduled posts."

Composer

Select "New post" to open the composer. A post is a thread of one or more tweet cards — the first shows the placeholder "What's happening?", and "Add to thread" appends another card ("Add another tweet…"). Each card has an emoji picker, an "Add image" button, and a character-count ring.

LimitValue
Characters per tweet280 weighted characters. URLs always count as 23; some characters (emoji and many non-Latin scripts) count as two.
Images per tweetUp to 4, max 5 MB each. The media grid mirrors X's own layouts.
Tweets per threadUp to 25.

Requesting review

The "Request review from" picker (default "No review needed") assigns a teammate as approver — the post publishes only after that member approves it. A scheduled post awaiting approval will not go out until it's approved, and the reviewer gets an inbox alert (see below).

Saving, posting, and scheduling

Three actions close out the composer:

ActionWhat happens
Save draftStores the post in the queue as a Draft. Not available for failed posts.
Post nowQueues the post for immediate publishing.
ScheduleOpens the schedule view: Date and Time inputs seeded to the next full hour, with the note "Times are in your timezone: {tz}." Select "Confirm schedule" to queue it.

The composer validates before accepting: "Every tweet needs text or an image.", "One or more tweets are over the character limit.", "Reconnect your X account to enable posting.", "Pick a date and time first.", and "The scheduled time must be in the future."

The queue

The "Scheduled Posts" card lists every post, filtered by the pills All, Drafts, Scheduled, Sent, and Failed. Each row shows a status pill — Draft, Scheduled, Sending, Sent, Failed, or Canceled — plus a "{count}-tweet thread" pill and image count where relevant, a review pill (Pending review, Awaiting {name}, or Approved), an excerpt, and the schedule or post time.

Row actions:

ActionDescription
ApproveShown to the assigned reviewer on posts awaiting their approval.
View on XOpens the published post on X.
Copy share link / Disable share linkCreates or revokes the public preview link (see below).
EditReopens the composer for drafts and scheduled posts.
Cancel scheduleUnschedules a post without deleting it.
RetryRe-queues a failed post.
DeleteRemoves the post after a confirmation — "This post will be removed permanently."

Copy share link generates a public preview page for any post — no Fren One account needed to view it, which makes it ideal for getting sign-off from clients or teammates outside the project. The link is unguessable, and Disable share link revokes it at any time.

The preview renders the full thread with a "Draft preview" or "Published" badge. Scheduled posts show "Scheduled for {time}"; published ones show "This post has been published on X." with a View on X link. Shared links unfurl with a generated preview image in Slack and other social apps.

How posting works

A scheduled executor publishes queued posts on a short cycle — "Post now" goes out on its next run, usually within a couple of minutes, and scheduled posts publish on the first run after their scheduled time.

If publishing fails, the row shows the reason: "The X account is no longer connected.", "The X account needs to be reconnected before posting.", "Publishing timed out after several attempts.", or the error X itself returned. Failures also raise project inbox alerts:

AlertWhen it fires
Scheduled X post failedA queued post couldn't be published.
X account needs reconnectingPosting permission was lost and needs re-authorization.
X post awaiting your reviewA post was assigned to you for approval.
Failed mid-thread

If a thread fails partway through, the post is retry-only — you can't edit it or save it back to a draft. Retry resumes the thread from where it stopped rather than reposting the tweets that already went out.

Saving your changes

There is no page-level Save bar — each post is saved individually when you select Save draft, Post now, or Confirm schedule in the composer. Deleting a post asks for confirmation first.

Best practices

Running a smooth queue
  • Authorize posting right after connecting the account so scheduled posts never stall on permissions.
  • Use "Request review from" for announcement threads — a second pair of eyes before publishing costs nothing.
  • Share links beat screenshots for external sign-off: reviewers see the thread exactly as it will render, and you can revoke access afterwards.
  • Keep an eye on the Failed filter after changing anything about the X account's access.
Troubleshooting

"Post now" didn't publish instantly?

  • Posts go out on the executor's next run — usually within a couple of minutes, not the same second.

A scheduled post never went out?

  • Check for a "Reconnect your X account" banner — posting stops when X-side permissions change.
  • If the post has a reviewer assigned, it publishes only after approval — look for a Pending review or Awaiting {name} pill.
  • Check the Failed filter for the row's failure reason.

I can see the queue but can't compose?

  • Composing and managing posts is limited to the project Owner and Project Admins. Ask an Owner for the Project Admin role if you need to post.

A share link stopped working?

  • Someone selected Disable share link — copy a new one from the row actions.