1 · The Client in One Page
Flowcode (legal: The dtx company) — B2B SaaS platform for offline-to-online attribution. Founded 2019 by Tim Armstrong (former Google Americas President, AOL CEO). Headquarters: 233 Spring Street, Soho, New York. $30M seed funding (May 2020). 143–171 employees. ~$15.7M ARR (2025 estimate), targeting $20M by Q4 2026. Three product lines: Flowcode (QR codes + short URLs), Flowpage (mobile landing pages), and FlowID (first-party data + attribution). Strategic claim: 70% Fortune 500 penetration.
Product suite
- Flowcode QR + Short URLs: Custom-branded dynamic QR codes with scan analytics. Free tier → Startup (~$50/mo) → Takeoff → Growth ($250/mo) → Enterprise (custom). Major platform upgrade: Flowcode 2 launched June 2024.
- Flowpage: Mobile-optimized landing page builder. Converts QR scan into a tracked conversion event. Integrated into Flowcode 2.
- FlowID Intelligence Suite: First-party data platform. Identity layer across all physical touchpoints. Launched October 2025. The premium expansion upsell into enterprise accounts.
- SmartFlow: A/B testing and automated routing for QR experiences. Launched December 2025.
ICPs
- Enterprise — "VP Marketing / CMO at Fortune 500": CPG, Sports/Entertainment, Retail, Media. Can't measure offline ROI. Needs first-party data to survive cookie deprecation. ACV $30–80K, sales cycle 6–12 months.
- Self-serve — "Growth marketer at scale-up": Comes in through Canva integration (190M+ MAU) or organic search. Hits scan caps → upgrade trigger. ARPU $80–120/mo blended.
Key enterprise accounts (proof points in market)
NFL, NBA, Pittsburgh Penguins, Jonas Brothers, CLEAR, Lunchables, Capri Sun, Welch's, Eddie Bauer, LOVE CORN, MoonPay. NFL case study: $25K revenue from a single broadcast QR code.
Competitive landscape
Bitly (heaviest ad spender in category), QR TIGER (SEO-first), Uniqode (enterprise + compliance focus, actively bids on Flowcode by name). Flowcode's differentiation: attribution depth, FlowID first-party data, enterprise integrations (Salesforce, HubSpot, Marketo, Snowflake, Klaviyo), and Tim Armstrong's Fortune 500 network.
2 · Account Team
| Name | Role (P&L Hub) | Cost / mo | Notes |
|---|---|---|---|
| Matt Greener | CMO | $2,000 | Account lead; also CMO at HBAI ($3K there) |
| Michael DiLillo | "Paid Social" (actual scope = Email/CRM) | $2,500 | ⚠ Role mislabeled in P&L Hub. Actual work: HubSpot architecture, lifecycle email, CRM nurture sequences. Also at FFC ($6K there). |
Channel Coverage Map (per P&L Hub assignments)
| Channel | Co-Pilot | Status |
|---|---|---|
| CMO / Strategy | Matt Greener | Staffed |
| Email / CRM | Michael DiLillo | Staffed (role label needs correction) |
| Paid Search | — | No co-pilot assigned in P&L Hub |
| SMS | — | No co-pilot assigned in P&L Hub |
| Paid Social | — | No co-pilot assigned in P&L Hub |
| Analytics / Attribution | — | No co-pilot assigned in P&L Hub |
3 · Client Contacts (Flowcode Side)
| Person | Role | Notes |
|---|---|---|
| Tim Armstrong | CEO / Founder | Former Google Americas President, AOL CEO. 82% Glassdoor CEO approval. LinkedIn is the primary enterprise pipeline driver — organic thought leadership amplified by paid. Not the day-to-day contact for MH operations. |
| Brad | Primary MH relationship owner / Growth lead | Day-to-day sponsor of the lifecycle program. His ask: "BDRs should wake up every morning with 300 drafted outreach messages." Defines the target buckets for Build 1 and signs off on scoring priorities. |
| Chelsea Flaum | CXO | Background: Go1, WeWork. Customer experience and success org. |
| Anthony DiMarco | COO | Background: Google, Rumble. Operations lead. |
| Cameron Mingo | CFO | Background: Komodo Health, Cleveland Guardians. |
| David Schwarzberg | CSO | Background: NERA Consulting, Alix Partners, AOL. Strategy and partnerships. |
| Al Delucca | CTO | Background: Bluecore, Namely, IBM. Engineering and product infrastructure. |
| Michael DeLillo | CRM / HubSpot architecture (internal) | Re-audited lifecycle setup; found architecture wasn't ready for automation at scale. Owns the foundation cleanup that unblocks Build 2. (Note: may be MH-side resource embedded with client — treat as shared.) |
4 · Channels Currently Managed
Key strategic bet: "Offline attribution" keyword cluster has zero major competition and high enterprise intent. Flowcode should own this category in paid before Bitly or Uniqode move in.
Recommended monthly budget: $60–100K total paid (Google Brand $5–10K, Category $15–25K, Competitor $5–10K, Retargeting $5–10K, LinkedIn $20–30K, YouTube $5–10K).
Tier 1 keywords to defend: "flowcode" ($1–3 CPC), "enterprise QR code platform" ($8–15), "QR code for business" ($5–10), "offline attribution" ($8–15 but uncontested).
Data gap: CAC by channel not yet measurable without closed deal attribution from HubSpot → Google Ads pipeline.
- Bucket 1: ICP Enterprise — inactive/untouched (high ACV, zero outreach)
- Bucket 2: Growth Team — $100M+ revenue contacts nearing code/data caps
- Bucket 3: Paid Ads leads — converted but never nurtured
- Bucket 4: Existing customers — F1→F2 upgrade candidates
ai_subject, ai_opener, ai_body, ai_cta), human reviews before send. Prerequisite: Michael validates first safe cohort (neglected Stage 2 / form-fill prospects).The gap that blocks both: Lifecycle architecture isn't clean — lifecycle stages still double as pipeline stages; Lead vs. Contact object strategy inverted for inbound. Michael's cleanup is the critical path to Build 2.
Not currently owned by MH: SEO/content (Flowcode is outranked 10:1 by QR TIGER, Bitly, Uniqode on content volume), LinkedIn Ads (Tim Armstrong's organic reach is a flywheel but no paid amplification program confirmed), product analytics (PLG funnel metrics not established), developer marketing (weak vs. Bitly's ~300K API users), ABM (enterprise pipeline depends on Tim's network rather than systematic targeting).
5 · Active Priorities & Calendar
Build roadmap status (Weeks 1–12+)
| Milestone | Week | Status | Owner |
|---|---|---|---|
| Build 1 MVP — data connected, scoring running | W1 | Done | Josh |
| Build 1 complete — all four buckets, 42K+ rows Google Sheet | W2 | Done | Josh |
| HubSpot injection method validated (template + custom property flow) | W2 | Pending | Josh |
| Michael's first cohort validated — approved target for Build 2 | W3 | Pending | Michael DeLillo |
| Build 2 MVP — first warming sequence generated, in HubSpot | W3–4 | Pending | Josh |
| Build 2 live — first warming motion sending, engagement data flowing | W5 | Pending | Josh + Michael |
| Scale planning — expand to additional cohorts | W6+ | Future | Team |
| Scale launch — AI-driven cohort discovery across 4M contacts | W8+ | Future | Team |
| Full automation — proactive alerts, continuous optimization | W12+ | Future | Team |
Paid search build priorities
- Brand campaign launch — defend "flowcode" and "flowcode pricing" at 95%+ impression share
- Category — Attribution campaign: "offline attribution," "offline conversion tracking" (uncontested keywords — first-mover opportunity)
- Competitor intercept: "bitly alternative," "QR tiger vs," "uniqode pricing"
- Retargeting pool setup — RLSA for free users, enterprise visitors
- LinkedIn Ads — Tim Armstrong post amplification + enterprise demo lead gen forms (VP Marketing, CMO at F500)
Lifecycle build blockers on the desk now
- HubSpot injection method validation — Matt needs this confirmed before Brad's next call
- Michael's cohort approval — must validate "neglected Stage 2 / form-fill prospects" as first safe Build 2 target before warming begins
- Brad alignment on AI framing — keep engine under the hood; show outputs, not architecture. Frame as "our platform found 400 accounts your team isn't seeing."
- Snowflake session management — 12h token limit; cache strategy needed for production reliability
Strategic ARR gap decomposition (to $20M by Q4 2026)
| Path | Contribution est. | Key levers |
|---|---|---|
| Enterprise new logos | $1.5–2.5M ARR | 20–35 new deals at $50–70K ACV; requires ABM + pipeline beyond Tim's network |
| Enterprise expansion (NRR) | $1–1.5M ARR | NRR from 110% → 115%; FlowID + SmartFlow upsell into existing accounts |
| Self-serve growth | $500K–1M ARR | Double free→paid (2% → 4%) via lifecycle nurture + better onboarding |
| API / usage revenue | $300–500K ARR | Expand API billing on enterprise accounts; Canva monetization |
6 · Operating Cadence
- Meetings (30 days): 8 recorded meetings. Cadence includes regular check-ins with Brad on lifecycle program progress and Paid Search strategy reviews.
- Open Asana tasks: 5 open · 4 completed in last 14 days · 1 overdue. Asana project GID:
1214126006212174(ext:C0A7UKN7Q22, Tier 2). - Sentiment score: 60 — bottom quartile. Signals client-side friction with pace of Build 2 delivery and the gap between Build 1 output (data insight) and Build 2 activation (emails sending). See Section 8 for root causes.
- Asana health score: 76 — solid but with 1 overdue task that should be resolved immediately.
- Slack channels: Standard private client + internal channels. High-volume communication with Brad on lifecycle scoring and bucket prioritization.
- Modal execution app:
mh1-exec-flowcodewith cron support — Build 1 runs automatically, scores refresh on schedule, output persisted to Firestore via ClientDataWriter. - Build 1 output: Google Sheet — 4 tabs (Summary, Scored Accounts 42K+ rows, HubSpot Contacts, Company Summary). Shared directly with the marketer after each run. Single source of truth on pipeline opportunity.
- Key contacts cadence: Brad is the primary day-to-day sponsor. Matt handles external framing. Michael DeLillo is the gating dependency for Build 2 kickoff.
7 · Data & Tooling
Connected data sources
- Live HubSpot — 42K+ contacts, 29K+ companies, 10K+ deals. Full paginated pull with domain-targeted filtering. Build 1 reads this daily. Issue: lifecycle stages dirty (double-duty pipeline/relationship); Lead vs. Contact object strategy inverted for inbound.
- Live Snowflake — product usage data (code creation volume, scan metrics, cap proximity, plan type, org size). Schema-discovery pull with multi-warehouse support. Build 1 cross-references Snowflake users to HubSpot contacts via email, domain, hubspot_company_id. Issue: 12h session limit requires token refresh / caching strategy.
- Live Google Ads — CID 8444328711. Paid search channel active. Attribution model: last-touch for self-serve, multi-touch for enterprise (30–90 day cycle).
- Partial GA4 — website analytics likely live; integration into semantic layer or pipeline attribution not confirmed.
- Unknown Product analytics — PLG funnel metrics (activation rate, TTFV, free→paid CVR) not yet established. No Amplitude/Mixpanel confirmed. This is the largest measurement gap for the self-serve motion.
Martech stack (inferred + confirmed)
| Category | Tool | Status | Notes |
|---|---|---|---|
| CRM | HubSpot | Confirmed | Primary CRM; lifecycle architecture in cleanup phase |
| Data warehouse | Snowflake | Confirmed | Native Flowcode integration; Build 1 reads directly |
| Ad platforms | Google Ads, LinkedIn Ads | Active | Google confirmed (CID 8444328711); LinkedIn active via Tim Armstrong organic + paid TBD |
| Email marketing | Klaviyo integration (confirmed) | Integration | Klaviyo is a confirmed Flowcode platform integration; not confirmed as their internal ESP |
| CRM integrations | Salesforce, Marketo, Klaviyo, Shopify | Live integrations | All confirmed as 2024–2025 product launches; enterprise selling point |
| Design | Canva | Live | 190M+ MAU distribution; PLG acquisition channel. Major top-of-funnel source. |
| Content CMS | flowcode.com/blog | Low volume | 2–4 posts/month; severely underinvested vs. competitors |
| Product analytics | Unknown | Gap | No confirmed Amplitude/Mixpanel/Heap for PLG funnel tracking |
| ABM / intent data | None confirmed | Gap | Enterprise pipeline relies on Tim's network, not systematic ABM |
Critical data gaps
- PLG funnel metrics unmeasured — activation rate, TTFV, free→paid CVR are estimated benchmarks, not actuals. Cannot optimize the self-serve motion without them.
- CAC by channel unknown —
fact_daily_spend+ deal close attribution not wired. Every paid ROAS conversation is a guess. - Win rate and ACV range too wide — $30K–80K ACV estimate; 20–30% win rate estimate. Need stage-by-stage HubSpot conversion rates.
- NRR unverified — estimated 105–115% from benchmarks. Need
fact_contract_mrrcohort analysis from Snowflake. - HubSpot lifecycle stages dirty — double-duty usage (relationship + pipeline) makes scoring unreliable. Michael's cleanup is a prerequisite for Build 2.
- Canva→paid conversion unmeasured — Canva integration is a top PLG channel but conversion rate from Canva signup to paid tier is unverified.
8 · Friction Points
Sentiment: 60 — bottom quartile. This account has structural tensions that explain the score.
- Build 2 is blocked — and Brad knows it. Build 1 is live and proving value (42K contacts scored), but Build 2 — the part that actually sends emails — is gated on Michael's HubSpot architecture cleanup. The client's expectation was a fast ramp from "found the contacts" to "emails sending." The gap between those two phases is the single largest driver of sentiment drag. Every week without warming emails landing in HubSpot is a week where Flowcode wonders if they're getting what they paid for.
- No lifecycle email program whatsoever — in a company with 4M contacts. Free users who hit scan caps churn silently instead of receiving an upgrade nudge. Enterprise contacts go untouched for months. BDRs don't have drafted outreach. This was the stated problem at the start of the engagement and it remains unsolved. The longer this stays unresolved, the louder Brad's frustration gets.
- Dirty HubSpot data creates a trust problem. Michael's re-audit found the lifecycle architecture isn't ready for automation. Lifecycle stages doing double-duty means any scoring or warming built on top is unreliable. The client may perceive this as MH overpromising on automation readiness. Matt needs to frame Michael's cleanup as "strengthening the foundation" — not "you did it wrong."
- Enterprise pipeline depends on one person's network. Tim Armstrong's LinkedIn and relationships drive the majority of enterprise pipeline. There is no systematic ABM program, no intent data, no account-based paid program. If Tim's bandwidth shifts or his network saturates a vertical, pipeline generation has no backup engine. MH's paid search and email programs don't yet feed enterprise pipeline directly.
- Self-serve motion has no measurement. The PLG funnel (Canva → free → activation → upgrade) generates significant top-of-funnel volume but activation rate, TTFV, and free→paid CVR are estimated from benchmarks, not actuals. Flowcode is flying the self-serve plane without instruments. If self-serve is 20–30% of ARR, this is a $3–5M revenue stream being managed on gut feel.
- SEO and content are severely underinvested. QR TIGER, Bitly, and Uniqode outrank Flowcode 10:1 on content volume. Flowcode publishes 2–4 blog posts per month; competitors publish 20–40. The "offline attribution" keyword cluster — where Flowcode should own the category narrative — is wide open in organic search but MH doesn't manage SEO. This creates an owned-media gap that paid search alone cannot fill.
- Glassdoor signals internal instability. 3.6/5 stars (57 reviews), "super low retention," constant priority shifts, "unrealistic goals." High employee turnover creates execution risk — knowledge loss mid-engagement, champion departure, and changing stakeholder priorities. The company is in an aggressive hiring/growth phase that historically correlates with disorganization and broken processes. MH should expect shifting contacts and priority pivots.
9 · What Matters Right Now
- Validate the HubSpot injection method today — it's the gate to Build 2. The technical path from AI-generated copy → HubSpot custom properties → email template → workflow trigger needs to be confirmed end-to-end before Brad's next call. This is the proof that the system can move from "finding contacts" to "sending emails." If this breaks, Build 2 slips another week and sentiment slides further.
- Get Michael to approve the first safe cohort for Build 2. The recommended starting target: neglected Stage 2 / form-fill prospects — people who submitted a form, got tagged in HubSpot, are receiving zero communication, and are NOT in active sales motions. Low risk, high signal, zero downside. Don't wait for the full lifecycle cleanup — start warming the safest cohort now and prove the pipeline works.
- Frame Build 1 output clearly in the next Brad call. 42K contacts scored, 4 buckets defined, Google Sheet live. Brad wanted "BDRs waking up with 300 drafted outreach messages" — Build 1 gives them the 300 names. Build 2 gives them the messages. That two-step narrative needs to land clearly or Brad will keep measuring against an expectation of instant full automation.
- Paid Search: get "offline attribution" campaigns live first. This keyword cluster ($8–15 CPC, zero major competition) is the highest-leverage early win in paid search. Flowcode is the only platform that can credibly own "offline attribution" as a category. Every month without ads running here is a missed first-mover window. Launch brand defense + offline attribution category before moving to the broader QR keyword pool.
- Establish PLG funnel baselines before recommending conversion improvements. Activation rate, time-to-first-value, and free→paid CVR need to be pulled from product analytics (Snowflake RPT_CODES_DAILY, RPT_ORGS). If these are estimated at 2–4% and the actual is 1%, the self-serve revenue model changes. Get actuals before building lifecycle upgrade sequences.
- Address the 1 overdue Asana task. With 5 open tasks and a 60 sentiment score, an overdue item is a visible signal to Flowcode that execution is slipping. Resolve or re-scope it immediately.
- Prepare the FlowID upsell case for enterprise expansion. NRR is the single highest-leverage metric in the $4.3M ARR gap (estimated $1–1.5M from expansion alone). FlowID launched October 2025 and SmartFlow launched December 2025 — these are natural upsell conversations for accounts that only use QR codes today. Build the case study and expansion pitch deck before the next QBR season.
- Protect Matt's framing on Michael's re-audit. When Brad hears "the lifecycle architecture isn't ready," it will feel like a setback unless it's framed as "we validated your foundation and found the one thing that would have caused automation to fail at scale — here's what we're fixing." The alternative framing ("you did it wrong") creates client-side defensiveness that damages the relationship further. Matt owns this narrative.
Caveat on numbers: ARR, self-serve MRR, enterprise ARR, NRR, win rate, ACV, and CAC are third-party estimates or benchmark-derived figures (Tracxn, Growjo, OpenView, B2B SaaS medians). Actuals require Snowflake access (fact_contract_mrr, dim_deal, fact_daily_spend) and HubSpot pipeline stage pull. Driver tree health assessments are from 20_intelligence/driver-tree.md (updated 2026-04-10). All Build status reflects roadmap.md as of the last repo update.