One Janitorial AI Agent

Manager Training Guide — All Managers

Version: 1.0 Created: March 22, 2026 Last Updated: March 22, 2026 — Section 16 added Applies To: Service Manager · BCO Manager · Sales Manager Reading Level: Plain English

👋 Welcome, Manager

This guide teaches you everything you need to know about working with your AI Agent. Read it once, then come back whenever you need a reminder. It is written in plain English — no tech knowledge needed. Your agent is like a very smart assistant that knows your HubSpot data, can pull reports, answer questions, and build dashboards. But it needs clear instructions from you to do great work.

💬 Chat with the AI Agent Bot →
1

What Is Your AI Agent?

Think of your AI Agent as a very smart assistant who has read every record in your HubSpot system. It can answer questions, pull numbers, build reports, and create live dashboards — all by you just typing what you want in plain English.

It is not a robot that runs on its own. It only does what you ask. You are always in charge.

The Three Agents at One Janitorial

Each manager has their own private AI Agent. Your agent only works for you.

Agent NameWho Uses ItWhere to Find It
Service Manager AgentService ManagerYour private Telegram group
BCO Manager AgentBCO ManagerYour private Telegram group
Sales Manager AgentSales ManagerYour private Telegram group

Each manager has a private Telegram group with their agent. Nobody else can see your conversation. Just open Telegram and type your message. That is it.

What Your Agent CAN Do

  • Pull live data from HubSpot — deals, tickets, contacts, companies
  • Answer questions like "How many BCO clients do we have in Calgary?"
  • Build HTML dashboards and reports and publish them live on the web
  • Set targets and flag when someone is below their goal
  • Read your briefing file and pick up where you left off
  • Transcribe and analyze RingCentral call data
  • Track website activity — form submissions, page views, leads
  • Add links automatically to the One Janitorial master links sheet

What Your Agent CANNOT Do

  • Make decisions for you — you always approve before it acts
  • Send emails on its own unless you specifically ask it to
  • Update HubSpot records without your explicit go-ahead
  • Learn on its own — you update your briefing file to give it context
  • Be perfect — always check its work before sharing it
⭐ The Golden Rule

You are always in control. Your agent will never change data, build a report, or take any action without showing you its plan first and waiting for you to say "go."

2

How to Talk to Your Agent (Prompting)

A prompt is what you type to your agent. The better your prompt, the better your answer. Think of it like giving directions to someone who is brand new. The clearer you are, the faster they get there.

Simple Rules for Talking to Your Agent

  • Be specific. Say exactly what you want, who it is for, and what time period.
  • One or two things at a time. Do not ask for 10 things in one message.
  • Confirm it worked before moving on. Check the result, then say "looks good, next step."
  • Always check 3 real records first before asking it to build anything.

Good vs Bad Prompts — Real Examples

❌ Bad
"Give me a report on deals."
✅ Good
"Show me all deals in the BCO pipeline that are in the Proposal Sent stage, opened in the last 30 days, with the deal name, amount, and owner."
❌ Bad
"How are we doing on calls?"
✅ Good
"Show me how many outbound calls each scout made this week. Include their name, call count, and average call duration."
❌ Bad
"Build me a full dashboard for everything."
✅ Good
"First, show me 3 BCO tickets that have a First Clean Date set. Then I will tell you what to build."
❌ Bad
"Do all of this: get deals, contacts, calls, website traffic, and build a report."
✅ Good
"Let us start with deals only. Show me 3 deals from the BCO pipeline that closed this month with the amount and close date."
🔑 The Golden Rule of Prompting

Before you ask your agent to build anything, always say this first:

"Show me 3 real records from HubSpot where [property] = [value]"

This one step prevents almost every mistake. If the data looks wrong in 3 records, you know not to build on it.

⏱ Work in 1–2 Tasks at a Time

Your agent does its best work when you give it one or two things to do. Confirm the first thing works, then move to the next. Think of it like training a new employee — you would not hand them 10 tasks on day one.

3

The Show Your Work Rule Mandatory

This is the most important rule in this entire guide. Your agent must always show its work before it does anything that matters.

