←  See more Retool integrations
GraphQL

GraphQL

GraphQL, meet Retool.

Retool makes it easy to build admin panels, dashboards, and utilities on top of your GraphQL data.


GraphQL is a query language for APIs and a server-side runtime for fulfilling those queries with your existing data.

Connecting Retool to a GraphQL API takes just a few minutes, and lets you to build user interfaces quickly on top of your own data. For example, you can render users from your API into a Table, and then PUT back an approval for each.

Retool supports both reading and writing (including with variables) from GraphQL. And you can combine GraphQL data with other datasources, including databases (e.g. Postgres), and other APIs (e.g. Stripe, Firebase, etc.).

GraphQL

Supercharge your business operations with Retool and GraphQL.


“I tell every technology leader I talk to that they should look at Retool as a way to reduce the burden of building admin UIs and democratize that kind of stuff across their company.”

Dean McRobie headshot
Dean McRobie
CTO
CommonBond

What is GraphQL?

GraphQL is a query language for APIs and a server-side runtime for fulfilling those queries with your existing data.

Retool supports both reading and writing (including with variables) from GraphQL. And you can combine GraphQL data with other datasources, including databases (e.g. Postgres), and other APIs (e.g. Stripe, Firebase, etc.).

Read the Retool + GraphQL integration docs for more information.


What operations are supported with GraphQL on Retool?

  • Query
    Perform any simple or complex GraphQL query.

  • Mutate
    Add or modify your data with mutations.

  • Variables
    Pass dynamic variables from your app to your GraphQL query.


const newStage = Object.assign(job_stage_form.data, { Type: select1.value })
const new_job_stages = job_stages.value.concat(newStage)
job_stages.setValue(new_job_stages)
modal1.close()
select1.setValue(null)

const index = i; // variable which is the index of the button that triggered this
const newData = Array.from(job_stages.value);
newData.splice(i, 1)
job_stages.setValue(newData);

var rawData = getProductDetails.data
var prdStlCmpLst = new Array()
for (x in rawData)
if (rawData[x]["dim_date_shops_products.material_family"] == select19.value)
prdStlCmpLst.push(rawData[x]["dim_date_shops_products.taxonomy_style"])
return prdStlCmpLst
SELECT
nps.'Product Feedback',
nps.nps_count as NPS,
feedbacks.feedback_count as Feedback,
sfdc.sfdc_count as Salesforce,
sfdc.opp_dollars as Opportunity_Dollars
from
{{npsTableCounts.data}} as nps
join {{feedbackTableCounts.data}} as feedbacks on nps.'Product Feedback' = feedbacks.FeedbackID
join {{sfdcTableCounts.data}} as sfdc on sfdc.FeedbackID = nps.'Product Feedback'
where
(
{{ multiselect2.value.length === 0 }}
OR nps.'Product Feedback' = ANY({{ multiselect2.value }})
)
     

In Retool, you can join GraphQL data with anything.

Retool connects to most databases and nearly anything with a REST or GraphQL API. Read in data from mongoDB, join it via SQL, record user approvals, and POST the result to Stripe to create invoices. Retool empowers you to work with all of your data sources inside of a single app.