๐ŸŽฏ Command Center
Operational
Updated: --
๐Ÿ”’ Security
๐Ÿ“ˆ Total Requests
--
-- req/min
โšก Latency (P95)
--
ms response time
โœ… Success Rate
--
0 errors
๐Ÿ’ฌ Active Sessions
--
in last 5 minutes
๐Ÿช™ Tokens Used
--
in: -- / out: --
๐Ÿ’ต Est. Cost
$0.00
~$0/day
๐Ÿ—„๏ธ DB Pool
--
/ -- max
๐Ÿค– Anthropic Cache
--
/ -- max
๐ŸŒ HTTP Pool
--
-- max conn
โšก Redis
--
-- max

Request Volume & Latency

Model Distribution

All Clients Usage

ClientRequestsTokensCostLast ActiveStatus
Loading...
--
Total Clients
--
Healthy
--
Warning
--
Critical

Client Health Overview

Client Health Score Requests Avg Latency Timeout Rate Error Rate Cost Last Activity Status
Loading...
--
Total Requests
--
Timeouts
--
Errors
--
Overall Error Rate

Error Timeline

Errors by Client

Recent Errors

TimeClientTypeLatencyMessage Preview
Loading...

Traffic Heatmap (Requests by Hour/Day)

Top Peak Hours

Top Peak Days

--
Requests This Week
--
Sessions This Week
--
Active Clients
--
Avg Latency (ms)

Week-over-Week Comparison

Requests
--
vs last week
Sessions
--
vs last week
Clients
--
vs last week
Latency
--
vs last week
Tokens
--
vs last week

Daily Trend (Last 14 Days)

Intent Distribution

Language Distribution

--
Total Services
--
Healthy
--
Degraded
--
Down
--
Total Services
--
With Activity (24h)

All Services Usage (from Cloud Monitoring)

Service Category Requests Avg Latency Last Activity
Loading...
๐Ÿ’ฌ Total Sessions
--
๐ŸŸข Active Sessions
--
๐Ÿ“Š Avg Messages/Session
--
โฑ๏ธ Avg Duration
--
๐Ÿšช Abandonment Rate
--
single-message sessions

Message Distribution

Sessions by Client

๐Ÿ’พ Cache Hit Rate
--
0 hits / 0 misses
๐Ÿ” RAG Usage Rate
--
0 RAG requests
๐Ÿ’ฐ Haiku Savings
$0.00
0 Haiku requests

Model Routing Distribution

Avg Latency by Model

๐ŸŽค Voice-Enabled Rate
--
0 voice requests
๐Ÿ“Š Total Audio Generated
-- MB
โšก Avg TTS Latency
-- ms
๐Ÿ“ฆ Avg Audio/Request
-- KB

Voice Usage by Client

ClientVoice Requests
No voice data yet
๐Ÿ’ต Total Cost
$0.0000
$0 per request
โฐ Cost/Hour
$0.00

Cost Projections

Daily
$0.00
Weekly
$0.00
Monthly
$0.00

Cost by Model

Hourly Cost Trend

Cost by Client

ClientCost
No cost data yet
โœ… Success Rate
--
๐Ÿ“ Avg Response Length
-- chars
โฑ๏ธ Timeouts
--
0% timeout rate
๐Ÿฅถ Cold Starts
--
avg -- ms

Error Breakdown

Response Length Distribution

Recent Errors

TimeClientEndpointError
No recent errors
โšก Requests/Second
--
๐Ÿ“Š Last Minute
--
๐ŸŸข Active Sessions
--

Recent Activity by Client

Live Activity Feed

No recent activity
๐Ÿ’ฌ Total Messages
--
๐Ÿ‘ฅ Unique Sessions
--
๐Ÿข Unique Clients
--
โšก Avg Latency
-- ms
๐Ÿช™ Total Tokens In
--
๐Ÿช™ Total Tokens Out
--

Messages by Client

Hourly Message Trend

Recent Conversations

Loading...
๐Ÿ“ Total Submissions
--
โณ Pending Review
--
needs attention
๐Ÿ” In Review
--
โœ… Approved
--
๐ŸŸข Live
--
โฑ๏ธ Avg Review Time
-- hrs
Not set
+ New Onboarding

Onboarding Submissions

