Skip to content
Pineland Technologies
All work

SaaS Platform · 2025-2026

Poo Patrol Ops

The back office that replaced GoHighLevel

The whole back office of a pooper-scooper company in Cedar Rapids, Iowa City and Des Moines, and since 23 October 2026 the only one: it replaced GoHighLevel, Nexel and Zapier in a single cutover. Every new lead is texted their price in the first message and a quote page built from Jobber's own templates, and can sign up by replying yes. The office answers texts, emails and calls from one inbox, sends mass texts and emails, plans the social posts, signs up new hires, and reads the whole business on one dashboard, with an assistant on every page that drafts whatever a person then sends.

Live · private console · shown with demo data
Poo Patrol Ops: The back office that replaced GoHighLevel
GoHighLevel, Nexel and Zapier, replaced on 23 October 2026
3 systemsGoHighLevel, Nexel and Zapier, replaced on 23 October 2026
Every lead hears their price in it
First textEvery lead hears their price in it
Texts, emails and calls, one thread per person
One inboxTexts, emails and calls, one thread per person

The problem

The business ran on four systems that did not agree. Jobber held the customers and the visits. GoHighLevel held the leads, the texts, the social posts and the hiring paperwork, and kept its own idea of who was a client, so current customers were getting the drip meant for leads. Nexel wrote the sales texts at $6 a lead under a made-up saleswoman's name, and Zapier carried every form from one system to the next. When the text campaign came up for carrier review it was refused, because one consent box covered both service texts and offers. The reporting console we had built for them could read every number, but it could not answer a lead.

What got built

The reporting console grew into the whole back office. It is one Next.js app beside the public site, on a Postgres schema of 41 models, and Jobber stays the source of truth: a nightly sync across both locations decides who is a client, and every accepted quote is written back into Jobber with its client and property. Twilio carries the texts on two campaigns registered separately for service and for offers, Resend carries the email, and Claude answers the leads and helps the office. Every message, automated or typed, leaves through one send engine that checks consent, opt-outs, carrier rejections and quiet hours first. The functions run in the same region as the database, the heavy reports are cached and refreshed by the actions that change them, and the console wears Mobile Service Sync's look in Poo Patrol green, light or dark, on a desk or a phone.

Details worth naming

  • Cut over on 23 October 2026: 35 GoHighLevel workflows switched to draft, the Zapier zaps off, and Nexel's $6 a lead texts replaced by an assistant of our own.
  • A lead hears their price in the first text, from the prices in Jobber that morning, and is asked one easy question at a time after that.
  • A yes by text is a yes: the lead is signed up on the terms discussed, the quote lands in Jobber, and the office is emailed, texted and pushed.
  • A question the assistant should not answer goes to the office with a holding text that knows the clock: a minute to check with the Operations Manager in office hours, or when he gets in tomorrow or on Monday after them.
  • The quote page carries 25 real Google reviews with each reviewer's own photo, sliding past two at a time.
  • A mass send re-counts its audience before it goes and refuses if it moved more than 5% from the preview.
  • Every question asked of the assistant is saved with its cost, per user, on a page only the owner can open.

Everything it does

Leads and sales

  • The lead assistant, built on Claude, texts every new lead their price in the first message, read from Jobber's own products and services.
  • One easy question at a time, no invented scarcity and no made-up salesperson.
  • Checks the service area by ZIP and says which days the crew is usually nearby, without ever promising a start date.
  • Sends a quote link, saves every answer to the contact, and asks for the yard's address once they say yes.
  • Draft mode for the office to approve each reply, or live, where a text sent at 10pm gets its answer at 10pm.
  • The website quote form prices the quote on the spot and lands the visitor on their own quote page, then texts them the link with a photo of the team on the truck, or emails it if they would rather not get texts.
  • Facebook lead forms are read every minute and Google lead forms arrive by webhook, priced and texted the same way.
  • New quote requests, accepted quotes and hand-offs push to the office's phones, each with a link straight into the thread.

