> ## Documentation Index
> Fetch the complete documentation index at: https://docs.socializioz.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Post composer

> Create, refine, and publish social posts in the Socializioz composer with media attachments, AI caption assistance, preflight checks, and post scheduling.

The Post composer is where most content work happens in SocializioZ. Use it to draft captions, attach images or videos, pick the destination account, and either publish now or schedule for later.

## When to use it

Use the composer when you need to:

* Create a new post for one or more connected channels.
* Turn a draft idea into a ready-to-publish post.
* Add media from the Media library.
* Improve wording with AI tools before publishing.
* Schedule content for a specific date and time.

If you are planning across many days at once, start in the [Scheduling and calendar](/features/scheduling) page and open the composer from a calendar slot.

## Composer modes

The composer offers two modes — pick the one that matches the task:

| Mode                       | Best for                                                                 | How to open                                                                         |
| -------------------------- | ------------------------------------------------------------------------ | ----------------------------------------------------------------------------------- |
| **Standard composer**      | A single post on a single account. Fastest path for everyday publishing. | Open **Composer** from the sidebar, or click **Create post** from any account card. |
| **Guided content builder** | Publishing the same idea to multiple platforms in one flow.              | Tap **Guided** (or the wizard icon) inside the composer.                            |

You can switch modes at any time without losing the caption or media you have already added.

## Standard composer layout

The standard composer is organized top to bottom around a single post:

