Marketing Dashboard

Enter the 6-digit security code to continue.

Dashboard
AI Insights
Analysing your data…
Total Contacts
 
🎯
Active Enrollments
Leads in active cadences
Content This Week
 
AI Tasks Run
Total agent runs
Leads Captured
All time
WhatsApp Status
Checking…
Loading from Meta…
Next Best Actions
  • Loading recommendations…
Recent Activity
  • Loading activity…
Upcoming Content (Next 7 Days)
Name Email Type Stage Country Source Channel Tags Actions
👥
No contacts yet
Add your first contact to get started with the CRM.
🔍 Lead Prospecting Pipeline

Email Enrichment

Scrape club websites or federation profiles to find contact emails for leads with placeholder addresses.

Leads

All contactable leads (email or phone). Click a name to view their 360° profile. Click Enroll to assign them to a cadence.

Lead Cadence Step Last status Next step at Enrolled Actions
🎯
Loading leads…

Email & SMS Cadences

10 pre-built sequences using SPIN, Corporate Visions, neuromarketing, and virality techniques. Click any cadence to expand steps.

0 scheduled · 0 drafts · 0 published · 0 awaiting approval
Platform: | Status:
Tip: drag posts between days to reschedule · click a day to see all posts for that day

Enrollments

Leads actively running in each sales cadence. Click Opt out to remove a lead; conversion auto-removes on CTA click or checkout.

Loading enrollments…

Activity History

Unified log: cadence steps sent, CTA clicks, opt-outs, conversions, content created, posts published, emails/SMS sent.

Loading history…

🟢 WhatsApp Inbox

Every reply from prospects via WhatsApp. Click any row to match it against marketing_contacts and reply (within the 24h customer-service window).

Total today
Unhandled
Opt-outs (STOP)
Last inbound
Loading messages…
🛑 Opted-out contacts

Contacts who replied STOP / PARAR / ALTO / etc. — cadence runner auto-skips any pending WhatsApp steps for them. Click Restore if a contact reached out and asked to opt back in (document their consent in writing).

Loading…
📊 Recent send activity (last 50 steps)

Live view of the 50 most recent cadence steps — sent/delivered/read/failed with reason. Use this when prospects report 'I didn't get it' to verify Meta/Resend actually sent the message.

Click the section header to load.

Content Map

Research-driven planning. Click any item to seed a brief in Pipeline Studio.

Loading content map…

AI Marketing Agents

Select an agent, describe your task, and get expert output.

✍️
Copywriter
Direct response copy using SPIN + Corporate Visions methodology
📱
Social Media Manager
Platform-native content for TikTok, Instagram, YouTube, Facebook
🎬
Content Creator
Scripts, captions, storyboards adapted to each platform
🎨
UI/UX Designer
Design briefs, wireframe descriptions, CRO recommendations
📣
Marketing Director
Campaign strategy, content maps, team coordination, 30/60/90 plans
✍️
Copywriter Agent
Ready
Viral Templates — Click to Use
Platform: Hooks:
📋 Task History
Agent Task Status Time Action
No tasks run yet. Select an agent above and describe a task.
🔗 Multi-Agent Orchestration
Auto-chain agents

Launch a full agent pipeline. The Marketing Director coordinates all agents automatically based on the workflow type.

🧪 Pipeline Studio
Plan → Copy → Assemble → Review → Publish. Each stage emits a schema-validated artifact you can inspect and edit before passing to the next.
1. Planner — generate ContentBrief idle
2. Copywriter — generate copy from brief waiting for brief
3. Visual — generate image from brief waiting for brief
4. Assembler — build PostPackage (deterministic) waiting for visual / copy
5. Editor-in-Chief — score on 6-dim rubric waiting for package
6. Preview & Publish waiting for package
Publish + calendar buttons appear after Assemble.
📊 Analytics freshness:
🌐
Site Visitors (30d)
📄
Page Views (30d)
⏱️
Avg Session Duration
📉
Bounce Rate
📧
Email Open Rate
👆
Email Click Rate
🔄
Trial→Paid Conversion
📝
Signup Rate
💰
MRR
📸
IG Followers
🎵
TikTok Followers
▶️
YouTube Subscribers
👥
FB Followers
📊
Social Eng. Rate
🏆 Brand Health Score
/ 100
Based on sentiment, mentions,
SEO visibility, and social engagement
📈 Channel Performance
  • Loading…
