Skip to main content

I’m brand-new to Zapier and a beginner in APIs. I’m using CoPilot to set up a Zap that retrieves all the appointments on my Acuity schedule for the current date and checks with Airtable to see if the clients are listed in the intake form database. I’ve used APIs before, but I don’t trust myself. This isn’t how the Query String Params are supposed to look, right? Can someone show me an example of their Query Params so that I can fix this? Or is CoPilot doing it right and I should just let it cook?

 

Hey ​@mimibb07,

Here is a helpful article about API request in Zapier- https://help.zapier.com/hc/en-us/articles/12899607716493-Create-an-API-Request-action.

You can also look into Acuity Scheduling API documentation to better understand their API and what exactly they expect in query parameters. Hope it helps!


Hi ​@mimibb07,

the query string parameters should not be split letter by letter, they need to be in key and value pairs. for example if you want to pull today’s appointments you would set them like this:

key: minDate
value: 2025-09-23

key: maxDate
value: 2025-09-23

that way zapier will send the correct query parameters to acuity. you can also map the current date dynamically instead of typing it manually.


@Ashar Malik Easyaiz like this, right? I knew CoPilot was up to shenanigans!

 


@Ashar Malik Easyaiz like this, right? I knew CoPilot was up to shenanigans!

 

 

@mimibb07 Yes, that’s exactly right! Setting minDate and maxDate like you’ve shown is the proper way to structure the query string parameters. That will return only the appointments for the specified date, so you’re good to go now.

If you want it to always pull the current date automatically (instead of hardcoding it), you can pass in a dynamic date field from the trigger step, that way you don’t have to keep updating it manually.

Great catch on CoPilot’s setup , looks like you’ve got it sorted now.


@mimibb07 

TIPS:

  • Reference the app API documentation for the API endpoint you are trying to use
  • Try asking ChatGPT for help with how to configured API requests
    • Give ChatGPT context by sharing screenshots with how your Zap step are configured along with any errors

@Ashar Malik Easyaiz can I get your eyes on one more part? CoPilot is doing the weird list thing again, but it says that it’s NOT supposed to be a key-value pair. It’s just trying to use one array ( {{_GEN_1758654482159__appointmentEmails}} ) and nothing else. But the input is clearly expecting a key-value pair, right? What should I do?
 

 


@mimibb07 

Help links for using Looping: https://zapier.com/apps/looping/integrations#help

Help portal with tons of resources that cover all of the native Zap apps: https://help.zapier.com/hc/en-us

 

For the Looping step, delete all of the key/value pairs.

Then manually add your own key/value pair lines.

Left side should be the the “key” which is the variable label you want to use.

Right side should be the variable mapped from a previously Zap step of an array of items that you want to iterate thru as part of the Looping step.

 

Then maps the output variables from the Looping step to following Zap action steps.

 


@Troy Tessalone hi there! I’ve previously looked at all the documentation that I could find on the issue, but none of it seems to cover the specific issue I’m experiencing. And since I’m new to this (I’m not a coder) it’s hard to specifically articulate the problem. Thus, I’m cursed to ask a million questions, lol.
 

I did a key-value pair using “email” as the key and the  {{_GEN_1758654482159__appointmentEmails}}variable CoPilot created in order to pull info from previous steps. It results in what you see above, but leads to an error which says that “Values to Loop” is empty. When I ask CoPilot to fix it, it gives me that weird long list again. I wonder if there is a way to ask questions to prevent it from formatting things in that weird way?


@mimibb07 

Screenshot shows a variable mapped from Zap step 3 labeled “Appointment Emails”, but it has a value of “No data” meaning there were no values returned for this variable from Zap step 3.

Thus the Looping Step 4 has no array values to use to iterate.

If there are no values to use to iterate, then the Looping step will have an error.

If the Looping step has an error, then steps after the Looping step will not be attempted.

 

You should add a Filter step before the Looping step to check to make sure there are values to pass thru the Looping step to avoid errors.

 


After a full day of troubleshooting, I finally got CoPilot to stop doing that weird character-by-character line item thing:

 

The key takeaways from my build, if this helps anyone in the future, are as follows:

🔧 Technical Lessons Learned:

1. Native Integrations > Webhooks

  • Started with: Webhooks by Zapier (caused field mapping nightmares)
  • Ended with: Native Acuity Scheduling integration (clean, reliable)
  • Takeaway: Always try the native app integration first before resorting to webhooks/API calls

2. Loop Step Configuration is Critical

  • The Problem: Loop steps treat direct field references as strings (character-by-character iteration)
  • The Solution: Need properly formatted line items from a Code step using output = array.map(...)
  • Key Pattern: input → Code step (format as line items) → Loop step

3. "Search Not Found" Workflow Pattern

  • Airtable: Set _zap_search_success_on_miss: true to continue when no results found
  • Filter: Use "ID does not exist" condition to identify new clients
  • Critical: This inverted logic (success = no results) is counterintuitive but essential

4. Sequential Testing is Everything

  • Test each step individually before moving to the next
  • Don't skip steps - each builds on the previous one's output
  • Field mappings break when previous steps aren't tested

Thanks everyone! Shoutout to ​@Troy Tessalone for being a big help once again!