Work snippetCRM automation with AI

GoHighLevel and HubSpot automation with AI steps and approvals

How I would approach CRM automation with AI steps in GoHighLevel or HubSpot: a workflow sends each new lead or call outcome to n8n or Make, where a model summarises it, suggests the pipeline stage and drafts the follow-up. A person approves before a stage changes, a tag is applied or anything is sent.

Work snippet with example figures.

Area
CRM automation with AI
Tools
GoHighLevel · HubSpot · n8n · Twilio
Typical scope
US$2,200–3,800
Timeline
About 7 weeks · 4 fixed milestones

Problem

What the owner sees

  1. New leads that sit in a pipeline stage nobody has looked at
  2. Call notes that never reach the contact record
  3. Pipeline stages that mean something different to each person
  4. Follow-up texts and emails written from scratch, or not sent at all
  5. A missed call that waits until the next business day
  6. An automation that texts someone who has already opted out

Most CRM admin is reading and writing small notes: what was said, what happens next, and which stage the lead belongs in. A model can summarise a call or an enquiry and suggest the stage and the next message quickly. It must not move a deal, message a contact or touch a money field on its own. The design suggests, rules check the guardrails, and a person approves.

Where it goes wrong today
Everyday situationWhat goes wrong
A call ends and nobody writes it upThe next person starts from nothing
The stage is moved by hand, days lateReports and follow-ups run on stale data
A contact replies STOP and the sequence carries onA complaint, and a broken rule
A lead replies after being marked lostThe reply sits unseen in a closed record
The same person is in the CRM twice under two emailsTwo histories and two owners
An AI step that changes stages by itselfA deal moves on a wrong reading and nobody notices

System map

A field service business that runs its pipeline in GoHighLevel or HubSpot, takes calls on a Twilio number and sends follow-ups by text and email. A person in the office owns the pipeline and approves each AI suggestion.

A workflow inside the CRM sends each trigger to n8n or Make. The build reads the contact, summarises the event, suggests a stage and drafts the follow-up. Everything lands in a review queue, and only an approved item changes the CRM or sends a message.

System map: who and what does each job
PartWhat it does
GoHighLevel or HubSpotHolds contacts, pipelines and conversations. Its own workflow sends a webhook on a new lead, a call outcome, a missed call or a stage change.
n8n or Make workflowReceives the webhook, reads the contact, applies the guardrails and calls the model. It runs in your account.
Language modelOne of the major LLM APIs such as OpenAI, Claude, Grok, Gemini and Mistral, or a local model. It returns a summary, a suggested stage, tags and a draft follow-up. It does not edit contact or money fields.
Call layerA Twilio number for missed-call text-back. A voice agent built on Vapi or Retell can take a call and hand a transcript to the same queue.
Review queueEach item with the summary, the suggested stage, the draft and the guardrail results, as a CRM task or an Airtable view.
Exceptions queueAnything that fails a guardrail or a sync, with its reason and an owner.
AccountingA won deal creates a draft invoice in Xero or QuickBooks Online. A person approves it there.

How the data moves

  1. Lead or call outcome
  2. Webhook to n8n or Make
  3. Guardrails checked
  4. Summary, stage and draft
  5. Person reviews and approves
  6. Stage set and follow-up sent
  7. Won deal: draft invoice

Rules agreed in writing

Stages have one written meaning each. The model may only suggest a stage from the list, and a suggestion stays a suggestion until a person confirms it.

Pipeline stages (example settings)
StageMeansEntered when
New enquiryA lead exists and nobody has spoken to themA form, call or message creates the contact
ContactedA person has spoken to the leadA call is logged as connected, or a person replies
Quote requestedThe lead has asked for a priceA person confirms it after a call or message
Quote sentA written quote has gone outThe quote is sent from your quoting tool
BookedA visit or job date is agreedA person confirms the date
WonThe job is accepted and paid for or scheduled to beA person confirms it
LostThe lead has said no or has stopped replyingA person confirms it, with a reason
Guardrails (example settings)
ItemExample setting
Suggestions onlyThe model suggests a stage, tags and a follow-up. Nothing is applied until a person approves.
Quiet hoursA message is never sent inside the quiet hours you set. It is held until the window opens.
Opt-outsSTOP, unsubscribe and do-not-contact flags block every draft. They are checked again at the moment of sending.
Fields the model never editsContact details, deal value, invoice fields and any field a person has changed by hand.
Prices and datesDrafts never state a price, a discount or a booking date unless a person has typed it.
Won dealCreates a draft invoice in Xero or QuickBooks Online. The build never approves or sends it.
AI action logEvery AI suggestion, edit and decision is logged on the contact.

Flow steps

Eight steps run for each trigger. A held or failed item goes to the exceptions queue with the reason.

