"Where Has Benny Been?"

Mad Monkey Creations Marketing Campaign

Project Description

A gamified, location-aware marketing and engagement platform for Mad Monkey Creations. The project combines QR codes, short links, email automation, and workflow orchestration to create a scavenger-hunt-style experience featuring "Benny the Monkey" that drives brand engagement, email list growth, and repeat customer interaction.

Primary Goal

Email List Growth - Build a verified, engaged email list through gamified QR code interactions and contest entries

Key Objectives

How It Works

User Journey

  1. Discovery - User finds a QR code card at a venue or receives a "traveler" card
  2. Scan - User scans QR code with phone (https://mmlnk.us/T##)
  3. Redirect - Short URL redirects to n8n webhook that logs the scan
  4. Landing Page - User lands on mad-monkey-creations.com/benny
  5. Form Submission - User enters name, email, and where they found Benny
  6. Double Opt-In - Verification email sent via Listmonk
  7. Confirmation - User confirms subscription and is entered into monthly contest
  8. Welcome Email - Automated welcome message sent
  9. Story Drip - Day 1: Story email about where Benny has been
  10. Reward - Day 3: Discount code (BANANAS10) sent
  11. Monthly Drawing - Random verified entry selected for free tee-shirt

Card Types

Nest Cards

Stationary cards placed at fixed venues (coffee shops, stores, etc.)

Quantity: 200-300 cards

Purpose: Generate consistent local traffic

Traveler Cards

Mobile cards that move from person to person with a "move code"

Quantity: 50-100 cards

Purpose: Viral spread and long-distance tracking

Card Design

Technology Stack

n8n

v1.107.4

Self-hosted workflow automation engine

PostgreSQL

v16

Primary database for all data

Shlink

Stable

URL shortening service (FOSS)

Listmonk

Latest

Open-source email marketing

Traefik

Active

Reverse proxy with SSL/TLS

Docker

-

Container orchestration

ForwardMail.net

-

Email delivery service

Node.js

v24.12.0

Runtime environment

mini-qr

-

QR code generator

System Architecture

Infrastructure - Single Docker Host

Docker Host: bennybeen (10.0.0.250)

External IP: 76.150.65.61 (dynamic - see DNS-UPDATE-PROCESS.md)

Project Path: /home/bennybeen/mad-monkey/

Admin Whitelist: 10.0.0.157

Component Port on 10.0.0.250 Domain Status
PostgreSQL 5432 Internal only Planned
n8n 5678 n8n.janness.com Planned
Shlink 8081 mmlnk.us, admin.mmlnk.us Planned
Traefik Dashboard 8080 traefik.janness.com Planned
Listmonk 9000 list.mad-monkey-creations.com Planned
HTTP 80 All domains Active
HTTPS 443 All domains Active
Deployment: Use deploy.sh script or n8n deployment workflows for automated deployments. See README-DEPLOYMENT.md for details.

Data Flow

Scan → Entry → Verification Flow

  1. User scans QR code → https://mmlnk.us/T42
  2. Shlink redirects → https://hooks.mad-monkey-creations.com/scan?qr_id=T42
  3. n8n logs scan → Inserts to PostgreSQL scans table (IP, UA, timestamp, geo)
  4. n8n returns 302 → https://mad-monkey-creations.com/benny?qr_id=T42
  5. User fills form → Name, Email, "Where did you find Benny?"
  6. Form POSTs to n8n → https://hooks.mad-monkey-creations.com/entry
  7. n8n validates & stores → Inserts to entries table (verified=false)
  8. n8n calls Listmonk API → Creates/updates subscriber with tags
  9. Listmonk sends double opt-in email → User clicks confirmation link
  10. Listmonk webhook to n8n → /listmonk/confirm
  11. n8n marks verified → Updates entries.verified=true
  12. n8n triggers drip → Welcome email, Story email (Day 1), Reward email (Day 3)

Database Schema

Core Tables

Table Purpose Key Fields
cards QR card inventory qr_id, type, status, current_slug, move_code, last_scan_ts
scans Scan event logs qr_id, ts, ip, ua, geo_city, geo_region
entries Contest entries qr_id, email, name, user_city, verified, month_bucket
moves Traveler card movements traveler_id, rev, mover_email, pickup_city, drop_city, distance_km
nests Venue tracking venue_id, name, city, contact_email, health_score
users Subscriber profiles email (PK), name, city, tags[], referral_code
referrals Referral tracking inviter_email, invitee_email, status
prizes Winner fulfillment month, winner_email, fulfillment_status, printify_order_id

Automation Workflows

n8n Workflows (Planned)

  1. Scan Intake - Log QR scans and redirect to landing page
  2. Email Capture - Process form submissions and create Listmonk subscribers
  3. Confirmation - Handle Listmonk webhook on subscriber confirmation
  4. Story & Reward Drip - Automated email sequence (Welcome → Story → Reward)
  5. Monthly Winner Selection - Cron job to select random verified entry
  6. Re-engagement - Send nudge emails to inactive subscribers
  7. Stuck/Stagnant Card Detection - Alert when cards haven't been scanned in 10+ days

Key Performance Indicators

≥40%
Scan to Subscription
≥30%
Scan → Form Submit
≥60%
Form → Verified
65-75%
Double Opt-in Rate

Tracking Metrics

Security & Privacy

Data Protection

Compliance

Security Measures

Deployment Phases

Phase Description Status
Phase 1 Infrastructure Setup (DNS, databases, containers) In Planning
Phase 2 n8n Workflow Creation and Testing Not Started
Phase 3 QR Card Production (10 test cards) Not Started
Phase 4 End-to-End Testing Not Started
Phase 5 Pilot Launch (20-50 cards) Not Started
Phase 6 Full Deployment (200-300 cards) Not Started

Project Status

Current Phase: Planning & Architecture

Next Steps: