Zapier webhook not properly substituting field variables

I’m having trouble with a Zapier integration where variables aren’t being replaced correctly. I have a trigger that should accept an optional parameter called customer_id.

In my polling configuration, I set the endpoint URL as: https://mysite.com/webhook.php?method=get_images&customer_id={{customer_id}}

When I run the test manually, everything works fine and I get a successful response with status 200. However, after saving the automation, it fails with a 500 server error.

Looking at the request logs, I can see that instead of replacing the variable, Zapier is sending the literal string. The actual request shows: method=get_images&customer_id=%7B%7Bcustomer_id%7D%7D&api_key=:hidden:32:b9cd456832:

The placeholder isn’t being processed during the actual execution, only during testing. Has anyone encountered this variable substitution issue before?

Classic variable scoping issue in Zapier. Your URL template references the variable, but the field isn’t available when the zap actually runs. During testing, Zapier uses mock data so everything looks fine - but live runs fail because the variable source is missing. I hit this exact problem building a customer notification system. Check your trigger step first - make sure customer_id actually shows up in the output schema. If it’s not there, you’ll need to modify the trigger to capture and return that field. Also check timing if customer_id comes from an earlier step. That step needs to finish successfully before your webhook fires. The literal string you’re seeing? That’s just Zapier’s fallback when it can’t resolve variables.

def a mapping issue for sure. zapier’s sending the literal string cuz it can’t find customer_id in your trigger data. had the same thing with a crm setup - tests worked, but live runs failed due to field mapping being off. refresh your trigger fields and check if customer_id is marked optional.

Had the same issue last year with webhook parameters. This usually happens because the trigger isn’t actually sending the customer_id during live runs, even though testing works fine. Zapier uses sample data for tests, but live triggers need real data from the actual event. Check if your trigger’s actually outputting a customer_id field. You might need to tweak the trigger config to capture and pass that parameter properly. Also double-check that the field name in your trigger output matches exactly what you’re using in the URL template.