Quotes

  • Built from Jobber's own quote templates and products: the line items and their descriptions, the everything-included list, the optional add-ons and the season's waiver on the initial fee.
  • Take-away and the seasonal deodorizer are offered as add-ons, and each line darkens into the quote when it is ticked.
  • A rotating ticker of 25 real Google reviews with the reviewers' own photos, and the rating on each platform linked to its profile.
  • One-click sign-up that asks for the yard's address, and a printable quote document laid out like Jobber's.
  • Every quote is also drawn as an image, sent as a picture message with the link and used as the link preview.
  • An accepted quote is written into Jobber as a client, a property and a quote, and the office is emailed, texted and pushed.

Inbox and messaging

  • Texts, emails and calls in one thread per person, with views for Needs Reply, Unread, Leads, Clients and Done.
  • Keyboard shortcuts for moving, searching, replying and marking done.
  • Internal notes in the timeline, and saved replies that fill in the customer's name, dogs and visit frequency.
  • A link to the client's Jobber record, and their consent and opt-outs shown beside every thread.
  • A composer for a text or a designed HTML email with a photo from the company's own library.

Compliance built in

  • Two text campaigns registered separately, one for service and one for offers, each with its own number and its own consent box on every form.
  • An append-only consent ledger that records each opt-in with its wording, page and source.
  • STOP handled per number: a STOP to the offers line ends offers, a STOP to the service line ends everything.
  • Quiet hours, carrier-rejected numbers tracked and never retried, and a limit on how many offers one person can get in a month.
  • A copy guard for Iowa's pesticide law that blocks any claim to sanitize or disinfect.

Mass Text/Email

  • Audiences from Jobber (a visit window of today, tomorrow or the next seven days, a technician, a line item, clients who have lapsed) or from the leads in the CRM.
  • Per-person inserts for first name, town, visit day, date and technician.
  • Write With Ask drafts the message for the chosen audience and picks a photo for an email.
  • A drift check before sending, a queue that resumes if it is cut off, and caps on every send.

Ask, the office's assistant

  • On every page with Cmd+J, and as a full-page chat with 48 rotating prompts.
  • Reads contacts, threads, Jobber clients and visits, the reports, the rate card and the routes.
  • Drafts texts, emails, mass sends, quote links, notes and saved replies for a person to send. It never sends anything itself.
  • Every question and its cost is tracked per user.

Social Media

  • A planner built to replace GoHighLevel's: Facebook and Instagram now, and both Google Business Profiles once Google approves the API access.
  • Per-network wording, photos, a first comment, scheduling and repeating posts.
  • Approvals, and a Social Media login that sees only the planner.
  • Ask writes a post from a photo and plans a month of them, posts come across from GoHighLevel by CSV, and the same copy rules are checked before anything is scheduled.

Analytics and reports

  • A dashboard, the recurring run rate, churn (a client is lapsed after 15 days without a visit) and the customer list.
  • Receivables, with an alert when a client has a streak of unpaid visits and is still on the schedule.
  • Re-cleans, and crew productivity ranked by value delivered per labor dollar.
  • Payroll from Jobber's timesheets.
  • Meta and Google Ads spend, Vercel Web Analytics, GA4 and Search Console, and the website's own scroll and dwell figures.
  • A nightly Jobber sync across both locations, and email alerts on rules the office sets.

Crew and hiring

  • Hiring paperwork that replaced GoHighLevel's documents: one link per new hire, who fills in their details once and signs everything.
  • E-signatures with a SHA-256 fingerprint and an audit trail on every signed document.
  • Editable templates, and requests for missing paperwork chosen item by item.
  • Photo uploads of tax and work authorization forms, and the history from both earlier systems imported.

Platform

  • Next.js on Vercel, with the functions in the same region as the Neon Postgres database.
  • Jobber GraphQL with write access, Twilio, Resend and Claude.
  • Mobile Service Sync's look in Poo Patrol green, in light and dark themes.
  • A Cmd+K jump palette, a grouped menu and a phone layout.

Next project

RWCBM

A private hall for Christian business owners, town by town

Read it

Tell us about the business.

What it does, where, and what the website has to make happen. Within a day you will have a straight answer on what it takes to build, what it costs to run, and what we would cut. If the honest answer is that you do not need a new site, that is the answer you get.

Or skip the form entirely. hello@pinelandtech.com reaches a person, not a queue.

Score My Sitefree