Password
Dashboard
Customers
Total signups
Pts Issued
All time
Redeemed
All time
Today's Pts
Issued today
Check-ins
Today
Outstanding
Unredeemed
🏆 Top Customers
Loading...
👤 Staff Activity
Loading...
📊 In-Store vs Delivery
In-store: —
Delivery: —
Scan: —
💡 Quick Stats
Loading...
Transactions Today
vs yesterday
Points Issued Today
vs yesterday
New Signups Today
vs yesterday
🕐 Busiest Hour Today
Loading...
🚨 Alerts
Loading...
📅 Daily Points (Last 14 Days)
Loading...
💰 Weekly Revenue Estimate
Loading...
🕐 Busiest Hours (30 days)
12am6am12pm6pm11pm
🎁 Most Popular Rewards
Loading...
👥 All Customers
NamePhonePointsStatusJoinedActions
Loading...
⭐ VIP Customers
NamePhonePointsMember SinceActions
Loading...
🚫 Blacklisted Customers
NamePhonePointsActions
Loading...
🤖 Auto-Detected (500+ pts in one day)
CustomerDayPoints EarnedTransactionsActions
Loading...
🚩 Manual Flags
CustomerReasonFlaggedActions
Loading...
📋 Transactions
CustomerTypePointsSourceStaffNoteDate
Loading...
🎁 Redeem Codes
CodeCustomerRewardPtsStatusExpiresRedeemed
Loading...
🧾 Receipt Scans
CustomerPayment #DateTotalPointsScanned At
Loading...
📋 Pending Receipt Reviews
Loading...
🔄 Customer Retention
CustomerVisitsFirstLastSpan
Loading...
🎁 Reward Popularity
Loading...
🗓 Activity Heatmap (7 days × 24 hours)
Less
${['#1a1a1a','#2a1010','#5a1010','#a01010','var(--red)'].map(c=>`
`).join('')}
More
🚀 One-Tap Campaigns
Ready-made messages already matched to the right customers. Tap one, review it, and send — no setup needed.
👑
Reward My VIPs
Say thanks to your best customers
😢
Bring Back Lost Customers
Haven't visited in 30+ days
🎂
Birthday Wishes
Customers with a birthday this month
🔥
Almost There Nudge
Close to earning a reward
⚡ Quick Templates
🎉
Double Points Weekend
Promote limited-time 2x event
😢
We Miss You
Re-engage inactive customers
🔥
Almost There
Nudge near-reward customers
🍕
Secret Special
Exclusive member offer
Thank You
Appreciate loyal customers
🆕
New Menu
Announce new items
✏️ Compose
Message
0/300
Audience
Select audience above
👁 Preview
Your message will appear here...
Sample: Alex · 175 pts
💡 Tips
💡 Best time: Tue–Thu 11am–2pm
💡 Keep under 160 chars = 1 SMS credit
💡 Use {name} for higher response
💡 "Near Reward" has highest conversion
💡 Max 1–2 blasts per week
📡 Text Messaging Status
Click Check to see if text messaging is working
📊 Past Campaigns
No campaigns sent yet — your first one will show up here.
➕ Add Driver
Driver Name
Phone (optional)
PIN (4 digits)
🛵 All Drivers
NamePhoneStatusLast LoginActions
🛵
No drivers yet.
🏷 Reward Tiers
150
pts
200
pts
300
pts
400
pts
500
pts
⚡ Points Multiplier
Multiplier
Active
End Date/Time
⏳ Points Expiry
Points expire after (days of inactivity)
Set to 0 to disable. Customers get SMS warning before expiry.
🔐 Admin Password
New Password
Confirm Password
🤖 Automations
Run manually or set cron at /admin/run-automations
🔗 Referral Program
Loading...
🍕 Today's Specials (Tablet Display)
Special 1
Name
Price
Description
Special 2
Name
Price
Description
Special 3
Name
Price
Description
NamePhoneEst. RevenueCurrent PtsVisit DaysMember Since
Loading...
📜 Admin Audit Log
ActionDetailAdminIPTime
Loading...
🔥 Hourly Activity Heatmap
When are customers most active? (Last 30 days)
👑 Best Customers
🏆 Top by Points
📅 Most Visits (30 days)
New Members This Month
📲 Push Notifications
Subscribers
Customers
Notification Title
Message
✅ These now run automatically every day around 10-11 AM Eastern — no action needed. Use the buttons below if you ever want to run one early.
🎂 Birthday Rewards
Send +100 pts to customers with birthdays today
⏰ Expiry Warnings
Warn customers whose points expire in 7 days
🔥 Streak Rewards
Award +75 pts to customers visiting 3 weeks in a row
📊 Daily Summary
Send today's stats SMS to owner phone
😴 Lapsed Customers
SMS customers who haven't visited in 30+ days
🐌 Slow Day Blast
If fewer than 8 visits today, blast double points offer
⭐ Customer Feedback
Avg Rating
Total Reviews
4-5 Stars
⏱ Delivery Peak Hours
Last 30 days — when are deliveries busiest?
🚗 Fastest Drivers
DriverDeliveriesAvg TimeLate
Loading...
🛵 Driver App ↗
Runs
Delivered
Tips
Verified
🔴 Live Runs
🛵
No active runs right now
Live runs appear here automatically
🏆 Driver Leaderboard
Rank Driver Deliveries On-Time % Avg Drive Tips Verified
🏆
No data yet for this period
💵 Cash vs Card
No deliveries for this period
📋 Run History
DriverDateStopsTipsOTPStatus
📋
No runs for this period
⚠️ Step 1 — Clear Existing Data
⚠️ This deletes ALL customers, transactions and redeem codes from the new system.
Do this BEFORE importing from old system. Cannot be undone.
🌐 Step 2 — Import from Old App
✅ How this works:
Your browser fetches customers directly from the old app, then sends them here. This bypasses Railway network restrictions. No CSV needed.
Old App URL
📂 Import via CSV
ℹ️ Use this if browser fetch doesn't work.
Get the CSV by visiting this URL in your browser:
phillys-best-loyalty-production.up.railway.app/admin/export/customers
Then upload it below.
Upload customers.csv
🔄 Import via Server API
⚠️ May fail if old Railway app blocks server-to-server calls. Try browser fetch above first.
Old App URL
💰 Revenue vs Reward Cost (Weekly)
WeekEst. RevenueReward CostNetEarn TxnsRedemptions
Loading...
👥 Cohort Analysis — Retention by Join Month
MonthJoinedActive (30d)Retention
Loading...
🎯 Monthly Goals
Loading...
✏️ Set Goals
Monthly Signup Target
Monthly Points Target
⚙️ Auto-Campaigns
Custom Message
🕐 Schedule a Blast
Message
Audience
Send Date & Time
Upcoming Scheduled
Loading...
🕐 Operating Hours
Loading...
⏱ Wait Time Display
Current Wait Time (minutes, 0 = hide)
⭐ Google Review
Google Review URL