A follow-up check for outdoor-living projects
A fictional Fort Worth builder’s GoHighLevel sub-account. Deadlines, stages and templates are set for the example.
- GHL
- runs the follow-up and the deadline alerts.
- The check
- flags missing or inconsistent outcomes.
- Claude
- helps explain them and prepare changes for your review.
Patio inquiry: no first reply found
Within 60 minutes of the project inquiry form: a text or email from a person, the expected automatic reply, or a call that reached her.
Dana Whitfield sent the form at Tue 9:12 am, and an opportunity opened seconds later. No reply to her project inquiry was found in the data read at Tue 3:55 pm. The newsletter sent at 11:00 am does not answer that inquiry.
- ATue 9:12 amInquiry form
- BTue 10:12 amReply due
- CTue 3:55 pmData read
Why. The speed-to-lead workflow may not have started, may have stopped at a condition, or may listen to another form. The public endpoints checked here do not show who entered a workflow; GHL does.
Open her conversation and check for a response to this inquiry, including a logged call. Open the speed-to-lead workflow and search Enrollment History for her. Not there: look at the trigger, which form it listens to and what its filters require. There: open Execution Logs and see the step where she stopped.
For a human text or email reply: the Wait action’s “A user to reply”, timeout at 60 minutes, and a Send Internal Notification on the timeout branch. It resolves when your team’s reply is delivered. Automated acknowledgements and calls need their own evidence; they are not assumed to satisfy it. HighLevel suggests this wait after the contact has messaged in, so test it on a form inquiry before relying on it.
Start it from something that does not depend on the workflow being watched, and count the deadline from the form. Watching an opportunity that was created only covers the inquiries that got that far.
Execution-error notifications do not establish that every expected inquiry entered the workflow, and Stale Opportunities counts in whole days. GHL also flags configuration errors before a workflow is published: worth a look during the review.
Consultation confirmed with a blank name
The confirmation text opens with the client’s first name.
The text stored for Marcus Reyes’s confirmation, sent Mon 3:06 pm:
Hi , your home consultation is set for Thursday at 10:00 am. Reply C to confirm.
The contact record has the full name in Last Name and an empty First Name. Check the form mapping and any later updates. Another open inquiry has no first name. If it receives this template unchanged, the greeting will also be blank.
How a misspelled field would render: that is not documented, so it gets tested. An empty field is documented to render as a blank, which matches the stored text.
On the contact, compare the first and last name fields. On the inquiry form, see whether the name is one field or two. In the confirmation workflow, open the text action and note every field it uses.
Before the text, an If/Else branch on First Name: when it is empty, send a version that opens with “Hello,”. For something the message cannot do without, like the appointment time, stop and create a task for the coordinator instead. Test with one contact that has no first name.
Booked, and still asked to book
Once a home consultation is booked, the follow-up stops asking for one.
Priya Natarajan booked at Mon 3:40 pm for Thu 1:00 pm. At Tue 10:00 am an automated text went out:
Still planning your outdoor kitchen? Book your free home consultation: example.com/consult
- AMon 3:40 pmConsultation booked
- BTue 10:00 amAsked to book
- CThu 1:00 pmConsultation
The example shows a booking request sent after the consultation was booked. In a real account, confirm the appointment status at the time and that both relate to the same project. Which workflow sent it: GHL shows that.
In Conversations, open this message’s details and follow the Workflow link: it opens the exact execution that sent it. In that workflow, look for what should end it once a consultation is booked.
A Goal Event on Appointment Status placed after the last booking request: once she books, she jumps to the goal and skips the remaining asks. Or a Remove from Workflow step in the booking workflow. Test: book a consultation for a test contact who is in the follow-up and check that no booking request follows.
16 days in Design proposal sent
An opportunity in Design proposal sent for more than 10 days gets a look.
Renee Castillo wrote on Sep 8:
We're traveling until Oct 6. Can we pick the design back up when we're home?
The coordinator answered and recorded the wait on the contact (a “hold until” field in this example). Flagging it would teach the team to skim past the report.
- ASep 6Proposal sent
- BSep 8Asks to wait
- CSep 22Data read
- DOct 6Back on the list
Suggested focus for your 60-minute review
- Trace one inquiry through intake and follow-up.
- Inspect the branches together.
- Rank the changes and the tests.
Start with your existing Claude connection; no new integration is needed for the screen-share review.
Proposed division of work
| GHL | Rules to configure and test in your account: sending, waiting, conditions, stopping a follow-up that no longer applies, deadline alerts. |
|---|---|
| The deterministic check | Matches the data it can read and states when an expected result is missing, on a defined scope. It says when it could not read enough to conclude. |
| Claude | Explains the exceptions and prepares changes or tests for your review, from what your connection can access. |
| The owner, or someone he names | Approves any change to a workflow, a tag or a contact before it happens. |
What the endpoints do not show
The public endpoints checked here do not expose triggers, branches, waits or who entered which workflow: they list workflows by name and status. The logic gets reviewed together, inside GHL.
A scheduled check is not an alert
A scheduled check only sees a missed reply when it runs: in this example, read at 3:55 pm, almost six hours after the deadline. Speed to lead needs its own alert inside GHL, at the deadline itself.
On a real account
Possible with a Private Integration token whose read-only scopes you choose, after we agree on the scope, rotated or deleted when it is no longer needed. Any write, even a tag, can fire a workflow, so write access stays off. None of this is needed to start.