Is there an ETA on when GraphQL support will be coming to Parabola? Or a Monday.com integration?
Monday.com is about to deprecate their rest API next month, forcing everyone to move to their GraphQL API which Parabola doesn’t currently support.
Our business relies heavily on merging our project management (Monday.com), time tracking (Clockify) and resourcing data (ResourceGuru) using Parabola, but as of next month our reporting is going to break.
I’ve spent the entire day trying to find an alternative to Parabola, and although a couple of them support GraphQL and/or Monday.com, they’re terrible in comparison.
First-class GraphQL support is on our radar, but unfortunately I don’t have an ETA for it quite yet.
In the meantime, the “Pull from API” step can GET from GraphQL services that return JSON as long as you encode the query into the request URL. In the case of Monday, you’ll use api.monday.com/v2?query= and append the GraphQL query, wrapped in { }.
Thanks heaps for the reply, and apologies for the delay.
Just got a chance to test this out and it worked perfectly! I can now replace the Rest queries with the GraphQL queries and everything should keep humming along perfectly.
I’m super happy that I don’t have to switch away from Parabola! Thanks so much.
Perhaps worth adding this to your docs so that people know you do actually support GraphQL APIs.
@rosemary I’m having trouble passing values into these queries. I’m assuming it’s because the curly braces used to pass values is also a core component of the GraphQL query language.
Is there a trick to get Parabola to recognise where I want to pass in a value?
For example, below I’m trying to pass in values from a field called data.query.id:
You may be right that GraphQL’s syntax won’t play nice with this step. I have a (sort of hare-brained) idea about how to get around this problem, but I need to vet it a little more to make sure it’ll work. I’ll get back to you tomorrow with the verdict—sorry for the delay!
Good news, I’ve got what I believe to be a working query. You’re totally right that our API Enrichment step was trying to interpret the entire query as a column name. I’m going to file this as a bug so that we can support GraphQL queries better in the future.
In the meantime, we can trick the step by encoding all of the curly braces that don’t represent a column name. You may already know this, but for posterity: URLs can include “escape codes” that allow you to represent special characters without actually using those special characters. This is useful for just this sort of situation where those characters may be misinterpreted along the way.
In our case, we want to encode { and } as %7B and %7D respectively. That means that your final query should be:
Let me know if this works out! I appreciate you being willing to stick with us, even if our support for GraphQL isn’t great yet. If nothing else, working on this problem with you is a useful learning opportunity for us there.
When I try this url with the name hard written, it works, but if I try to use {Full Name} or %7BFull Name%7D instead of her name it doesn’t work. Can you help?
https://api.monday.com/v2?query=query %7B items_by_column_values (board_id: 498701639, column_id: “name”, column_value: “Catherine Mooney-Burton”) %7B id name column_values %7B id title value %7D%7D%7D
Thanks for your patience while I chatted with our engineering team.
This appears to be an encoding problem stemming from an invalid character in the Full Name field. The API handles a very limited set of characters that can be UTF-8 encoded. Any special characters that are inserted via column values are seen as invalid by the API.
I believe the character in question is â , which is encoded as \xE2. To get around this, try using a “Find and replace” step to find all values of â and replace it with a standard character.
At this point, it may be easiest to see what data you’re passing through the input. Send us an email at help@parabola.io and we can take a look at this.
We sent a reply, but I’ll include some additional information here as well.
The errors you received are mainly syntax-based. The word “name” wrapped in slanted quotes, not normal quotes. Copying quotes from websites occasionally results in them being slanted. There was also an additional curly bracket at the end of your request body.