8:42 AM - Inbox Triage
I open the dashboard at 8:42 AM on Tuesday. My coffee is still hot. The Slack alert from last night is still sitting at the top of my notifications: two new signups came through between midnight and 6 AM. That's good. That means the cold email sequence I tightened up last week is still converting at the rate I need.
I open the Renewal AI admin panel first. The main metrics page loads: 127 active customers today. Week-to-date revenue is at $12,344. That's a solid Tuesday morning sight. At this cadence, I'll hit my $130K year 1 ARR target. Maybe exceed it.
I flip to Gmail. The AI agent has drafted three outbound cold emails overnight to HVAC shop owners in the Midwest. The email addresses came from a list I scrubbed yesterday from the HVAC trades forum. The drafts sit in my "review-before-send" folder. I read through them.
The first one is to Marcus Webb at Webb's Climate Control. The subject line is "Marcus, your tech is leaving money on the table." It's direct. Not my natural voice, but I've learned that the direct approach converts better with trade owners than anything polished. The body mentions his specific problem: he's got customers calling in renewal seasons and half of them fall through the cracks because his team doesn't have a system. The email proposes a 20-minute call to walk through the problem. No product pitch yet. Clean.
I approve all three. The agent will send them this morning while I work on other things.
10:15 AM - A Flagged Conflict
I'm reviewing customer data in the admin dashboard when a Slack alert pings. It's from the conflict detection system I built into the workflow last month. Carol Reyes at Reyes Family Practice has a renewal date flagged as "conflicting" - the system scheduled an automated renewal reminder email for today, but Carol's account was marked inactive last week pending an upgrade conversation.
I know what happened. Carol's practice manager emailed me Friday asking about pricing for a five-location rollout. I told her I'd send details and a proposal by this Tuesday. She's interested. But the system doesn't know that context. It only sees: active customer, renewal due today, send email.
If I let the automation run, Carol gets two messages competing with each other. The renewal reminder looks like I don't know she's evaluating an upgrade. I manually override the automation for her account and set a note to exclude her from the renewal sequence until we close the multi-location deal or until Friday, whichever comes first.
This is the work people don't see when they're evaluating the product. The AI doesn't understand context. I do. That's why I'm still necessary.
12:30 PM - Lunch and the Metrics Check
I eat a sandwich at my desk and pull up the Stripe dashboard. I do this most days around midday to see the shape of the week.
MTD revenue is at $38,200. That's tracking toward a $130K run rate. But I notice something: my churn was 8% last month. That's not terrible for a $99 product to HVAC shops. But it's higher than I want. I click into the churn report.
Two customers churned in the last week. One is expected: a small shop in Kentucky that bought, tried for two weeks, and realized they're too small to really benefit. They don't do annual contracts. The second one stings. It's Jerry Martinez at Martinez Mechanical Systems. He was a customer for six months. Good fit. HVAC shop in Phoenix, probably pulling $4M in annual revenue. I remember his onboarding call.
No support ticket. No email. He just let the subscription lapse when his card declined on renewal. I look at the email history. He got the automated renewal reminder. But nobody followed up when the charge failed. That's a gap in my system.
I open Linear and create a task: "Build failed-charge recovery workflow." I schedule it for next week. For now, I add Jerry to a manual outreach list.
2:08 PM - Customer Escalation and a Manual Email
I open my normal customer support inbox. There's an email from Robert Chen at Chen and Associates, an IT MSP in Seattle. He's got a question about integration with his billing system. He's trying to sync renewal data with his Quickbooks, and he says our API documentation is unclear on authentication.
This is the kind of thing the chatbot could handle in a templated way. But Robert's been a customer for eight months, he's a good fit, and he's asking a technical question that means he's trying to build something on top of the product. That's a power user. I don't want to lose that.
I write him a direct email. I walk through the OAuth flow step by step, I offer a 15-minute Zoom call if he gets stuck, and I mention that we're planning a Quickbooks native integration for next quarter. The tone is different than the cold email tone. This is a customer I already have. He gets the real me.
I send it. I could have templated this. I chose not to.
4:15 PM - A Small Bug and a Task Completed
I notice something while reviewing the dashboard. When a customer updates their renewal cycle from annual to semi-annual, the system is calculating the next renewal date incorrectly. It's adding six months to today instead of six months to their original contract anniversary date. I find the bug in the code. It's in the renewal-date calculator function. A simple logic error. Five minutes to fix. I push the fix to production.
I check the customer list affected by this. Seven customers. I manually update their renewal dates in the admin panel to correct them. I make a note to send them an email explaining what happened and that their data is now accurate. That's another 20 minutes.
Around 4:30 PM, I get a Slack notification that Marsha Wilson at Wilson Plumbing Supply just converted in her demo. She's the fourth close of this week. That's on pace for the month. I update her in our internal customer database and flag her as a high-probability referral source - she's active in the regional plumbing association. Those kinds of connections matter.
5:30 PM - Pipeline and Reflection
I pull up the pipeline view. Twenty-three demos scheduled for this month so far. That's tracking to my 25-demo target. Seven of them are already booked for next week based on the outbound emails that converted. Three of those have strong signals. One of them is a bigger HVAC franchise with five locations. If that closes, it's a $495-a-month contract.
I close the admin panel. Open the Stripe dashboard one more time. Watch the real-time revenue ticker. In the time I've been working today, two more charges cleared. Revenue for today: $2,847. That feels good on a Tuesday.
I think about the day. I approved emails I didn't write. I fixed a conflict that the system created. I wrote one email that only I could write. I fixed a bug. I recovered a customer relationship. I handled one piece of churn by understanding why it happened.
The AI agent is doing work I couldn't do alone. But the business lives or dies on the decisions I make with that work. The best-written email still needs human judgment about when to send it. The most sophisticated automation still needs context.
It's 5:47 PM. I close the laptop. The business doesn't run without me pushing buttons and making calls, but it also doesn't run if I have to write every email or calculate every renewal date by hand. That's the trade. That's why the product is worth the $99 a month to the HVAC shops that buy it, and why it's worth the effort I'm putting in right now.