OData Query: An error has occurred. - Request URL: undefined

I am trying to use Zoho CRM data in Skuid. I previously posted about multiple issues accessing Zoho through API but nobody bothered to respond to that one so I’ve been forced to try another route - Skyvia which gives OData access to all kinds of data resources (and has no problem locking in on the Zoho API - did it in about 2 minutes). 

I can connect to Skuid with Skyvia using OData just fine for fields like “BDay” and “ContactID” … BUT … The PROBLEM is when I try to bring in object data from a field with a name like “Last Name” or “First Name” (it is standard for Zoho field names to have 2 words), I get this error from Skuid:

1. There was a problem with an OData Query: An error has occurred. - Request URL: undefined

Again, I can build a Skuid Platform page that displays data fine as long as all the columns (fields) in the object have a field name that doesn’t have a [space] in it. Please, someone offer me a fix for this or I’ll have to bail on Skuid altogether (and I really like the platform but am frustrated with the lack of support).

JD, just to clarify here - so basically any time there is a field whose API Name contains a space character, you get an error? The trouble with diagnosing this is that it may be an issue on Skyvia’s end, or it may be an issue in Skuid’s end, but it’s hard to tell. From the Zoho REST API, it appears that the “First Name”, “Last Name”, and other fields all use underscores in their API Names, not spaces, so I’m surprised that the OData connector is returning spaces in the field API Names.

Here are some things that would help us troubleshoot this with you:

(1) Can you take a screenshot of the Fields you actually have selected in your Skuid Model, as well as a screenshot of the field names available for selection? e.g. this screen:

As well as a screenshot of the fields you actually have chosen in your Model, like this:

(2) Open up the Network Console for your page, e.g .After you page says “There was a problem with an OData query: undefined”, can you go into the Network Console for your browser, click on the first XHR Request, right-click on it, and click “Copy > Copy Link Address” , and then paste that here? That will help us see whether it’s Skuid’s OData connector that’s doing something wrong, or Skyvia that’s doing something wrong.

(To open the Network Console - which basically just shows what HTTP Requests your browser is making to servers - hit Cmd+Shift+J (on a Mac), and then click on the “Network” tab)

First off, you are correct. Everytime there is a field with space in the name, I get the error when I add it to the model fields. One clarification: this is coming in OData rather than REST. Here are the fields that are available.

Here are the fields in the model that works:

I only see the error when the page is in preview mode. The first XHR is this:
https://altus-us-trial.skuidsite.com/api/v1/me/loginexpires
What I do get in the error panel is this:
/proxy?data-source=Zoho-Skyvia&is-authenticated=1&endpoint=https%3A%2F%2Fconnect.skyvia.com%2F37ng8evo%2FContacts%3F%24select%3DCONTACTID%2CBDay1%2CEmail%2CAge1%2CMobile%2CPhone%2CFirst%2520Name%26%24top%3D1001 Failed to load resource: the server responded with a status of 500 (Internal Server Error)

Hope some of this helps. Let me know what else I can do.

Thanks JD, this helps. As far as we can tell, Skuid is making proper OData requests to Skyvia, as Skuid is escaping the space in “First Name” with %20 —> resulting in “First%20Name” in the OData URL. As far as we can tell from the OData spec for field requests, this is correct.

So, it appears that this is an issue with Skyvia’s Zoho-to-OData conversion. To test this theory, we recommend trying to make the following OData requests via the browser to see if any of them work. You’ll have to enter your Skyvia username / password, but if you could let us know the results of these, that would be great!

https://connect.skyvia.com/37ng8evo/Contacts?$select=Age1,First_Name&$top=11
https://connect.skyvia.com/37ng8evo/Contacts?$select=Age1,First+Name&$top=11
https://connect.skyvia.com/37ng8evo/Contacts?$select=Age1,First x0020 Name&$top=11

Thank you!

OK… 
https://connect.skyvia.com/37ng8evo/Contacts?$select=Age1,First_Name&$top=11 
https://connect.skyvia.com/37ng8evo/Contacts?$select=Age1,First+Name&$top=11 
https://connect.skyvia.com/37ng8evo/Contacts?$select=Age1,First x0020 Name&$top=11

all deliver the same error:

{ "error":{ "code":"","message":"An error has occurred." } 

}

Just to confirm the problem is the “first name” labels …
https://connect.skyvia.com/37ng8evo/Contacts?$select=Age1&$top=11 
delivers:

{ "@odata.context":"https://connect.skyvia.com/37ng8evo/$metadata#Contacts(Age1)","value":[ { "Age1":"0" },{ "Age1":"0" },{ "Age1":"0" },{ "Age1":null },{ "Age1":null },{ "Age1":"0" },{ "Age1":"0" },{ "Age1":null },{ "Age1":null },{ "Age1":null },{ "Age1":null } ] 

}

which matches the data set.

Based on the results provided by JD, our conclusion is that Skyvia’s transformation of Zoho Contacts to OData is not going to be usable, as it does not appear to allow you to query for any field names containing spaces. In our opinion. I think that if you want to proceed further with exposing Zoho CRM data via OData, you’ll need to work with another integration vendor, as Skyvia is not going to work.

I received notice from Skyvia Support that they are working on a fix. I will update this thread when it is in.