> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://contentful.com/developers/docs/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://contentful.com/_mcp/server. # Custom external references The [Custom external references](/concepts/external-references) feature (formerly known as Third party orchestration) enables you to resolve content referenced from any third party system using the Contentful GraphQL API. Some of our marketplace apps already support Custom external references out-of-the-box, such as [Shopify](https://www.contentful.com/help/shopify-app/), [commercetools](https://www.contentful.com/help/commercetools/) and [Cloudinary](https://www.contentful.com/help/cloudinary-app/). For those that don't, you can create your own app with [**Functions**](/extensibility/app-framework/functions) to enable the Custom external references capability. ## Functions [Functions](/extensibility/app-framework/functions) connect to external systems, fetch additional content and enrich the response of the GraphQL request. With functions, you can use the `_data` suffix in your GraphQL query and stitch remote schemas together with your Contentful schema. The `_data` prefix can be used only when the field is annotated to be resolved in delivery with an app. Once you enable the `Resolve content on delivery` checkbox on your field settings and configure your field with a custom app, you can resolve remote content using the GraphQL API. If your function has an error caused by the remote schema, query or response, you will receive an [`UNRESOLVABLE_RESOURCE_LINK`](/references/graphql/graphql-errors#unresolvable_resource_link) error. If the schema generation was not successful, the `_data` suffixed field will be of type [`Never`](/references/graphql/schema-generation#never).