What "Show Your Work" Means

Before your agent changes data, builds a report, or does anything that could affect your system, it must stop and show you a plan. That plan has four parts:

  1. Exactly what it is about to do — step by step
  2. Where each piece of data is coming from in HubSpot
  3. Every risk and how it will handle it
  4. Then it waits for you to say "go" before doing anything

What This Looks Like in Real Life

You
"Build me a report of all BCO buildings with a first clean date in the next 14 days."
AI
Before I build that, here is my plan:

1. I will query the BCO Pipeline for tickets where BCO Progress = Open BCO.
2. I will filter for First Clean Date within the next 14 days using string date comparison.
3. I will show: Building, City, First Clean Date, and Urgency tier.

⚠️ Risk: If First Clean Date is stored as milliseconds instead of a text date, the filter may return zero results. I will check the format first.

Ready to proceed? Say "go" when you are happy with this plan.
You
"Go."
AI
✅ Found 39 buildings. Report is live: https://bco-report.onejan.com
🚫 If Your Agent Skips This Step

If your agent starts doing work without showing you the plan first — stop it immediately. Say: "Stop. Do not do anything yet. Show me your plan first and wait for my go." Then it must start over the right way.

4

The 5 Mistakes — Real Examples of What Goes Wrong

These are real mistakes that happened during the BCO Dashboard build at One Janitorial. Every single one could have been avoided with one simple step: previewing 3 real records before building.

1
Used a property with no data
The property name was right, but zero records had that field filled in. The report showed nothing. Fix: Always preview 3 real records first to confirm the data actually exists.
2
Property names do not match what you see in HubSpot
The HubSpot label says "BCO - Alliance Found" but the API name is something completely different. Caused wrong data to be pulled. Fix: Always confirm the exact API property name before building.
3
Broke the main page by replacing code
The agent replaced an HTML section without checking if other parts of the code depended on it. The whole page broke. Fix: Agent must check dependencies before touching any existing code.
4
Wrong date format — returned zero results
Used a text date like "2026-03-22" when HubSpot stored it as a millisecond number. Filter returned nothing for multiple refresh cycles. Fix: Always verify the date format in HubSpot before filtering by date.
5
Applied a filter without checking if records existed
Added an owner filter for a person who had zero scout records. Built a whole section that showed nothing. Fix: Always preview records for that specific person before building a section for them.
✅ The One Rule That Prevents All 5 Mistakes

"Show me 3 real records from HubSpot with that exact data before you build anything."

That is it. If the 3 records look right, you are safe to build. If they look wrong or empty, you have caught the problem before it costs you time.

5

Before You Build Any Report — The Data Check

Every time you want a new report or dashboard built, follow these steps. Do not skip any of them.

  1. Tell your agent what report you want
    Describe it in plain English. What data, who it is for, what time period.
  2. Ask it to show you 3 real records first
    Say: "Before you build anything, show me 3 real HubSpot records with that exact data." Check that the numbers and fields look right to you.
  3. Confirm the data looks correct
    Do the records match what you expected? Are the fields named correctly? Are the numbers realistic?
  4. Say "go" — only then does it build
    If the 3 records look good, say go. If something is off, ask your agent to investigate before touching anything.
  5. Review the finished output
    Once built, check it again before sharing it with anyone else.
⚠️ Never Skip the Data Check

Even if you are in a hurry. Even if it feels like an obvious report. The 2 minutes spent checking 3 records saves hours of fixing mistakes later.

6

What Your Agent Can Pull from HubSpot

Your agent can reach into five different areas of HubSpot. Here is what each one contains and how to ask for data from it.

📋 Deals

Deals track sales opportunities — potential clients, quotes, and signed contracts.

Deal NameStageClose DateAmountOwnerPipeline

Example: "Show me all open deals assigned to Taylor in the BCO pipeline this month, with the deal name, amount, and stage."

🎫 Tickets

Tickets track jobs and tasks — BCO buildings, service requests, and follow-ups. Most of your day-to-day reporting will come from tickets.

