Trepo · Lifecycle Messaging
A four-week push schedule built on the segments that actually exist in the app today. Every send is targeted at a real, measured audience — no blast-to-everyone. Run it manually first, then hand the templates to the app agent.
Measured from the full TrepoAnalyticsEvents table (290,862 events, 4,094 real users, founder/backend rows excluded). Percentages are of users who have opened the app at least once. Only ~59.5% granted push, so multiply any audience by ~0.6 for actual reach.
Same skeleton every week so behaviour becomes habit, different content each week so it never feels like a robot. Thursday plans, Friday rescues, Saturday shops, Sunday resets, Monday inspires, Tuesday teaches, Wednesday saves dinner.
Weekend meal plan + shopping list, ~4:00pm — right before the Friday/Saturday shop.
1–3 named items about to turn. The flagship send. 4:30pm, when "what's for dinner" is live.
List in the morning, receipt scan in the evening. The only day we send twice to nearby audiences.
Clean Kitchen sweep late morning, week plan late afternoon.
Recipe → list bridge. The single biggest broken funnel in the app.
One underused feature per week: Thyme, voice, household, recall check, health.
"What can I make with what's left" — midweek is when the fridge gets sad.
Tap any card for the full spec: exact copy, audience, deep link, merge tags, and what you're trying to move. Filter by category below.
Reusable patterns for whoever wires the agent. Each one is a rule, not a one-off — it fires when the condition is true, not on a date.
Max 3 pushes per user per week, hard stop. Never two in one calendar day. The calendar looks busy because audiences are disjoint — an individual user sees 2–3.
Nothing before 9:00am or after 8:30pm in the user's local time. Registration ZIP gives you the timezone; don't send everything on PT.
Skip anyone who opened the app in the last 4 hours, and anyone who ignored 3 consecutive pushes — move them to weekly-only.
If the merge tag has no data, don't send. "Use up your and " is worse than silence. Every item-specific push needs a fallback audience check.
Each send has one target event. If a send doesn't move its event in 48h, kill it — don't tune the emoji.
Every push lands on the screen that completes the action. Dropping someone on the home tab wastes the open.
Deep links are proposed, not confirmed. The trepo:// routes below are what the destinations should be. Whoever wires this needs to map them to the app's real router — I read the analytics table, not the iOS source.
Push reach is ~2,434, not 9,285. About 5,200 signups from the July spike never emitted a single event. They're on the list but they're not in the app. Don't judge push performance against the signup number.
The recall check is the one to be careful with. It's the highest-trust notification in the set and the easiest to get wrong. Only fire on a verified FDA/USDA recall matched to a real item in that user's kitchen. A false positive here costs more than every other push combined earns.
Baseline first. push_received is 817 and notification_tapped is 363 lifetime. Log both per-campaign from day one or you'll have no idea which of these worked.