Skip to main content

Pipeline & Approval

The Pipeline is where you review, approve, and manage all content before it goes live. Every piece of content -- whether created by Toby or manually -- passes through the Pipeline, giving you full control over what gets published.

Why a Pipeline?

ViralToby is designed with a human-in-the-loop approval process. This serves two purposes:

  1. Quality control -- You always have the final say on what represents your brand.
  2. Platform compliance -- Meta's Terms of Service require human oversight for AI-generated content. The Pipeline ensures compliance by design.
info

Toby generates content and recommends it for publishing, but only you can approve it. This keeps you in control while letting Toby handle the creative heavy lifting.


Content Lifecycle

Every piece of content moves through a clear lifecycle:

Generating → Pending Review → Approved → Scheduled → Published

Lifecycle Stages

StageWhat HappensYour Action
QueuedJob has been created and is waiting for a generation worker to pick it up. This is a brief transitional state before generation begins.Wait. The job will move to Generating within seconds.
GeneratingContent is being created -- AI text, images, video rendering in progress. An elapsed timer shows how long the job has been running.Wait. You will see a progress indicator.
Pending ReviewContent is complete and waiting for your review in the Pipeline.Review and approve or reject.
ApprovedYou approved the content. It will be auto-scheduled to your next available time slot.No action needed.
ScheduledContent has an assigned publish date and time. It will go live automatically.Optionally reschedule or cancel.
PublishedContent was successfully published to your connected platforms.View performance in Analytics.

Additional Statuses

StatusMeaning
RejectedYou rejected the content. It is discarded and Toby learns from the rejection.
FailedPublishing failed (e.g., token expired, API error). You can retry or discard.
PausedContent was paused (usually due to billing issues). Resumes when billing is resolved.

Stuck Job Auto-Recovery

If a generating job has not made progress for more than 3 minutes, ViralToby automatically attempts to recover it. The recovery system:

  1. Detects stalled progress (no progress_percent update in 3 minutes)
  2. Marks the job for retry and re-queues it
  3. Logs the recovery attempt in the system logs

This prevents jobs from getting permanently stuck due to transient failures in AI image APIs or network timeouts. If a job fails recovery after 3 attempts, it moves to the Failed status.


Reviewing Content

When content reaches "Pending Review" status, you can review it in the Pipeline page.

What You See

For each content piece in the Pipeline, you can:

  • Preview the video -- Watch the full rendered Reel or view all Carousel slides.
  • Read the caption -- See the platform-specific caption that will be posted.
  • Check the title -- Review the headline and content points.
  • See the quality score -- View the QSF score (0-100) that the content received.
  • View metadata -- Content format, which brands it will publish to, creation time.
  • See the variant label -- Pipeline cards show a color-coded dot and format label (e.g. "Format A Light", "Format B", "Slide C") so you can tell at a glance what type of content each card is.
  • Elapsed timer -- Generating cards show how long generation has been running so you can spot jobs that may be stuck.

Approving Content

Click Approve to move content forward. Approved content is automatically scheduled based on your posting schedule:

  • If you have empty time slots coming up, the content is assigned to the next available slot.
  • Your posting schedule (configured in Toby settings) determines how many Reels, Carousels, and Threads per day.
  • Time slots are distributed throughout the day based on your audience's optimal engagement times.

Rejecting Content

Click Reject to discard content. Rejected content is:

  • Removed from the Pipeline permanently.
  • Recorded as a rejection signal. Toby factors rejections into its learning -- if you consistently reject a particular style or topic, Toby reduces its probability in future content plans.
tip

When rejecting content, the rejection itself teaches Toby. Over time, you will see fewer pieces that match the patterns you tend to reject. Your review decisions directly shape Toby's creative direction.


Auto-Scheduling

When you approve content, ViralToby automatically assigns it a publish time. Auto-scheduling considers:

  1. Your daily posting limits -- How many Reels, Carousels, and Threads per day (configured in Toby settings).
  2. Time slot distribution -- Posts are spread throughout the day, not clustered.
  3. Slot availability -- If a slot is already taken, the next available slot is used.
  4. Platform timezone -- Scheduling respects your configured timezone.

You can manually override the scheduled time by editing the content's publish time in the Calendar view.


Pipeline Filtering and Sorting

The Pipeline page provides filtering and sorting options to help you manage your content:

Filters

  • Status -- Filter by lifecycle stage (Pending, Approved, Scheduled, Published, Rejected)
  • Brand -- Show content for a specific brand
  • Content type -- Filter by Reels, Carousels, or Threads
  • Creator -- Filter by who created the content (Toby vs. manual)

Sorting

  • Newest first -- Most recently created content at the top (default)
  • Oldest first -- Oldest content at the top
  • Quality score -- Highest-scoring content first

Bulk Actions

For efficiency, the Pipeline supports bulk operations:

  • Approve all -- Approve all pending content in one click.
  • Select multiple -- Select specific pieces and approve or reject them together.
warning

Use "Approve all" carefully. While Toby's quality scoring filters out low-quality content, reviewing at least a few pieces ensures the voice and topics match your expectations, especially when you first set up your Content DNA.


Calendar View

The Calendar view shows your scheduled content on a visual calendar:

  • See which posts are scheduled for which days and times.
  • Identify gaps in your publishing schedule.
  • Spot potential issues like too many posts on one day.

The Calendar is especially useful for planning around events, holidays, or themed content weeks.


How Pipeline Status and Job Status Work Together

Behind the scenes, each content piece has two status fields:

FieldPurposeValues
statusThe generation job's technical statuspending, generating, completed, failed
pipeline_statusThe human review statuspending, approved, rejected, downloadable

These combine to determine the content's lifecycle -- the user-facing stage shown in the Pipeline UI. The lifecycle is computed server-side from both fields plus additional data like brand output statuses and publish records.

For example:

  • status=completed + pipeline_status=pending = Pending Review
  • status=completed + pipeline_status=approved + scheduled time assigned = Scheduled
  • status=completed + pipeline_status=approved + published to all brands = Published
info

You do not need to understand the internal status fields -- the Pipeline UI shows the clear lifecycle stage. This detail is provided for advanced users who want to understand the underlying data model.


Meta Terms of Service Compliance

ViralToby's Pipeline is designed to comply with Meta's requirements for AI-generated content:

  • Human review is mandatory -- AI-generated content is never auto-published. A human must approve every piece.
  • Content is clearly generated -- The system tracks that content was created by Toby (via the created_by field).
  • User has final authority -- You can reject any content, edit captions, and control scheduling.

This human-in-the-loop approach keeps your accounts safe and compliant with platform Terms of Service.


Calendar & Scheduling

Calendar Page

The Calendar page gives you a visual overview of everything that is scheduled, published, or failed across your brands. Month and week views are both available — on mobile, the week view is forced for readability. You can filter the calendar by:

  • Brand — Show content for one brand or all brands.
  • Creator — Filter by Toby-generated or manually created content.
  • Content type — Filter by Video, Posts, or Thread.
  • Platform — Show only content going to a specific platform.
  • Status — Filter by Scheduled, Published, or Failed.

The calendar is a planning and review surface. Rescheduling individual posts is done through the scheduled content management view, not from the calendar itself.

Timezone

ViralToby uses a per-user timezone setting. When you first sign in, the platform auto-detects your browser timezone and applies it as your default. All times displayed across the Calendar, Pipeline, and scheduled content views reflect your selected timezone.

The backend stores all publish times in UTC. Your timezone preference is applied at display time, so changing your timezone setting updates all displayed times without affecting when content actually publishes.

Auto-Scheduling

When you approve content in the Pipeline, ViralToby automatically assigns it to the next available time slot. The scheduling system:

  • Allocates 6 slots per day per brand, distributed every 4 hours.
  • Staggers brands using a per-brand offset so multiple brands do not publish at exactly the same time.
  • Alternates light and dark variants for video formats to keep your feed visually varied.

You do not need to pick a time manually — approved content is placed into the schedule immediately.

Rescheduling

If you want to move a scheduled post to a different time:

  1. Open the scheduled content management view.
  2. Select the post you want to reschedule.
  3. Click Reschedule and pick a new date and time.

You cannot schedule a post in the past. If the chosen time is already occupied by another post, the system will notify you.

info

Rescheduling is available in the scheduled content management view, not from the calendar. The calendar is a read-only visual overview.

Slot Cleanup

Scheduling conflicts can occur when multiple posts end up assigned to overlapping slots — for example, after a brand's schedule changes or after a bulk approval. ViralToby provides two cleaner tools to resolve this automatically:

  • Reel Schedule Cleaner — Detects conflicting reel slots and shifts affected posts forward to the next available slot.
  • Post Schedule Cleaner — Does the same for image posts and carousels.

Run the appropriate cleaner from the scheduled content management view whenever you notice two posts assigned to the same time.

Deduplication

ViralToby uses a 3-layer system to prevent the same content from being scheduled multiple times:

LayerWindowWhat it checks
Time-slot dedup±30 minutesPrevents two posts from occupying the same slot
Title dedup5-day windowPrevents scheduling a post with a title too similar to a recently scheduled one
Caption dedup3-day windowPrevents scheduling a post with a caption too similar to one published in the last 3 days

These checks run at schedule time (when you approve content), not at generation time. If a post fails the dedup check, it is not scheduled and you will see a warning in the Pipeline.