We have configured a Custom connector using the Generic OAuth 2 option for authentication. While the first time we are able to authenticate the connection and make the calls, once the access token has expired, it does not seem to refresh. We need to authenticate it again before we are able to use the flow again.
We are trying to connect it to a Zoho account. The access tokens will expire every one hour and a call needs to be made to the refresh url to get a new access token. The OAuth configuration seems to be right and is exactly as mentioned in examples.
We were instructed to post this here by the PowerAutomate twitter handle.
We would appreciate any help we might get.
Thanks in advance!
Hi I am trying to do the exact same thing. The custom connection to zoho works well for 1st time connection, but refresh token URL is always empty even after I input it.
I read below link, have any of you all tried this?
I have been liaising with Zoho on this issue and found out that the issue is microsoft is not allowing for query string to be appended to Auth URL and Token URL.
The Auth URL requires the query string access type in order to generate the refresh token : https://accounts.zoho.com/oauth/v2/auth?access_type=offline
And the token URL, additional grant_type to generate the refresh token : https://accounts.zoho.com/oauth/v2/token?grant_type=authorization_code
In microsoft the query string is not supported so therefore it generates a token without the refresh token.
I have use postman to check it.
Also having the same issue with my custom Zoho connector. Would appreciate if MS could offer a solution to this problem as it renders Power Automate totally useless for this.
Hi @BenBlum ,
I managed to solve this problem by using self client of Zoho API. If you are using Client Based application, the Auth Request will required an additional parameter "&access_type=offline" to get it to return the refresh token and because of that you are not getting the refresh token in power automate.
Please refer to this thread : https://powerusers.microsoft.com/t5/Connecting-To-Data/How-to-add-extra-query-parameter-to-authoriza...
All thanks to @rakadakaka for telling about the different Oauth Authentication method.
So I just briefly describe to you the alternative steps to do it
1. Create A Self-Client in Zoho API
2. Use Postman to Generate a new Refresh token
3. Using the refresh token generated in Post man, manually get the Access token
4. Use the new access token, to make API request, pls replace the Authorization with the access token.
In Order to do this, you need to understand the whole authentication process in using Self Client. The best place to test it is using postman. You need to make authentication and refresh token via Http Request instead of via Authorization in postman.
@JacksonOng Thank you very much for the detailed reply and solution, I now understand the underlying issue and how to work around it given the current limitations with the built in oath implementation.
I just to clarify one detail, when using the self client method and adding the authorization header manually using a policy, I assume with this setup you would then just turn off the built in security\authentication, correct?
@BenBlum , there are multiple ways to get around it, one way is to use http request inside power automate, but I have many different API, so what I do is to use 2 custom connector for zoho, one for Authentication (to use to refresh token to get a new access token), the other connector will just do the job of making api Query.
For the Connector making the API call, you need to put a Parameter in the header, and replace it as Authorization each time a request is make. Pls see below pic.
Setup a new policy
When making Query be sure to add "Zoho-oauthtoken" in front of ur access token
@BenBlum , yup u r right. You should be using no Autentication for the self client and authentication. The Authentication is basically just making http request to zoho token url to get a new token using the refresh token.
@JacksonOng thanks again, everything is working perfectly now! I ended up doing the same thing, creating two connectors one just for auth that I call at the beginning of my flow and store the auth code in a variable then pass it to each of the actual calls to zoho api in the other custom connector.
@zmansuri , happy new year to you. from the pic you share, it seems you do not have understanding of your Oauth in Zoho. You are using an Zoho Token on an Azure API. I cant really help much on this if you do not understand the Oauth that you are working on.
My advise is to start off with using postman.com and see how the authentication works. Then relook at the steps I share earlier with others. There are a few available authentication method in Zoho for Power automate you can use both Client Credential or Self-Client. If you are developing server application, use only Self-Client. You must be able to successfully authenticate in Postman and also successful in doing a post or get before you attempt to create ur own custom connector in Power automate.
Keep up to date with current events and community announcements in the Power Automate community.
A great place where you can stay up to date with community calls and interact with the speakers.
Check out the latest Community Blog from the community!