🏢 Business Information

📋 Business Details

📍 Service Area & Travel

Service Radius 80 miles

💳 Payment Settings

Deposit Percentage 30%

🎨 Performers / Contractors


💰 Service Pricing

🎨 Individual Services

Click any price to edit. Changes auto-save. Durations 1-4hr shown on website; 5-8hr for AI/admin only.

⭐ Value Packages

📅 Scheduling Settings

⏰ Booking Rules

🗺️ Service Regions

💬 SMS / Message Templates

Customize the automated messages sent to customers. Use {{variableName}} for dynamic content.

🔗 Integrations

📱 Vonage (Phone & SMS)

💳 Stripe (Payments)

🔗 N8N Webhooks

👤 Admin Users

Authorized Users


🚗 Artist Dispatch & Scoring

Configure how artists are scored and assigned to bookings. Weights must total 100%.

⚖️ Scoring Weights

Adjust how each factor influences artist selection. Total: 100%

25%
20%
20%
10%
10%
15%

📍 Distance & Travel

Teardown + break time (travel time added automatically)
Events within this distance get route bonus

🎈 Event Type Multipliers

Adjust priority for different event types. 1.0 = normal priority.

🔔 Regional Notification Routing

Route form submissions, AI call transcripts, booking confirmations, and cancellations to regional sales managers. All Cities recipients get notified for every region. Regional recipients only get their metro area.

📞 Phone Routing

Control how inbound calls are handled — AI agent behavior, who gets called on transfer, and debug options.

🔀 Routing Mode

⭐ On Call

The on-call person always rings first for ALL regions, before regional priorities. Only one person can be on call at a time.

⚙️ Transfer Settings

How long to ring each artist before trying the next one
Skip performers outside their configured working hours
Spoken to the caller if nobody picks up

🎨 Regional Routing Priorities

Set per-region priority for each artist. Lower number = rings first. Leave blank to exclude from that region. Phone numbers come from the Performers tab (read-only here).

💬 Messages

Select a conversation to view messages.

📝 Form Submissions

All website contact-form submissions. N8N persists each submission here before sending notification emails, so submissions survive any email delivery failure.

Select a submission to view full details.

📞 Call Transcripts

Select a call to view the transcript.

🤖 Bella — AI Workspace

Bella runs on the GitHub Copilot SDK. Connect once and she can plan, draft, and (when you ask) execute tasks against the rest of the platform.

🔐 Connection

⚠️ This identity is shared by all admins. Whatever GitHub account is signed in here is the account Bella uses for everyone. Anyone with admin access can swap it.
Checking…

📚 Poppin' Parties TX — System Docs

v1.0.0

About This System

The Poppin' Parties TX automation platform handles booking inquiries, automated quoting, Stripe and/or Square payment link generation, SMS notifications, Google Calendar scheduling, and AI-powered phone support across DFW, Houston, Austin, San Antonio, Waco/Temple, and Stephenville/De Leon metro areas.

  • Website: poppinpartiestx.com — 775 SEO pages (642 city+service + 127 city hubs + 6 regional hubs)
  • Contact Form: Webhook → N8N → Gmail notification + customer confirmation
  • Payment: Stripe Payment Links sent via Vonage SMS
  • Scheduling: Google Calendar per performer
  • Phone: Vonage + Cartesia AI voice agent for inbound/outbound
  • Admin: This portal (admin.poppinpartiestx.com)

💵 Systems Expenses Breakdown

Monthly cost estimate for the underlying infrastructure and third-party services that power the booking automation, AI phone agent, SMS, calendar, and website. System costs are everything you wouldn't pay for if you ran the business manually. Payment processing fees are listed separately below — those are a cost of doing business and would apply with or without this platform (any time you accept a card). Usage-based services are estimated at low / typical / high volume tiers (30 / 100 / 250 bookings per month). Vendor list prices as of April 2026.

Fixed Monthly Costs

ServiceWhat it doesPlanCost / mo
VPS Hosting (212.38.95.250) Single Linux server running nginx, N8N, PostgreSQL, FastAPI backend, Traefik (SSL), and the Optimus Ops platform — all in Docker Hetzner-class CX22 / CPX21 (4 vCPU, 8 GB RAM, 80 GB SSD) ~$8 – $15
Domain Names poppinpartiestx.com + optimus.systems (admin / N8N / API subdomains) Registrar (annual ÷ 12) ~$2 – $4
Vonage Phone Number Toll-free presence: +1 (972) 777-6725 for SMS + voice 1 long-code US number ~$1.00
Vonage 10DLC Registration US carrier-required registration for business SMS (one brand + one campaign) Brand $4 + Standard campaign $10/mo ~$10 – $15
Google (free Gmail) Free Gmail account (poppinpartiesinqury@gmail.com) — Gmail OAuth for N8N + shared Google Calendar per performer Free tier $0
Cartesia Line (voice agent) Hosts "Bella" — speech-to-text, text-to-speech, agent runtime Free tier (developer) — usage billed separately below $0 base
Groq API (LLM) GPT-OSS model that powers Bella's reasoning (no monthly minimum) Pay-as-you-go — usage billed below $0 base
GitHub Source repos for website, backend, Cartesia agent, N8N workflows Free tier (private repos) $0
Fixed monthly subtotal ~$21 – $35 / mo

