Campaigns
UI: /campaigns, /campaigns/{id}
Permissions: campaign.create, campaign.edit, campaign.delete
Lifecycle
| Status | Meaning |
|---|---|
draft |
Editable, not public |
active |
Published — public form works |
paused |
Temporarily unpublished |
archived |
Retired |
Actions: Publish, Pause (unpublish). Public URL: /f/{public_slug}.
Builder
Campaign builder covers:
- Name, brand, location, default locale
- Steps: Welcome → Questions → Thank you
- Translations for title / thank-you copy
- Distribution channel pack (QR, NFC, widget, kiosk, links)
Best practices
- Keep experiences under ~30 seconds
- Start with NPS or CSAT + one follow-up
- Add conditional rules for promoters vs detractors
- Test on mobile before printing QR codes