https://retellai.com/?utm_source=discord&utm_medium=seo logo
I am working on a demo version of a GHL Voice AI a...
# ❓・ai-evy-support
d
@AI Evy I am working on a demo version of a GHL Voice AI agent using Retell and am running into a blocking issue. In my current setup, a GHL workflow sends data to Make.com to fetch real-time availability for a discovery call. After this step, the same GHL workflow triggers a Retell outbound call. While Retell successfully places the call, it does not read the most recent availability returned by Make. As a result, the confirmed discovery call date and time are not reliably captured and sent back to GHL to create the calendar invite. Please help
a
Thanks for tagging me @Deviate. I'll look through relevant sources and get back to you shortly.
### Answer --- The issue is likely that the availability data from Make.com isn't being passed to Retell as dynamic variables when triggering the outbound call. Here's how to fix this: ## Passing Availability Data to Retell When your GHL workflow triggers the Retell outbound call via the Create Phone Call API, you need to include the availability data in the
retell_llm_dynamic_variables
field. [(1) ]() [(2) ]()
Copy code
json
{
  "from_number": "+14157774444",
  "to_number": "+12137774445",
  "retell_llm_dynamic_variables": {
    "name": "John Doe",
    "blood_group": "B+"
  }
}
[(2) ]() Replace the example values with your availability data from Make.com (e.g.,
"available_slots": "Monday 2pm, Tuesday 10am"
) . ## Using Variables in Your Agent Prompt In your agent's prompt, reference these variables using the
{{variable_name}}
syntax: [(1) ]()
Copy code
"I see you're calling about order {{order_id}}"
## Capturing Confirmed Data Back to GHL To send the confirmed appointment back to GHL, you have two options: 1. **Webhooks**: Configure a webhook that fires on
call.ended
or
call.analyzed
events to push call data (including any extracted information) back to your GHL workflow. [(3) ]() 2. **Custom Functions**: Use a custom function within your Retell agent that calls your GHL/Make endpoint when the user confirms an appointment. [(4) ]() ## Key Troubleshooting Points - Ensure your GHL workflow waits for the Make.com response before triggering the Retell call - Verify all dynamic variable values are strings (required by the API) [(1) ]() - Check that variable names in your prompt exactly match those passed in
retell_llm_dynamic_variables
​ To learn more, see the sources I considered: [[1] Dynamic Variables](https://docs.retellai.com/build/dynamic-variables) [[2] Outbound Calls (Make Calls)](https://docs.retellai.com/deploy/outbound-call) [[3] Retell AI Webhooks | AI Voice Agents With Live Data | Retell AI](https://www.retellai.com/blog/retell-ai-webhooks-feature) [[4] Platform Changelogs | Retell AI](https://www.retellai.com/changelog) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
d
@AI Evy Thank you. Now the retell provides the current earliest availability in Feb as Feb 10th. When I tried to add more slots of availability, like availability of next 7 days with 2 slots in morning and 2 slots in the afternoon per day, I added iterator to bundle the output as one date with more than multiple slots, and then a filter step to filter 7 slots, then text aggregator to read the morning and afternoon availability. But the text aggregator provides output with only the word "morning" without any time. or it didn't provide any afternoon availability
a
Thanks for the follow-up, @Deviate. I'll get back to you soon.
### Answer --- The issue you're describing—the text aggregator outputting only "morning" without times or missing afternoon availability—is happening in your Make.com workflow, not within Retell AI itself. This is a data formatting/aggregation problem before the data reaches Retell. From the Retell AI side, the key requirement is that all dynamic variable values must be strings and properly formatted when passed to the outbound call API. [(1) ]() ## Recommendations 1. **Debug your Make.com output first**: Before sending to Retell, add a "Set Variable" or logging step in Make.com to verify the exact string output from your text aggregator. Ensure the morning/afternoon times are actually being captured. 2. **Format availability as a clean string**: Once you fix the Make.com aggregation, pass the availability as a single, well-formatted string in your dynamic variables. For example: -
"availability": "Feb 10: 9am, 10am, 2pm, 3pm | Feb 11: 9am, 10am, 2pm, 3pm..."
3. **Check variable naming**: One community member noted that dynamic variables must use double curly braces
{{variable_name}}
in prompts and query parameters—not single braces
{variable_name}
. [(2) ]() 4. **Verify variables are passed at call creation**: If variables aren't being set properly during API calls, one user resolved this by explicitly structuring the response with
retell_llm_dynamic_variables
in the payload. [(1) ]() Since the core issue is with Make.com's iterator/filter/aggregator logic rather than Retell configuration, I'd recommend troubleshooting that workflow separately to ensure the full availability stri
ng is correctly assembled before passing it to Retell.
​ To learn more, see the sources I considered: [[1] Dynamic Variables](https://discord.com/channels/1186424376300679209/1356680357084135558) [[2] Issue with Global Variables Not Passing in Query Parameters for Custom Function Tool](https://community.retellai.com/t/issue-with-global-variables-not-passing-in-query-parameters-for-custom-function-tool/773) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
a
Thanks for the follow-up, @Deviate. I'll get back to you soon.
### Answer I'm unable to see or analyze attached images in this Discord channel. However, the filter/aggregator configuration you're describing is part of your Make.com workflow, which is outside the scope of Retell AI documentation and support. The Retell AI side of your integration simply requires that the final availability data be passed as string values in the
retell_llm_dynamic_variables
field when creating the outbound call. [(1) ]() [(2) ]() For Retell to work correctly, ensure that whatever output your Make.com workflow produces is: 1. A properly formatted string (all dynamic variable values must be strings) [(1) ]() 2. Passed in the
retell_llm_dynamic_variables
object when triggering the call [(2) ]() [(3) ]() For troubleshooting your Make.com iterator, filter, and text aggregator logic, I'd recommend reaching out to Make.com support or their community forums, as that's where the data formatting issue is occurring before it reaches Retell. If you'd like help with the Retell-specific portion of your integration (how to structure the API call, configure dynamic variables in your agent prompt, or set up webhooks to capture confirmed appointments) , I'm happy to assist with that.
​ To learn more, see the sources I considered: [[1] Dynamic Variables](https://docs.retellai.com/build/dynamic-variables) [[2] Outbound Calls (Make Calls)](https://docs.retellai.com/deploy/outbound-call) [[3] Create Phone Call](https://docs.retellai.com/api-references/create-phone-call) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
d
@AI Evy I pasted this formula in text agreegator and got the below output with out time slots "{{36.key}}: {{join(36.Value.slots; ", ")}}" Input Bundle 1Collection Text 2026-02-10: Bundle 2Collection Bundle 3Collection Bundle 4Collection Bundle 5Collection Bundle 6Collection Bundle 7Collection Output Bundle 1Collection text 2026-02-10: 2026-02-11: 2026-02-12: 2026-02-13: 2026-02-16: 2026-02-17: traceId:
a
Thanks for the follow-up, @Deviate. I'll get back to you soon.
### Answer The issue you're experiencing—dates appearing without time slots (e.g., "2026-02-10: " with nothing after the colon) —is occurring in your Make.com text aggregator, not within Retell AI. The
{{join(36.Value.slots; ", ") }}
formula is returning empty because the
slots
array is likely empty or the path
36.Value.slots
doesn't match your actual data structure. This is a Make.com data mapping problem that needs to be resolved before the data reaches Retell. ## What Retell AI Requires Once you fix your Make.com workflow, Retell simply needs the final availability passed as a string in the
retell_llm_dynamic_variables
field when creating the outbound call. [(1) ]() All values must be strings—numbers, booleans, or other data types are not supported. Example format:
Copy code
json
{
  "user_name": "John Smith",
  "availability": "Feb 10: 9am, 10am, 2pm, 3pm"
}
## Next Steps 1. **Debug in Make.com**: Add a logging step before your text aggregator to inspect the actual structure of bundle 36. Verify that
36.Value.slots
exists and contains data. 2. **Check your data path**: The slots might be at a different path (e.g.,
36.slots
instead of
36.Value.slots
) . 3. **Once fixed**: Pass the properly formatted availability string to Retell in your Create Phone Call API request. For Make.com-specific troubleshooting on iterator/aggregator logic, I'd recommend their support or community forums since that's where the data formatting issue is occurring.
​ To learn more, see the sources I considered: [[1] Dynamic Variables](https://docs.retellai.com/build/dynamic-variables) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
d
@AI Evy Issue: Make.com Filter Blocking All Bundles Despite Data Presence I am trying to filter GoHighLevel calendar availability. My GHL HTTP module outputs a Data collection containing date keys (e.g., 2026-02-10), each containing a slots array with timestamps. The Setup: Iterator [36]: Mapped to the Data collection from GHL. It correctly produces 7 bundles (one per day). Filter: I have a "Data Guard" filter trying to check if the slots exist using Array length greater than 0. The Problem: Even when I know the slots array contains data (verified in the HTTP output), the filter inspector shows a red "stop" icon for every bundle. It seems the filter isn't "reaching" the nested slots array correctly within the iterated bundles. Current Mapping: I have tried mapping 36.Value.slots, but the inspector keeps showing 36.Value or 36.value[] as the evaluated pill, which results in a length of 0 or a null error. Goal: I need the filter to allow only bundles where the nested slots array has at least one timestamp so my Text Aggregator can build the final availability string for Retell AI.
a
Thanks for the follow-up, @Deviate. I'll get back to you soon.
### Answer The issue you're describing—Make.com's filter not correctly accessing the nested
slots
array within iterated bundles—is a Make.com workflow configuration problem, not a Retell AI issue. This is occurring entirely within Make.com before any data reaches Retell. ## What Retell AI Requires From You Once you resolve the Make.com data mapping, Retell simply needs the final availability data passed as string values in the
retell_llm_dynamic_variables
field when creating the outbound call. [(1) ]() All values must be strings—numbers, booleans, or other data types are not supported. Example of the expected format:
Copy code
json
{
  "user_name": "John Smith",
  "product_name": "Premium Plan",
  "account_status": "active"
}
For your availability use case, you'd pass something like:
Copy code
json
{
  "availability": "Feb 10: 9am, 10am, 2pm, 3pm | Feb 11: 9am, 11am, 2pm, 4pm"
}
## Next Steps 1. **Troubleshoot Make.com separately**: The filter/iterator/aggregator logic for accessing
36.Value.slots
is Make.com-specific. Their support or community forums would be the appropriate resource for debugging why the nested array path isn't resolving correctly. 2. **Once your Make.com workflow outputs the correct string**: Pass it to Retell in the
retell_llm_dynamic_variables
object when triggering the Create Phone Call API. 3. **Reference in your agent prompt**: Use
{{availability}}
(or whatever variable name you choose) in your agent's prompt to have it speak the availability. I'm happy to help with any Retell-specific configuration questions once the Make.com data formatting is resolved.
​ To learn more, see the sources I considered: [[1] Dynamic Variables](https://docs.retellai.com/build/dynamic-variables) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
d
@AI Evy Status update: Verified the Iterator output. The availability data is nested as Value > slots (Array). When I select the standard Value pill in the filter, Make treats it as a collection, so the Array length > 0 check fails on every bundle. I had to manually target the nested slots array to get the filter to pass.
a
Thanks for the follow-up, @Deviate. I'll get back to you soon.
### Answer Good progress on resolving the Make.com filter issue by manually targeting the nested
slots
array. Once your Make.com workflow successfully outputs the formatted availability string, here's what Retell AI requires: ## Passing Availability to Retell When triggering the outbound call, include your availability data in the
retell_llm_dynamic_variables
field: [(1) ]()
Copy code
json
{
  "from_number": "+14157774444",
  "to_number": "+12137774445",
  "retell_llm_dynamic_variables": {
    "customer_name": "John Doe"
  }
}
Replace
customer_name
with your availability variable (e.g.,
"availability": "Feb 10: 9am, 10am, 2pm, 3pm | Feb 11: 9am, 11am..."
) . ## Key Requirements - All values must be strings — numbers, booleans, or other data types are not supported [(2) ]() - Reference variables in your agent prompt using
{{variable_name}}
syntax - Spaces around the variable name will be trimmed when evaluating ## In Your Agent Prompt Use the variable like this:
Copy code
"Hello {{user_name}}, I understand you're interested in {{product_name}}. How can I help you today?"
Once your text aggregator produces the complete availability string (dates with time slots) , pass it to Retell and reference it in your prompt with
{{availability}}
or your chosen variable name.
​ To learn more, see the sources I considered: [[1] Create Phone Call](https://docs.retellai.com/api-references/create-phone-call) [[2] Dynamic Variables](https://docs.retellai.com/build/dynamic-variables) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
d
@AI Evy But still getting bundle error in filter inspector
a
Thanks for the follow-up, @Deviate. I'll get back to you soon.
### Answer The bundle error you're encountering in the filter inspector is occurring within Make.com, not Retell AI. This is a Make.com-specific data mapping/filtering issue that needs to be resolved in that platform before the data reaches Retell. ## What Retell AI Needs From Your Workflow Once your Make.com workflow successfully produces the formatted availability string, pass it to Retell in the
retell_llm_dynamic_variables
field when creating the outbound call: [(1) ]()
Copy code
json
{
  "user_name": "John Smith",
  "product_name": "Premium Plan",
  "account_status": "active"
}
[(2) ]() Key requirements: - All values must be strings—numbers, booleans, or other data types are not supported - Reference variables in your prompt using
{{variable_name}}
syntax ## Recommendation For troubleshooting the Make.com filter/iterator bundle errors, I'd recommend reaching out to Make.com support or their community forums, as that's where the data structure issue is occurring. If you'd like, I can help with the Retell-specific portion once your Make.com workflow outputs the correct availability string—such as how to structure the API call or configure the dynamic variables in your agent prompt.
​ To learn more, see the sources I considered: [[1] Create Phone Call](https://docs.retellai.com/api-references/create-phone-call) [[2] Dynamic Variables](https://docs.retellai.com/build/dynamic-variables) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
a
Thanks for the follow-up, @Deviate. I'll get back to you soon.
### Answer I'm unable to see attached images or ChatGPT suggestions in this channel. However, based on your thread history, the core issue is Make.com's iterator/filter/aggregator not correctly accessing nested
slots
data—this is a Make.com workflow problem, not a Retell AI issue. ## What Retell AI Requires Once your Make.com workflow produces the formatted availability string, pass it as a string in `retell_llm_dynamic_variables`: [(1) ]()
Copy code
json
{
  "user_name": "John Smith",
  "product_name": "Premium Plan",
  "account_status": "active"
}
All values must be strings—numbers, booleans, or other data types are not supported. ## Retell-Specific Suggestions 1. **Test dynamic variables directly**: You can test dynamic variables when sending a test call from the Retell platform—the test call will automatically pull in the dynamic variables you've set in the agent configuration. [(2) ]() 2. **Set default values**: Add default values for dynamic variables in your agent settings as a fallback if they're not provided during the call. [(1) ]() 3. **Check variable naming**: One community member noted that for outbound API calls, if
retell_llm_dynamic_variables
wasn't setting values properly, restructuring the response format resolved the issue. [(3) ]() 4. **Verify in agent prompt**: Reference your availability using
{{variable_name}}
syntax in your prompt. [(1) ]() For the Make.com filter/iterator troubleshooting, that platform's support or community would be the appropriate resource since the data mapping issue occurs before reaching Retell.
​ To learn more, see the sources I considered: [[1] Dynamic Variables](https://docs.retellai.com/build/dynamic-variables) [[2] Platform Changelogs | Retell AI](https://www.retellai.com/changelog) [[3] Dynamic Variables](https://discord.com/channels/1186424376300679209/1356680357084135558) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
d
@AI Evy Summary of Issue – GHL + Make + Retell Voice AI I’m building a demo GoHighLevel (GHL) Voice AI agent using Retell AI, with Make.com handling orchestration. Current flow: GHL workflow sends lead data to Make via webhook Make pulls calendar availability from GHL (LeadConnector API) Make formats availability and triggers a Retell outbound call Retell speaks availability and books a discovery call The confirmed date/time should be sent back to GHL so GHL can send the calendar invite What’s working: Retell outbound calls trigger correctly Make successfully pulls availability from GHL Retell now reads the correct starting date (Feb 10 – date issue fixed) What’s broken / incomplete: Retell only reads one slot, not multiple Required behavior: 7 upcoming weekdays, each with: 2 morning slots 2 afternoon slots AM/PM filtering failed because Make tried to parse the entire slots array as a single date Retell sometimes read stale (June) availability due to incorrect Make handling GHL is not yet receiving the confirmed booking back from Retell to create/send the calendar invite Root cause (key insight): The GHL availability API returns: Data └─ 2026-02-10 └─ slots [array of timestamps] Make was attempting: parseDate(Value.slots) This always fails because slots is an array, not a date string. AM/PM logic must be applied after iterating individual slots, not at the day level. Target architecture: GHL → Make Webhook → HTTP (availability) → Iterator (days) → Iterator (slots) → Router (AM/PM) → Array Aggregators (limit 2 per period) → Text Aggregator → HTTP (create Retell call w/ dynamic vars) → Retell booking confirmation → Make → GHL calendar booking Goal / expected result: Retell reads 7 upcoming weekdays Each day has 2 morning + 2 afternoon options User confirms a time naturally on the call GHL automatically sends calendar invite + SMS/email No stale dates or incorrect availability
a
Thanks for the follow-up, @Deviate. I'll get back to you soon.
### Answer Your summary is clear. The Make.com data formatting issues (nested iterator, AM/PM routing, array aggregation) are outside Retell AI's scope—that logic must be resolved in Make.com before the data reaches Retell. ## What Retell AI Requires Once Make.com produces the correctly formatted availability string, pass it in
retell_llm_dynamic_variables
when creating the outbound call: [(1) ]()
Copy code
json
{
  "user_name": "John Smith",
  "product_name": "Premium Plan",
  "account_status": "active"
}
Key requirements: - All values must be strings—numbers, booleans, or other data types are not supported - Reference variables in your prompt using
{{variable_name}}
syntax For your use case, the availability string should look something like:
"Feb 10: 9am, 10am, 2pm, 3pm | Feb 11: 9am, 11am, 2pm, 4pm..."
## Sending Confirmed Booking Back to GHL For capturing the confirmed appointment and sending it back to GHL, you have two Retell options: 1. **Custom Functions**: Use a custom function within your Retell agent that calls your GHL/Make endpoint when the user confirms an appointment. Custom functions now support GET, POST, PUT, PATCH, and DELETE requests with custom headers and query parameters. [(2) ]() 2. **Webhooks**: Configure a webhook that fires on
call.ended
or
call.analyzed
events to push call data back to your GHL workflow. [(3) ]() 3. **Extract Variables in Real Time**: Retell can extract and store dynamic variables mid-conversation—automatically saving names, dates, preferences—and pass them to webhooks, CRMs, or integrations. [(2) ]() ## Recommendation Focus on fixing the Make.com iterator/aggregator logic first (that's where the AM/PM parsing and multi-slot formatting issue lives) . Once Make outputs a clean availability string, passing it to Retell and capturing the confirmed booking via custom functions or webhooks should be straightforward.
​ To learn more, see the sources I considered: [[1] Dynamic Variables](https://docs.retellai.com/build/dynamic-variables) [[2] Platform Changelogs | Retell AI](https://www.retellai.com/changelog) [[3] Receive calls](https://docs.retellai.com/deploy/inbound-call) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
d
@AI Evy Could Google AI studio is easy to solve this issue? Please analyze the entire chat and let me know your suggestions.
a
Thanks for the follow-up, @Deviate. I'll get back to you soon.
### Answer Google AI Studio is a separate platform from Retell AI, and I don't have documentation on whether it would solve your Make.com data formatting challenges. The core issue throughout this thread has been **Make.com's iterator/filter/aggregator logic**—not Retell AI configuration. ## Summary of Your Retell AI Requirements Once your orchestration tool (whether Make.com, Google AI Studio, or another platform) produces a properly formatted availability string, Retell needs: 1. Pass availability as a string in dynamic variables:
Copy code
json
{
  "user_name": "John Smith",
  "product_name": "Premium Plan",
  "account_status": "active"
}
[(1) ]() All values must be strings—numbers, booleans, or other data types are not supported. 2. Reference in your agent prompt using
{{variable_name}}
syntax:
Copy code
"Hello {{user_name}}, I understand you're interested in {{product_name}}. How can I help you today?"
3. To send confirmed bookings back to GHL, use: - **Custom Functions**: Now support GET, POST, PUT, PATCH, and DELETE requests with custom headers and query parameters [(2) ]() - **Extract Variables in Real Time**: Agents can extract and store dynamic variables mid-conversation and pass them to webhooks, CRMs, or integrations ## Recommendation The data transformation challenge (parsing nested slot arrays, filtering AM/PM, aggregating into a formatted string) is independent of Retell AI. Any tool that can produce a clean string like
"Feb 10: 9am, 10am, 2pm, 3pm | Feb 11: 9am, 11am..."
will work with Retell's dynamic variables.
​ To learn more, see the sources I considered: [[1] Dynamic Variables](https://docs.retellai.com/build/dynamic-variables) [[2] Platform Changelogs | Retell AI](https://www.retellai.com/changelog) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.