Allow payload to be string or object