A grid editor value converter is a class that will convert the input value from an Umbraco grid editor into an IEnterspeedProperty.To implement your own converter you need to implement the IEnterspeedGridEditorValueConverter interfaceIf no converter is registered for the grid editor, the DefaultGridLayoutPropertyValueConverter will tryto convert it into an IEnterspeedProprety automatically, by looking at the types.
This method is called when the EnterspeedGridEditorService tries to find the correct converter for this grid editor.An implementation of this method could look like this:
public bool IsConverter(string alias){ return alias.InvariantEquals("rte");}
Converters are registered in Umbraco via an IComposer.Umbraco 9+
public class MyCustomerGridEditorValueConverterComposer : IComposer{ public void Compose(IUmbracoBuilder builder) { builder.EnterspeedGridEditorValueConverters() .Append<MyCustomGridEditorValueConverter>(); }}
Umbraco 8
[RuntimeLevel(MinLevel = RuntimeLevel.Run)]public class MyCustomerGridEditorValueConverterComposer : IUserComposer{ composition.EnterspeedGridEditorValueConverters() .Append<MyCustomGridEditorValueConverter>();}
Note that the EnterspeedGridEditorService will find the converters in the order that they are registered, which means that, if you want to replace a default converter with your own, you need to insert your converter like this:Umbraco 9+
public class MyCustomerPropertyValueConverterComposer : IComposer{ public void Compose(IUmbracoBuilder builder) { builder.EnterspeedGridEditorValueConverters() .InsertBefore<DefaultRichTextEditorGridEditorValueConverter, MyCustomGridEditorValueConverter>(); }}
Umbraco 8
[RuntimeLevel(MinLevel = RuntimeLevel.Run)]public class MyCustomerPropertyValueConverterComposer : IUserComposer{ composition.EnterspeedGridEditorValueConverters() .InsertBefore<DefaultRichTextEditorGridEditorValueConverter, MyCustomGridEditorValueConverter>();}
{"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.4067","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":[],"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/integrations/umbraco/grid-editor-value-converters","slug":"/enterspeed/integrations/umbraco/grid-editor-value-converters","pageMetadata":{"title":"Grid Editor Value Converters","description":null,"href":"/enterspeed/integrations/umbraco/grid-editor-value-converters"},"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={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`enterspeed-grid-editor-value-converters`,children:`Enterspeed Grid Editor Value Converters`}),`\n`,_jsxs(_components.p,{children:[`A grid editor value converter is a class that will convert the input value from an Umbraco grid editor into an `,_jsx(_components.a,{href:`https://github.com/enterspeedhq/enterspeed-sdk-dotnet/tree/master/documentation/entities/properties`,children:`IEnterspeedProperty`}),`.`]}),`\n`,_jsx(_components.p,{children:`To implement your own converter you need to implement the IEnterspeedGridEditorValueConverter interface`}),`\n`,_jsx(_components.p,{children:`If no converter is registered for the grid editor, the DefaultGridLayoutPropertyValueConverter will try`}),`\n`,_jsx(_components.p,{children:`to convert it into an IEnterspeedProprety automatically, by looking at the types.`}),`\n`,_jsx(Heading,{level:`2`,id:`ienterspeedgrideditorvalueconverter`,children:`IEnterspeedGridEditorValueConverter`}),`\n`,_jsx(_components.p,{children:`This interface contains two methods that need to be implemented`}),`\n`,_jsx(Heading,{level:`3`,id:`isconverter`,children:`IsConverter`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`csharp`,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:`csharp`,children:_jsxs(_components.code,{language:`csharp`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`bool`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` IsConverter`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` alias`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`This method is called when the EnterspeedGridEditorService tries to find the correct converter for this grid editor.`}),`\n`,_jsx(_components.p,{children:`An implementation of this method could look like this:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`csharp`,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:`csharp`,children:_jsxs(_components.code,{language:`csharp`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` bool`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` IsConverter`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` alias`}),_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`,_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\":`#9CDCFE`},children:` alias`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`InvariantEquals`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"rte\"`}),_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`,_jsx(Heading,{level:`3`,id:`convert`,children:`Convert`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`csharp`,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:`csharp`,children:_jsxs(_components.code,{language:`csharp`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`IEnterspeedProperty`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Convert`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`GridControl`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` editor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` culture`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`This is the method that is converting the Umbraco grid editor to an IEnterspeedProperty.`}),`\n`,_jsx(_components.p,{children:`An implementation of this method could look like this:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`csharp`,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:`csharp`,children:_jsxs(_components.code,{language:`csharp`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`public`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` IEnterspeedProperty`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Convert`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`GridControl`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` editor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` culture`}),_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`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` StringEnterspeedProperty`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`editor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`ToString`}),_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`,_jsx(Heading,{level:`2`,id:`registering-a-converter`,children:`Registering a converter`}),`\n`,_jsxs(_components.p,{children:[`Converters are registered in Umbraco via an `,_jsx(_components.a,{href:`https://our.umbraco.com/documentation/implementation/composing/`,children:`IComposer`}),`.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Umbraco 9+`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`csharp`,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:`csharp`,children:_jsxs(_components.code,{language:`csharp`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` class`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` MyCustomerGridEditorValueConverterComposer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` : `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`IComposer`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_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\":`#569CD6`},children:` public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` void`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Compose`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`IUmbracoBuilder`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` builder`}),_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`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` builder`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`EnterspeedGridEditorValueConverters`}),_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:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Append`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`MyCustomGridEditorValueConverter`}),_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:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Umbraco 8`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`csharp`,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:`csharp`,children:_jsxs(_components.code,{language:`csharp`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`RuntimeLevel`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`MinLevel`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` RuntimeLevel`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Run`}),_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\":`#569CD6`},children:`public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` class`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` MyCustomerGridEditorValueConverterComposer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` : `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`IUserComposer`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_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:` composition.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`EnterspeedGridEditorValueConverters`}),_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:` .Append\u003cMyCustomGridEditorValueConverter>();`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Note that the EnterspeedGridEditorService will find the converters in the order that they are registered, which means that, if you want to replace a default converter with your own, you need to insert your converter like this:`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Umbraco 9+`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`csharp`,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:`csharp`,children:_jsxs(_components.code,{language:`csharp`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` class`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` MyCustomerPropertyValueConverterComposer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` : `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`IComposer`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_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\":`#569CD6`},children:` public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` void`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Compose`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`IUmbracoBuilder`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` builder`}),_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`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` builder`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`EnterspeedGridEditorValueConverters`}),_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:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`InsertBefore`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`DefaultRichTextEditorGridEditorValueConverter`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`MyCustomGridEditorValueConverter`}),_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:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Umbraco 8`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`csharp`,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:`csharp`,children:_jsxs(_components.code,{language:`csharp`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`RuntimeLevel`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`MinLevel`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` RuntimeLevel`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Run`}),_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\":`#569CD6`},children:`public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` class`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` MyCustomerPropertyValueConverterComposer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` : `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`IUserComposer`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_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:` composition.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`EnterspeedGridEditorValueConverters`}),_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:` .InsertBefore\u003cDefaultRichTextEditorGridEditorValueConverter, MyCustomGridEditorValueConverter>();`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`default-converters`,children:`Default converters`}),`\n`,_jsxs(_components.p,{children:[`Enterspeed ships with `,_jsx(_components.a,{href:`https://github.com/enterspeedhq/enterspeed-source-umbraco-cms/tree/master/documentation/enterspeed-value-converters/grid-editor-value-converters/defaults`,children:`default grid editor value converters`}),` for some of the built-in grid editors that Umbraco ships with out of the box.`]})]})}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":"Grid Editor Value Converters","description":null,"href":"/enterspeed/integrations/umbraco/grid-editor-value-converters"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Enterspeed Grid Editor Value Converters","slug":"enterspeed-grid-editor-value-converters","depth":1,"children":[]},{"title":"IEnterspeedGridEditorValueConverter","slug":"ienterspeedgrideditorvalueconverter","depth":2,"children":[{"title":"IsConverter","slug":"isconverter","depth":3,"children":[]},{"title":"Convert","slug":"convert","depth":3,"children":[]}]},{"title":"Registering a converter","slug":"registering-a-converter","depth":2,"children":[]},{"title":"Default converters","slug":"default-converters","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"enterspeed","siteName":"Enterspeed Docs","title":"Grid Editor Value Converters - Enterspeed Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T06:29:14.223Z","originalFileLocation":"enterspeed/integrations/umbraco/grid-editor-value-converters.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=\"Grid Editor Value Converters - 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/integrations/umbraco/grid-editor-value-converters\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://enterspeed.mintlify.app/_mintlify/api/og/v2?division=Umbraco\u0026amp;title=Grid+Editor+Value+Converters\u0026amp;theme=46924038ce8145a2b946a524\u0026amp;signature=8e28c0dd0118904ed0488c06cca9def5329a8eec45f062e5f2d43b77e97535ca\">\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=\"Grid Editor Value Converters - Enterspeed Docs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://enterspeed.mintlify.app/_mintlify/api/og/v2?division=Umbraco\u0026amp;title=Grid+Editor+Value+Converters\u0026amp;theme=46924038ce8145a2b946a524\u0026amp;signature=8e28c0dd0118904ed0488c06cca9def5329a8eec45f062e5f2d43b77e97535ca\">\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/integrations/umbraco/grid-editor-value-converters\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/enterspeed/integrations/umbraco/grid-editor-value-converters.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/integrations/umbraco/grid-editor-value-converters#webpage\",\"url\":\"https://docs.enterspeed.com/enterspeed/integrations/umbraco/grid-editor-value-converters\",\"name\":\"Grid Editor Value Converters\",\"dateModified\":\"2026-11-03T06:29:14.223Z\",\"isPartOf\":{\"@id\":\"https://docs.enterspeed.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.enterspeed.com/enterspeed/integrations/umbraco/grid-editor-value-converters#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.enterspeed.com/enterspeed/integrations/umbraco/grid-editor-value-converters#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Integrations\",\"item\":\"https://docs.enterspeed.com/enterspeed/integrations/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Source integrations\",\"item\":\"https://docs.enterspeed.com/enterspeed/integrations/commercetools\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Umbraco\",\"item\":\"https://docs.enterspeed.com/enterspeed/integrations/umbraco/getting-started\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Grid Editor Value Converters\",\"item\":\"https://docs.enterspeed.com/enterspeed/integrations/umbraco/grid-editor-value-converters\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.enterspeed.com/enterspeed/integrations/umbraco/grid-editor-value-converters#article\",\"headline\":\"Grid Editor Value Converters\",\"name\":\"Grid Editor Value Converters\",\"url\":\"https://docs.enterspeed.com/enterspeed/integrations/umbraco/grid-editor-value-converters\",\"mainEntityOfPage\":{\"@id\":\"https://docs.enterspeed.com/enterspeed/integrations/umbraco/grid-editor-value-converters#webpage\"},\"dateModified\":\"2026-11-03T06:29:14.223Z\",\"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","href":"/enterspeed/transform/intro"},{"title":"Designing a schema","href":"/enterspeed/transform/designing-a-schema"},{"title":"Schema versioning","sidebarTitle":"Versioning","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","description":null,"href":"/enterspeed/integrations/umbraco/enterspeed-propertys-service"},{"title":"Grid Editor Value Converters","href":"/enterspeed/integrations/umbraco/grid-editor-value-converters"},{"title":"Jobs","description":null,"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":"Grid Editor Value Converters - Enterspeed Docs","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":[],"chunks":[]}