Provider overview
Postli publishes posts and reads engagement on nine social networks. Each one has its own OAuth flow, post-type rules, character limits, and quirks — this section documents what works, what doesn’t, and what to expect when you connect an account.
Supported providers
The nine providers below are live in production. Postli operates as an official OAuth client with each one — we never store passwords, only short-lived access tokens (refreshed automatically) on your behalf.
Feed posts, stories, and reels on Instagram Business / Creator accounts via the Meta Graph API.
Page posts — text, image, video, link — on Facebook Pages you administer.
Tweets with up to four images or one video. Thread support and pinned-reply auto-comments.
Video uploads with privacy settings, captions, and disclosure flags (Brand Content / Promotional).
Text-first posts with optional media on Meta’s Threads platform, linked to Instagram identity.
Upload videos or Shorts with title, description, tags, category, and privacy settings.
Personal profile posts and Company Page posts — text, image, video, document.
Pin to boards with title, description, source URL, and image or video media.
Local-post updates on Google Business Profile locations — offers, events, news.
How publishing works
Postli stores one access token per connected account in encrypted form. When a scheduled post fires, the queue worker calls the provider’s publishing API with the resolved content (master post or per-channel override), records the returned platform_post_id, and writes an entry to the publish log. Engagement metrics are pulled periodically using the same token.
The lifecycle for every provider is the same:
- OAuth grant — the merchant connects their account through the provider’s consent screen.
- Token storage — Postli stores the access token (and refresh token, where applicable), encrypted at rest.
- Publish — the queue worker posts on schedule and saves the resulting post ID.
- Engagement read — likes, comments, impressions are fetched periodically and surface on the post’s detail view.
- Auto-refresh — tokens are renewed before expiry where the provider supports it; otherwise we surface a re-auth banner.
Master & channel posts
Every post in Postli has a single master record — the source of truth for content and media — plus one channel record per target provider. The channel record optionally overrides the master with platform-specific copy, media, or scheduling. If a channel doesn’t override, it inherits from the master at publish time.
This is why you can write one post, switch the “X” tab and rewrite it to fit 280 characters, switch the “Pinterest” tab and swap in a 2:3 vertical image — without duplicating the rest.
Auto-comments
Postli attaches a follow-up comment to a post under three conditions:
- Instant — fires immediately after the parent post lands. Used for product-link comments (better engagement than putting the link in the post body).
- Time — fires N minutes after publish; the worker checks the schedule each minute.
- LikeCount — fires once the post reaches a threshold of likes / reactions, polled from the provider’s insights API.
Auto-comment support per provider varies and is called out on each provider’s docs page.
UTM injection
When you enable auto-UTMs on a post, Postli appends utm_source={platform}, utm_medium=social, and utm_campaign={post_id} to every URL in the published content at the moment the platform API is called — never before. This guarantees the right utm_source for each channel without you typing it manually.