StatusFirst Clean DateBuilding AmountBCO ProgressUrgencyPipeline

Example: "Show me all Open BCO tickets with a first clean date in the next 14 days, sorted by urgency."

👤 Contacts

Contacts are people — partners, prospects, employees, and clients. Each contact has properties that tell you who they are and what their status is.

Contact TypeCityCleaner Ready StatusPhoneEmail

Example: "Show me all Partner contacts in Edmonton where cleaner ready status is Wanting More or Ready For Contracts."

🏢 Companies

Companies are the businesses connected to your contacts and deals. They help you see the full picture for a client or partner organization.

Company NameCityIndustryAssociated ContactsOpen Deals

Example: "Show me all companies in Calgary that have open tickets right now."

🌐 Website Activity

HubSpot tracks what people do on the One Janitorial website — which pages they visit, what forms they fill out, and where they came from.

Page ViewsForm SubmissionsTraffic SourceNew Leads

Example: "Show me all website form submissions this week with the person's name, email, and which page they submitted from."

7

Setting Targets and Thresholds (Arrows Up/Down)

A target is a number you decide is the goal. When your agent builds a report, it can compare each person or city against that target and show you who is on track and who needs attention.

How It Works

  • 🟢 Green / On Track — meeting or exceeding the target
  • 🔴 Red / Critical — far below target, needs action today
  • 🟠 Orange / High — below target, needs attention soon
  • 🟡 Yellow / Medium — slightly below, keep an eye on it
  • ⬆️ Arrow Up — improving compared to last period
  • ⬇️ Arrow Down — declining compared to last period

The Urgency Tiers

TierWhat It MeansWhat to Do
🔴 CriticalFar below target — urgent problemAddress immediately
🟠 HighBelow target — needs attention todayReview today
🟡 MediumSlightly below — monitor closelyCheck this week
🟢 Low / On TrackMeeting or exceeding targetKeep going

How to Ask Your Agent to Set a Target

"Set a target of 8 outbound calls per day per scout. Flag anyone below 6 as Critical, 6–7 as High, and 8+ as On Track."
"Add up/down arrows to this report showing how each city compares to last week."
💡 Tip

You set the targets — your agent does not decide what "good" looks like. Always tell it your goal numbers when asking for a report with tiers.

8

Your Daily Briefing — How It Works

A briefing document is a short file you update every day to give your agent context. It is how your agent knows what you were working on, what decisions were made, and what to pick up next time. Think of it as leaving notes for yourself — except your agent reads them too.

  1. Create your briefing file
    Name it [YourName]-Briefing.md — for example: Taylor-Briefing.md
  2. Save it in the One Janitorial Google Drive shared folder
    Your agent knows where this folder is. It will find your file when you tell it to read it.
  3. Add to it every day
    At the end of each session, write: the date, what you worked on, any decisions made, and what to do next. Do not delete old entries — just add to the bottom.
  4. Start every new session the same way
    Say: "Read my briefing file and tell me where we left off." Your agent will read the file and catch up instantly.
  5. Write a restart note before ending a long session
    If you are stopping mid-task, write what was done and exactly what the next step is. Your agent picks up right where you left off.

Briefing File Template

## [Your Name] Briefing — [Date] What I worked on today: - [task 1] - [task 2] Decisions made: - [decision] What to do next session: - [next step 1] - [next step 2] Open questions: - [anything I am unsure about]
9

When Your Agent Hits Its Limit

Your agent has a memory limit. When a conversation gets very long — lots of back and forth, many tasks, lots of data — the agent can start to get confused. It may repeat itself, forget something you told it earlier, or give answers that do not quite make sense.

Signs Your Agent Is Hitting Its Limit

  • It forgets something you told it 10 messages ago
  • It gives a different answer to the same question as before
  • It seems slower or less accurate than usual
  • It asks you to repeat context you already gave it

What to Do

  1. Update your briefing file before you stop
    Write what was done and what comes next. This is your safety net.
  2. Start a fresh session
    Begin a new conversation with your agent — do not try to push through a confused session.
  3. Say: "Read my briefing file and tell me where we left off."
    Your agent reads the file and is fully up to speed in seconds.
✅ Your Briefing File = Your Agent's Memory

The briefing file is what lets your agent feel like it remembers everything — even after a restart. Keep it updated and you will never lose your place.

10

How Your Agent Remembers Things

Your agent has two kinds of memory: daily notes and long-term memory.

Daily Notes

Every session, your agent keeps raw notes of what happened — what was built, what was decided, what errors came up. These are stored in daily files by date.

Long-Term Memory

The long-term memory is a curated file of important decisions and permanent instructions. It contains things like:

  • Which targets are set for which reports
  • Key decisions made about HubSpot property names
  • Preferences you told the agent to always follow
  • Links to live reports and dashboards

How to Tell Your Agent to Remember Something

Just say:

"Add this to your memory: [the thing you want it to remember]"

Examples:

  • "Add this to your memory: The BCO pipeline ID is 11419663."
  • "Add this to your memory: Always use millisecond timestamps for HubSpot date filters."
  • "Add this to your memory: Taylor's outbound call target is 8 per day."
⚠️ Your Agent Cannot Just Know Things

Your agent does not automatically know your preferences, targets, or history. You have to tell it. That is why the briefing file and the "add to memory" command are so important — they are how it learns your way of working.

11

How Reports Get Built and Deployed

When you ask your agent to build a report, here is exactly what happens from start to finish.

💬
Step 1 — You describe the reportTell your agent what you want in plain English. Who is it for? What data? What time period?
🔍
Step 2 — Data Check (3 live records)Your agent shows you 3 real HubSpot records. You confirm the data looks right before anything is built.
🛑
Step 3 — Agent shows its full plan — you say "go"Agent lists exactly what it will build, where the data comes from, and any risks. You approve before work begins.
⚙️
Step 4 — Report is builtThe Executor agent builds the HTML report in an isolated session.
🚀
Step 5 — Deployed to DigitalOcean serverThe report goes live on the One Janitorial server (45.55.227.106).
🔗
Step 6 — GoDaddy link createdA clean onejan.com link is set up — for example: taylor-report.onejan.com
📊
Step 7 — Link added to OneJanitorial Links ExcelYour name and today's date are recorded automatically. The link is always findable.
Step 8 — Agent sends you the live linkYou get the final URL to share with whoever needs it.
✅ Why This Process Exists

Every gate in this process is there to protect you from errors. A report built too fast on wrong data is worse than no report at all. The process makes sure what you share is accurate.

12

The OneJanitorial Links Excel Sheet

The Links Excel sheet is the master list of every report, dashboard, SOP, and tool at One Janitorial. Every time something is built and deployed, a link is added here automatically.

What Is In It

  • SOPs — all five department standard operating procedures
  • Training Bots — links to each department training resource
  • Video Training — Loom videos and other training recordings
  • Dashboards — live data dashboards for each team
  • AI Agent SOPs — this document and future agent training materials
  • Miscellaneous — anything else that does not fit above

Columns in the Sheet

ColumnWhat Goes Here
NameThe name of the report or page
URLThe full live link
Created ByThe manager who requested it
DateThe date it was created
⚠️ Rule

Never create a report or dashboard without making sure it ends up in this sheet. Your agent adds links automatically — but if it ever misses one, tell it: "Add this link to the Links Excel sheet — created by [name], today's date."

13

Building an Employee Intelligence Report from Calls

Every call made through RingCentral gets transcribed and logged directly in HubSpot. This means your agent can analyze call activity for any employee and build detailed reports without you doing any manual work.

What Data Is Available Per Call

  • Full transcript of the conversation
  • Summary of what was discussed
  • Topics mentioned (BCO, pricing, complaints, etc.)
  • Sentiment score — was the call positive, neutral, or negative?
  • Duration of the call
  • Who called who and when

What a Weekly Call Intelligence Report Can Show

  • Total call count per employee
  • Average call duration
  • Sentiment trend — are calls getting better or worse over time?
  • Most common topics discussed
  • Follow-up rate — did a next step happen after the call?
  • Side-by-side comparison across team members

How to Ask for a Call Report

"Build me a weekly call report for [employee name]. Show call count, average call duration, sentiment score, and the top 3 topics discussed. Compare this week to last week."
💡 Why This Matters

Call intelligence reports help you coach employees based on real data — not guesses. You can see exactly how they are performing, what they are talking about, and where they need support — all from HubSpot.

14

Working With Your Agent Like a Pro

Your agent is like a very capable new hire. Smart, fast, and willing to help — but it needs clear instructions and it learns from working with you over time.

The Rules That Make Everything Work

  • Give it 1–2 tasks at a time. Confirm each one works before adding more.
  • Check every output before sharing it. Your agent can make mistakes. You are the final quality check.
  • Ask it to explain if something looks off. Say "explain how you got this number" and it will walk you through its logic.
  • If it did something wrong, stop it cleanly. Say: "Stop. Undo that. Explain what you did and why. Then wait for my instruction."
  • There are no stupid questions. Ask it anything. It does not judge. The more you use it, the better you get at prompting.
  • You are always in control. The agent works for you. If something does not feel right, stop and ask before saying go.

Expectations — What It Is Like Working With AI

Working with an AI agent is different from using software. Software has buttons you click. An AI agent has conversations. Here is what to expect:

  • The first version of a report might not be perfect — that is normal. Give feedback and it gets better fast.
  • The more specific you are, the better the result. Vague instructions get vague outputs.
  • It does not get tired or frustrated. You can ask the same thing 5 different ways until it is right.
  • It does not have a limit on what it can build — but it needs your approval at every step.
✅ The Most Important Thing

Your agent is a tool that makes you more effective. The managers who get the most out of it are the ones who are specific, patient, and consistent about checking 3 records before building. That is the whole secret.

15

📸 End of Day Snapshots — Save a Daily Record

Your dashboard pulls live data from HubSpot. That means every time someone opens it, it shows the numbers right now — this second. That is useful during the day. But it creates a problem: by tomorrow morning, today's numbers are gone forever.

⚠️ The Problem With Live-Only Dashboards

If your dashboard only shows live data and never saves a copy, you have no history. You cannot compare last Tuesday to this Tuesday. You cannot show a 30-day trend. The numbers disappear every night.

What Is a Daily Snapshot?

A snapshot is a saved copy of your dashboard numbers taken once per day — at the end of business, for example 5:00 PM Mountain Time. It writes that day's numbers into a Google Sheet so they are never lost.

Think of it like taking a photo of your scoreboard at the end of every game. The live board keeps changing — but you have a permanent record of how each day ended.

Live Dashboard vs Daily Snapshot

Live DashboardDaily Snapshot
What it showsRight now, this secondWhat happened that day — saved forever
UpdatesEvery 10–20 min automaticallyOnce per day at end of business
Where it livesYour onejan.com linkA Google Sheet in your Drive folder
Best forChecking in during the dayTrends, history, weekly reviews

How to Ask Your Agent to Set This Up

  1. Tell your agent which dashboard to snapshot
    "I want my BCO dashboard to save today's numbers to a Google Sheet every day at 5 PM MT."
  2. Agent confirms what columns it will save — you approve first
    It shows you exactly what data it plans to write. You say "go" before anything is set up.
  3. A daily cron job runs automatically
    Every day at 5 PM, it writes one row to your Google Sheet: date + all key numbers from that day.
  4. Your dashboard can now show trends
    7-day charts, 30-day history, week-over-week comparisons — all because the history is saved.

Exact Phrase to Use

"Set up a daily snapshot for this dashboard. Every day at 5 PM MT, save today's numbers to a Google Sheet in the One Janitorial shared folder. Show me what columns you are planning to save before you do it."
✅ Best Practice

Every dashboard you build should have both: a live view for checking in during the day, and a daily snapshot saved to Google Sheets for history and trend reports. Ask your agent to set up the snapshot at the same time as the dashboard — not after.

⚡ Quick Reference Card

Copy and paste these phrases exactly as written. They work every time.

🔍 Data Check — Before Building Anything

