Work sample 14 / 14AI agent integration

AI lead triage with human sign-off into HubSpot and Jobber

How I'd approach new inquiries for a multi-branch service business: an AI agent reads each one and proposes the service, urgency, contact and reply, and a person signs off before anything is created or sent.

Worked example on representative data.

Area
AI agent integration
Tools
AI agent · HubSpot · Jobber · n8n
Typical scope
US$3,000–4,500
Timeline
About 5 weeks · 4 fixed milestones

01Context

An established multi-branch service business that receives inquiries by web form and email. A sales manager and a branch coordinator work them. Contacts and deals sit in HubSpot, and requests and jobs sit in Jobber.

The systems in play

In the example the business wants faster first replies without losing control, so a person signs off before anything is created or sent.

Table 1Who uses what
SystemWhat it does for the business
Web form and inboxWhere inquiries arrive, with free text from the customer.
AI agentReads each inquiry and proposes: the service, the urgency, the contact, the deal, the Jobber request and a draft reply. It creates and sends nothing.
Sign-off queueWhere a person sees the inquiry beside the proposal, edits it and approves or rejects it.
HubSpot and JobberReceive the contact, deal and request only after approval.
Workflow toolRuns the steps, keeps a log, and raises an alert when a step fails. n8n in the example.

02Problem

What the owner sees

  1. New inquiries that sit for hours before a reply
  2. Contacts that land in the CRM half filled, or twice
  3. Emergencies mixed in with routine requests
  4. Fear that an automated reply will say the wrong thing

Automation that acts without a person can create a worse problem than the delay. The aim here is speed in preparing the work and a person in control of what goes out.

Table 2Where the drift starts
Everyday situationWhat goes wrong
Repeat customerA new contact is created for someone already in the CRM
Updated inquiryA form sent twice creates two deals
SpamJunk is replied to or fills the pipeline
Out-of-area requestA quote is prepared for work the business does not do there
EmergencyAn urgent request waits in the queue behind routine ones
Several services in one messageOnly the first is picked up

03Approach

Four steps, in this order. Each one ends with a result that is checked.

  1. LookA read-only review of the inquiry sources, the current replies, and the HubSpot and Jobber records. Nothing is changed.
  2. Agree the rulesService types, urgency, service area, who signs off and what a reply may say, in writing.
  3. Build and connectThe agent proposes, the queue shows the proposal beside the inquiry, and approved items are created in HubSpot and Jobber.
  4. CheckA labeled sample of past inquiries, duplicate tests and a manual fallback when the AI service is down.
Table 3Rules agreed in writing (example settings)
ItemExample setting
Service typesMaintenance, repair, install, quote only, other
UrgencyEmergency, same week, planned
Service areaA list of suburbs or postal codes per branch. Outside it, the proposal is a polite decline for a person to approve.
Sign-offA coordinator approves routine items. A manager approves emergencies and declines.
Reply wordingDrafts use approved wording blocks. They never state a price, a date or a promise that a person has not entered.
Existing contactMatched on email, then phone. A match is attached, not duplicated.

04What the setup includes

What the setup includes, and why each piece is there. The detail of how it is configured is agreed in the scoping call.

Show the setup, layer by layer
Table 4The setup, layer by layer
LayerWhat is set up and why
IntakeThe form and inbox feed one queue. Each inquiry gets an ID, so a resend is recognized.
Reading and proposalThe agent classifies the service and urgency, extracts the contact and address, and drafts a reply from approved wording. It also states why, quoting the words it relied on.
Duplicate checkDone in code, not by the agent: the contact is looked up before any record is proposed.
Sign-off queueThe inquiry, the proposal, the reasons and any flags on one screen. A person edits or approves, with role limits.
Creation and sendingHubSpot and Jobber records, and the reply, are created only after approval. A retry key means a failed step cannot create a second record.
FallbackIf the AI service is down, inquiries still arrive in the queue unread and are handled by hand. Nothing is lost.
Log and alertsEach step is logged with a user and a time. A failed step raises an alert and lands in an exceptions list.

How the data moves

  1. Inquiry arrives
  2. Duplicate check
  3. Agent proposes
  4. Person signs off
  5. Contact, deal and request created
  6. Reply sent
  7. Every step logged

05Edge cases

These are agreed with the sales manager and tested on past inquiries before go-live.

