Connect to ZOHO API using OAuth2

I set up OAuth flow to integrate with ZOHO API but as a result I got error: An error occurred during authorization: Access token URL returned a 400 when making a request for the access token.

But if I copy code from the url query params on the page with this error and make direct request to the with the same params + code using Postman then I am able to receive tokens.

Could you please help me?

Hi @Dima_Litvinchuk- Unfortunately, we are unable to directly integrate with Zoho CRM’s API. They require Parabola to pass a dynamic header value to authorize your account which we do not support.

How were you hoping to use that Zoho connection in Parabola? If you were trying to upload to Zoho, are there any other bulk methods (i.e. CSV upload or Google Sheets integration) that Zoho supports? If so, you could use Parabola to generate a file that you could then upload to Zoho.

Let me know if you have any questions!

Hi, thanks a lot for your reply.

This required dynamic header is directly for Parabola origin? Because request from Postman works fine.

Hi @Dima_Litvinchuk- Parabola isn’t able to pass the dynamic header that Zoho would require. In the OAuth process that we support, we automatically send the token as an Authorization header. Because Zoho requires a different header, Zoho APIs are not compatible with Parabola at this time.

I apologize for the inconvenience but please let me know if you have any questions.

Hi, just the last question.

Could you please describe what header is it? Especially name of the header and what information should be passed in this header?
“Because Zoho requires a different header, Zoho APIs are not compatible with Parabola at this time.” - what header is required by Zoho and what header could provide Parabola?

Hi @Dima_Litvinchuk :wave:

Taking a look at Zoho’s documentation, they require you to pass a dynamic header value of Zoho-oauthtoken {access_token}.

In most cases, the authorization flow demonstrated in their documentation should work with Parabola since we can generate new access tokens after they expire using a refresh token.

However, since each request to an API Endpoint URL also requires you to send a dynamic header using a valid access token, Parabola cannot insert the new access token as a custom header once the old token expires.

This means that if you wanted to connect to Zoho, it would be a manual process requiring you to follow these steps every time you make a request to an endpoint:

  1. Make a request to the authorization endpoint
  2. Copy the code parameter directly from the URL

  1. Make a request to the access token endpoint and paste the code into your JSON Request Body.
  2. Copy the access token returned from the response and manually append it to your custom header value when making a request to any of their endpoints.

Hopefully, that adds clarification! Let me know if you have any other questions.