Guide home-service sales calls with GoHighLevel, Housecall Pro, and OpenAI

Go to Workflow
0 views
Built by Joseph Fadero Joseph Fadero
Created on September 05, 2026

Description

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).

Nodes Used (5)

AI Agent
@n8n/n8n-nodes-langchain.agent
Code
n8n-nodes-base.code
HTTP Request
n8n-nodes-base.httpRequest
OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi
Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured