Promotions
The Promotions page is your promotion history. Every promotion ever created in this workspace appears here — whether it was published manually, via schedule, or via the API. Navigate to it from Promotions in the top navigation.
Screenshot pending
/help/promotions/open_promotions_menu.png
Workspace sidebar with the Promotions menu item highlighted
See docs/testing/help-screenshot-manifest.md for capture instructions.
Screenshot pending
/help/promotions/promotions_list_overview.png
Promotions list page showing a table of past promotions with reference ID, status badges, source snippet, target count, and scheduled/posted date columns
See docs/testing/help-screenshot-manifest.md for capture instructions.
Review a promotion — step by step
Open the Promotions page
Filter to what you care about
Click a row to open the detail page
Retry, clone, or cancel
Status lifecycle
| Status | Meaning |
|---|---|
| ⚪ Draft | Saved but not yet published or scheduled. |
| 🟡 Scheduled | Queued to publish at a future time. |
| 🔵 Publishing | Actively posting to channels right now. |
| 🟢 Completed | All targets have been attempted. Some may have failed — check the detail view. |
| 🔴 Failed | All targets failed or the promotion could not be executed. |
| ⚫ Cancelled | Cancelled before all targets completed. Targets that had already posted remain posted. |
| 🟠 Blocked by rule | A hard-block targeting rule prevented posting to this channel. |
Filtering and searching
The Promotions list supports several filters at the top of the page:
- Status — filter to one or more statuses (e.g., show only Failed promotions).
- Connector — show only promotions that targeted a specific platform.
- Date range — narrow to a date window.
- Search — full-text search across the source content and promotion reference IDs (e.g., PROM-00042).
Columns are sortable. Click a column header to sort ascending or descending.
Screenshot pending
/help/promotions/filter_bar_expanded.png
Promotions filter bar with Status dropdown open, Connector dropdown visible, a date-range picker, and a search input
See docs/testing/help-screenshot-manifest.md for capture instructions.
Promotion detail page
Click any promotion row to open its detail page. Here you can see:
- Source content — the original text or URL used as the source.
- Per-target rows — one row per channel showing status, posted URL (when successful), and error message (when failed).
- Retry button — on any failed target, click Retry to attempt that single channel again without re-running the successful ones.
- Execution log — expand a target row to see the full log: request payload (credentials redacted), response, attempt number, and duration in milliseconds.
Screenshot pending
/help/promotions/promotion_detail_page.png
Promotion detail page with the source content at the top, per-target table below with status pills, posted URLs, and Retry buttons on failed rows
See docs/testing/help-screenshot-manifest.md for capture instructions.
Screenshot pending
/help/promotions/target_execution_log_expanded.png
A target row expanded to show the full execution log with request payload, response body, attempt number, and duration
See docs/testing/help-screenshot-manifest.md for capture instructions.
Cloning a promotion
On the promotion detail page, click Clone. A new draft promotion is created with the same source content and the same channel selection. Open the Composer to edit it before publishing.
Cancelling a promotion
You can cancel a promotion that is in Draft, Scheduled, or Publishing status. Click Cancel on the detail page. Targets that have already posted cannot be un-posted — only pending targets are stopped.
Exporting to CSV
Click Export CSV on the Promotions list to download the currently filtered set (up to 10,000 rows). The export includes: promotion ID, reference ID, status, source type, created date, scheduled date, and all per-target columns (connector, channel, status, posted URL, error).
Screenshot pending
/help/promotions/export_csv_button.png
Promotions list header with the Export CSV button visible next to the filter bar
See docs/testing/help-screenshot-manifest.md for capture instructions.
Cloning a promotion — two different behaviours
The Clone button's behaviour depends on WHAT you're cloning:
| Cloning this… | …creates |
|---|---|
| Regular one-off promotion | Clone → new draft in Promotions. Same source content and channels. Opens in the Composer for editing. Clone and improve → same, but Claude re-adapts every per-channel variant fresh (costs credits). |
| Automatic Mode template or a scheduled_auto fire | Clone as new Automation → new schedule in ComposerAutomatic. Pre-filled from the parent schedule: seed, cadence, channels, media modes, video model, CTA, budgets. Review + tweak + save as a fresh automation. |
Why the split: cloning an Automatic Mode template as a plain promotion would land it in the wrong section — templates belong to recurring schedules, not to one-off history. The Clone as new Automation button routes correctly and keeps the schedule structure intact.
Media generation notes (the amber banner)
When a promotion fires with partial media — e.g. the image worked but the video didn't, or a media type was skipped because no channel supports it — the detail page shows an amber "Media generation note" banner near the top of the Overview tab.
Possible messages:
- Video generation failed after N attempts (model): reason. — The AI provider returned an error, even after one automatic retry. Post shipped without the video. The rest of the fire completed normally.
- Video generation skipped: none of the targeted channels support embedded video. — Capability preflight saw that no selected channel could render video, so it didn't generate one. No credits spent.
- Video generation skipped: insufficient balance. — Your AI balance was too low to run video. Top up to re-enable it on the next fire.
- Same three messages for images when applicable.
A single fire can carry multiple notes (e.g. both image + video failed). The banner shows them as bullets. See HelpScheduling for more on how the AM fire decides when to skip vs generate.
Reading the Channels column
The Channels column on the Promotions list shows the outcome across all selected channels at a glance. Each row displays:
- Posted count — e.g. "3/5 posted" means 3 of 5 targets successfully published.
- Channel-name chips — up to 5 chips showing the actual channel names (e.g. "telegram · My Channel", "discord · #general"). For rows with more than 5 channels, chips are hidden to avoid visual noise and only the count line is shown.
- Amber "N skipped" line — when one or more channels were blocked by a targeting rule or by connector-capability skip. Click into the row for the per-channel reason.