"Show me 3 real records from HubSpot where [property] = [value]. Do not build anything yet."

📋 Show Plan First

"Before you build anything, show me your full plan — what you will do, where the data comes from, and any risks. Then wait for my go."

📂 Start a Session

"Read my briefing file and tell me where we left off."

🧠 Add to Memory

"Add this to your memory: [the thing you want it to remember]"

🎯 Set a Target

"Set a target of [number] for [metric]. Flag anything below [lower number] as Critical, [middle range] as High."

📊 Build a Report

"Build me a report showing [metric] for [person or team] for this [week / month]. Show me 3 sample records first."

🚀 Deploy a Report

"Deploy this to DigitalOcean and give me a onejan.com link. Then add it to the Links Excel sheet — created by [your name], today's date."

🛑 Stop and Undo

"Stop. Do not do anything else. Undo what you just did. Explain what you did and why. Then wait for my instruction."

📞 Call Intelligence Report

"Build me a weekly call report for [employee name]. Show call count, average duration, sentiment score, and top topics. Compare to last week."

📝 Restart Note

"Add a restart note to my briefing file: [what was done today] — Next step: [what to do next session]"

📸 Set Up Daily Snapshot

"Set up a daily snapshot for this dashboard. Every day at 5 PM MT, save today's numbers to a Google Sheet. Show me the columns first."

📈 Trend Report

"Show up and down arrows vs last week for [metric] across [team or list of people]."

16

Real Example — Building a Dashboard From Start to Finish

This is a real example using actual One Janitorial data. Every message below is word-for-word what you would type and what your agent would say back. Use this as your template every time you want to build something new.

Part A — When It Works: Building the BCO Filler Tab

Taylor (BCO Manager) wants a dashboard showing all BCO buildings with a first clean date in the next 14 days, sorted by urgency. Here is the full conversation from start to live link.

Taylor
I want to build a report showing all BCO buildings that need to be filled in the next 14 days. I want to see the building name, city, first clean date, and how urgent it is. Before you build anything, show me 3 real records from HubSpot.
AI
Got it. Here are 3 real BCO tickets from HubSpot where BCO Progress = Open BCO and First Clean Date is within the next 14 days:

1. AMICO Burlington — Burlington, ON | First Clean Date: March 25, 2026 | Amount: $1,350 | BCO Progress: Contract Signed
2. Shoppers Drug Mart Calgary — Calgary, AB | First Clean Date: March 28, 2026 | Amount: $890 | BCO Progress: Open BCO
3. TD Bank Edmonton — Edmonton, AB | First Clean Date: April 1, 2026 | Amount: $2,100 | BCO Progress: Open BCO

Do these look right? If yes, say "go" and I will show you my full build plan before touching anything.
Taylor
Yes those look right. Show me your plan.
AI
Here is my plan before I build anything:

1. Data source: BCO Pipeline (ID: 11419663) — filtering for tickets where bco___progress = "Open BCO"
2. Date filter: first_clean_date stored as text string "YYYY-MM-DD" — I will compare against today's date as a string (confirmed format from the 3 records above)
3. Urgency tiers: Critical = 0–3 days, High = 4–7 days, Medium = 8–14 days
4. Columns: Building Name, City, First Clean Date, Urgency, BCO Progress, Building Amount
5. Sort: Critical first, then High, then Medium

⚠️ Risk: If any ticket has a blank first_clean_date it will be excluded — I will note the count.

Ready to build. Say "go."
Taylor
Go.
AI
✅ Done. Found 39 Open BCO buildings in the next 14 days.

— 4 Critical (0–3 days)
— 6 High (4–7 days)
— 29 Medium (8–14 days)

Deploying to DigitalOcean now. I will send you the link and add it to the Links Excel sheet.
AI
✅ Live at: https://bcodashboard.onejan.com
Added to Links Excel — Taylor, March 22, 2026.
✅ What Made That Work
  • Taylor asked for 3 real records before saying build anything
  • She confirmed the data looked right
  • She reviewed the plan and said go
  • She did not ask for 10 things at once — just one report, one step at a time