Usage-Based Costs (per booking funnel)

ServiceUnit pricePer booking30 / 100 / 250 bookings
Vonage SMS (outbound) ~$0.0083 / segment + ~$0.005 carrier fee = ~$0.013 / msg ~6–8 messages (quote, deposit link, reminders, balance link, artist intro, review request) ≈ $0.10 $3 / $10 / $25
Vonage SMS (inbound) ~$0.0075 / msg ~3–5 customer replies ≈ $0.04 $1 / $4 / $10
Vonage Voice (inbound to AI) ~$0.0085 / min inbound ~3–5 min avg call ≈ $0.04 $1 / $4 / $11
Cartesia TTS + STT TTS ~$0.024 / 1k chars (Sonic), STT ~$0.005 / min (Ink) ~5 min call w/ ~3k spoken chars ≈ $0.10 $3 / $10 / $25
Groq LLM GPT-OSS ~$0.05 / M input + ~$0.08 / M output tokens ~5 min call ≈ 12k tokens ≈ $0.001 <$1 / <$1 / <$1
Usage subtotal (30 / 100 / 250 bookings) ~$8 / $28 / $71

All-In System Cost (estimate)

This is what running the automation platform itself costs each month — independent of revenue or payment processing.

VolumeBookings / moFixedUsageSystem total
Low30~$28~$8~$36 / mo
Typical100~$28~$28~$56 / mo
High250~$28~$71~$99 / mo

💳 Payment Processing Fees (separate — cost of doing business)

These fees apply any time a customer pays by card, whether the booking came through this automation, a manual phone quote, or a paper invoice. They are not a cost of the system itself — list them separately when comparing automation vs manual operations.

ProcessorChannelRatePer $300 booking30 / 100 / 250 bookings
Stripe Online (Payment Links) 2.9% + $0.30 ~$9.00 $270 / $900 / $2,250
Square Online (Checkout Links) 2.9% + $0.30 ~$9.00 $270 / $900 / $2,250
Square In-person (Tap-to-Pay on phone) 2.6% + $0.10 ~$7.90 $237 / $790 / $1,975
Square Manually keyed 3.5% + $0.15 ~$10.65 $320 / $1,065 / $2,663
Typical scenario: 100% online links $270 / $900 / $2,250
Hybrid scenario: 50% online + 50% Tap-to-Pay (Square) $254 / $845 / $2,113

Combined: System + Processing

VolumeBookings / moSystemProcessing (online)Combined
Low30~$36~$270~$306 / mo
Typical100~$56~$900~$956 / mo
High250~$99~$2,250~$2,349 / mo

Revenue vs Cost (offset analysis)

Assumes $300 average booking value. Net revenue = gross revenue − combined system & processing cost. Margins reflect operating costs only — performer pay, marketing, and overhead are separate.

Volume Bookings / mo Gross revenue System cost Processing Net after costs Cost as % of revenue
Low 30 $9,000 ~$36 ~$270 ~$8,694 3.4%
Typical 100 $30,000 ~$56 ~$900 ~$29,044 3.2%
High 250 $75,000 ~$99 ~$2,250 ~$72,651 3.1%
Annualized at typical (100/mo) $360,000 ~$672 ~$10,800 ~$348,528 3.2%
Annualized at high (250/mo) $900,000 ~$1,188 ~$27,000 ~$871,812 3.1%

Bottom line: combined operating costs hold at roughly 3.1–3.4% of gross revenue across all volumes. Processing fees scale linearly with revenue (built into pricing), while system costs grow slowly — so margins improve as volume grows. The system pays for itself after a single $300 booking each month.

Notes & assumptions:

  • The system itself is cheap — under $100/mo even at 250 bookings. The big number is processing fees, which you'd pay regardless of how the booking was taken.
  • Stripe vs Square online: identical at 2.9% + $0.30. The difference shows up only with in-person Square Tap-to-Pay (2.6% + $0.10) — about ~14% cheaper per transaction in person.
  • Hybrid recommendation: Stripe for the deposit (online link via SMS), Square Tap-to-Pay on a phone for the day-of balance if the artist takes payment in person. N8N can issue either link.
  • Average booking value assumed at $300. Higher-AOV bookings (packages, multi-artist events) increase absolute fees but the percentage stays flat.
  • SMS volume assumes the full automation flow: inquiry confirmation, quote, deposit link, deposit-paid receipt, T-3 balance reminder, balance-paid receipt, artist intro, day-after review request.
  • AI phone calls assume an avg of 1 inbound call per ~3 bookings (most bookings come via the website form, not phone).
  • Not included: Google Ads / Meta Ads spend (separate marketing budget), domain renewal spikes, Cartesia / Groq overage if call volume surges, transactional refunds, optional Square hardware (Reader $0 with software, Terminal ~$299 one-time).
  • To make this exact: after the next billing cycle, replace the unit-price estimates above with figures pulled from each provider's invoice (Vonage dashboard → Billing, Stripe → Payments → Fees, Square → Reports → Fees, Cartesia → Usage, Groq → Billing, Hetzner / DigitalOcean → Invoices).

