Dashboard
Select a campaign from the sidebar
Select a campaign from the left sidebar
Campaigns
Create and manage campaigns. Each campaign is its own entry pool and prize draw scope.
Create New Campaign
Lowercase, numbers, underscores only. Used in CSV uploads.
Prizes (optional — define prizes for this campaign)
All Campaigns
Cap Codes
Upload batches, search individual codes, invalidate if needed
Upload New Batch
CSV columns:
capCode, brandId, campaignId, batchId, note, expiresAt (all but the first 3 are optional)
Drop CSV here or click to browse
Columns: capCode, brandId, campaignId, batchId, note, expiresAt (last 3 optional)
✅ 0 valid❌ 0 errors
Add Single Code
Generate Codes
Generate random cap codes directly into Firestore. Max 500 per call.
Search Code
Browse Codes
STATUS:
| Cap Code | Status | Brand | Campaign | Batch | Note | Expires | Created | Claimed By | Action |
|---|---|---|---|---|---|---|---|---|---|
Bulk Invalidate by Batch
Invalidates all UNUSED codes in a batch. USED codes are skipped.
Entries
Search, filter and export consumer entries for marketing analysis
SCOPE:
🔽 Filters & Search
▼ expand
| Name | Phone | Brand | Campaign | Township | Drink | Heard Via | Wallet | Cap Code | Claimed At |
|---|---|---|---|---|---|---|---|---|---|
| Apply filters above to view entries | |||||||||
Prize Draw
Run weekly/monthly draws and send winner SMS
—
Total Draws
—
SMS Sent
—
Pending SMS
Run New Draw
Send Winner SMS
Inject Draw Result (Facebook Live / external wheel — supports multiple winners)
Use when winners were selected via a live wheel spin or Facebook Live event. Choose the draw type, period and prize below — these apply to every winner in the uploaded CSV, so multiple winners for the same draw can be injected in one go.
Upload filled template
CSV with one row per winner — winnerName, winnerPhone, winnerCapCode
Draw History
| Period | Type | Prize | Campaign | Winner | Location | Entries | SMS | Drawn At | Action |
|---|---|---|---|---|---|---|---|---|---|
Dispute Lookup
Search by phone number or cap code to resolve consumer complaints and verify prize history
Promotions
Re-engage non-winners via SMS, and manage the draw-winner payout queue
Bulk SMS
Sends to entrants of the Working Campaign who opted in to marketing SMS. Duplicate phone numbers are only messaged once.
Draw Winners (Payout Queue)
Winners selected by the prize draw. Export for the payment gateway, then mark as paid once disbursed.
STATUS:
| Cap Code | Name | Phone | Wallet | Wallet Number | Prize | Period | Drawn At | Status | |
|---|---|---|---|---|---|---|---|---|---|
| Select a campaign from the sidebar | |||||||||
SMS Templates
Edit the standard OTP and winner-announcement SMS wording per brand, and pick which language actually gets sent. Myanmar SMS regulation requires the brand name to appear in every message — use
{brand} wherever it should go.Page Content
Edit the consumer campaign page copy for the Working Campaign — no developer or deploy needed. Empty fields fall back to the page's built-in copy. Save Draft → Preview → Publish; published changes go live within ~1 minute.
Select a campaign from the left sidebar
SMS Failures
SMS our system tried to send but that never reached the SMSPoh gateway. TIMEOUT means delivery is unknown (SMSPoh may have accepted it late) — REJECTED means it definitively failed. Records auto-delete after 90 days.
| Time | Brand | Type | Phone | Sender ID | HTTP | Result | Error |
|---|---|---|---|---|---|---|---|