Our schema can be divided into two areas: “Settings” and the actual data.In our settings, we define:
Which source groups and source entity types to use (triggers)
Set if the schema should be available via routes
Set if actions should occur when the schema is processed.
And in our data, we map our existing data to our new content. This is all done under the “properties”-object.
When creating schemas, Enterspeed will automatically generate an alias in camel case based on the name you provide. You can set your own alias by clicking the lock to the left of the alias.
The first thing you need to define is your triggers. Triggers consist of one or more source groups, which contain one or more source entity types (the data your schema should use). You can find a list of all the Source Entity Types in the Source entities table in your Enterspeed-project under Type.
The Source entity types are fetched from your data source, e.g. your CMS.
Let’s have a look. Say we wish to use data from our Umbraco Cloud (alias: umbracoCloud) source group which have the contentPage type, we simply define it like this:
Next, we need to define how we can fetch the data. We do this under routes. Fetching can be done by URL, Handle, and ID. In this example, we do it by URL.
To keep this example simple, we’re not going to define any actions.Great, so we have defined our settings, where we chose which data our schema should use (triggers) and how we should be able to fetch it (routes).
Now it’s time to tie our existing data to our new content. We do this under properties.We can define as many properties as we wish. For this example, we are going to define just one: a title.First, we give our new property a name. Let’s simply call it title.Next, we need to set the value for this property. We do this by mapping to the data we wish to use from our source entity type, which we defined under triggers earlier.
Click the Source entities button on the Schema page and click View next to the Source you want to use. Here you can see all the available data.
The title we wish to use is called pageTitle in the data source and is inside the properties-object.
Let’s deploy and test our new schema.Click on the Deploy schemas-button in the top right corner. This will open a pane where you can see current active deployments per environment and deploy changes to your desired environment.You can now test your schema via Postman, Insomnia, etc.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Enterspeed Docs","colors":{"primary":"#0018ff","light":"#99bfdd","dark":"#000035"},"logo":{"light":"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/Enterspeed_Logo_RGB_Black.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=491f6b7030bd2783bc3e51bb7183237e","dark":"https://mintcdn.com/enterspeed/ZSYX286dEXJYPh8A/images/Enterspeed_Logo_RGB_DIAP.svg?fit=max\u0026auto=format\u0026n=ZSYX286dEXJYPh8A\u0026q=85\u0026s=57859398954b59778cd723e0b9e4dca5"},"favicon":{"light":"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/favicon.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=2e00ec680e7f80f676f9d4748626ec0f","dark":"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/favicon.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=2e00ec680e7f80f676f9d4748626ec0f"},"background":{"decoration":"grid"},"navbar":{"links":[{"href":"https://www.enterspeedstatus.com/","label":"Status"}]},"footer":{"socials":{"github":"https://github.com/enterspeedhq","linkedin":"https://www.linkedin.com/company/enterspeed","website":"https://www.enterspeed.com/","youtube":"https://www.youtube.com/@enterspeedhq"},"links":[{"header":"Company","items":[{"label":"Enterspeed","href":"https://www.enterspeed.com"},{"label":"Contact Us","href":"https://www.enterspeed.com/contact"},{"label":"Privacy Policy","href":"https://www.enterspeed.com/privacy-policy"}]},{"header":"Resources","items":[{"label":"Blog","href":"https://www.enterspeed.com/blog"},{"label":"Product Updates","href":"https://updates.enterspeed.com/"},{"label":"Newsletter Signup","href":"https://content.enterspeed.com/newsletter-signup"},{"label":"Privacy Policy","href":"https://www.enterspeed.com/privacy-policy"}]}]},"search":{"prompt":"Search docs"},"icons":{"library":"fontawesome"},"styling":{"eyebrows":"breadcrumbs","latex":false},"integrations":{"gtm":{"tagId":"GTM-N32R9R7"},"mixpanel":{"projectToken":"efb544fc5e5319cb4a082b0154e14df2","region":"eu"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode","download-spec"],"display":"header"},"interaction":{"drilldown":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"enterspeed","hasAudioNarration":false,"actualSubdomain":"enterspeed","customDomains":["docs.enterspeed.com"],"gitSource":{"type":"github","owner":"enterspeedhq","repo":"enterspeed-docs","deployBranch":"master","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"528dd4a1-f406-4d8f-a3a1-420ea5af8b77","liveDeploymentHistoryId":"6ae9c20c98ee2cfbfea836ef","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae9c20c98ee2cfbfea836ef"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae9c20c98ee2cfbfea836ef","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"Enterspeed","count":136},{"language":"default","tag":"Overview","count":46},{"language":"default","tag":"Integrations","count":43},{"language":"default","tag":"Source integrations","count":30},{"language":"default","tag":"Speedtrain","count":29},{"language":"default","tag":"Key concepts","count":23},{"language":"default","tag":"Umbraco","count":21},{"language":"default","tag":"Tutorials","count":20},{"language":"default","tag":"Schema reference","count":19},{"language":"default","tag":"Getting started","count":16}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":false}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".integration-logos .card img{background-color:#f0f3f7;border-radius:0.5rem;padding:0.75rem;box-sizing:border-box}.dark .integration-logos .card img{background-color:#000035}"}],"page":{"pagePath":"enterspeed/transform/designing-a-schema","slug":"/enterspeed/transform/designing-a-schema","pageMetadata":{"title":"Designing a schema","description":null,"href":"/enterspeed/transform/designing-a-schema"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,Info,OptimizedFrame,OptimizedImage,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!OptimizedFrame)_missingMdxReference(`OptimizedFrame`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Our schema can be divided into two areas: “Settings” and the actual data.`}),`\n`,_jsx(_components.p,{children:`In our settings, we define:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Which source groups and source entity types to use (`,_jsx(_components.code,{children:`triggers`}),`)`]}),`\n`,_jsx(_components.li,{children:`Set if the schema should be available via routes`}),`\n`,_jsx(_components.li,{children:`Set if actions should occur when the schema is processed.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`And in our data, we map our existing data to our new content. This is all done under the “properties”-object.`}),`\n`,_jsxs(Tip,{children:[_jsxs(_components.p,{children:[`When creating schemas, Enterspeed will automatically generate an alias in camel case based on the name you provide. You can set your own alias by clicking the lock to the left of the alias.`,_jsx(`br`,{}),_jsx(`br`,{})]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/enterspeed/U-p4hKh6hit1rd09/images/docs/transform/create-schema-with-custom-alias.png?fit=max\u0026auto=format\u0026n=U-p4hKh6hit1rd09\u0026q=85\u0026s=a4805d1889b000fb9a18e86e99e78396`,alt:`Deploy schema`,\"data-og-width\":`776`,width:`776`,\"data-og-height\":`359`,height:`359`,\"data-path\":`images/docs/transform/create-schema-with-custom-alias.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/enterspeed/U-p4hKh6hit1rd09/images/docs/transform/create-schema-with-custom-alias.png?w=280\u0026fit=max\u0026auto=format\u0026n=U-p4hKh6hit1rd09\u0026q=85\u0026s=3199c227d2829712eb7d4911a28dc1e2 280w, https://mintcdn.com/enterspeed/U-p4hKh6hit1rd09/images/docs/transform/create-schema-with-custom-alias.png?w=560\u0026fit=max\u0026auto=format\u0026n=U-p4hKh6hit1rd09\u0026q=85\u0026s=cccb5520b776d1b30ed492803932896d 560w, https://mintcdn.com/enterspeed/U-p4hKh6hit1rd09/images/docs/transform/create-schema-with-custom-alias.png?w=840\u0026fit=max\u0026auto=format\u0026n=U-p4hKh6hit1rd09\u0026q=85\u0026s=0c84285941baef034983a3086b654385 840w, https://mintcdn.com/enterspeed/U-p4hKh6hit1rd09/images/docs/transform/create-schema-with-custom-alias.png?w=1100\u0026fit=max\u0026auto=format\u0026n=U-p4hKh6hit1rd09\u0026q=85\u0026s=57428c836c2186b00ad0b54bbe04b8ec 1100w, https://mintcdn.com/enterspeed/U-p4hKh6hit1rd09/images/docs/transform/create-schema-with-custom-alias.png?w=1650\u0026fit=max\u0026auto=format\u0026n=U-p4hKh6hit1rd09\u0026q=85\u0026s=0ffcf21c25d0cbdf0d10881110ed345c 1650w, https://mintcdn.com/enterspeed/U-p4hKh6hit1rd09/images/docs/transform/create-schema-with-custom-alias.png?w=2500\u0026fit=max\u0026auto=format\u0026n=U-p4hKh6hit1rd09\u0026q=85\u0026s=986721864496aaac81aee31054d4d54b 2500w`})]}),`\n`,_jsx(Heading,{level:`2`,id:`configuring-the-settings`,children:`Configuring the settings`}),`\n`,_jsxs(_components.p,{children:[`The first thing you need to define is your `,_jsx(_components.strong,{children:`triggers`}),`. Triggers consist of one or more source groups, which contain one or more source entity types (the data your schema should use). You can find a list of all the Source Entity Types in the Source entities table in your Enterspeed-project under Type.`]}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`The Source entity types are fetched from your data source, e.g. your CMS.`})}),`\n`,_jsxs(_components.p,{children:[`Let’s have a look. Say we wish to use data from our Umbraco Cloud (`,_jsxs(_components.em,{children:[`alias: `,_jsx(_components.strong,{children:`umbracoCloud`})]}),`) source group which have the `,_jsx(_components.strong,{children:`contentPage`}),` type, we simply define it like this:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#C8C8C8`},children:`triggers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`triggers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'umbracoCloud'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'contentPage'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Next, we need to define how we can fetch the data. We do this under `,_jsx(_components.strong,{children:`routes`}),`. Fetching can be done by URL, Handle, and ID. In this example, we do it by URL.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`/** `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`@type`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` {Enterspeed.FullSchema}`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` */`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`export`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` default`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` triggers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`triggers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'umbracoCloud'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'contentPage'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` routes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`sourceEntity`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`sourceEntity`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`To keep this example simple, we’re not going to define any actions.`}),`\n`,_jsx(_components.p,{children:`Great, so we have defined our settings, where we chose which data our schema should use (triggers) and how we should be able to fetch it (routes).`}),`\n`,_jsx(Heading,{level:`2`,id:`defining-the-data`,children:`Defining the data`}),`\n`,_jsxs(_components.p,{children:[`Now it’s time to tie our existing data to our new content. We do this under `,_jsx(_components.strong,{children:`properties`}),`.`]}),`\n`,_jsx(_components.p,{children:`We can define as many properties as we wish. For this example, we are going to define just one: a title.`}),`\n`,_jsxs(_components.p,{children:[`First, we give our new property a name. Let’s simply call it `,_jsx(_components.strong,{children:`title`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Next, we need to set the `,_jsx(_components.strong,{children:`value`}),` for this property. We do this by mapping to the data we wish to use from our source entity type, which we defined under `,_jsx(_components.strong,{children:`triggers`}),` earlier.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Click the `,_jsx(_components.strong,{children:`Source entities`}),` button on the Schema page and click View next to the Source you want to use. Here you can see all the available data.`]})}),`\n`,_jsxs(_components.p,{children:[`The title we wish to use is called `,_jsx(_components.strong,{children:`pageTitle`}),` in the data source and is inside the `,_jsx(_components.strong,{children:`properties`}),`-object.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`/** `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`@type`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` {Enterspeed.FullSchema}`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` */`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`export`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` default`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` triggers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`triggers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'umbracoCloud'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'contentPage'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` routes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`sourceEntity`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`sourceEntity`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` properties`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`sourceEntity`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` title:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` sourceEntity`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`properties`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`pageTitle`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`deploying-and-testing-your-schema`,children:`Deploying and testing your schema`}),`\n`,_jsx(_components.p,{children:`Let’s deploy and test our new schema.`}),`\n`,_jsxs(_components.p,{children:[`Click on the `,_jsx(_components.em,{children:`Deploy schemas`}),`-button in the top right corner. This will open a pane where you can see current active deployments per environment and deploy changes to your desired environment.`]}),`\n`,_jsx(_components.p,{children:`You can now test your schema via Postman, Insomnia, etc.`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedFrame,{src:`https://www.youtube-nocookie.com/embed/3VfROMliTzs`,width:`100%`,height:`400`,frameBorder:`0`,allow:`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture`,allowFullScreen:true})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Designing a schema","description":null,"href":"/enterspeed/transform/designing-a-schema"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Configuring the settings","slug":"configuring-the-settings","depth":2,"children":[]},{"title":"Defining the data","slug":"defining-the-data","depth":2,"children":[]},{"title":"Deploying and testing your schema","slug":"deploying-and-testing-your-schema","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"enterspeed","siteName":"Enterspeed Docs","title":"Designing a schema - Enterspeed Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T06:29:13.841Z","originalFileLocation":"enterspeed/transform/designing-a-schema.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Enterspeed Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Designing a schema - Enterspeed Docs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Enterspeed Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.enterspeed.com/enterspeed/transform/designing-a-schema\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://enterspeed.mintlify.site/_mintlify/api/og/v2?division=2+-+Transforming+data\u0026amp;title=Designing+a+schema\u0026amp;theme=46924038ce8145a2b946a524\u0026amp;signature=375f58d0796a0f71d2b645bfe5585f912d6601077fcad6fefaa1308f90d8802a\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Designing a schema - Enterspeed Docs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://enterspeed.mintlify.site/_mintlify/api/og/v2?division=2+-+Transforming+data\u0026amp;title=Designing+a+schema\u0026amp;theme=46924038ce8145a2b946a524\u0026amp;signature=375f58d0796a0f71d2b645bfe5585f912d6601077fcad6fefaa1308f90d8802a\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Enterspeed Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0018ff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.enterspeed.com/enterspeed/transform/designing-a-schema\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/enterspeed/transform/designing-a-schema.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.enterspeed.com/#organization\",\"name\":\"Enterspeed Docs\",\"url\":\"https://docs.enterspeed.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/Enterspeed_Logo_RGB_Black.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=491f6b7030bd2783bc3e51bb7183237e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.enterspeed.com#website\",\"name\":\"Enterspeed Docs\",\"url\":\"https://docs.enterspeed.com\",\"publisher\":{\"@id\":\"https://docs.enterspeed.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.enterspeed.com/enterspeed/transform/designing-a-schema#webpage\",\"url\":\"https://docs.enterspeed.com/enterspeed/transform/designing-a-schema\",\"name\":\"Designing a schema\",\"dateModified\":\"2026-11-03T06:29:13.841Z\",\"isPartOf\":{\"@id\":\"https://docs.enterspeed.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.enterspeed.com/enterspeed/transform/designing-a-schema#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.enterspeed.com/enterspeed/transform/designing-a-schema#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Overview\",\"item\":\"https://docs.enterspeed.com/enterspeed/welcome\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Getting started\",\"item\":\"https://docs.enterspeed.com/enterspeed/getting-started/intro\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"2 - Transforming data\",\"item\":\"https://docs.enterspeed.com/enterspeed/transform/intro\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Designing a schema\",\"item\":\"https://docs.enterspeed.com/enterspeed/transform/designing-a-schema\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.enterspeed.com/enterspeed/transform/designing-a-schema#article\",\"headline\":\"Designing a schema\",\"name\":\"Designing a schema\",\"url\":\"https://docs.enterspeed.com/enterspeed/transform/designing-a-schema\",\"mainEntityOfPage\":{\"@id\":\"https://docs.enterspeed.com/enterspeed/transform/designing-a-schema#webpage\"},\"dateModified\":\"2026-11-03T06:29:13.841Z\",\"publisher\":{\"@id\":\"https://docs.enterspeed.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.enterspeed.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Enterspeed Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Enterspeed Docs","nav":{"global":null,"products":[{"product":"Enterspeed","icon":"gear-complex-api","description":"The data orchestration layer","pages":[{"group":"Overview","pages":[{"title":"Enterspeed Documentation","sidebarTitle":"Welcome","href":"/enterspeed/welcome"},{"group":"Getting started","pages":[{"group":"0 - Setup","pages":[{"title":"Intro","href":"/enterspeed/getting-started/intro"},{"title":"Setting up domains","href":"/enterspeed/getting-started/domains"},{"title":"Configuring environments","href":"/enterspeed/getting-started/environments"},{"title":"Using environment clients","href":"/enterspeed/getting-started/environment-clients"},{"title":"Adding data sources","href":"/enterspeed/getting-started/data-sources"}]},{"title":"1 - Ingesting data","href":"/enterspeed/ingest"},{"group":"2 - Transforming data","pages":[{"title":"2 - Transforming data","sidebarTitle":"Intro","description":null,"href":"/enterspeed/transform/intro"},{"title":"Designing a schema","href":"/enterspeed/transform/designing-a-schema"},{"title":"Schema versioning","sidebarTitle":"Versioning","description":null,"href":"/enterspeed/transform/schema-versioning"}]},{"title":"3 - Delivering data","href":"/enterspeed/deliver"}]},{"group":"Key concepts","pages":[{"title":"Overview","sidebarTitle":"Overview","href":"/enterspeed/key-concepts/overview"},{"title":"Schemas","sidebarTitle":"Schemas","href":"/enterspeed/key-concepts/schemas"},{"title":"Partial schemas","sidebarTitle":"Partial schemas","href":"/enterspeed/key-concepts/partial-schemas"},{"title":"Index schemas","sidebarTitle":"Index schemas","href":"/enterspeed/key-concepts/index-schemas"},{"title":"Referencing schemas","sidebarTitle":"Referencing schemas","href":"/enterspeed/key-concepts/referencing-schemas"},{"title":"Source Entities","sidebarTitle":"Source Entities","href":"/enterspeed/key-concepts/source-entities"},{"title":"Source Groups","sidebarTitle":"Source Groups","href":"/enterspeed/key-concepts/source-groups"},{"title":"Routing","sidebarTitle":"Routing","href":"/enterspeed/key-concepts/routing"},{"title":"Views","sidebarTitle":"Views","href":"/enterspeed/key-concepts/views"},{"title":"Redirects","sidebarTitle":"Redirects","href":"/enterspeed/key-concepts/redirects"},{"title":"Domains \u0026 hostnames","sidebarTitle":"Domains \u0026 hostnames","href":"/enterspeed/key-concepts/domains-hostnames"},{"title":"Reprocessing","sidebarTitle":"Reprocessing","href":"/enterspeed/key-concepts/reprocessing"}]},{"title":"User Login","href":"/enterspeed/user-login"},{"title":"Service Limits","href":"/enterspeed/service-limits"}]},{"group":"Schema reference","icon":"book-open-cover","pages":[{"group":"schemas","pages":[{"group":"JavaScript schemas","pages":[{"title":"Intro","href":"/enterspeed/reference/js/intro"},{"title":"JSDoc","href":"/enterspeed/reference/js/jsdoc"},{"group":"Full schema","pages":[{"title":"Intro","href":"/enterspeed/reference/js/full-schema/intro"},{"title":"Triggers","href":"/enterspeed/reference/js/full-schema/triggers"},{"title":"Properties","href":"/enterspeed/reference/js/full-schema/properties"},{"title":"Routes","href":"/enterspeed/reference/js/full-schema/routes"},{"title":"Actions","href":"/enterspeed/reference/js/full-schema/actions"}]},{"group":"Index schema","pages":[{"title":"Intro","href":"/enterspeed/reference/js/index-schema/intro"},{"title":"Triggers","href":"/enterspeed/reference/js/index-schema/triggers"},{"title":"Properties","href":"/enterspeed/reference/js/index-schema/properties"},{"title":"Index","href":"/enterspeed/reference/js/index-schema/index-method"}]},{"group":"Partial schema","pages":[{"title":"Intro","href":"/enterspeed/reference/js/partial-schema/intro"},{"title":"Properties","href":"/enterspeed/reference/js/partial-schema/properties"}]}]},{"group":"JSON schemas","tag":"Deprecated","pages":[{"title":"Property types","href":"/enterspeed/reference/json/property-types"},{"title":"Expression","href":"/enterspeed/reference/json/expression"},{"title":"Path selector","href":"/enterspeed/reference/json/path-selector"}]}]},{"title":"Filter Expressions","href":"/enterspeed/reference/filter-expressions"},{"group":"Schema example library","pages":[{"title":"Overview","href":"/enterspeed/reference/schema-example-library/overview"}]},{"title":"Organising your schemas","href":"/enterspeed/reference/folders"}]},{"group":"API","icon":"code","pages":[{"title":"Enterspeed API","sidebarTitle":"Overview","href":"/enterspeed/api/overview"},{"group":"Delivery","pages":[{"title":"Get content by URL, IDs, or handles","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml get /v2","href":"/api-reference/delivery/get-content-by-url-ids-or-handles"},{"title":"Get content by IDs, or handles","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /v2","href":"/api-reference/delivery/get-content-by-ids-or-handles"}]},{"group":"Ingest","pages":[{"title":"Save entity","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /ingest/v2/{originId}","href":"/api-reference/ingest/save-entity"},{"title":"Delete entity","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml delete /ingest/v2/{originId}","href":"/api-reference/ingest/delete-entity"},{"title":"Save entities","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /ingest/v2","href":"/api-reference/ingest/save-entities"},{"title":"Delete entities","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml delete /ingest/v2","href":"/api-reference/ingest/delete-entities"}]},{"group":"Routes","pages":[{"title":"Get Routes","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml get /routes/v1","href":"/api-reference/routes/get-routes"},{"title":"Get Routes v2","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml get /routes/v2","href":"/api-reference/routes/get-routes-v2"}]},{"group":"Query","pages":[{"title":"Query items","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /v1/{indexAlias}","href":"/api-reference/query/query-items"},{"title":"Multi query items","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /v1","href":"/api-reference/query/multi-query-items"},{"title":"Query items from Auto Indexing source groups","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /v1/sourceGroupAlias/{sourceGroupAlias}/type/{sourceEntityType}","href":"/api-reference/query/query-items-from-auto-indexing-source-groups"},{"title":"Multi query items from Auto Indexing source groups","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /v1/source","href":"/api-reference/query/multi-query-items-from-auto-indexing-source-groups"}]}]},{"group":"Integrations","icon":"plug","pages":[{"title":"Enterspeed Integrations","sidebarTitle":"Overview","href":"/enterspeed/integrations/overview"},{"group":"Source integrations","pages":[{"title":"Commercetools","href":"/enterspeed/integrations/commercetools"},{"title":"n8n","href":"/enterspeed/integrations/n8n"},{"group":"Umbraco","pages":[{"title":"Getting started","href":"/enterspeed/integrations/umbraco/getting-started"},{"title":"Getting data","href":"/enterspeed/integrations/umbraco/getting-data"},{"title":"Services","href":"/enterspeed/integrations/umbraco/services"},{"title":"Service registration","href":"/enterspeed/integrations/umbraco/service-registration"},{"title":"Value Converter","href":"/enterspeed/integrations/umbraco/enterspeed-value-converter"},{"title":"UmbracoContentEntity","href":"/enterspeed/integrations/umbraco/umbraco-content-entity"},{"title":"Additional properties","href":"/enterspeed/integrations/umbraco/additional-properties"},{"title":"Background tasks","href":"/enterspeed/integrations/umbraco/background-tasks"},{"title":"Content dashboard","href":"/enterspeed/integrations/umbraco/content-dashboard"},{"title":"Culture and hostnames","href":"/enterspeed/integrations/umbraco/culture-and-hostnames"},{"title":"Database","href":"/enterspeed/integrations/umbraco/database"},{"title":"Guards","href":"/enterspeed/integrations/umbraco/enterspeed-guards"},{"title":"Enterspeed Property Service","href":"/enterspeed/integrations/umbraco/enterspeed-propertys-service"},{"title":"Grid Editor Value Converters","href":"/enterspeed/integrations/umbraco/grid-editor-value-converters"},{"title":"Jobs","href":"/enterspeed/integrations/umbraco/jobs"},{"title":"Publishing","href":"/enterspeed/integrations/umbraco/publishing"},{"title":"Redirects","href":"/enterspeed/integrations/umbraco/redirects"},{"title":"Troubleshooting","href":"/enterspeed/integrations/umbraco/troubleshooting"},{"title":"Umbraco Cloud","href":"/enterspeed/integrations/umbraco/umbraco-cloud"},{"title":"Tagging in Umbraco","href":"/enterspeed/integrations/umbraco/umbraco-tagging"},{"title":"Updating package","href":"/enterspeed/integrations/umbraco/updating-package"}]},{"title":"Umbraco \u0026 Cloudinary","href":"/enterspeed/integrations/umbraco-cloudinary"},{"group":"Sitecore","pages":[{"title":"Getting started","href":"/enterspeed/integrations/sitecore/getting-started"},{"title":"Getting data","href":"/enterspeed/integrations/sitecore/getting-data"},{"title":"Services","href":"/enterspeed/integrations/sitecore/services"},{"title":"Processed entities","href":"/enterspeed/integrations/sitecore/processed-entities"},{"title":"SitecoreContentEntity","href":"/enterspeed/integrations/sitecore/sitecorecontententity"},{"title":"Field Value Converter","href":"/enterspeed/integrations/sitecore/enterspeed-value-converter"}]}]},{"group":"Destination integrations","pages":[{"group":"Configuration","pages":[{"title":"Skip unchanged views and resend","sidebarTitle":"Skip unchanged views","href":"/enterspeed/integrations/skip-unchanged-views"}]},{"title":"Webhooks","href":"/enterspeed/integrations/webhooks"},{"title":"Algolia","href":"/enterspeed/integrations/algolia"},{"title":"Clerk.io","href":"/enterspeed/integrations/clerk"},{"title":"Elastic App Search","href":"/enterspeed/integrations/elastic-app-search"},{"title":"Elasticsearch","href":"/enterspeed/integrations/elasticsearch"},{"title":"Enterspeed Ingest","href":"/enterspeed/integrations/ingest"},{"title":"Relewise","href":"/enterspeed/integrations/relewise"},{"title":"Azure Service Bus","href":"/enterspeed/integrations/servicebus"},{"title":"Shopify","href":"/enterspeed/integrations/shopify"},{"title":"Speedtrain","href":"/enterspeed/integrations/speedtrain"},{"title":"Typesense","href":"/enterspeed/integrations/typesense"}]}]},{"group":"Tutorials","icon":"graduation-cap","pages":[{"title":"Tutorials","sidebarTitle":"Overview","href":"/enterspeed/tutorials/overview"},{"group":"Creating a simple site","pages":[{"title":"Intro","href":"/enterspeed/tutorials/creating-a-simple-site/intro"},{"title":"1. Sources \u0026 Environments","href":"/enterspeed/tutorials/creating-a-simple-site/1-sources-environments"},{"title":"2. Ingesting data","href":"/enterspeed/tutorials/creating-a-simple-site/2-ingesting-data"},{"title":"3. Designing your APIs","href":"/enterspeed/tutorials/creating-a-simple-site/3-designing-your-apis"},{"title":"4. Fetching data","href":"/enterspeed/tutorials/creating-a-simple-site/4-fetching-data"}]},{"group":"Multilevel navigation","pages":[{"title":"1. Getting started","href":"/enterspeed/tutorials/multilevel-navigation/1-getting-started"},{"title":"2. Create schemas","href":"/enterspeed/tutorials/multilevel-navigation/2-create-schemas"},{"title":"3. Going further","href":"/enterspeed/tutorials/multilevel-navigation/3-going-further"},{"title":"4. Wrap up","href":"/enterspeed/tutorials/multilevel-navigation/4-wrap-up"}]},{"group":"Umbraco and Next.js","pages":[{"title":"Intro","href":"/enterspeed/tutorials/umbraco-nextjs/intro"},{"title":"1. Sources \u0026 Environments","href":"/enterspeed/tutorials/umbraco-nextjs/1-sources-environments"},{"title":"2. Configuring Umbraco","href":"/enterspeed/tutorials/umbraco-nextjs/2-configuring-umbraco"},{"title":"3. Designing your APIs","href":"/enterspeed/tutorials/umbraco-nextjs/3-designing-your-apis"},{"title":"4. Fetching data in Next.js","href":"/enterspeed/tutorials/umbraco-nextjs/4-fetching-data-in-nextjs"}]},{"group":"Product list (CMS + PIM)","pages":[{"title":"1. Getting started","href":"/enterspeed/tutorials/product-list-cms-pim/1-getting-started"},{"title":"2. Data sources and environment","href":"/enterspeed/tutorials/product-list-cms-pim/2-data-sources-environment"},{"title":"3. Ingest data","href":"/enterspeed/tutorials/product-list-cms-pim/3-ingest-data"},{"title":"4. Create schemas","href":"/enterspeed/tutorials/product-list-cms-pim/4-create-schemas"},{"title":"5. Wrap up","href":"/enterspeed/tutorials/product-list-cms-pim/5-wrap-up"}]}]},{"group":"Best practices","icon":"compass","pages":[{"title":"Overview","href":"/enterspeed/best-practices/overview"},{"title":"Ingest integrations","href":"/enterspeed/best-practices/ingest-integrations"},{"title":"Schemas","href":"/enterspeed/best-practices/schemas"},{"title":"Indexes","href":"/enterspeed/best-practices/indexes"}]},{"group":"CLI","icon":"terminal","pages":[{"title":"Overview","href":"/enterspeed/tooling/cli/overview"},{"title":"Getting started","href":"/enterspeed/tooling/cli/getting-started"},{"title":"Keep schemas in version control","href":"/enterspeed/tooling/cli/keep-schemas-in-version-control"},{"title":"Continuous Deployment","href":"/enterspeed/tooling/cli/continuous-deployment"},{"title":"Developer setup","href":"/enterspeed/tooling/cli/developer-setup"}]},{"group":"MCP server","icon":"plug","pages":[{"title":"Overview","href":"/enterspeed/mcp-server/overview"},{"title":"Documentation MCP","href":"/enterspeed/mcp-server/documentation-mcp/overview"},{"group":"Query MCP","pages":[{"title":"Overview","href":"/enterspeed/mcp-server/query-mcp/overview"},{"title":"Connecting an agent","href":"/enterspeed/mcp-server/query-mcp/connecting-an-agent"},{"title":"Connecting a client","href":"/enterspeed/mcp-server/query-mcp/connecting-a-client"}]},{"group":"Management MCP","pages":[{"title":"Overview","href":"/enterspeed/mcp-server/management-mcp/overview"},{"title":"Tools","href":"/enterspeed/mcp-server/management-mcp/tools"}]}]}]},{"product":"Speedtrain","icon":"microchip-ai","description":"Governed AI content enrichment","pages":[{"title":"Speedtrain","href":"/speedtrain/intro"}]}]},"basePath":"","title":"Designing a schema - Enterspeed Docs","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":["a74be98ba7","07c022d89b"],"chunks":["zoom-image-lightbox-CLQdF-Ar.js","lightbox-handle-r17bVUz3.js","Frame-CK6QbnxT.js","DynamicMarkdown-BKiHAm_d.js"]}