💡 AI Recommendations
  • Loading recommendations…
🌟 Top Content by Engagement
Title Platform Reach Eng. Rate
No published content yet. Publish a post from the Content tab to see it ranked here.
🔔 Brand Mentions
  • Loading mentions…

CMO Approval Queue

Review and approve content before it goes live. All agent-generated content lands here first.

Content Type Platform Agent Scheduled For Status Actions
No items awaiting approval
Content generated by AI agents will appear here for your review.
📋 Campaigns vs Cadences — When to Use Which

📢 Campaigns

A campaign is a time-bound, goal-oriented marketing initiative that coordinates multiple channels and content types around a single objective.

  • Has a defined start and end date
  • Targets a specific persona or segment
  • Includes multi-channel content (email, social, ads)
  • Tracks budget and ROI
  • Use when: launching a product, seasonal push, event promotion, B2B outreach blitz

📧 Cadences

A cadence is an automated sequence of emails/SMS triggered when a contact enters a specific stage or meets certain criteria.

  • Evergreen — runs continuously once activated
  • Triggered by contact actions (signup, trial start, etc.)
  • Sequential steps with defined delays
  • Personalized per contact
  • Use when: nurturing leads, onboarding, trial-to-paid conversion, re-engagement, win-back

Paid Media & Visibility

Manage ad campaigns, generate viral copy, and optimize SmartSwing for search & AI discovery.

📋 Live Ad Campaigns (Meta)
Loading campaigns...
🎯 Campaign Playbooks

Each playbook includes full step sequence (research → creative brief → ad creatives → launch → retargeting) and ready-to-use ad creatives.

Loading campaign playbooks…
📊 Meta Ad Account — Live Metrics
Impressions
--
Clicks
--
Spend
--
CTR
--
CPC
--
ROAS
--
Leads
--
Cost/Lead
--
Industry Benchmarks — Tennis/Fitness Apps
CTR: 1.5–2.5% CPC: $0.80–$1.80 CPL: $8–$22 ROAS: 3–6×
✨ AI Ad Copy Generator
Powered by Claude
🔥 Viral Hook Templates — Tennis & Pickleball
Click any hook to pre-fill the ad copy field
🎾 Tennis — Aspirational
🎾 Tennis — Data / Credibility
🏓 Pickleball — Growth Angle
🎯 Universal — CTA Hooks
🎯 Audience Targeting Presets
Validated Meta interest clusters for tennis & pickleball
🎾 Competitive Tennis Player
Age: 18–45 · Gender: All
Interests: Tennis, USTA, Tennis Channel, Tennis Warehouse, Rafael Nadal, Novak Djokovic
Behaviors: Engaged shoppers, Sports equipment buyers
Placement: Instagram Feed + Reels, Facebook Feed
🏓 Pickleball Enthusiast
Age: 30–65 · Gender: All
Interests: Pickleball, Pickleball Central, PPA Tour, Major League Pickleball, Selkirk Sport
Behaviors: Active sports participants, Online sport shoppers
Placement: Facebook Feed + Groups, Instagram Reels
👨‍🏫 Tennis Coach / Instructor
Age: 25–55 · Gender: All
Interests: Tennis coaching, PTR, USPTA, Tennis education
Job Title: Tennis instructor, Coach, Sports trainer
Placement: LinkedIn + Facebook Professional, Instagram
🏆 Junior Tennis Parent
Age: 30–50 · Gender: All
Interests: USTA Junior, Junior tennis, Youth sports, Tennis academy
Life Events: Parent of school-age children
Placement: Facebook Feed + Messenger, Instagram
💡 Retargeting tip: Build a Lookalike Audience (1–3%) from your highest-LTV subscribers. Use website Custom Audiences for anyone who visited /pricing but didn't convert — target with the free trial hook.
📋 Meta Campaigns
Loading campaigns…

Settings

Admin controls for the marketing dashboard.

🔒 Security Code

Change the 6-digit code required to access this dashboard.

📱 Social Media Connections

Connect your social media accounts for content publishing.