🏗️ System Architecture

Data Flow

Customer Journey:
  Website Form → N8N Webhook (popn-contact)
       OR
  Phone Call → Vonage → AI Voice Agent (Cartesia)
       ↓
┌─────────────────────────────────────┐
│         N8N Workflow Engine         │
├─────────────────────────────────────┤
│ POPN-webform (contact form)        │
│ POPN-create-booking                │
│ POPN-get-slots                     │
│ POPN-cancel-booking                │
│ POPN-payment-link (Stripe)         │
│ POPN-stripe-event (payment conf.)  │
│ POPN-voice-events                  │
│ POPN-config (config server)        │
└─────────────────────────────────────┘
       ↓                    ↓
  Google Calendar      Config Server
  (per performer)    (.POPN-variables.json)
       ↓
  Admin Portal (this app)
  - Pricing management
  - Performer management
  - SMS templates
  - Integration config

Tech Stack

WebsiteStatic HTML/CSS/JS, 775 SEO pages (642 city+service + 127 city hubs + 6 regional hubs)
Admin PortalVanilla HTML/CSS/JS SPA
Config ServerExpress.js on port 3002
WorkflowsN8N (self-hosted at n8n.optimus.systems)
PaymentsStripe Payment Links API
SMSVonage Messages API
Voice AICartesia Line Agent + GROQ LLM
CalendarGoogle Calendar API (OAuth2)

📈 Scalability Plan

Executive Summary

Poppin' Parties TX is a vertically-integrated, automation-first kids' entertainment platform currently operating across 6 Texas metros (127 cities, 642 SEO landing pages). The thesis: a tiny operating-cost footprint (~$56/mo at typical volume) combined with high-leverage automation (booking, payments, AI phone, dispatch) creates an asymmetric scaling opportunity. Each new geographic territory or vertical adds revenue at ~3% marginal cost overhead, with the rest going to performer payout, marketing, and contribution margin. This plan outlines a 5-phase scaling roadmap from local Texas operator → multi-state platform → licensed network.

Strategic Framework — Ansoff Growth Matrix

The Ansoff Matrix is a classic 2×2 strategy tool that maps four ways a business can grow: sell more of what you have to existing customers, sell new things to existing customers, take what you have to new markets, or do something completely new. We tackle them in order of risk.

Four orthogonal growth vectors. Phases 1–5 sequence them by capital intensity and operational risk.

Existing ServicesNew Services / Verticals
Existing Markets
(6 TX metros)
Market Penetration
Phase 1 — Saturate 127 TX cities. Bid harder on long-tail SEO + targeted Google Ads. Add hosted artist roster per region. Capture share from local solo artists.
Product Development
Phase 2 — Add Corporate Events, School Districts, Festivals, Country Clubs verticals. Higher AOV ($800–$2,500) and recurring contracts. Same crew, new packaging.
New Markets
(adjacent states / national)
Market Development
Phase 3 — Replicate the TX template into OK, LA, AR, NM, then top 50 US metros. Each new region = clone the SEO factory + recruit 8–12 contractors.
Diversification
Phase 4–5 — License the platform to other entertainment operators (white-label SaaS). Royalty + per-booking fee. Asset-light, software-margin business inside the entertainment shell.

5-Phase Scaling Roadmap

Op Margin (operating margin) = the % of revenue left after running the business but before taxes & interest. ROAS = return on ad spend (revenue per $1 of ads). AOV = average order value per booking.

Phase Timeline Focus Bookings / mo Avg AOV Annual Revenue Op Margin*
Phase 1
Optimize
Months 0–6 Saturate existing 6 TX metros; tighten ads ROAS to 5:1; grow performer roster to 25 100 → 150 $300 $540K ~28%
Phase 2
Verticalize
Months 6–18 Launch Corporate, Schools, Festivals lines; AOV lifts via packages 250 + 20 corp $420 blended $1.36M ~32%
Phase 3
Regionalize
Year 2–3 Expand to OK, LA, AR, NM (12 new metros). Clone SEO factory per state. 600 + 60 corp $420 blended $3.32M ~34%
Phase 4
Nationalize
Year 3–5 Owned-and-operated in top 25 US metros; centralized dispatch + AI phone 1,800 + 200 corp $450 blended $10.8M ~36%
Phase 5
Platform
Year 5+ License white-label platform to 50+ independent entertainment cos. Revenue = SaaS fee + booking %. 4,000 + 50 licensees $450 blended $26M+ ~42%

