Add support for variable response data

Adds the ability to switch response payload based on request data. This can be either payload or header data