📸
Instagram
Not connected
👥
Facebook
Not connected
🎵
TikTok
Not connected
▶️
YouTube
Not connected
⚠️ Setup required: Instagram and Facebook publishing require a permanent Page Access Token added to your Vercel environment variables. Follow the step-by-step guide below.
🔑 Meta Token Setup — Facebook & Instagram Publishing
Click to expand step-by-step guide
💬 SMS Provider (Amazon SNS)

SMS sending is configured via Amazon SNS through Vercel environment variables.

Checking SMS configuration…
Note: All US SMS requires A2P 10DLC registration. Amazon SNS offers 100 free SMS/month in the free tier.
Endpoint: /api/marketing/send-sms
Credentials: Managed via AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY in Vercel env vars.
📱 WhatsApp Business

Send messages via WhatsApp Cloud API. Uses your Meta Business access token.

Checking WhatsApp configuration…
Note: Template messages work anytime. Free-form text only works within 24h of the user's last message.
Endpoint: /api/marketing/send-whatsapp
Credentials: WHATSAPP_PHONE_NUMBER_ID + META_PAGE_ACCESS_TOKEN in Vercel env vars.
📧 Email Provider (Resend)

Email sending is configured via Resend through Vercel environment variables.

Resend is configured via RESEND_API_KEY in Vercel.
🔑 Platform API Credentials

All credentials are stored securely in Vercel environment variables. Manage them in the Vercel dashboard.

Loading credentials status…
📊 Update Social Stats

Manually enter your current social media follower counts. These are displayed on the Analytics tab.

Tip: These values are stored locally and populate the Analytics KPIs. Connect platform APIs above for automatic syncing.

Marketing integrations

Connect email, search, and social platforms so the marketing console can surface real analytics and publish content. All fields are optional; the rest of SmartSwing works without them.

Email delivery (Resend webhook)

Email events (last 30 days)

Loading recent email events…

Delivered
Opened
Clicked
Bounced
Complained
Open rate
Click rate
Configure webhook in Resend
  1. Open Resend → Webhooks and click Add endpoint.
  2. Paste this URL: https://www.smartswingai.com/api/resend-webhook
  3. Tick these five event types:
    • email.delivered
    • email.opened
    • email.clicked
    • email.bounced
    • email.complained
  4. Copy the Signing secret and set it as RESEND_WEBHOOK_SECRET in Vercel env vars.
Google Search Console

Search performance integration

Pulls impressions, clicks, CTR, average position, top queries, and top pages directly from Google Search Console for the marketing console's SEO panel.

Set in Vercel → Project → Settings → Environment Variables. Paste the full JSON key.
Exactly as registered in Search Console (e.g. https://www.smartswingai.com/ or sc-domain:smartswingai.com).
Setup instructions
  1. Open Google Cloud Console → Service accounts and create a new service account (any name, no roles required).
  2. Click the service account → Keys → Add key → JSON. Download the JSON file.
  3. Copy the client_email from that JSON. Go to Search Console → your property → Settings → Users and permissionsAdd user → paste that email with Restricted permission.
  4. In Vercel, set GSC_SERVICE_ACCOUNT_JSON = the full JSON file contents (as a single string) and GSC_SITE_URL = your Search Console property URL.
  5. Redeploy. The marketing console's Search Console panel will start showing real data.
Social publishing tokens

Platform access tokens

Paste developer tokens so the agent can publish directly. Each row's status dot turns green when the last API call succeeded, yellow if expired, gray if not set. Free developer tiers only — no paid plans required.

Get one at TikTok for Developers → Your app → Credentials. Scope: video.publish.
Get token
Get one via OAuth Playground with scope https://www.googleapis.com/auth/youtube.upload.
Get token
Long-lived user token with instagram_content_publish, instagram_basic. Connect an IG Business account to a Facebook Page first.
Get token
Page-scoped token with pages_manage_posts, pages_read_engagement. Use the Graph API Explorer.
Get token

Loading token status…

🔍 Track Google Ad Campaign
Add Contact
Add Content
New Campaign
Email Preview
Day 0 · Intro
Enroll as Lead

Paid-media campaigns live under Paid Media. This flow only assigns sales cadences (email + SMS).
✅ Enrolling will promote this contact to Lead status and schedule the cadence's first send.
Content Preview
SS
smartswing.ai
No image yet
smartswing.ai
Unsaved changes