The workflow payload and the variables available in the GPS block are different things. Workflows can be triggered by all sorts of things, even unrelated to devices. In your example, it’s being triggered by a webhook, so the workflow payload is whatever was sent over the webhook.
The GPS block pulls data from the device state. The variables available in the GPS block are always the attributes of a device (i.e.
data.<attribute-name>). In order to get values from the workflow payload onto a device, they must first be recorded using the device state node.
The root issue is this workflow is being invoked with temperature and location separately, so the attributes are being recorded to the device at separate times. So when the GPS history block displays a location point, there is simply no temperature data at that moment in time available to display.
In the above screenshot, it also looks like you’re using a gauge query to grab the previous temperature on every webhook, even if the payload includes a new temperature. You’ll need a conditional to check if the payload includes location, and if does, only then get the previous temperature. Then you need to record both location and temperature at the same time using a device state node.