Topics
Seed the content pipeline with topic ideas. Add 10 by hand or 50 via AI Topic Designer; each becomes a generation when you hit Generate.
A topic is a recurring angle your brand wants to talk about — a post idea the AI can draft from, on demand or on a schedule. Your topics list is your content pipeline.
What a topic is
A topic in VibeDay holds:
- Title — short, scan-able; e.g. "Why we built our own scheduler"
- Description (optional) — the angle in 1–3 sentences
- AI context (optional) — extra prompt material the AI should always include when generating from this topic (specifics, stats, references)
- Tags — comma-separated; for filtering and grouping
- Source URL (optional) — the article, post, or reference this topic is based on
- Campaign (optional) — group this topic under a campaign
- Brand (optional) — override the campaign's brand for this specific topic
- Enabled — if false, the topic is paused and ineligible for drafting
VibeDay tracks generationCount per topic — how many drafts have come from it — so you can see which topics are pulling weight.
When to create a topic
Create a topic when you have a content angle you want to revisit — same topic, fresh framings each time. Think of it as a "content slot" that produces a new variant each generation.
If you have 50 ideas, batch them with the AI Topic Designer rather than entering them one by one.
Creating topics
Four paths:
1. Manual (/topics/new)
For when you've got one specific angle in mind and want full control over every field.
2. AI batch generator (/topics/batch)
Drafts a whole batch of distinct, non-redundant topics from one survey:
- Campaign + Brand (optional) — sets context
- Subject and angle — the most important field. This becomes the core of the AI prompt. The AI generates a diverse mix across the space you describe (educational / sales / story-driven / always-on) adapting to your campaign goal
- How many — slider, default 20
Click Let AI design my topics → blocking modal "Drafting your topic batch" with a progress arc, ~20–30 seconds. The modal closes and shows a review screen with all generated topics, all selected by default. Uncheck any you don't want, then Save selected to bulk-add them to your pipeline.
3. Bulk import (/topics/import)
For when you already have a list of topic ideas — from a previous tool, a brainstorming doc, or a spreadsheet. Two input modes:
Paste text — one topic per line. Plain titles work; for richer rows use tab-separated columns:
title<TAB>description<TAB>aiContext<TAB>tag1,tag2
Lines starting with # and blank lines are ignored. Up to 500 rows per import.
Upload CSV — drop a .csv file with a header row. Recognized columns (any order, case-insensitive):
| Column | Required | Notes |
|---|---|---|
title |
yes | 3–300 chars |
description |
no | Up to 2000 chars |
aiContext |
no | Up to 4000 chars. Extra context fed into every AI prompt. |
tags |
no | Comma- or pipe-separated. Up to 12 tags. |
Unknown columns are ignored with a warning. Standard CSV quoting works (quoted fields, doubled quotes inside quoted fields, commas inside quotes, CRLF line endings).
Importing from CSV
The wizard exposes a Download template button that hands you a starter file with the header row and three example topics. Open it in Excel, Numbers, or Google Sheets, fill in your topics, save as CSV, and upload.
A live preview pane shows parsed rows + per-row validation errors before you commit. Bad rows are flagged but don't block the rest of the import.
Defaults for the whole batch — pick a brand and/or campaign in the wizard and they apply to every imported topic. You can override per-topic afterward.
Duplicate handling — by default, rows whose title already exists in your workspace (case-insensitive) are skipped. Uncheck "Skip rows whose title already exists" to allow duplicates.
Each imported topic goes through the same NSFW moderation pipeline as topics created manually.
4. Per-row Generate Draft button
Not for creating topics — for drafting a post from an existing topic. See below.
The Topics list
/topics is your pipeline view. Two view modes:
- List — flat list of every topic, ordered by created date (newest first)
- Grouped by campaign — segments the list by campaign, each group is collapsible (click the chevron header to fold / unfold)
In grouped view, each campaign section header has a Focus link — click it to expand just that campaign and collapse the others. A banner appears at the top: "Focusing one campaign — others collapsed. Show all expanded →". Use this to switch focus between campaigns quickly without leaving the page.
When ?campaign=<id> is present in the URL:
- List view: narrows the list to that campaign only (existing filter behavior).
- Grouped view: focuses that campaign (expanded), other campaigns are still visible but collapsed.
Each row shows:
- Title
- Pipeline status pill —
Unused(grey, no generations yet) /Drafted(amber, has DRAFT generations) /Approved(green, at least one READY generation) /Published(violet, posted to at least one platform). Lets you see at a glance which topics are pulling weight and which are still sitting idle. - Campaign tag (in flat-list view; hidden in grouped view since the section header already shows it)
- Description, tags, generation count
- Last drafted — "Last drafted 2h ago" if the topic has been used; falls back to the original creation date if not.
- Next — when the Scheduler has queued a post from this topic, "Next: in 3 days" (or absolute date for further out). Shipping with Sprint 4.
- A per-row Generate draft button
Newly created topics land at the top of the list (whether they came from the manual form or the AI batch generator). Drag-to-reorder UI ships as a follow-up.
The Generate draft button
The Generate draft button at the end of each row is your fastest path from topic to post:
- Green "Generate draft" — the topic is eligible. Click → blocking modal "Drafting your post" with progress arc, ~10–20 seconds → lands you on the generation detail page with the new draft.
- Red "Can't draft" — the topic isn't eligible right now. Hover the
?next to it to see why (e.g. "Topic is disabled. Enable it to draft posts.")
Current eligibility rules:
- Your workspace must be active (not suspended or pending deletion)
- The topic must be enabled
Future rules (not yet active):
- The topic hasn't already been published (Sprint 5+)
- Your plan's monthly post limit isn't exhausted (Sprint 9+)
Editing a topic
Click the title to open the topic. You can edit any field; changes save when you click Save.
Enabling / disabling a topic
Each row has a toggle. Disabled topics:
- Stay in the list (don't get hidden)
- Show "Disabled" badge
- Show red "Can't draft" instead of green Generate draft
Disable a topic when you want to pause it without deleting it — e.g. seasonal angles you'll re-enable later.
Deleting a topic
Hard delete from the row actions. This also deletes any generations linked to the topic, so be sure.
How the AI uses your topic
When you click Generate draft, the AI prompt is built from:
- Brand context (effective brand: topic > campaign > none) — voice persona, tone, tone adjectives, forbidden words
- Campaign context — name + brief, if the topic has a campaign
- Topic context — title, description, AI context
- Output format — captions for all three platforms (Instagram, Facebook, TikTok) + hashtags + optional CTA + an image prompt
The AI is instructed to write each platform caption in that platform's idiomatic style:
- Instagram — warm, story-led, 80–200 words
- Facebook — longer-form, conversational, 100–300 words
- TikTok — short and punchy, 40–150 words, hook in line 1
Tips
- Specificity in, quality out. "Why we built our own scheduler instead of using Buffer" generates better posts than "Our scheduler."
- Use AI context for stats and details. Drop in numbers, customer quotes, technical specifics — the AI will use them when they fit naturally.
- Tag aggressively. Tags are how you slice the pipeline later: by content type, by audience, by funnel stage.
- Let topics breathe between drafts. Each generation pulls from the same topic but produces a different angle — try drafting the same topic two or three times to see the range.
Email support@vibeday.com with what you're trying to do and a screenshot if it helps — we'll write back within one business day.
- BrandsSet up brand voice, tone, forbidden words, and visual identity. Every AI generation reads this so output sounds like you.
- CampaignsGroup related topics into a campaign with shared context — useful for product launches, themed series, or seasonal pushes.
- GenerationsFrom draft to approval: review captions, regenerate the image, iterate on locked fields, then push READY so the scheduler can pick it up.
- SchedulerSchedules pull from your approved-content queue and publish at the cadence you set. Pause, archive, and runway warnings included.
- NotificationsInbox for failed publishes, reauth prompts, content alerts. Configure per-type email delivery from settings.