Flow steps
StepTriggerWhat happensResult
1 TriggerNew lead, call outcome or missed callThe CRM workflow sends a webhook with the contact ID and the event.Event received
2 FetchEventThe contact, recent notes and the call transcript, if there is one, are read.Context
3 GuardContextOpt-out, quiet hours, a pending manual edit and a recent identical event are checked.Allowed or held
4 SummariseAllowedThe model returns a summary, a suggested stage, tags and a draft follow-up.Draft pack
5 QueueDraft packA review item is created for the owner, with the facts and the guardrail results.Review item
6 ApproveReviewerThe reviewer edits and approves the note, the stage, the tags and the follow-up, or rejects them.Decision
7 ApplyApprovedThe contact is read again. If it changed since the draft, the item returns to review. Otherwise the note, stage and tags are written and the follow-up is sent by the CRM.CRM updated
8 Log and invoiceAppliedThe action is logged on the contact. A won deal creates a draft invoice in Xero or QuickBooks Online for approval.Log and draft invoice
Missed-call text-back and voice hand-off
EventWhat happens
Missed callA text-back goes out through Twilio inside the allowed hours, only if the number has not opted out. It is drafted from your wording and approved once as a template.
Voice agent callA Vapi or Retell agent can take a call and hand over the transcript. The summary and suggested next step go into the same review queue.
Reply STOP or STARTHandled by the opt-out rules. The contact record is updated and every draft stops or resumes.

Field mapping

Each field has one source and one destination. A field a person has changed by hand is never overwritten.

Field mapping
FieldComes fromWritten toRule
Contact IDThe webhookQueue and logUsed to read the record again before applying anything
Call summaryModel, from the transcriptContact noteSaved on approval and marked as drafted for review
Suggested stageModel, from the stage listReview item firstApplied only after approval
TagsModel, from your tag listContact tagsOnly tags on your list. Anything else is dropped.
Follow-up draftModelReview item firstSent by the CRM only after approval, and only if guardrails still pass
Opt-out statusCRMGuard stepRead fresh at the step 3 check and again at sending
Deal valueCRMNot editedNever changed by the build
Draft invoiceWon dealXero or QuickBooks OnlineCreated as a draft with the deal lines. A person approves.

Edge cases

Each case below is handled by a written rule and has a scripted check in the test plan.

Edge cases and what the build does
CaseWhat the build does
A repeat contact uses a different emailThe contact is matched by phone and shown with the possible duplicate. Nothing is merged by the build.
A call has no transcriptThe item is created with the call outcome only, marked as no transcript. No summary is invented.
A stage change races a manual editThe apply step reads the contact again. If it changed since the draft, the item returns to review with the difference shown.
A contact unsubscribes in the middle of a sequenceThe sequence stops at once. Drafts already queued are cancelled at the sending check.
A lead replies after being marked lostThe reply creates a review item for the owner. The stage is not reopened automatically.
Two events arrive for the same contact within secondsThey are merged into one review item.
The model is unavailable or returns unusable outputThe item goes to the review queue with the raw event and no draft, and an alert is sent.
A webhook or sync failsThe item goes to the exceptions queue with the payload, and is replayed only once and only when it is safe to repeat.

Human sign-off and audit trail

A person approves before any stage changes, any tag is applied and any message is sent. The workflow holds no route that does these without an approval.

Who signs off what
WhoSigns offWhenIf nobody acts
Pipeline ownerEvery stage suggestion and tagEach working dayThe suggestion waits. The stage stays as it is.
Pipeline ownerEvery follow-up before it is sentEach working dayThe draft waits. Nothing is sent.
OwnerTemplate wording for missed-call text-backBefore go-live and quarterlyExisting wording stays
OwnerStage meanings, tag list and quiet hoursBefore go-live and quarterlyExisting rules stay
Accounts personEach draft invoice created from a won dealOn creationThe draft stays a draft
Audit trail kept for every item (example entry)
FieldExample
Item IDReview queue number
TriggerEvent type, contact ID and time
ModelModel name and version, and the prompt version
Input and outputWhat was sent to the model, as masked, and what came back
GuardrailsOpt-out, quiet hours and pending-edit results
EditsText before and after, who and when
DecisionApproved or rejected, by whom and when
AppliedWhat was written to the CRM, or sent, and the draft invoice ID if any

Data and privacy

Calls and conversations hold names, numbers and personal details. The workflow keeps them inside your own accounts.

Where the data lives and who can see it
DataHandling
Recordings and transcriptsStay in the CRM or telephony account. Only the text needed for the summary goes to the model.
MaskingNames, phones and emails can be masked before the model call and restored by code afterwards.
Model useA hosted model on terms that do not allow training on your data, or a local model.
Prompts and outputsStored with the prompt version so any suggestion can be traced.
API keysCreated in your own provider accounts and held in your workflow credentials.
AccountsThe CRM, n8n or Make, Twilio and the accounting file stay in your accounts. I am added as a user and removed at handover.

Worked example

The table below follows one review item through the steps. The values are examples that show the shape of an item, not a client result.

