GraphQL Query

The GraphQL Query step allows you to write and send GraphQL queries to your GraphQL server. You can also use this step to send mutations. UI component values and other variables can be added to the query using the {{ui.input.value}} expression in the Variables section.

By default, you don't even need to connect a GraphQL data source to send the queries. You simply need to specify the URL and send the request.

Consider connecting your GraphQL data source when you need to share the same URL or other settings between multiple GraphQL Query steps.

Dynamic query variables

First, just specify a query with the variables defined in it:

query GetUsers($limit: Int) {
  users(limit: $limit) {
    id
    name
  }
}

Then, add the variables in the Variables section, for example: limit = 10 or limit = {{ui.input.value}}.

This way, you can keep the body of the query clean of UI Bakery variables' syntax and simply copy-paste it from your GraphQL Dev environment.

Data transformation

If the database returns its data in a different format than expected for the components, you can modify it. For example, you can turn on the Transform result toggle in the action's settings or add a new JavaScript Code step to transform the data.

Here are some examples of possible data transformations:

  • Access an inner array object and map it to a new array:

return {{data}}.map(item => {
  return {
    id: item.id,
    name: item.name.toUpperCase(),
  };
});
  • Add a new key to the array of objects:

return {{data}}.map(item => {
  return {
    ...item, // put all the keys from the original object
    created_at: new Date(), // add a new property
  };
});
  • Filter an array of objects (short version):

return {{data}}.filter(item => item.id > 10);

Multiline version:

return {{data}}.filter((item) => {
  return item.id > 10;
});

Last updated

Was this helpful?