CXone Studio ASSIGN action failing to parse JSON payload in IF block

We are hitting a wall with the ASSIGN action in a CXone Studio flow. We need to extract a specific field from a JSON string payload that comes from an external API call. The payload looks like this: {“status”: “active”, “tier”: 1}. We are trying to use the ASSIGN action to parse this JSON and store the tier value in a variable called user_tier.

Here is the configuration for the ASSIGN action:
Source: {{api_response_body}}
Target: user_tier
Mapping: $.tier

We expected the user_tier variable to contain the integer 1. Instead, it seems to be null or empty when we hit the next node. We followed the ASSIGN action to an IF action to check if user_tier equals 1. The IF action always goes to the false branch. We’ve tried using $.tier and $.status in the mapping. Both fail.

We are using the standard Studio JSON parser logic. The API call returns a 200 OK. The body is valid JSON. We verified this by logging the raw body in a debug node. It looks correct. The issue is specifically in the ASSIGN step. We don’t see any error messages in the Studio logs. The flow just proceeds with a null value. We’ve tried wrapping the mapping in double quotes. We’ve tried using the get function. Nothing works.

Is there a specific syntax for nested JSON extraction in the ASSIGN action? We are using the latest Studio version. The documentation says it supports JSONPath. We are using JSONPath. Why is it failing? We need this for branching logic. If we can’t get the value, the whole flow breaks. We’ve spent two days on this. It should be simple. Please help.