Follower marketing (owner campaigns)
Fans who favorite a truck in Find are that truck’s in-app followers. FoodTruckNerdz can advertise to those customers for the owner (specials, “we’re here,” menu drops) as a paid income line. This is not a POS upsell and not an Adapty subscription entitlement.
Audience is FTN favorites, not Instagram/Facebook follower graphs. Instagram and Facebook stay a live public bridge for later listing copy (see AGENTS / directory notes).
Status
Scaffolded (MVP). Owners can request a campaign; PR can queue or decline.
Customer.io journeys that actually send to followers are planned — do not blast from Resend Broadcasts.
Convex table/functions land on the next Production convex deploy (CONVEX_DEPLOY_KEY); local next dev must not convex dev against the shared production deployment.
| Piece | Status |
|---|---|
Owner pitch (homepage Owner lens) |
Live copy: Get found. Claim your business. Send marketing emails. |
Owner request UI |
|
Convex |
Scaffolded — request, withdraw, PR review |
PR queue |
|
Ops ping to PR |
Resend transactional ( |
Fan send (email / SMS / push) |
Planned — Customer.io journey keyed off queued requests + favorites |
Billing / Adapty SKU |
Not wired. Treat as a service quote until pricing lands. |
Product rules
-
Manage stays owner ops. Fan\|Owner is a session lens, not a URL rename.
-
Product stays on this origin (
/manage/marketing). Do not inventapp.. -
Square remains optional POS, not identity. A claimed directory truck is enough.
-
Marketing brain is Customer.io. Resend is for hard transactional mail (including “new request” to PR). Do not dual-send marketing from Resend Broadcasts and Customer.io.
Flow (current)
-
Owner (or manager) opens
/manage/marketing, picks a truck, chooses a goal, optional note. -
Convex stores
followerCampaignRequestswith a snapshot of favorite count (followerCountAtRequest). -
PR reviews at
/manage/pr/follower-campaignsand Queue or Decline. -
Queued rows are the handoff for a later Customer.io campaign to users who favorited that
foodTruckIdand opted in.