One review item (example)
PartExample
TriggerCall outcome: connected, quote requested
ContactRepeat contact, found by phone, with a second email on file
TranscriptAvailable
SummaryWants a quote for replacing a hot water unit, prefers morning visits, asked about a payment plan
Suggested stageQuote requested
Suggested tagsHot water, repeat customer
Draft follow-upA text that thanks the contact, says the office will confirm a visit time, and states no price or date
GuardrailsNot opted out. Outside quiet hours. No manual edit pending.
Reviewer actionEdits the wording and approves the stage and the text
ResultNote saved, stage set, tag applied, text sent by the CRM, action logged on the contact
Exceptions queue (example entries)
ItemReasonOwnerNext step
Webhook failed for a new leadCRM returned an errorPipeline ownerReplay once, then handle by hand
Reply from a lost leadStage is LostPipeline ownerDecide whether to reopen
Draft held in quiet hoursWindow closedNone, automaticReleased when the window opens, then checked again
Possible duplicate contactSame phone, different emailPipeline ownerMerge by hand in the CRM

Testing and checks

The test plan uses scripted scenarios on a test account first. Every check has a written pass condition and fail condition before it is run. A FAIL stops go-live until it is cleared and the check is run again.

Test plan with PASS and FAIL conditions
IDCheckMethodPASS whenFAIL when
T1New leadCreate a lead from the formSummary, suggested stage and draft in the queue, nothing appliedAnything applied before approval
T2Repeat contactContact again with a different emailExisting record matched and shown, no mergeA second record is merged or created silently
T3Missed callRing the test number and do not answerA text-back inside the allowed hours, and a queue itemNo text-back, or one inside quiet hours
T4RescheduleMove a booking by replyReview item with the new time, stage unchanged until approvedStage changes by itself
T5Won dealMark a test deal as WonDraft invoice created in Xero or QuickBooks Online and not approvedInvoice approved or sent by the build
T6No transcriptTrigger a call outcome with no transcriptItem marked no transcript, no summary inventedA summary appears
T7Stage raceEdit the stage by hand while an item waitsItem returns to review with the difference shownThe manual edit is overwritten
T8Unsubscribe mid-sequenceReply STOP after the first messageSequence stops and queued drafts are cancelledAnother message goes out
T9Reply after lostReply from a lead marked LostReview item for the owner, stage not reopenedStage reopened automatically
T10Money and manual fieldsCompare the CRM history of deal value and hand-edited fieldsNone changed by the buildAny change
T11Quiet hoursApprove a follow-up inside quiet hoursHeld, then released when the window opensSent inside quiet hours
T12Model unavailableBlock the model connectionItem queued with no draft, and an alertItem lost or no alert
T13Exceptions queueForce a webhook failureItem in the exceptions queue with its payloadSilent failure

Scope and milestones

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

Scope: what a project like this covers
AreaIncluded
Systems AuditReview of your pipeline, stage use, call and message routines and the CRM automation you already run, a 45-minute call, written findings and a fixed quote
Stage map and guardrailsWritten stage meanings, tag list, quiet hours and opt-out rules for one pipeline
Triggers and webhooksCRM workflows that send new lead, call outcome, missed call and stage events to n8n or Make
AI stepsCall and enquiry summary, suggested stage and tags, and a drafted follow-up, with prompts stored with a version
Review queueQueue with edit, approve and reject, and the re-read check before anything is applied
Call hand-offTwilio missed-call text-back, and a transcript hand-off from a Vapi or Retell voice agent into the same queue
Draft invoiceA won deal creates a draft invoice in Xero or QuickBooks Online for a person to approve
Exceptions queueFailed syncs and held items, each with a reason and an owner
TestingThirteen scripted checks, run to a pass before go-live
HandoverWritten SOPs, a recorded handover video and files you own, plus 14 days of fixes after go-live
Not includedTax filing and statutory returns.
Also outside the scopeBuilding the voice agent itself, which is quoted separately. Sending without approval. A second pipeline or a CRM move. Model API usage fees, billed to you by the provider. CRM, telephony and workflow subscriptions.
Fixed milestones
MilestoneDeliverableTimingShare
M1 Stages and guardrailsStage meanings, tag list, quiet hours and opt-out rules signed, and webhooks live on a test accountWeeks 1 to 225%
M2 AI stepsSummary, suggested stage and draft follow-up, T1, T2, T6 and T12 passWeeks 3 to 430%
M3 Review and applyReview queue, apply step, call hand-off and draft invoice, T3 to T5, T7 to T11 and T13 passWeeks 5 to 630%
M4 HandoverSupervised use, SOPs, handover video, 14 days of fixesWeek 715%

Typical scope for this kind of project: US$2,200–3,800

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

Describe how leads and calls move through your CRM today, and I will say where I would 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 Audit is the right first step.

Hire me on Upwork (opens in a new tab)Hire me on Freelancer (opens in a new tab)