Table 5Edge cases and how each is handled
SituationHow it is handled
Repeat customerThe existing contact is attached and the proposal says so. No new contact is created.
Same form sent twiceRecognized by the inquiry ID and the contact. The second is linked to the first.
Spam or a sales pitchMarked as spam in the queue. A person clears it, and nothing is created or sent.
Outside the service areaA decline draft is prepared for approval. No Jobber request is proposed.
Emergency wordingFlagged as an emergency and alerted to the on-call person straight away. It is still a person who replies.
Several services in one messageSplit into separate proposed requests, each shown for approval
Unclear or low confidenceShown as unclear with the reason. A person decides.
Agent proposes the wrong serviceThe person corrects it. The correction is logged and reviewed monthly.
Sign-off by someone without the right roleBlocked. Emergencies and declines need a manager.
AI service is downThe queue shows inquiries as unread and manual handling continues
Who did whatEach proposal, edit, approval and send is logged with the user and the time

06Worked example

The tables below use representative data. They show the shape of the queue and the checks, not a client result. No accuracy figure is claimed.

Table 6Sign-off queue (sample rows)
InquiryAgent proposalFlagResult
"Need the boiler serviced before winter"Maintenance, planned. New contact, deal and request.NoneApproved as proposed
"Water coming through the ceiling right now"Repair, emergency. Existing contact.EmergencyAlert sent to on-call. Reply written by the manager.
"Following up on my quote from last month"Existing contact. No new deal.Repeat customerAttached to the open deal
"Can you do a garden wall in another city?"Decline draft.Outside the service areaDecline approved by a manager
"Best SEO packages for your site"Spam.SpamCleared
"Gutters and a fence panel, also a quote for the deck"Three proposed requests.Several servicesTwo approved, one edited
Table 7Labeled sample of past inquiries (layout, sample rows)
InquiryPerson’s labelAgent’s labelMatch
Past inquiry ARepair, emergencyRepair, emergencyYes
Past inquiry BInstall, plannedMaintenance, plannedNo: reviewed, wording rule added
Past inquiry CSpamSpamYes
Past inquiry DQuote only, plannedQuote only, plannedYes
Table 8Duplicate test (sample rows)
TestExpectedResult
Same form sent twiceOne contact, one dealPass
Known customer, new email addressMatched on phone, no new contactPass
Retry after a failed stepNo second requestPass

07How the result is checked

The checks that matter are the ones in code and the person who signs off. The agent’s proposals are tested against past inquiries before it is switched on.

Table 9Checks and pass conditions
CheckHowPass condition
Labeled sampleA set of past inquiries labeled by the sales manager, compared to the agent’s labelsEvery difference reviewed and either a rule is added or the item stays with a person
DuplicatesResends, retries and known customersNo second contact, deal or request
Nothing sent aloneApprovals switched off in a testNothing is created or sent
EmergenciesScripted emergency inquiriesAlert sent and the item is first in the queue
FallbackAI service switched offQueue shows unread items and manual handling continues
After go-liveEvery flagged item and a regular sample of the restReviewed and logged

08Scope and milestones

A fixed scope agreed in writing before anything starts. Each milestone is paid when you sign off its deliverable.

Table 10Scope: what a project like this covers
AreaIncluded
Health CheckReview of the inquiry sources, current replies and the HubSpot and Jobber records, a 45-minute call, written findings and a fixed quote
RulesService types, urgency, service area, roles and reply wording, in writing
Intake and proposalOne queue, duplicate check in code, and the agent’s proposal with reasons
Sign-off queueA screen for approvers, with role limits and the log
CreationHubSpot and Jobber records and replies created only after approval
TestingA labeled sample of past inquiries, duplicate tests and a fallback test
HandoverWritten SOPs, a recorded walkthrough and files you own, plus 14 days of fixes after go-live
Not includedTax filing or payroll.
Also outside the scopeThe cost of the AI service. Rebuilding the website form. Moving to a different CRM or job system. Software subscriptions (billed to you by the vendors).
Table 11Fixed milestones
MilestoneDeliverableTimingShare
M1 Health Check and rulesFindings, a fixed quote and the rules in writingWeek 120%
M2 Intake and proposalQueue and proposals running on past inquiriesWeeks 2 to 330%
M3 Sign-off and creationApproved items reach HubSpot and Jobber once, tests passWeek 435%
M4 Go-live and handoverLive with approvals, SOPs, walkthrough, 14 days of fixesWeek 515%

Typical scope for this kind of project: US$3,000–4,500

About 5 weeks across 4 fixed milestones. The Systems Health Check (US$300, fixed) comes first and confirms the scope.

Describe the process you want handled, and I'll say where I'd start.

Send a short note through the form on the home page. I will reply with where I would start, and whether the US$300 Systems Health Check is the right first step.