← All projects

Southern Rivers Fly Fishing

An AI back office for a fly-fishing guide. It reads Jake's email in both directions and keeps his CRM, invoices, calendar and mailing list current, so he doubled his bookings without doubling his admin.

AI agents, Web apps, Automation, Integrations

Type
Client work
Status
Live
Year
2026
Built with
Next.js, TypeScript, Supabase, Claude, Inngest, Gmail API, Xero, Mailchimp, Google Calendar, Vercel

Jake runs Southern Rivers Fly Fishing with five guides. People book Jake because of Jake. The guiding was never the problem. Everything around it was.

Impact

Bookings this year, with no extra admin
2x
Admin per booking, down from about 3 hours
30 min
Handed back every season
~250 hrs
Email backlog waiting after a trip
None

Jake doubled his bookings this year. The admin didn't double with them, because a set of AI agents now does the work that used to live in his head and his inbox.

The problem

One person, five guides, and a business held together by Gmail and Google Calendar. Jake was losing 10 to 20 hours a week to admin. Invoices were built by hand in Xero. Declarations arrived as email attachments.

The worst bit was coming off the river. Jake would guide for days, then face an inbox stacked with enquiries. He'd lose a couple of days checking dates, digging out client details and replying to everyone. The business couldn't grow past him. Every new guide just meant more email.

How it grew

I didn't start with an AI agent. I started with the most annoying form in the business, and kept going.

  1. October 2025A booking form

    Clients filled in their trip details and declarations online instead of over email. Airtable underneath.

  2. November 2025Years of bookings, rescued

    I pulled 822 past bookings out of the guides' Google Calendars, using AI to turn calendar notes into clean booking records.

  3. December 2025An admin portal

    One place for every booking, then a portal for the guides in January.

  4. March 2026A proper back office

    Moved off Airtable to Supabase and added Xero invoicing.

  5. May 2026The email agent

    Plugged into Jake's Gmail. Every customer email now arrives with a draft reply waiting.

  6. June 2026Reading Jake's replies too

    A second agent reads what Jake sends, so the CRM stays right even when he answers from his phone on the riverbank.

How it works

Email comes in from both directions. Agents and background jobs keep the CRM current, and everything else flows out of it: drafts, invoices, the mailing list, the calendar and the portals.

Forwards: every customer email

Every five minutes, the system checks Jake's inbox. A small, fast model reads each new email and decides if it needs a reply. Newsletters and auto-replies get ignored.

If it does need one, the email agent reads the whole thread, not just the last message. It has 16 tools. It can look up the client, find their past trips, check which guides are free on those dates, search Jake's knowledge base for trip details, and create the enquiry in the CRM. Then it writes a reply in Jake's voice and leaves it as a draft in the same Gmail thread.

It never sends anything. Jake reads it, tweaks it if he wants, and hits send.

One agent run, step by step. It found Mark in the CRM, checked which guides were free, and created the enquiry. Every tool call is logged with what went in and what came out.
app.southernriversflyfishing.co.nz/admin/agents/email-draft/runs
Southern Rivers email agent run: tool-by-tool trace
The same run's output: notes for Jake, and the reply it left in his Gmail.
app.southernriversflyfishing.co.nz/admin/agents/email-draft/runs
Southern Rivers email agent run: notes for Jake and the drafted reply

Backwards: every reply Jake sends

Jake doesn't always use the draft. Sometimes he replies from his phone, or agrees a change on the call. If the CRM only listened to customers, it would drift out of date.

So a second agent reads Jake's sent mail. When he replies on a thread linked to a booking, it pulls out anything new, like dates, party size, cost or accommodation, and updates the booking. It can't draft or send email at all. Its only job is keeping the record straight.

Jake confirmed new dates in a reply. The extraction agent read it and updated the booking to match.
app.southernriversflyfishing.co.nz/admin/agents/booking-extraction/runs
Southern Rivers booking extraction run updating a booking from Jake's reply
The booking's history, oldest at the bottom. Purple entries are the agents: enquiry created, reply drafted, then the dates and party size updated from Jake's own reply.
app.southernriversflyfishing.co.nz/admin/bookings
Southern Rivers booking activity with agent entries

A CRM that keeps itself current

Every client has one profile: contact details, medical and dietary notes, their trips, and every email the agent has drafted for them. When the agent meets a new enquirer, it creates the client and tags them in Mailchimp as interested in fly fishing or hunting. Nobody types anything into the mailing list any more.

Every email on a client's profile: what they sent, what the agent drafted, and what Jake sent himself.
app.southernriversflyfishing.co.nz/admin/clients
Southern Rivers client profile: agent-drafted emails
Every booking by stage, from enquiry to complete.
app.southernriversflyfishing.co.nz/admin/bookings
Southern Rivers bookings board, from enquiry to complete

Invoices without the chasing

Deposit and final invoices are created in Xero straight from the booking, with the right line items and GST, ready for Jake to approve. When a client pays, Xero tells the system. A paid deposit confirms the booking, emails the client, and lets the guides know. Nobody has to check who's paid.

Every invoice and its status, synced from Xero.
app.southernriversflyfishing.co.nz/admin/invoices
Southern Rivers invoices synced with Xero

Everything else runs on its own

The rest of the admin happens in the background:

The guide portal: their season, this week's trips and their calendar.
app.southernriversflyfishing.co.nz/guide
Southern Rivers guide portal
The client portal, where the main contact nominates their group.
app.southernriversflyfishing.co.nz/form/nominate
Southern Rivers client portal: group member nomination

Built to be trusted

An agent with access to someone's inbox and customers has to earn it. A few rules made that possible:

Every run the agent has made. Plenty end with no draft at all: auto-replies and emails that don't need an answer are skipped.
app.southernriversflyfishing.co.nz/admin/agents/email-draft
Southern Rivers email agent: history of runs

"Having you to bounce ideas off is amazing and I can't wait to brainstorm more and see where it takes things. I really appreciate all your efforts with this, you have been a dream to work with. You can be proud of that mate."

Jake, Owner Operator, Southern Rivers Fly Fishing