*Operating margin after performer payout (~50% of revenue), processing fees (3%), system cost (~0.3%), and marketing spend (CAC scales from ~12% Phase 1 → ~7% Phase 4 due to brand + SEO compound effect).

Revenue Trajectory

Annual revenue progression across phases (log-friendly visual; bar widths proportional to revenue).

Phase 1 · Months 0–6 · Optimize TX$540K
Phase 2 · Months 6–18 · Verticals$1.36M
Phase 3 · Year 2–3 · OK/LA/AR/NM$3.32M
Phase 4 · Year 3–5 · Top 25 US metros$10.8M
Phase 5 · Year 5+ · Licensed Platform$26M+

TAM / SAM / SOM Analysis

TAM (Total Addressable Market) = the entire pie if every dollar of demand were ours. SAM (Serviceable Addressable Market) = the slice we could realistically reach with our service mix and geography. SOM (Serviceable Obtainable Market) = the realistic slice of that we expect to capture given competition and capacity.

Sizing the U.S. children's-entertainment + corporate event entertainment opportunity. IBISWorld-style breakdown.

LayerDefinitionSizeOur Share Target
TAM (Total) U.S. event entertainment services (kids' parties, corporate events, school assemblies, festivals) $36 B
SAM (Serviceable) Face painting / balloons / caricature / glitter / bubble services in top 50 US metros — fragmented, served by solo artists $2.8 B
SOM Phase 3 5-state TX-cluster footprint; Phase 3 target ~$220 M 1.5% ($3.3M)
SOM Phase 4 Top 25 US metros owned-and-operated ~$650 M 1.7% ($10.8M)
SOM Phase 5 Owned ops + licensed network covering top 100 US metros ~$1.4 B 1.9% ($26M+)

Vertical Expansion (Product Development)

A “vertical” is a customer category with its own buying patterns (e.g., kids' parties vs. corporate events vs. schools). AOV = average order value. B2C = direct-to-consumer; B2B = business-to-business. LTV = lifetime value of a customer (recurring revenue over time). MRR = monthly recurring revenue (the SaaS-style retainer line).

Same artist crew, different packaging. Each vertical lifts blended AOV and adds recurring revenue.

VerticalAOV RangeCadenceMargin ProfilePhase
Kids' birthday parties (current)$200 – $600One-off (peak Sat/Sun)Standard 30%1
Corporate / company events$800 – $2,500Quarterly + holiday seasonPremium 38% (lower CAC, B2B referrals)2
School district contracts$1,500 – $5,000Recurring (PTA fairs, field days, end-of-year)Premium 40% (low marketing, high LTV)2
Festival / multi-day events$3,000 – $15,000Seasonal anchor (4–6/year)Premium 35% (high gross, higher logistics)2
Country clubs / annual contracts$6,000 – $20,000Annual retainer + per-eventPremium 42%3
Theme parks / venue revenue-shareVariableDaily opsStandard 30% (rev-share contract)3
Wedding receptions / Bar Mitzvahs$600 – $2,000Seasonal peak (May–Oct)Premium 36%2
White-label platform license$8K–$15K MRR per licenseeSaaS recurringSoftware 70%+5

Geographic Expansion (Market Development)

An SEO factory is our system for auto-generating hundreds of city-specific landing pages so every Google search like “face painter in [city]” finds us. A tenant is an isolated copy of the booking system for a region.

Each tier replicates the proven TX playbook: SEO factory (≈100 city pages) + 8–12 contractor artists + N8N tenant + ad account. Time-to-launch per market: 30–60 days.

TierGeographyCitiesTarget Bookings / moPhase
Tier 0Existing: DFW, Houston, Austin, San Antonio, Waco, Stephenville127250 (target)1
Tier 1TX expansion: El Paso, Lubbock, Amarillo, Corpus, McAllen, Tyler, Longview+50+1502
Tier 2Adjacent states: OKC, Tulsa, Shreveport, Little Rock, Albuquerque, Las Cruces+80+2503
Tier 3National core: Phoenix, Denver, KC, Nashville, Atlanta, Charlotte, Tampa, Orlando+200+7004
Tier 4Licensed network: 50 territories @ ~80 bookings/mo each (operator-managed)+1,000+4,0005

Unit Economics — Per-Booking Contribution

Unit economics = the profit math on a single transaction (one booking). CAC (Customer Acquisition Cost) = average ad & marketing spend to win one booking. Contribution margin = what's left after the variable costs of that booking; it's what funds fixed overhead and profit. Operating leverage = the fact that fixed costs spread over more bookings, so each new booking is more profitable than the last.

Standard $300 booking, kids' party (B2C). Margin improves with B2B / packages. Numbers in $.

Line itemPhase 1Phase 2Phase 3Phase 4
Gross revenue$300$420$420$450
− Performer payout (50%)−$150−$210−$210−$225
− Processing (~3%)−$9−$13−$13−$14
− System cost / booking−$0.56−$0.40−$0.30−$0.20
− CAC (blended)−$36−$38−$32−$30
− Ops overhead (mgmt, insurance, supplies)−$21−$25−$22−$20
Contribution margin / booking $83 $134 $143 $161
Margin % 27.7% 31.9% 34.0% 35.7%

Operating leverage: system cost per booking falls from $0.56 → $0.20 (−64%) as fixed infra is amortized over more volume. CAC drops as organic SEO compounds and brand recall lifts repeat-customer share (~25% by Phase 3). Performer payout stays fixed at 50% — the contribution-margin lift comes from everything else getting cheaper per booking.

Margin Curve at Scale

EBITDA = Earnings Before Interest, Taxes, Depreciation & Amortization — a standard way to compare operating profitability across companies of different sizes. Higher EBITDA % means more of every revenue dollar drops to the bottom line.

EBITDA margin progression as fixed costs spread and software/license revenue mixes in.

Phase 1 · Local TX28%
Phase 2 · TX + Verticals32%
Phase 3 · Multi-state34%
Phase 4 · National O&O (owned-and-operated)36%
Phase 5 · Licensed Platform42%+

Revenue Mix Evolution

% of total revenue by line. Diversification reduces single-channel risk.

Revenue linePhase 1Phase 2Phase 3Phase 4Phase 5
Kids' parties (B2C)100%72%62%54%40%
Corporate events15%16%18%14%
Schools / Districts8%10%10%8%
Festivals / Venues5%8%8%6%
Country clubs / Retainers4%6%4%
Licensed platform (SaaS)4%28%

Capital Requirements by Phase

FTE = Full-Time Equivalent (one full-time employee, or a combination of part-timers totaling one). Payback = how long until the investment earns itself back in profit.

PhaseInvestmentPrimary UsePayback
Phase 1$15K – $30KAd spend acceleration, performer recruiting bonuses, supplies inventory~4 months
Phase 2$60K – $120KB2B sales rep (1 FTE), corporate sales collateral, district outreach, festival gear~7 months
Phase 3$300K – $600KPer-state launch (4 states × ~$120K), regional managers, dispatch coordinator (1 FTE)~10 months
Phase 4$1.5M – $3MNational brand campaign, 25 metro launches, full ops team (~8 FTE), centralized warehouse~14 months
Phase 5$2M – $4MPlatform productization (multi-tenant SaaS), licensee onboarding, sales team, legal/franchise compliance~18 months

Key Risks & Mitigations

SOP = Standard Operating Procedure (a written, repeatable how-to guide). GL policy = General Liability insurance. 1099 contractor = independent contractor (vs. W-2 employee) — they're paid per gig and handle their own taxes.

RiskSeverityMitigation
Performer supply shortage as we scaleHighBuild a recruiting funnel (Indeed + art schools); standardize 1-day training; tiered payout to incentivize loyalty
Google Ads CAC inflationMediumSEO compounds across 642+ landing pages — own organic top-3 in target keywords; nurture repeat customers (target 25% repeat by Phase 3)
Quality drift across regionsHighCentralized SOPs in this admin platform; dispatch scoring; post-event review automation; mystery-shop audits
Saturation in core verticalsMediumVertical expansion (corporate, schools, festivals) is the primary hedge; each vertical has independent demand curve
Platform technology dependency (N8N, Cartesia, Vonage)MediumMulti-vendor: Stripe + Square already abstracted. Backend is portable. Voice agent has 3 swappable LLM providers.
Regulatory / insurance (Phase 4–5)MediumMaster GL policy ($2M aggregate) + per-territory riders; W-9 contractor model with clean 1099 audit trail; franchise legal counsel before Phase 5

5-Year Financial Snapshot

EBITDA = operating profit before interest, taxes, depreciation, and amortization. Cumulative Invested = total capital deployed up to that point (compare to EBITDA to see when investment pays back).

Conservative case. Assumes successful Phase transitions on schedule.

YearPhaseRevenueOp MarginEBITDACumulative Invested
Y11 → 2$540K → $1.0M28–30%~$240K$45K
Y22 → 3$1.36M → $2.2M32–33%~$590K$165K
Y33$3.32M34%~$1.13M$465K
Y43 → 4$6.5M35%~$2.28M$1.4M
Y54$10.8M36%~$3.9M$3.0M

Phase 5 (licensed platform) is upside not modeled in the 5-year plan; expected to push Y6+ revenue to $26M+ at 42%+ margin if executed.

The Compounding Advantage

What makes this scalable isn't any single tactic — it's the compounding effect of three layered moats:

  1. SEO factory: 642+ landing pages today; +400/state means 2,500+ pages by Phase 3. Organic traffic is a non-linear marketing flywheel — it's near-zero marginal cost and compounds month-over-month.
  2. Automation cost-per-booking: $0.56 today, falling to $0.20 by Phase 4. That ~$0.36 per-booking gap is pure margin recapture as we scale, while competitors using manual booking pay $5–$15 per booking in admin labor.
  3. Multi-vertical demand stack: kids' parties drive weekend supply utilization; corporate, schools, festivals fill weekday capacity. Performer utilization rises from ~35% (B2C-only) to ~70% by Phase 3 — same headcount, double the revenue.

Most local entertainment businesses plateau at $250K–$500K because every new booking requires a phone call, a calendar lookup, a manual quote, a paper invoice, and chasing payment. We've eliminated all five with automation that costs <$100/mo. Every dollar above the Phase 1 plateau is contribution-margin dollars our competitors structurally can't earn.

💰 Individual Service Pricing

Face Painting OR Balloon Twisting

1 artist provides the service. Same pricing for either service.

Bubble Party

Includes bubble machines, wands & pools. Outdoor recommended.

Caricatures OR Glitter Tattoos

1 artist. ⚠️ Caricatures NOT available in Houston region.

Live Glitter Fashion Drawing

1 artist. Premium service — no 1.5hr or 2.5hr options.

⭐ Value Package Pricing

🚗 Travel & Fee Structure

Travel Fee

  • Flat $25 within 80-mile radius
  • Radius measured from HQ (14201 Coyote Trail, Haslet TX) or assigned contractor's base location
  • Beyond radius: contact for custom quote

Payment Structure

  • Deposit: 30% non-refundable (unless Poppin' cancels → full refund)
  • Final Balance: Remaining 70% collected 3 days before event
  • Method: Stripe Payment Links sent via SMS

🎨 All Services

🗺️ Service Regions

📋 Booking Flow

End-to-End Booking Process

#StepTriggerAction
1InquiryWebsite form or phone callN8N receives submission, emails owner + confirms customer
2QuoteKateLyn reviewsSend SMS with price breakdown (base + travel) + service menus
3AcceptCustomer says yesSend 30% deposit Stripe link via SMS
4BookedStripe webhook: deposit paidConfirm booking, create calendar event, assign performer
5Reminder3 days before eventSend final balance Stripe link + artist info via SMS
6Event DayFinal payment confirmedSend event confirmation + artist contact
7Follow-up1 day after eventSend Google review request via SMS

💳 Payment Flow

Two-Stage Stripe Payment Links

Stage 1: Deposit
  Customer confirms → N8N creates Stripe Payment Link (30%)
  → Vonage sends SMS with link
  → Customer pays
  → Stripe webhook fires checkout.session.completed
  → N8N triggers "Booked" confirmation + calendar event

Stage 2: Final Balance (3 days before event)
  Scheduled N8N trigger
  → Creates Stripe link for remaining 70%
  → Vonage sends SMS with link + artist info
  → Customer pays
  → Stripe webhook confirms → event fully paid

💬 SMS Communication Workflows

🔗 N8N Webhooks

💳 Stripe Integration

Setup

  • Create Stripe account for Poppin' Parties TX
  • Add publishable key + secret key in Integrations tab
  • Set up webhook endpoint: https://n8n.optimus.systems/webhook/popn-stripe-event
  • Subscribe to event: checkout.session.completed

Payment Link API

N8N workflow creates payment links dynamically via POST /v1/payment_links with amount, description, and metadata (booking ID, customer name).

📱 Vonage Integration

Phone Number

Vonage number: +1 (972) 777-6725

Capabilities

  • SMS: Send/receive text messages (payment links, confirmations, reviews)
  • Voice: Inbound call routing to AI agent, outbound lead follow-up

🤖 AI Phone Agent & Phone Routing

Overview

Bella is the Cartesia Line AI voice agent that handles inbound calls on +1 (972) 777-6725. She answers availability questions, quotes prices, creates/cancels bookings, and can transfer callers to team members via sequential ringing.

Capabilities

  • Inbound: Answer availability questions, quote prices, take booking details, check calendar
  • Booking: Create and cancel bookings via N8N workflows
  • Pricing: Real-time quotes for all services and durations (1-8hr events)
  • Transfer: Sequential ringing — rings performers in priority order per region

📞 Phone Routing Modes

Control how inbound calls are handled from the Phone Routing tab:

ModeBehavior
⏸️ OffBella handles calls normally but cannot transfer. No sequential ringing available.
🤖 NormalFull AI conversation. Bella transfers only when the customer asks or she decides to escalate.
📵 Bypass AISkip Bella entirely. All callers go straight to sequential ringing.
🐛 DebugOnly calls from performer phone numbers talk to Bella (with verbose tool output). Everyone else is transferred immediately.

🔔 Sequential Ringing

When a call is transferred, the system rings team members one at a time:

  1. On Call performer rings first (if set) — covers ALL regions
  2. Regional priority performers ring in order (lower number = rings first)
  3. Performers outside working hours are skipped (if "Respect working hours" is enabled)
  4. Each performer rings for the configured Max Ring Time before trying the next
  5. If nobody answers, the customizable No-Answer Message is spoken to the caller

How to Configure

  1. Go to Phone Routing tab
  2. Select a routing mode
  3. Optionally set an On Call performer (rings first for all regions)
  4. In the Regional Routing Priorities table, set priority numbers per region (1 = rings first, blank = skip)
  5. Use arrow keys or type a number. Set to 0 or delete to clear a priority.
  6. Click Save Changes

🔧 Technical Details

  • Platform: Cartesia Line SDK v0.2.8 + Groq GPT-OSS (LLM)
  • Voice: Jacqueline (Cartesia Sonic 3 TTS + Ink STT)
  • Agent ID: agent_fSTWNXEz2wi7fqNoTEiBAB
  • Phone: +1 (972) 777-6725 (Vonage Voice API)
  • Transfer: Vonage NCCO sequential connect via HMAC-signed answer URL
  • Deploy: cd cartesia-agent && ./deploy.sh

🌐 Landing Pages

Overview

775 auto-generated SEO pages across 6 regions. Generated by node generate-seo-pages.js. Do not hand-edit — they are overwritten by the generator.

  • 642 city + service pages (e.g., /face-painting-dallas-tx)
  • 127 per-city all-services hubs (e.g., /party-entertainment-dallas-tx) — sitemap priority 0.85
  • 6 regional hero pages (e.g., /dfw-tx) — sitemap priority 0.9
📄775Total Pages
🏙️127Cities
🎨6Services
🗺️6Regions

🔥 Regional Hero Pages

High-priority landing pages, one per metro region. Each includes a services grid + full city directory.

RegionURLCities
🤠 Dallas-Fort Worth/dfw-tx27
🚀 Houston Metro/houston-tx20
🎸 Austin Metro/austin-tx20
🌵 San Antonio Metro/san-antonio-tx20
⭐ Waco / Temple / Killeen/waco-tx20
🐎 Stephenville / De Leon/stephenville-tx20

Core Service Pages

PageURL
🏠 Homepagepoppinpartiestx.com
🎨 Face Painting/face-painting
🎈 Balloon Twisting/balloon-twisting
✏️ Caricatures/caricatures
✨ Glitter Tattoos/glitter-tattoos
🫧 Bubble Party/bubble-party
📜 Privacy Policy/privacy-policy
📜 Terms & Conditions/terms-and-conditions

📅 Calendar Color Legend

Payment Status Colors

Calendar events automatically change color as payments are received:

ColorStatusMeaning
🟠 TangerineUnpaidNew booking — no payment received yet
🟡 BananaDeposit Paid30% deposit received, balance still pending
🟢 SageFully PaidAll payments received (deposit + balance, or full upfront)

How It Works

  • New bookings are created with tangerine (unpaid)
  • When Stripe fires checkout.session.completed, the POPN - Payment Received N8N workflow updates the event color and description
  • Payment status is only visible to owners in the calendar description (artists see event details only)
  • You can also manually record a payment via the webhook (see BOOKING-AUTOMATION-SYSTEM.md)

🔗 External Services & Dashboards

Core Integrations

ServicePurposeDashboard / Docs
📱 VonageSMS messaging + Voice (phone number: +1 972-777-6725)dashboard.nexmo.com · Docs
🗣️ CartesiaAI Voice Agent — STT (Ink) + TTS (Sonic 3)play.cartesia.ai · Docs
GroqLLM inference — fast (gpt-oss-20b) + smart (gpt-oss-120b)console.groq.com · Docs
💳 StripePayment Links API — deposit + final balancedashboard.stripe.com · API Docs
🔄 N8NWorkflow automation (self-hosted)n8n.optimus.systems · Docs
📅 Google CalendarPer-performer scheduling & availabilitycalendar.google.com · API Docs
🔐 Google OAuthAdmin portal authenticationGCP Console · Docs

Infrastructure

ServicePurposeURL / Notes
🌐 WebsitePublic-facing sitepoppinpartiestx.com
🛡️ Admin PortalThis portaladmin.poppinpartiestx.com
⚙️ Config ServerExpress.js API (port 3002)api.poppinpartiestx.com
🐳 VPS / DockerNginx + Traefik hosting212.38.95.250 · Docker containers
📊 Google Search ConsoleSEO monitoring & indexingsearch.google.com/search-console
📈 Google AnalyticsWebsite traffic analyticsanalytics.google.com
📢 Google AdsPaid advertising campaignsads.google.com

📱 Admin Portal Guide

Getting Started

  • Sign in with an authorized Google account (set in Admin Users tab)
  • All changes auto-save after a 1.5s delay or when clicking Save
  • The ⚡ indicator shows unsaved changes

Tabs Reference

🏢 BusinessCompany info, address, travel fee, deposit %, payment timing
🎨 PerformersAdd/edit performers — name, skills, calendar, working hours, base location
💰 PricingEdit all service prices (1-8hr) for individual & packages
📅 SchedulingBooking rules (advance time, max duration, slot intervals) + regions
💬 SMS TemplatesCustomize automated messages — use {{variables}} for dynamic content
🔗 IntegrationsVonage, Stripe, N8N webhook URLs
👤 Admin UsersManage authorized Google accounts + Google OAuth client ID
DispatchScoring weights for performer auto-assignment algorithm
📞 Phone RoutingRouting mode (Off/Normal/Bypass/Debug), on-call, ring priorities, no-answer message
🔔 NotificationsPer-region notification recipients and notification type toggles
💬 MessagesTwo-way SMS inbox — view and reply to all customer texts, manage opt-outs
�📚 DocsThis documentation section

💬 Messages & SMS Compliance

Overview

The Messages tab is a two-way SMS inbox showing every text sent to or from +1 (972) 777-6725 — including booking confirmations, payment links, Bella's auto-replies, and customer responses. Admins can manually reply to any active conversation in real time.

📥 What Gets Logged

  • Inbound — every SMS from a customer (received via Vonage webhook)
  • Outbound — booking confirmations, payment link SMS, reminders (logged by N8N workflows)
  • Bella replies — texts sent by the AI voice agent (tagged with 🤖 Bella)
  • Admin replies — manual sends from this portal (tagged with admin email)
  • Auto-replies — STOP/START/HELP keyword confirmations sent automatically

🚫 SMS Opt-Out Compliance (CTIA / 10DLC)

US carriers require all SMS senders — even transactional — to honor opt-out keywords. Failing to do so risks number suspension and 10DLC campaign revocation.

Keyword (any of)Action
STOP, UNSUBSCRIBE, CANCEL, END, QUIT, STOPALL, OPTOUTCustomer is opted out — auto-confirmation sent — all future sends blocked server-side
START, UNSTOP, YES, RESUBSCRIBE, OPTINCustomer is re-subscribed — confirmation sent
HELP, INFOAuto-reply with business name, phone, and STOP info

Disclosure Footer

The first SMS in any new conversation should include: "Reply STOP to opt out, HELP for help. Msg & data rates may apply." This is a CTIA best practice for all commercial SMS.

Using the Messages Tab

  1. Conversations are listed in the left panel, sorted by most recent activity
  2. Filters: All · Unread · Active · Opted Out
  3. Search by customer name, phone, message text, or booking reference
  4. Click a conversation to view the full thread
  5. Type a reply at the bottom (Cmd/Ctrl+Enter to send)
  6. Opted-out conversations are greyed out and the reply box is disabled — server enforces this regardless of UI state
  7. Manual opt-out: click "🚫 Opt Out" in the thread header (e.g. customer requested verbally)
  8. Re-enable: click "↻ Re-enable SMS" — only do this with documented customer consent (logged for compliance)

Email Compliance (CAN-SPAM)

Currently all email traffic is internal (notifications to admins/dispatch), so CAN-SPAM does not apply. If customer-facing email is ever added (booking confirmations to customers, marketing newsletters), the system will need:

  • Unsubscribe link in every commercial email (10-day honor window)
  • Valid physical postal address in footer
  • Truthful "From" / subject lines
  • The contact_opt_outs table is already designed with a channel column to support email opt-outs without a migration

⚙️ Config Reference

FastAPI Backend Endpoints

EndpointMethodAuthDescription
/api/popn/auth-info/{slug}GETNoneGoogle Client ID + allowed emails (for login)
/api/popn/admin/config/{slug}GETGoogle OAuthFull config for admin portal
/api/popn/admin/config/{slug}POSTGoogle OAuthSave config → PostgreSQL
/api/popn/config/{slug}GETX-Internal-KeyFull config for N8N workflows
/api/popn/routing/{slug}/configGETX-Internal-KeyPhone routing mode + performer phones
/api/popn/transfer/{slug}/initiatePOSTX-Internal-KeyInitiate Vonage call transfer
/api/popn/transfer/{slug}/answerGETHMAC-signed URLNCCO answer URL for sequential ringing
/api/popn/notifications/{slug}GET/PUTX-Internal-KeyNotification recipient CRUD
/api/popn/sms/inbound/{slug}POSTNone (Vonage)Vonage inbound SMS webhook + STOP/HELP handler
/api/popn/sms/log/{slug}POSTX-Internal-KeyN8N logs sent SMS to conversation history
/api/popn/sms/optout-check/{slug}?phone=...GETX-Internal-KeyN8N pre-send opt-out check
/api/popn/admin/sms/conversations/{slug}GETGoogle OAuthList conversations (admin Messages tab)
/api/popn/admin/sms/conversations/{slug}/{id}/sendPOSTGoogle OAuthAdmin manual reply (opt-out enforced server-side)
/api/popn/admin/sms/optouts/{slug}GET/POSTGoogle OAuthList/add opt-outs
/api/popn/admin/sms/optouts/{slug}/{phone}DELETEGoogle OAuthRe-enable SMS (with consent)