Aidelly Docs
App Guides

Campaigns

Group related posts by campaign for filtering, caption templates, and reporting.

What campaigns are for

A campaign is a grouping and reporting dimension — pick a theme (e.g. "Q3 product launch", "Black Friday push", "weekly tutorial series") and attach related posts to it. Campaigns can also carry a caption template that helps keep related content consistent.

Useful for related content that should be filtered, reviewed, and measured together.

Where it lives

Open Content (/content). The chip rail at the top of the page is your campaign list. Click + Campaign to create one.

Campaigns appear on the calendar as a small mint dot on event cards that belong to a campaign.

Plan availability

PlanCampaigns
Launch3 active
Scale15 active
AgencyUnlimited

Campaigns are workspace-scoped — each workspace gets its own.

Step 1 — Create a campaign

  1. Open /content.
  2. Click + Campaign in the chip rail.
  3. Name — e.g. "Black Friday 2026".
  4. Description (optional) — note what belongs in the campaign.
  5. Color (optional) — make campaign markers easier to scan.
  6. Default caption template (optional) — the composer pre-fills this text when you start a new post in the campaign.
  7. Click Save.

Step 2 — Add posts to the campaign

Three ways:

  1. Drag a draft onto the campaign chip in the chip rail.
  2. Pick the campaign in the composer — there's a campaign dropdown next to the channel picker.
  3. Via APIPOST /api/scheduled-posts accepts a campaignId and links the scheduled post to that campaign.

When a post joins a campaign:

  • The caption field pre-fills from defaultCaptionTemplate if blank.
  • The campaign appears in content and calendar filters.
  • Scheduled and published counters update as campaign posts move through the calendar.

Scheduling, channels, queues, and routes are chosen explicitly in the composer or queue tools.

Step 3 — Filter by campaign

  • Content drafts list — clicking a campaign chip filters the drafts list.
  • Calendar — the same chip click filters the calendar to that campaign's events.
  • APIGET /api/scheduled-posts?campaignId=… returns only posts in that campaign.

Per-campaign metrics

A DB trigger bumps per-campaign scheduled and published counters on every status change. The campaign detail page shows:

  • Scheduled count — how many posts are queued / scheduled.
  • Published count — how many have gone live.
  • Last activity — timestamp of the most recent status change.

No analytics query needed — the counters are always live.

How campaigns interact with other Aidelly features

  • Composer — use a campaign caption template as a starting point while choosing channels and scheduling explicitly.
  • Calendar — filter scheduled posts by campaign and scan campaign markers on event cards.
  • Analytics — campaigns appear as a filter on the analytics page for per-campaign performance.
  • Auto-Post — auto-post sources can assign new items to a campaign automatically.

"Campaigns" vs "Collections"

Aidelly has media_collections for grouping uploaded media. Campaigns are a different concept — a reporting group for posts, not a grouping for assets. Don't conflate them.

Step 4 — Edit or close

From the campaign detail page:

  • Edit details — change the name, description, color, or caption template. Existing posts keep their campaign association.
  • Close — marks the campaign inactive. Closed campaigns disappear from the chip rail but remain in analytics history.

Why one campaign per post?

A post can belong to at most one campaign. If you need cross-campaign organization, use draft tags instead. Campaigns are designed for one primary reporting group per post.

Troubleshooting

  • The default caption template didn't appear — the template only pre-fills when the caption field is empty. If you've typed anything, the template stays out of the way.
  • Campaign counts look stale — refresh the page; counters are updated by trigger but the UI cache may be a beat behind.