
Voice AI Custom Action webhook response being ignored - AI confirms unavailable time slots despite correct webhook response
Hey everyone. I have been building a booking system for a lash studio using GHL Voice AI with Make.com as middleware. I am hitting a wall with custom action responses and wanted to see if anyone has solved this.
The Setup
- GHL Voice AI agent with a custom action called Check Available Slots
- Make.com webhook receives the request, checks GHL calendar API for real availability, and returns a response
- The response includes a result field that says either "Not Available. The nearest time is X" or confirms the slot is available
- Make is working perfectly. All six booking paths tested and confirmed correct.
The Problem When a caller requests a specific time that is NOT available, Make correctly returns "Not Available" in the result field. But the Voice AI agent ignores this and tells the caller the time is available anyway. When the booking is then attempted it fails because the slot is genuinely taken.
What We Have Confirmed
- Make execution history shows the correct unavailable response every time
- The AI fires the custom action correctly every time
- The AI ignores the response every time and confirms availability based on conversational context
- This happens even with a completely stripped down 5 line prompt containing only booking instructions
- The AI successfully reads other webhook responses like available slot lists so the data pipeline works
- This is specifically a problem when the response conflicts with what the caller asked for
What We Have Tried
- Multiple prompt variations telling the AI to read the result field word for word
- Returning UNAVAILABLE in all caps as the result value
- Returning the full sentence in the result field so the AI just needs to read it
- Changing the "What to say before executing" field to minimal phrases
- Changing the "When should the action take place" trigger description
- Stripping the entire prompt down to 5 lines with only booking logic
- Nothing has worked
The Core Question Is there a way to force GHL Voice AI to wait for a custom action response and act on it before generating its own reply? It seems like the AI fires the webhook and simultaneously generates a response based on conversational context rather than waiting for the webhook result.
We know from the GHL changelog that "agents consuming API responses directly" is listed as a coming feature which suggests this may be a current platform limitation. But the AI does successfully read available slot lists from the same webhook so there is clearly some level of response consumption happening.
Has anyone cracked this? Specifically when the webhook response needs to OVERRIDE what the caller said rather than just supplement it?
Happy to share Make scenario screenshots, webhook response examples, and call transcripts if helpful.