Social Distribution Overview
Generate, schedule, and publish posts to Instagram and TikTok.
The Social Distribution layer is the engine for organic social. It pairs with the Social Content layer (which generates posts) to deliver:
- AI-generated posts (image, carousel, video) tailored per platform.
- Scheduling — posts are spread across daily time slots.
- Publishing — automatic direct publish or manual (Instagram: pending-manual queue; TikTok: pushed to the app's drafts inbox).
- Analytics & UGC discovery feeding back into ad eligibility.
How it fits together
Social Content layer → generates content_containers
↓
ads_content (organic_score = 7.0)
↓
Social Distribution layer → computes daily slots
↓
attach-to-schedule → reserves a slot for each ready container
↓
process-due (runs every minute) → publishes due slots
↓
platform_posts → metrics synced via Graph API / TikTok API / SIFTPlatforms
Only Instagram and TikTok are wired up end-to-end for generation, scheduling, publishing, and metrics. YouTube Shorts, X (Twitter), and LinkedIn are not supported at this time — there are no OAuth flows, publishers, or metric collectors for them.
| Platform | Feed post | Reel / Video | Carousel / Slideshow | Stories |
|---|---|---|---|---|
| Yes | Yes (Reels) | Yes (carousel) | No | |
| TikTok | n/a | Yes | Yes (photo slideshow) | n/a |
Note: Instagram publishing is direct-to-feed via the Graph API in automatic mode. TikTok automatic mode publishes publicly; manual mode (the default) pushes to the creator's drafts inbox for them to finalise in the TikTok app.
Modes
The distributionMode config controls posting time selection:
automatic— Layers picks default times based on account temperature (cold = 1 slot/day, warm = 2, hot = 3).custom— you supply an array ofHH:MMtimes in the project timezone (config.schedule.times).manual— the scheduler does not create slots; you schedule each post yourself.
Publishing behaviour is controlled separately via each scheduled post's
posting_mode metadata (automatic vs not). generationMode
(automatic | manual) controls whether unfilled slots trigger content
generation.