Part B — When It Fails: Real Bugs From the Actual BCO Build

These are real problems that happened during the One Janitorial BCO dashboard build. Here is exactly what went wrong and what to say to fix it.

Failure 1 — The Report Shows Zero Results

The date filter returned nothing. The agent used the wrong date format.

Taylor
The BCO Filler tab is showing zero buildings. It should show 39.
AI
Let me check. The filter returned 0 because I used a millisecond timestamp for the date comparison but HubSpot stores first_clean_date as a text string like "2026-03-25". The formats did not match so nothing passed the filter.
Taylor
Show me exactly what fix you are going to make before you touch the code.
AI
Fix: I will change the date comparison from milliseconds to string comparison. Instead of comparing against a timestamp number, I will compare first_clean_date directly against "2026-03-22" (today as a string). I will test against the 3 records we confirmed earlier to verify it returns them before redeploying. Ready?
Taylor
Yes. Go.
⚠️ The Recovery Phrase for Zero Results

"The report is showing zero. Do not fix anything yet. Tell me what filter you used and what format HubSpot is storing that property in. Show me 1 raw record from HubSpot with that exact field so we can compare."

Failure 2 — The Alliance Count Is Wrong

The Alliances column was showing 0 for every city even though alliances exist in HubSpot.

Taylor
The alliance count shows 0 for Burlington but I know there are 3 partners there. Something is wrong.
AI
Let me check the alliance query for Burlington. I am filtering contacts where contact_type = "Partner" and city = "Burlington". Let me show you what that query actually returns before assuming what the problem is.
AI
Found the issue. The city field in HubSpot has some contacts stored as "Burlington" and others as "Burlington, ON". My filter was looking for exact match "Burlington" only — it missed the ones with ", ON" appended. Fix: I will normalize the city comparison to strip ", ON", ", AB" etc. before comparing. Shall I apply that fix?
Taylor
Yes. Show me the 3 Burlington partners first after the fix, then go.
⚠️ The Recovery Phrase for Wrong Numbers

"That number looks wrong. Do not change anything yet. Show me the raw HubSpot query you are using for that section — the exact filter — and show me 3 records it is returning so I can see what it is actually finding."

Failure 3 — One Tab Crashed the Whole Page

The Scout tab had a quota error that crashed the entire dashboard, wiping out the BCO Filler tab too.

Taylor
The whole dashboard is blank now. I only changed the Scout tab but now the Filler tab is gone too.
AI
The Scout tab hit a bandwidth quota error mid-load. Because both tabs shared the same getData() function, when Scout crashed it took Filler with it. Fix: I will split them into two completely separate server functions — getBCOData() for Filler and getScoutData() for Scout. That way if one fails the other still works. Do not touch anything until I confirm this plan is right?
Taylor
Correct. Show me the plan in full before you touch a single line of code.
⚠️ The Recovery Phrase When Everything Breaks

"Stop. The whole page is broken. Do not touch anything yet. Tell me what the last thing you changed was, what file you changed it in, and what you think caused the break. Then give me a fix plan. I will say go before you change anything."

Part C — The Persistence Rule

Sometimes building a dashboard takes 3 or 4 rounds of back and forth. That is completely normal. Here is the rule that makes it always work eventually:

✅ The Persistence Rule
  • Break it into one section at a time. Do not ask for the whole dashboard at once. Build one tab, confirm it works, then move to the next.
  • When something is wrong, go smaller. If a section breaks, ask for just 3 records from that one metric before rebuilding.
  • Never say "just fix it." Always say "show me what you are going to change before you change it."
  • Keep going. Every failure has a fix. The agent does not give up and neither should you. The conversation that looks like it is falling apart is usually 2 messages away from working.

The Three Phrases That Fix Almost Everything

  1. Zero results: "Do not fix anything yet. Tell me what filter you used and show me 1 raw HubSpot record with that exact field."
  2. Wrong numbers: "Do not change anything. Show me the raw query and 3 records it is actually returning."
  3. Something broke: "Stop. Tell me the last thing you changed and give me a full fix plan before touching anything."