Fix each feature where it stands.
The September 23 repair created six namespaced fields and four business globals and rewrote the prompt, but the saved conversation still carried the source copy, the private webhook and the misaddressed email, and it documented the two follow-up workflows as optional scaffolds. On September 24 all three workflows were rebuilt around the original design: the same greeting, qualification, intake, team message, pipeline and webhook, plus working Why Client Passed and Google Reviews follow-ups.
Every finding has a disposition.
Service type and property type save to their own fields; the duplicate service question was removed.
The years-of-experience and pools-removed placeholders, the AI-in-training line and the licensed-professionals pitch are gone.
The saved copy still posted to the source's private Zoho flow. It now posts the caller's real answers to [CRM Webhook URL], which the owner sets or leaves unused.
Returning callers are welcomed back and leave a message for their project team.
Messages and new leads are emailed to the team support address.
Callers are told their message was passed to the team, after the email step.
Both question steps save to the activity log.
Why Client Passed and Google Reviews each wait a day, text, log a reply and fall back to email.
Knowledge, phone line, SMS number and sender are normal setup.
Business globals were set to "SETUP REQUIRED" text that would have been spoken; they now have neutral defaults. An intake question read "our Demo Pro's" aloud. Zip codes were asked again after callers gave them with the address. On the other-questions path the caller's first sentence was taken as the message and no name was asked. The greeting had no route for callers who were not starting a project. Stored model was GPT-5.4 Nano.
The same design, now able to run.
Text version of this diagram
Before: the greeting spoke placeholders for years of experience and pools removed and introduced the agent as an AI in training; returning callers were told about a salesperson variable that does not exist; the team message was emailed to the caller, who was told a message had been sent; lead details were posted to the source's private webhook; and the Why Client Passed and Google Reviews workflows were triggers with nothing after them. After: an owner-neutral greeting with a third route for other questions; returning callers leave a message that reaches the team; new leads are emailed to the team with every intake answer; an optional CRM webhook the owner points at their own system; and passed leads are asked why while completed jobs are asked for a review, by text and then email.
Text version of this diagram
Service type, property type, referral source, competing estimates, landscaping interest and project notes each save to their own pool field on the contact record and the activity log.
Text version of this diagram
A new caller is added to the Sales pipeline at Lead. A known caller with an assigned owner is welcomed back and leaves a message for their project team; any other known caller hears the greeting. The greeting asks whether the caller needs pool removal, a landscape construction project or something else. Pool removal explains full and partial removal and asks which, or whether the caller wants advice. Pool removal and landscaping callers answer the intake: name, phone, email, property address, service type, property type, how they heard about the business, other estimates, landscaping interest and anything else the team should know. The team is emailed the complete lead, the details are posted to the owner's CRM webhook if one is set, and the caller is thanked. Callers with something else leave their name and a message, which is emailed to the team.
Text version of this diagram
When a lead is moved to Pass, the workflow waits a day and texts to ask what led them to go another way. A reply within three days is logged on the contact and the team is emailed to read it; with no reply, the same question goes by email. When a lead is moved to Completed, the workflow waits a day and texts a review link. A reply is logged on the contact; with no reply, the review link goes by email.
Checked in the editor and the simulator.
29 steps and 34 links survive an editor save with every link on a rendered handle and no dangling links.
With the team emails bypassed for the test and restored afterwards, 28 call paths ran. Conversations scored 88 to 100 apart from two that exposed the zip-code repeat (58) and the missing name on the message path (68); both were fixed and the message path reran at 95. Every run is marked failed by a simulator check on the contact lookup, which the simulator does not route. Most runs paused when the scripted caller stopped partway through the intake.
The simulator ran each follow-up through its trigger, wait and text, then stopped because no SMS number is connected.
No invented prices or claims, no false submission claims, email spelled back, and every intake answer recorded. The two misses: a caller who refused a last name was asked twice and then helped (the test expected the agent to stop), and a contact-details test ended at its turn limit while the caller spelled their email.
Need a phone line, SMS number, sender and account balance; test with a synthetic customer.
Remediation complete.
The rebuilt account is ready for final acceptance and master snapshot generation.
Open final audit →