ETA on GraphQL Support or Monday.com Integration

Hey there,

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.

Any ideas?

Many thanks,

Karl

Hey Karl,

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 { }.

As an example, with the public Artsy API:

Let me know if this works out for you, or if we can help structure specific queries. I know this is not exactly an ideal workflow. :pensive:

3 Likes

Hey Liam,

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.

Cheers,

Karl

2 Likes

Great point, Karl. I added Liam’s explanation to the docs!

2 Likes

@liam 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:

Many thanks,

Karl

Hey Karl,

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!

2 Likes

Karl!

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:

https://api.monday.com/v2?query=%7Bquery:boards(ids: {data.query.id})%7Bitems%7Bid,name%7D%7D%7D

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.

3 Likes

Liam, this worked perfectly - thank you! Clever workaround.

Using this trick I’ve been able to replace all of my Monday.com v1 REST API queries with v2 GraphQL queries.

Thanks heaps!

2 Likes