1. **Account picker** — select the destination social account.
2. **Content type buttons** — appear after the account is chosen (for example, Feed, Story, Reel for Instagram).
3. **Caption editor** — supports English and Arabic with automatic text-direction detection. A live character count shows the platform's limit.
4. **Media strip** — preview, reorder, or remove attached files. The **+** button opens upload, [media library](/features/media-library), or AI generation.
5. **Assist panel** — AI Write, Enhance, and AI Suggest buttons (see [Assist panel](#assist-panel)).
6. **Optional metadata** — internal title, destination URL with optional UTM parameters, and campaign assignment.
7. **Action mode switcher and action button** — pick **Publish**, **Schedule**, or **Draft** before clicking the action button.
8. **Preflight checklist** — appears below the action button when a check fails or warns (see [Pre-publish validation](#pre-publish-validation)).

Each section is collapsible on smaller screens so the caption editor stays in view.

## Guided content builder

The guided content builder walks you through five steps so you can publish the same content to multiple accounts in one pass. Use it when a single idea needs to ship to Instagram, Facebook, X, LinkedIn, or TikTok at once.

<Steps>
  <Step title="Connect — choose accounts">
    Select one or more destination accounts. Mixed-platform selection is supported. The wizard adapts the next steps to the platforms you pick.
  </Step>

  <Step title="Platform — pick content types">
    For each selected account, choose the content type (Feed, Story, Reel, Video, or Post) based on what the platform supports. See [content types by platform](#content-types-by-platform).
  </Step>

  <Step title="Media — attach files">
    Upload from your device, pick from the [media library](/features/media-library), or generate images and videos with AI. The wizard validates each file against every selected platform's requirements.
  </Step>

  <Step title="Caption — write or generate">
    Write one caption that ships to every selected account, or use **AI Write** with the tone and length controls. Tones include Professional, Casual, Friendly, Funny, and Inspiring. Lengths are Short, Medium, or Long.
  </Step>

  <Step title="Review — confirm and ship">
    The review step shows a per-platform preview, the [pre-publish validation](#pre-publish-validation) results, and the action mode (Publish, Schedule, or Draft). One click creates a separate post on each selected platform.
  </Step>
</Steps>

<Note>The builder creates an independent post per platform, so you can edit or reschedule one platform without affecting the others.</Note>

## Content types by platform

The content type buttons that appear in the composer depend on which account you selected. Use this table as a quick reference for what each platform supports.

| Platform    | Feed | Story | Reel | Video | Post | Required media                                 |
| ----------- | ---- | ----- | ---- | ----- | ---- | ---------------------------------------------- |
| Instagram   | Yes  | Yes   | Yes  | --    | --   | Image or video required on every type          |
| Facebook    | Yes  | Yes   | Yes  | --    | --   | Optional for Feed; required for Story and Reel |
| TikTok      | --   | --    | --   | Yes   | --   | Video required                                 |
| X (Twitter) | --   | --    | --   | --    | Yes  | Optional                                       |
| LinkedIn    | --   | --    | --   | --    | Yes  | Optional                                       |

If you select a content type that requires media and none is attached, the action button stays disabled and the [pre-publish validation](#pre-publish-validation) explains what to add.

## Assist panel

The Assist panel is the AI writing companion inside the composer. Open it from the wand icon next to the caption editor.

It exposes three primary tools:

* **AI Write** — generate a brand-new caption from a short prompt or idea.
* **Enhance** — refine an existing caption for clarity, tone, and grammar without changing the meaning.
* **AI Suggest** — propose hashtags relevant to the caption and selected platform.

Each tool runs against your active [brand profile](/features/brand-profiles) so the output stays on-brand.

### AI writing tools

The Assist panel exposes the same AI writing tools that other docs and changelog entries reference. Use the buttons in the toolbar above the caption editor:

| Button         | What it does                                        | When to use it                            |
| -------------- | --------------------------------------------------- | ----------------------------------------- |
| **AI Write**   | Drafts a new caption from your prompt               | Starting from scratch or stuck on wording |
| **Enhance**    | Rewrites your existing caption for tone and clarity | You have a draft but want it polished     |
| **AI Suggest** | Generates relevant hashtags                         | Adding discoverability before publishing  |

You can run any tool multiple times until the result feels right. Each generation respects the tone and length selectors and applies your campaign's [blocked terms](#blocked-terms) automatically.

### Caption length selector

When you use **AI Write**, the Assist panel includes a **length selector** alongside the tone selector to control how much text the AI generates.

| Length     | Best for                                                                     |
| ---------- | ---------------------------------------------------------------------------- |
| **Short**  | One- or two-sentence captions for X, Story copy, or quick announcements      |
| **Medium** | Standard captions with a hook, body, and call to action                      |
| **Long**   | Longer-form captions for LinkedIn, Facebook articles, and storytelling posts |

The same length options appear in the guided content builder's advanced caption settings.

### Tone control

Tone applies to **AI Write** and **Enhance** results. The standard composer ships with **Professional**, **Casual**, and **Friendly**. The guided content builder adds **Funny** and **Inspiring**. Pick the tone that matches the audience you are writing for.

## Resolution hints

When you attach a video or image, the composer overlays a resolution badge on the media preview to flag platform compatibility before you publish.

| Badge | Meaning                                                                                            | What to do                                         |
| ----- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
| Green | Media meets every requirement of the selected platform and content type                            | Continue — no action needed                        |
| Amber | Media works but is below recommended quality (for example, a 720p reel where 1080p is recommended) | Optional — re-export at higher quality if possible |
| Red   | Media fails a platform requirement (resolution, aspect ratio, file size, codec, or duration)       | Replace the file before publishing                 |

Hovering or tapping the badge expands a tooltip with the exact reason and the [video resolution reference](#video-resolution-reference) link.

## Video resolution reference

Use this table to verify a video meets the platform's published requirements before attaching it. Values reflect the limits the composer checks against.

| Platform / type | Recommended resolution                     | Aspect ratio      | Duration              | Max file size | Frame rate | Codec       | Notes                        |
| --------------- | ------------------------------------------ | ----------------- | --------------------- | ------------- | ---------- | ----------- | ---------------------------- |
| Instagram Feed  | 1080×1080 (square) or 1080×1350 (portrait) | 1:1 or 4:5        | 3s–60s                | 100 MB        | 23–60 fps  | H.264 / MP4 | --                           |
| Instagram Reel  | 1080×1920                                  | 9:16              | 3s–90s                | 100 MB        | 23–60 fps  | H.264 / MP4 | 25 Mbps bitrate cap          |
| Instagram Story | 1080×1920                                  | 9:16              | up to 60s per segment | 100 MB        | 23–60 fps  | H.264 / MP4 | --                           |
| Facebook Feed   | 1280×720                                   | 16:9, 1:1, or 4:5 | up to 240 min         | 4 GB          | 24–60 fps  | H.264 / MP4 | --                           |
| Facebook Reel   | 1080×1920                                  | 9:16              | 3s–90s                | 1 GB          | 24–60 fps  | H.264 / MP4 | --                           |
| Facebook Story  | 1080×1920                                  | 9:16              | up to 60s per segment | 100 MB        | 24–60 fps  | H.264 / MP4 | --                           |
| TikTok          | 1080×1920                                  | 9:16              | 3s–10 min             | 4 GB          | 23–60 fps  | H.264 / MP4 | Vertical only for best reach |
| X (Twitter)     | 1280×720                                   | 16:9 or 1:1       | up to 140s            | 512 MB        | 30–60 fps  | H.264 / MP4 | --                           |
| LinkedIn        | 1280×720                                   | 16:9, 1:1, or 4:5 | 3s–10 min             | 5 GB          | 24–60 fps  | H.264 / MP4 | --                           |

If your video falls outside any column for the target platform, the [resolution hints](#resolution-hints) badge turns red and the [pre-publish validation](#pre-publish-validation) blocks publishing.

## TikTok advanced settings

TikTok requires a few publishing-specific fields that other platforms don't. When you select a TikTok account, a dedicated settings panel appears in the composer. Every field below must be set before publishing.

| Field                             | What it controls                                             | Notes                                                      |
| --------------------------------- | ------------------------------------------------------------ | ---------------------------------------------------------- |
| **Privacy level**                 | Who can view the video — Public, Followers only, or Private  | Required by the TikTok API for every post                  |
| **Allow comments**                | Toggle viewer comments on or off                             | Default follows your TikTok account preference             |
| **Allow Duet**                    | Permit Duet remixes of this video                            | Only available for public videos                           |
| **Allow Stitch**                  | Permit Stitch remixes of this video                          | Only available for public videos                           |
| **Commercial content disclosure** | Mark the post as branded or promotional content              | Required if the post promotes a brand, product, or service |
| **Your brand**                    | Confirms the post promotes your own brand                    | Visible only when commercial disclosure is on              |
| **Branded content**               | Confirms the post promotes a third-party brand               | Visible only when commercial disclosure is on              |
| **AI-generated content**          | Indicates the video was made or substantially edited with AI | Required for TikTok's AI labeling policy                   |
| **Music consent**                 | Confirms the video does not use copyrighted audio            | Required by TikTok before publishing                       |

### TikTok settings validation

The publish button stays disabled until every required TikTok field is set. Common blockers:

| Blocker                                      | Fix                                                                                |
| -------------------------------------------- | ---------------------------------------------------------------------------------- |
| Privacy level not chosen                     | Pick Public, Followers only, or Private                                            |
| Music consent not confirmed                  | Toggle the music consent checkbox after verifying audio rights                     |
| Commercial disclosure inconsistent           | If commercial disclosure is on, choose either Your brand, Branded content, or both |
| Duet or Stitch enabled on a non-public video | Switch privacy to Public, or disable Duet and Stitch                               |

The [pre-publish validation](#pre-publish-validation) checklist surfaces each blocker with a direct jump to the field.

## Pre-publish validation

Before you publish, the composer runs a real-time preflight checklist below the action button. Each check shows a clear pass, fail, or warning status so you can resolve issues before clicking the action button.

The checklist validates:

* **Account selected** — at least one destination account is chosen.
* **Content type selected** — required for platforms with multiple types (Instagram, Facebook).
* **Caption present** — required where the platform expects text.
* **Media present** — required for Instagram (any type), Stories, Reels, and TikTok.
* **Media type matches content type** — for example, video for Reels and TikTok; image or video for Feed.
* **Resolution and duration** — see [video resolution reference](#video-resolution-reference) and [resolution hints](#resolution-hints).
* **Schedule time in the future** — only for the Schedule action mode.
* **TikTok required fields** — see [TikTok settings validation](#tiktok-settings-validation).
* **Blocked terms** — see [blocked terms](#blocked-terms).

A red status (fail) keeps the action button disabled. An amber status (warning) lets you publish but flags a potential issue. Drafts skip the checklist so you can save unfinished work — see [managing drafts](#managing-drafts).

### Preflight badges on the calendar

Scheduled posts also display preflight badges in the [schedule calendar](/features/scheduling). Click a badge to jump back to the composer with the failing check pre-selected.

## Blocked terms

If your active [campaign](/features/campaigns) defines blocked terms, the composer checks every caption against that list before publishing.

* **Real-time matching** — blocked terms are highlighted in the caption editor as you type.
* **AI tools respect the list** — AI Write, Enhance, and AI Suggest avoid producing blocked terms.
* **Hard block on publish** — if a blocked term remains, the [pre-publish validation](#pre-publish-validation) fails and the action button stays disabled.

To resolve a block, edit the caption to remove or rephrase the flagged term, or update the campaign's blocked terms list in [campaign settings](/features/campaigns).

## Managing drafts

Drafts let you save in-progress work without running the full preflight. They are useful for team review, parking ideas, and resuming work later.

To save a draft:

1. In the action mode switcher, select **Draft**.
2. Click the action button. The draft is saved to your workspace and appears in the [publishing hub](/features/publishing-hub) and the [scheduling calendar](/features/scheduling) under the **Draft** filter.

To resume a draft, open it from the hub or the calendar — it loads back into the composer with every field, attachment, and setting preserved. Switch the action mode to **Publish** or **Schedule** when you are ready to ship.

<Note>Drafts skip [pre-publish validation](#pre-publish-validation) on save but the same checks still run when you switch the action mode to Publish or Schedule.</Note>

## Action modes

The action mode switcher at the bottom of the composer determines what happens when you click the action button.

| Mode         | When to use it              | Validation                                        |
| ------------ | --------------------------- | ------------------------------------------------- |
| **Publish**  | Post immediately            | Full preflight checklist must pass                |
| **Schedule** | Pick a future date and time | Full preflight plus a future-time check           |
| **Draft**    | Save unfinished work        | Skipped — see [managing drafts](#managing-drafts) |

The schedule picker is timezone-aware. It uses the timezone configured in [workspace settings](/features/workspace-settings#timezone) or your browser timezone if no workspace timezone is set.

## Publishing errors

If a post fails after you click the action button, the composer surfaces a structured error toast with three pieces of information you can act on.

| Section          | What it tells you                                                                          |
| ---------------- | ------------------------------------------------------------------------------------------ |
| **Title**        | A short error category, for example "Authentication issue" or "Media validation failed"    |
| **Message**      | The platform-returned reason, translated to plain language                                 |
| **Reference ID** | A unique ID you can paste into a [support ticket](/features/support) to speed up diagnosis |

For the full mapping of error categories to fixes, see [troubleshooting — publishing failures](/features/troubleshooting#publishing-failures). To open support with the error pre-filled, click **Fix with AI Support** in the toast.

## Optional metadata

Below the caption editor, you can add metadata that does not appear in the post itself but helps with internal tracking and reporting:

* **Internal title** — a short label for the post, used in dashboards and search.
* **Destination URL** — the link your call to action points to. Add UTM parameters here if you want to track clicks in your analytics tool. See [webhooks and UTM guidance](/features/integrations) for examples.
* **Campaign** — assign the post to an active [campaign](/features/campaigns) for grouped reporting and shared blocked terms.

## Important notes

* Account permissions and platform rules can block publishing even if the composer's preflight passes.
* Media requirements vary by platform and content type — see [content types by platform](#content-types-by-platform) and [video resolution reference](#video-resolution-reference).
* If you work in multiple languages, create a separate post per language so audience targeting and analytics stay clean.
* Drafts are useful for team review before final scheduling or [approval](/features/approvals).

## Troubleshooting

### Publish button is unavailable

Common causes:

* A check in the [pre-publish validation](#pre-publish-validation) failed.
* A required TikTok field is missing — see [TikTok settings validation](#tiktok-settings-validation).
* The scheduled date or time is in the past.
* A [blocked term](#blocked-terms) remains in the caption.

Fix: review the preflight checklist below the action button and resolve the failing check.

### Media upload fails

Common causes:

* File format unsupported for the selected platform.
* File size or resolution outside the [video resolution reference](#video-resolution-reference) limits.

Fix: re-export to a supported format and size, then upload again. See the [media library](/features/media-library) for upload limits.

### Post fails after clicking publish

Common causes:

* Platform API outage — check [system status](/features/system-status).
* Expired permissions — reconnect the account from [connections](/features/connections).
* Platform-level policy or validation rejection.

Fix: open the failed post from the [scheduling calendar](/features/scheduling), read the [publishing error](#publishing-errors) details, retry, or rewrite the post. See [troubleshooting — publishing failures](/features/troubleshooting#publishing-failures) for the full reference.

## Related pages

* [Scheduling and calendar](/features/scheduling)
* [Publishing hub](/features/publishing-hub)
* [Published posts](/features/published-posts)
* [Media library](/features/media-library)
* [AI content generation](/features/ai-content-generation)
* [Campaigns](/features/campaigns)
* [Brand profiles](/features/brand-profiles)
* [Troubleshooting](/features/troubleshooting)
