Guide home-service sales calls with GoHighLevel, Housecall Pro, and OpenAI
Go to WorkflowDescription
Quick overview
This workflow receives step-based form submissions for a guided home-services sales call, then syncs contacts and opportunities to GoHighLevel, calculates a dynamic price range, and generates closing phrases with OpenAI, optionally creating won customers in Housecall Pro and returning JSON to the front end.
How it works
Receives a POST webhook request containing form data for the current call step and normalizes the fields into a consistent structure.
Routes the request by step_type to handle customer info, service selection, pricing, AI closing language, or the final outcome.
For customer_info, creates or updates the contact in GoHighLevel with the customer’s details and property/service custom fields.
For service_selection, branches by service type and returns a list of next questions to ask, including a driveway-size prompt when pressure washing surfaces include a driveway.
For pricing_request, calculates a min/max price estimate in code using service type and property details, then formats it into a display-ready price range string.
For ai_closing, sends the call context to OpenAI and parses the response into a structured set of 2–3 closing phrases plus brief reasoning.
For final_outcome, creates the corresponding GoHighLevel pipeline opportunity (won/thinking/lost) and, if won, also creates the customer in Housecall Pro before returning the result as JSON.
Setup
Add API credentials for GoHighLevel and Housecall Pro, and an OpenAI API key/credential for the chat model used to generate closing phrases.
Replace the YOUR_* placeholders for GoHighLevel location ID, pipeline ID, and the won/thinking/lost stage IDs, plus the API keys used in the HTTP requests.
Configure your CSR front end (or form tool) to POST to the webhook URL and include a step_type value of customer_info, service_selection, pricing_request, ai_closing, or final_outcome along with the expected fields (for example service_type, property_sqft, and call_outcome).