# Resolving Linked Content in GraphQL

> Source: https://agilitycms.com/docs/gatsby/resolving-linked-content-in-graphql

While you are sourcing and querying content in Gatsby, you are likely to come across a scenario where you need to retrieve a content item and its related content. In Agility CMS, **Linked Content** fields are used to related content to one another in various ways.

When querying a *Post*, for example, you may want to also retrieve the details for the Category. On your *Post* GraphQL node, you may notice a **category** property, however, it will only contain a **contentID** reference, not the entire node representing the *Category*.

You'll need to **resolve** this Linked Content when you need it.

## How to Resolve Linked Content

In the [Gatsby Blog Starter](https://github.com/agility/agilitycms-gatsby-starter), we resolve Linked Content by using [Gatsby Resolvers](https://www.gatsbyjs.org/blog/2019-03-04-new-schema-customization/).

**Resolvers** are added to your `gatsby-node.js` in your site, and they allow you to add a new field to your content node which will handle resolving your **Linked Content** reference.

This means you are telling GraphQL, when you query a specific property on a node, it will actually run a function to go and get your **Linked Content** and return it.

An example of this can be found [here](https://github.com/agility/agilitycms-gatsby-starter/blob/main/gatsby-node.js) in our starter site:

```
const agility = require("./src/agility/utils")

//gatsy-node.js
//CREATE RESOLVERS *******************************************************************************************
exports.createResolvers = args => {
  const {
    createResolvers,
    getNode,
    createNodeId,
    createNode,
    createContentDigest,
    configOptions,
  } = args

  // here we use resolvers to resolve the data we need for linked content
  const resolvers = {
    // on the 'agilityPost' node type
    agilityPost: {
      // get the sitemap node that represents this item ( i.e. /blog/my-blog-post )
      sitemapNode: agility.getDynamicPageItemSitemapNode(),

      // get the category
      linkedContent_agilityCategory: agility.getLinkedContentItem({
        type: "agilityCategory",
        linkedContentFieldName: "category",
      }),
    },
  }
  createResolvers(resolvers)
}
```
