Hi @Daniel Kutac - 

For modern versions, you'll need to change this line in Web.OAUTH2.Google2N:

w jsonObject.$toJSON()

to

w jsonObject.%ToJSON()

because we're now returning a %DynamicAbstractObject

Hello Sneha - 

I would implement that as a custom-code transformation (DTL).   That way it could be used in a router.   Would you consider posting it here?   I can show you how to convert it.   How are you storing the XML and the JSON?   

One more thing to check is if the router's class name in the production config is correct.

I added a bit of intro, thanks.   Let me know if you think I should add more.

Hi Matthew - 

Have you tried:

set credentials = ##class(Ens.Config.Credentials).%OpenId(..Adapter.Credentials)

Then you can use:

credentials.Username and credentials.Password.

But there's no domain, sorry.