Corp-site CTA tracking not yet active.
To track clicks on corp-site CTAs, add data-cta-label="…"
to any link or button and wire POST /api/interactions/cta on click.
Access Requests
Date
Gate
Name
Organization
Email
Role
Status
Notes
Loading access requests…
Marketplace Forms
Community engagement inquiries via /communities/ CSA form → Attio People + Municipal Clients
Submissions via /contact/ →
Attio People + Teams webhook + Admin email. Status chips show per-downstream result.
—
Submissions
—
Last 24h
—
Prelim Analysis
—
Any Error
Window:Audience:Status:
Date
Name / Email
Audience
Company
Status (Attio · Teams · Email)
Loading…
AI Guide Interactions
Date
Persona
Page
Messages
Last CTA
Feedback
Loading guide sessions…
Finance Document Access
Date
Document
Investor Token
IP
Loading finance access log…
Downloads
No download tracking configured yet. Add a POST /api/interactions/download call when serving document or asset downloads to log events here.
Sales Pipeline Study Backlog
Pipeline opportunities pending site-specific location study
20
In Backlog
48.3K
Total TPD
—
New Requests
from community forms
4
Pending Study
Definition phase
Opportunity
Phase
TPD
Pending Study
Location Ref.
URL
Loading study backlog…
Community Site Registry
Community
Stage
TPD
Gate
URL
Updated
Loading registry…
Window:Community:
—
Total Views
—
Sessions
—
Active Communities
—
Top Community
Community
Views
Sessions
Index
Waste Study
Proposal
EIR
Brief
Benefits
Loading…
Select a community above to see its page-by-page funnel.
Showing all communities combined when none selected.
Page
Views
Sessions
Funnel depth
Loading…
Country
Region
City
Views
Sessions
Loading…
Communities with traffic in the last 48 hours. Refreshes on page load.
Community
Views
Sessions
Countries
Loading…
Window:
—
Finance Pageviews
last 30d
—
Access Requests
finance + investor guide
—
Investor Doc Views
PPM / data room
—
Investor Contacts
contact form / audience
Top Finance Pages
Page
Views
Sessions
Loading…
For full mega-site analytics across all sections see the
Site tab →
Window:Scope:
—
Total Views
—
Sessions
—
Pages
—
Top Page
Page
Views
Sessions
Referrer Types
Loading…
—
Finance Requests
all-time
—
Pending
awaiting action
—
Approved
verified investors
—
Investor Contacts
contact form
Recent Finance Form Submissions
Date
Gate
Name
Organization
Email
Status
Loading…
Document Access Log
PPM, data-room, and other gated investor document downloads.
When
Document
Investor Token
IP
Loading…
Gate:Status:
Date
Gate
Name
Organization
Email
Role
Status
Notes
Loading…
Window:Section:
—
Total Views
—
Sessions
—
Active Sections
—
Top Section
Section
Views
Sessions
Countries
Loading…
Section
Page
Views
Sessions
Ref. types
Loading…
Country
Region
City
Views
Sessions
Loading…
Pages with traffic in the last 48 hours.
Section
Page
Views
Sessions
Loading…
Referrer category
Section
Views
Sessions
Loading…
Control which portals and sections are live for the public.
Admins with CF Access always pass through regardless of state.
Loading…
For page-level and section-level fine-grained flags, use the
Feature Flags tab →
Toggle sections, pages, or sub-portals on/off without deploying.
Admins (with Cf-Access cookie) always see disabled content for preview.
⚙️
Portal & section on/off controls
Toggle Finance Portal, Agent Portal, Brand Centre, and other sections live or offline with a single click.
Add / Update Flag
Key
Enabled
Visibility
Note
Updated
Loading flags…
Key conventions
page:/finance/intelligence/valuation — gates one URL. section:finance/urvs — gates everything under /finance/urvs/. portal:cip — alias for the top-level section; gates the whole sub-portal.
Resolution order: page → section → portal → implicit public. enabled:false = 404 for the public; admins always pass. visibility:admin-only = 404 for the public, admins pass (use for unreleased work). visibility:preview = treat as live (reserved for future soft-launch logic).
View:Filter:
—
Total Comments
—
Open
—
Open Revisions
—
Most-commented page
0 selected
Page
Author
Comment
Status
Created
Loading…
Page
Summary
Status
Assignee
Created
Loading…
Generate Reviewer Access Link
Reviewer link (share this — expires in ):
Email
Label
Expires
Last used
Loading…
—
Pages
—
Sections
—
Open Comments
—
Corpus Flags
—
Pages Scanned
View:
Scanning…
About the Corpus Scan
The corpus scan fetches each page's HTML client-side and checks for Release 2 Canon
firewall violations (WORKFLOW.md §10). Flags are purely informational — they surface
likely violations for Designer review. Some patterns may appear in comments or attribute
values (false positives); use judgment. The scan runs in the browser against the live
dev or prod domain you're currently viewing.
Full god-mode for the /agents/ portal. Owner can create new agents (PIN auto-generated & shown once), reset PINs, change status (active/inactive/suspended), update agreement status.
Cross-agent views surface every lead, meeting, sub-agent and agreement signature in one place — useful for BD triage.
Inline edits on lead status / assigned BD / meeting status PATCH the records immediately.
—
Sessions (Lifetime)
—
Messages (Lifetime)
—
This Month $
—
Top Persona
Master switch
Personas
Limits & budget
Persona:
Started
Persona
Identity
Page
Msgs
In tok
Out tok
$ Est.
Country
Loading sessions…
Flag type:Reviewed:
Date
Persona
Identity
Flags
Role
Message
Actions
Click Load to fetch flagged messages.
Month
Sessions
Messages
Input tokens
Output tokens
Cost (USD)
Capped?
Loading…
CTA
Target URL
Clicks
Loading…
Reviewer feedback awaiting triage. Convert into a Knowledge Item or mark resolved.
When
Persona
Direction
Reviewer
Comment
Message excerpt
Loading…
Status:Type:
ID
Type
Topic
Status
Exception
Corpus target
Updated
Loading…
Architect-authorized deviations from canonical corpus. These items deliberately override standard guidance — kept here as a permanent register with signoff trail.
ID
Topic
Corpus rule
Exception note
Approved by
Approved at
Status
Loading…
Knowledge Items that are live in the AI but not yet pushed to _global/corpus/. Generate a drop bundle to hand to Architect for merge.
ID
Type
Topic
Exception
Corpus target
Approved by
Approved at
Loading…
Drop file goes to E:\Portal\Carbotura-governance\_handoff\corpus\pending\
Edit Knowledge Item
Release
Select a chunk on the left.
Comments
No chunk selected.
Status:Priority:
When
Doc
Author
Priority
Comment
Status
Loading…
Each row is a batch pushed to Carbotura-governance/_handoff/corpus/pending/. Click the commit URL to jump to GitHub.
Pushed
By
Comments
Drop path
Commit
Status
Loading…
Persona filter:
Persona Distribution (all time vs last 30d)
Flagged Messages
Spend (last 6 months)
Top CTAs
Knowledge Base Health
Top Entry Pages
Recent Sessions (20)
Started
Persona
Identity
Page
Msgs
How the Guide works
The Guide is a streaming chat assistant injected on the 9 marketing pages.
Visitors pick a persona chip (Investor, Regulator, Legal, CFO, Municipal, Engineer),
and the system prompt is a shared corpus context + a persona-specific block.
Commission formula: $100k per 100 TPD at CSA financial close.
All output is gated by the language firewall and never surfaces gated documents in chat.
Spend is tracked per month; the system hard-caps at the configured monthly budget.
—
Total Pages
—
Sections
—
WIP / Orphans
View:
About the sitemap
Data sources: /pages-manifest.json (authoritative for deployed pages) + /assets/data/site-architecture.json
(Designer-authored overlay for gating, design system, planned state). The static reference document lives at
_handoff/site-map.md in the corp-site workspace; this admin view is the always-current interactive companion.
View modes: Orphans (pages with no nav path in or out), Planned (drop pipeline and lifecycle changes).
Gate Areas
Access Requests
Select a gate area to edit its message
🤖
AI Analytics Report
AI-generated intelligence briefing combining Cloudflare Analytics, D1 engagement data,
and security events — written by Claude. Backend endpoint queued for DevOps.
Previously dropped submissions silently. Now fires Attio + Teams webhook. Submit the form and check Attio People for the new record and the Teams channel for a notification.
Two cards: "The Circular Advantage Program — Explained" (municipal) and "Investor Briefing Series" (investor/institutional). On Demand section renders recordings grid.
Dark finance aesthetic. "No upcoming briefings" empty state (no events yet). Topics grid, notify strip, data room CTA, credentials strip. Register stub → redirects to /finance/verify/.
Previously a stub returning 200 with no side effects. Now upserts People, Companies, Investors (stage=Identified), adds note with NDA sig status, fires TEAMS_INVESTOR_WEBHOOK.
Hourly cron handler — runs immediately when hit via GET. Checks for events ±5 min from 24h and 1h windows. Empty arrays are expected until an event is within those windows. DB and RESEND_API_KEY must be configured or it returns 503.
Events tab: CAP Webinar July 17 card shows status "open", Teams link populated (MS Graph created it). Registrants, Attendance, and Recordings tabs present.
1) Create a test event (status=draft). 2) Edit it (change title). 3) Clone it. 4) Delete both clones using the trash icon (confirm prompt appears for events with 0 registrations).
⚡ Create via Graph — MS Teams meeting creation integration
On a draft/open event without a Teams link, click "⚡ Create via Graph". Expect HTTP 201, joinUrl written to D1 and displayed. Shannon's calendar (sl@carbotura.com) receives the invite. July 17 already has one — use a new test event.
expect: Teams join URL appears in the card. If 403 ACCESS_POLICY_MISSING → Teams PowerShell policy not applied.
Webinar registration flow end-to-end form
Submit registration for July 17 CAP event. Expect: confirmation screen with Teams join link, Resend confirmation email, Attio webinar list entry (list ID: 504ef4ea-…), Teams WEBINAR_WEBHOOK fires.
Recordings tab → + Add Recording. Enter event, R2 key (webinars/test/sample.mp4), duration, toggle Publish. Recording should appear in /api/webinar/recordings and in the On Demand section on /events/. Post-July 17 workflow.
Replaces the old "Insufficient privileges" dead end. Any CF Access-authenticated user lands here and sees their email, role tier, and capability flags (can_comment, can_revise, etc.).
expect: Your email, role=owner, all capability flags true.
Attio Integrations
Contact form → Attio People + note integration
POST /api/contact upserts a People record by email and attaches a note with message body + source page. Verify in Attio CRM after submitting /contact/ form.
CSA inquiry → Attio People + Municipal Clients + newsletter list integration
POST /api/communities/inquiry upserts People, creates/links a Municipal Clients record (stage=Prospect), attaches a note, adds to community newsletter list (ee9e7e1d-…) if newsletter checkbox ticked.
expect: {"ok":true} + People + Municipal Clients in Attio
Finance verify → Attio People + Companies + Investors integration
POST /finance/api/verify upserts People, Companies, and Investors (ir_stage=Identified). Attaches note with NDA sig status and investor type. Fires TEAMS_INVESTOR_WEBHOOK.
expect: {"ok":true} + 3 Attio records + Teams notification
Webinar registration → Attio webinar list integration
POST /api/webinar/register adds registrant to the event's attio_list_id (504ef4ea-… for CAP). Verify in Attio Webinar List after submitting the registration form.
Submit CSA inquiry form at /communities/. Workflow fefe9a0b… should post municipality name, contact, and selected Option to the community Teams channel.
Dev branch is 24 commits ahead of main. All changes tested on dev.carbotura.com. Tell DevOps "deploy corp prod" to merge and ship to staging.carbotura.com. After prod deploy: add cron trigger to carbotura-site project too.
Users on this list can sign in via email OTP. When they visit the admin panel and enter their email, a one-time code is sent automatically. Sessions last 30 days; codes expire in 60 minutes.