Trying to Connect Zoho CRM with REST and OAUTH

JD, sorry to hear that this has been so difficult to get setup.

From what I can see in the Zoho documentation, I don’t think you can use the “Client Credentials” grant type — their docs seem to indicate that you have to use “Authorization Code” Grant Type. I think this is the biggest problem you’re running up against with Authentication to Zoho both with your REST-based and OData-based approaches.

Fortunately, this is pretty easy to do — I got it working pretty quickly with my own Zoho account, here’s how to do it:

In pictures:

AUTH PROVIDER

Parameter values:

**Provider Type: ** Other
**Grant Type: ** Authorization Code
**Authorize Endpoint URL: ** https://accounts.zoho.com/oauth/v2/auth **Token Endpoint URL: ** https://accounts.zoho.com/oauth/v2/token Default Scopes: ZohoCRM.users.ALL,ZohoCRM.modules.ALL ---- NOTE: these scopes can be changed depending on what data in Zoho you want to be able to access from Skuid Platform. See the “Available Scopes” section here: https://www.zoho.com/crm/help/api/v2/#OAuth2_0 .
Client Id :
Client Secret:
Common Request Headers > Request Headers — NOTE: You will need to click the arrow to expand this section. For most OAuth / REST Data Sources, this never needs to be changed, but Zoho uses a non-standard syntax here, so what you have to do is to replace where it says “Bearer” with “Zoho-oauthtoken”, so that you have “Authorization” as the Header Name and “Zoho-oauthtoken {{$Auth.Response.Body.acces_token}}” as the Header Value that you want to send as a Header with every normal request to the Data Source.

DATA SOURCE

In pictures:

Data Source Type: REST
URL / Endpoint:
Zoho CRM | Top-rated Sales CRM Software by Customers
Is Active: checked
Use Proxy: checked
Authentication Method: Authentication Provider
Authentication Provider: ZohoCRM

Read-only REST MODEL (in a Skuid Page)

In Pictures:

Data Source URL: /Leads (or whatever Module you care about), e.g. /Accounts …
Path to Contents: data — select the field picker to change this. NOTE: The first time you select the Field Picker, a popup window should open in your browser. You need to click to open this popup window and say “Always allow popups from ”, A popup will appear asking you to authorize your OAuth client to access Zoho with Full data access, or whatever scopes you have configured — click to approve. Once the OAuth popup dance is completed, you should be presented with a dialog allowing you to select the “Path to Contents”. Click the radio button next to “data”.

Then, go click on “Fields” under your Model.

After a second or two, you should be presented with a list of fields to choose from, e.g. the following:

You can select the fields and then drag them into a Field Editor / Table, etc.

Click Save and Preview!

Next steps:

  • There are more advanced things you can do with REST Models, such as Create, Update, Delete, Search, Filtering, etc. These take a bit more configuration but we could follow-up with a sample page XML.
  • Alternatively, you could use an OData library to expose Zoho as OData, as you mentioned doing in another Community post.