Business Name Slug Website Status Submitted Actions
Loading...
๐Ÿšจ Escalated
--
needs manual review
โณ Pending
--
in queue
๐Ÿ”„ In Progress
--
โœ… Completed
--
โŒ Failed
--
๐Ÿ“Š Total Jobs
--
๐Ÿ”‘ API Key: Not set

๐Ÿ“– ONB-003: Manual Scraping Workflow

โœ… Backend Deployed

What is this?

Jobs are escalated when our automated scraper (HTTP โ†’ Playwright โ†’ L7 proxy) cannot extract data from a bot-protected website. These jobs require manual intervention using Playwright MCP in Claude Code.

๐Ÿ”ง Workflow

  1. Claim an escalated job from the table below
  2. Use Playwright MCP in Claude Code:
    mcp__playwright__browser_navigate โ†’ navigate to the URL
    mcp__playwright__browser_snapshot โ†’ capture the page content
  3. Extract business data (name, phone, hours, etc.)
  4. Complete the job with extracted data, or Release it back to queue

๐Ÿ”Œ API Endpoints (artemis-consolidated)

GET /admin/scraping/stats - Queue statistics
GET /admin/scraping/jobs/escalated - Jobs needing manual review
GET /admin/scraping/jobs/pending - Pending jobs
POST /admin/scraping/jobs/{id}/claim - Claim for manual processing
POST /admin/scraping/jobs/{id}/complete - Complete with extracted data
POST /admin/scraping/jobs/{id}/release - Release back to queue
POST /admin/scraping/jobs/{id}/retry - Queue for auto-retry

โšก Quick Claim & Complete Example

# Claim a job
curl -X POST "https://artemis-consolidated-388610795169.us-east4.run.app/admin/scraping/jobs/{job_id}/claim" \
  -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{"admin_id": "your-name"}'

# Complete with extracted data
curl -X POST "https://artemis-consolidated-388610795169.us-east4.run.app/admin/scraping/jobs/{job_id}/complete" \
  -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{"extracted_data": {"business_name": "...", "phone": "...", "hours": {...}}}'

Escalated Jobs

Job ID URL / Domain Strategy Retries Status Failure Reason Assigned To Created Actions
Set API key and click Refresh
Total Orders
--
Pending
--
Confirmed
--
Expired
--
Tracking Client Customer Service Pickup Status Created Actions
Click tab to load relay orders
--
Total Users
--
Sessions
--
Page Views
--
Active Now

Services with GA4 Tracking

Service Users Sessions Page Views Bounce Rate Avg Session Active Now
Loading...

Top Traffic Sources

Select a service to view traffic sources

Top Pages

Select a service to view top pages

โž• Register New GA4 Service

๐Ÿ“Š Google Analytics 4 Integration

This dashboard pulls data directly from Google Analytics 4 via the Data API.

To add a new service:

  1. Register the service using the form above
  2. Go to Google Analytics Admin โ†’ Property Access Management
  3. Add this service account as Viewer: 388610795169-compute@developer.gserviceaccount.com
--
Total Projects
--
API Configured
๐Ÿ”ฅ
Heatmaps
๐Ÿ“น
Session Recordings

Registered Clarity Projects

Service Project ID API Status Dashboard Actions
Loading...

โž• Register New Clarity Project

๐Ÿ”ฅ Microsoft Clarity - Free Behavioral Analytics

Clarity provides session recordings, heatmaps, and user behavior insights at no cost.

To set up Clarity for a new service:

  1. Go to clarity.microsoft.com and create a new project
  2. Copy the Project ID from Settings
  3. NEW: Generate an API token at Settings โ†’ Data Export โ†’ Generate new API token
  4. Register the project using the form above (include API token for metrics)
  5. Copy the tracking script and add it to your landing page

Features: Session recordings, Heatmaps (click, scroll, movement), Rage clicks, Dead clicks, Quick backs, and more!

API Metrics (NEW): With an API token, view Traffic, Users, UX Issues, Device breakdown directly in this dashboard!

--
Viewable Impressions
--
Engagement Rate
--
Avg Attention (sec)
--
Total Clicks

Ad Creative Performance

Creative / Campaign Impressions Viewable (2s+) Avg Attention Interactions Clicks Engagement Score
No display ad tracking configured. See setup instructions below.

Attention Duration Distribution

Interaction Types

Top Placements by Attention

Data will appear after tracking is configured

Device Performance

Data will appear after tracking is configured

โž• Register New Ad Creative

๐ŸŽฏ Display Ad Performance Tracking

Track engagement quality metrics directly from your HTML5 display ads. Unlike basic impression/click tracking, this captures:

๐Ÿ‘๏ธ Viewability

Track when ads are actually seen (50%+ visible for 2+ seconds)

โฑ๏ธ Attention Duration

Measure how long users actively engage with your ad

๐Ÿ–ฑ๏ธ Interaction Depth

Track hovers, carousel swipes, video plays, and more

๐Ÿ“Š Engagement Score

Composite quality metric to identify high-intent placements

Quick Start: Register a creative above to get the tracking code, then paste it into your HTML5 ad.

๐Ÿ“š
API Docs
๐Ÿ”
Client Portal
๐Ÿ› ๏ธ
Admin Tools
๐Ÿš€
Deployment

๐Ÿ” Client Portal System

NEW - December 2025

The Client Portal allows your clients to view their chat performance metrics through a secure, bookmarkable URL.

How It Works

  1. Admin creates an API key for a client using the admin endpoint
  2. Client receives a URL: /portal/dashboard?key=portal_xxx
  3. Client bookmarks this URL and can view their metrics anytime
  4. All data is tenant-isolated - clients only see their own data

Portal Features

  • ๐Ÿ“Š Total conversations & messages with period comparison
  • ๐Ÿ“ˆ Activity trend chart (configurable: 7/14/30/90 days)
  • ๐Ÿท๏ธ Top conversation topics
  • ๐Ÿ’ฌ Recent conversation history
  • โฐ Peak usage hour detection

Admin Endpoints

POST /api/admin/portal/keys?client_id=laundryluv
GET  /api/admin/portal/keys
DELETE /api/admin/portal/keys/{id}

Quick Start: Create a Client Portal Key

# Create key for a client
curl -X POST "https://api.cwadagency.com/api/admin/portal/keys?client_id=laundryluv&display_name=LaundryLuv%20Portal"
# Response includes the API key (save it - only shown once!):
{
  "api_key": "portal_laundryluv_abc123...",
  "portal_url": "/portal/dashboard?key=portal_laundryluv_abc123..."
}

๐Ÿ”‘ Portal Key Management

Client Key Prefix Display Name Status Last Used Actions
Click Refresh to load keys

โž• Create New Portal Key

๐Ÿ“ก API Reference

Method Endpoint Description
POST /api/chat/{client_id}/message Send chat message
GET /api/chat/{client_id}/health Client health check
GET /landing/{client_id} Serve client landing page
GET /portal/dashboard?key=xxx Client portal dashboard
GET /portal/api/metrics?key=xxx Portal metrics API
POST /api/admin/portal/keys Create portal API key
GET /api/admin/portal/keys List portal API keys
DELETE /api/admin/portal/keys/{id} Revoke portal API key
GET /health Platform health check
POST /api/admin/cache/flush Flush Redis cache

๐Ÿ“– Documentation Library

๐Ÿš€ Getting Started

Quick start guide for new partners and clients.

  • Platform overview
  • Account setup
  • First chat widget integration
Read Guide โ†’
โž• Adding New Tenants

Step-by-step guide for onboarding new clients.

  • Configuration setup
  • Knowledge base creation
  • Widget customization
Read Guide โ†’
๐Ÿ’ฌ Widget Integration

Embed the chat widget on any website.

  • Script installation
  • Customization options
  • Event callbacks
Read Guide โ†’
๐Ÿ”Œ API Reference

Complete API documentation for developers.

  • Chat endpoints
  • Portal API
  • Admin endpoints
Read Guide โ†’
๐Ÿ› ๏ธ Developer Handover

Complete technical docs for new developers.

  • Architecture & codebase
  • Environment setup
  • Deployment process
Read Guide โ†’
๐ŸŽฏ Display Ads Tracking

Advanced HTML5 ad performance tracking.

  • Viewability & attention metrics
  • Engagement scoring
  • Implementation guide
Read Guide โ†’

๐Ÿ—๏ธ Platform Architecture Documentation

NEW - January 2026

Comprehensive documentation for the entire Cullari & Wardell platform ecosystem - Artemis, Superior UI, Unified Chat, and all 71 Cloud Run services.

๐Ÿ  Platform Overview

Complete architecture overview and documentation index.

  • System architecture diagram
  • Technology stack
  • Quick reference
Read Documentation โ†’
โšก Artemis Backend API

AI-powered targeting with 4,260 segments.

  • Multi-model AI routing
  • API endpoints
  • Connection pool rules
Read Documentation โ†’
๐Ÿ“ฆ Services Inventory

All 71 Cloud Run services with URLs.

  • Core platform services
  • Chat agents (20+)
  • Landing pages (30+)
Read Documentation โ†’
๐Ÿš€ Deployment Guide

CI/CD procedures and rollback.

  • Deployment script usage
  • Protected services
  • Rollback procedures
Read Documentation โ†’
๐Ÿ—„๏ธ Database Schema

PostgreSQL tables and queries.

  • Core tables
  • Common queries
  • Connection setup
Read Documentation โ†’
๐Ÿข Artemis Accounts API

Centralized account database API.

  • 143 accounts (Laundry, Artemis, CWAD)
  • GET, POST endpoints
  • Greenmen/Dorito IDs
Read Documentation โ†’

๐ŸŽฏ Display Ads Performance Tracking Documentation

NEW - January 2026

Overview

The Display Ads Tracking system provides advanced performance insights beyond basic impressions and clicks. By embedding a tracking snippet in your HTML5 ads, you can measure viewability, attention duration, interaction depth, and calculate engagement scores that predict ad effectiveness.

Key Metrics Explained

Viewable Impressions

MRC-compliant: 50% of pixels visible for 1+ second. This is the industry standard for ad viewability.

Attention Duration

Total time the ad was in the active viewport. Higher attention = more brand recall opportunity.

Engagement Score (0-100)

Composite score based on attention time, hovers, clicks, and scroll depth. 70+ indicates high engagement.

Interaction Depth

Tracks hovers, clicks, and scroll activity within expandable/carousel ads.

Implementation Steps

  1. Register Your Creative - Use the Display Ads tab to register a new ad creative with client ID, name, size, and campaign.
  2. Get Tracking Code - After registration, copy the generated tracking snippet (JavaScript).
  3. Embed in Your Ad - Paste the snippet inside your HTML5 ad, just before the closing </body> tag.
  4. Add Container Attribute - Ensure your main ad container has data-ad-container attribute or is the parent of the script.
  5. Deploy & Monitor - Publish your ad and view metrics in the Display Ads dashboard tab.

Tracking Code Example

<!-- Display Ad Tracking - [Your Creative Name] -->
<script>
(function() {
  var TC = "YOUR_TRACKING_CODE";  // Generated when you register
  var EP = "https://api.cwadagency.com/api/ads/track/display-ad";
  var sid = 'ad_' + Math.random().toString(36).substr(2, 9);

  // State tracking
  var state = {
    impressionSent: false,
    viewableStart: null,
    totalViewTime: 0,
    interactions: { hover: 0, click: 0, scroll: 0 }
  };

  // ... (full tracking code is auto-generated)
})();
</script>

Events Tracked

Event Type Trigger Data Collected
load Page load complete Load time in milliseconds
viewable_impression 50%+ visible for 1 second View ratio percentage
click User clicks the ad Click coordinates, element type
engagement Page unload/visibility change Attention ms, hovers, clicks, scroll depth, engagement score

Engagement Score Calculation

The engagement score (0-100) is calculated as:

  • Attention: 1 point per 2 seconds of view time (max 30 points)
  • Hovers: 5 points per hover interaction (max 15 points)
  • Clicks: 20 points per click (max 40 points)
  • Scroll Depth: Up to 15 points based on scroll percentage

Score Interpretation: 0-30 = Low, 31-60 = Medium, 61-80 = High, 81+ = Excellent

API Endpoints

Method Endpoint Description
POST /api/dashboard/display-ads/register Register new creative, returns tracking code
GET /api/dashboard/display-ads?period=7d Get performance metrics
GET /api/dashboard/display-ads/clients List clients with ad creatives
POST /api/ads/track/display-ad Receive tracking events (auto-called by snippet)

Client Reporting Guide

When presenting metrics to clients, translate technical data into business value:

Viewability Rate

"X% of your ads were actually seen by users, not just served to bots or below-the-fold."

Average Attention

"Users spent an average of X seconds looking at your ad, which is Y% above industry benchmark."

Engagement Score

"Your creative achieved a score of X/100, indicating high user interest and interaction."

Top Placements

"Your ads performed best on [site X], suggesting audience alignment worth exploiting."

โ„น๏ธ Platform Information

Service: unified-chat-platform

Region: us-east4

Support: support@cullarimedia.com