Derive powerful insights into costs and user behaviors using custom properties in Helicone. Learn to track environments, user types, and more.
Use Custom Properties to segment your data and derive meaningful insights. This feature can help you understand the costs and behavior of different user groups, and gain other insights to help inform strategic decisions and optimizations.Here are some methods that we recommend for data segmentation:
Use Case 1
Tracking Environments
Use Case 2
User Segmentation
Use Case 3
Advanced Segmentation
If you have other use cases, we’d love to know! Send us an
email or schedule a
call with us.
Organizations use Custom Properties to track different environments (i.e. development, staging, and production). To distinguish between these environments, you can create a Helicone-Property-Environment property.
A common method of data segmentation is by user type. For example, you might want to distinguish between paying and free users to understand their behaviors and costs.
You can create highly detailed segment by adding even more custom properties. For example, you may segment users further by plan and Job ID. There are no limits on the number of custom properties you can add.
Segmented data can provide you with invaluable insights. For example, you might discover that your free users are using the spellcheck feature more than your paid users. This could signal an opportunity to market this feature more aggressively within your premium plans.
You can refine your segments further by incorporating other properties. The more detailed your segments, the more accurate insights you can derive. Here are some examples:
Location: Helicone-Property-Location
Device type: Helicone-Property-Device-Type
Use activity level: Helicone-Property-Activity-Level
Remember, the key is to select properties that best align with your objectives and that will yield valuable insights upon analysis.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Helicone OSS LLM Observability","colors":{"primary":"#0CA5E9","light":"#0CA5E9","dark":"#0CA5E9"},"logo":{"light":"https://mintcdn.com/helicone/H0xDJmuTzfSrq5RW/logo/light.png?fit=max\u0026auto=format\u0026n=H0xDJmuTzfSrq5RW\u0026q=85\u0026s=748e5ab8e134752664c5847901a2cb8c","dark":"https://mintcdn.com/helicone/ktsfjvmR-7Ek3jBs/logo/dark.svg?fit=max\u0026auto=format\u0026n=ktsfjvmR-7Ek3jBs\u0026q=85\u0026s=f314847a2d2d458bc4725e80a5ff0c75"},"favicon":"https://mintcdn.com/helicone/uGUq-phGm2BuL59s/favicon.svg?fit=max\u0026auto=format\u0026n=uGUq-phGm2BuL59s\u0026q=85\u0026s=4fbb91a7620064003994e235f99335e1","api":{"openapi":["swagger.json","ai-gateway.openapi.json"]},"appearance":{"default":"light"},"navbar":{"links":[{"href":"https://helicone.ai/models","label":"Models"},{"href":"https://discord.com/invite/zsSTcH2qhG","label":"Discord"},{"href":"https://github.com/Helicone/helicone","label":"Github"}],"primary":{"type":"button","label":"Dashboard","href":"https://us.helicone.ai/#:~:text=Discord-,Sign,-In"}},"footer":{"socials":{"twitter":"https://twitter.com/helicone_ai","linkedin":"https://www.linkedin.com/company/helicone/about","github":"https://github.com/Helicone/helicone","discord":"https://discord.com/invite/zsSTcH2qhG"}},"seo":{"metatags":{"og:site_name":"Helicone OSS LLM Observability","og:image":"/favicon.svg","twitter:site":"@helicone_ai","twitter:image":"/favicon.svg"},"indexing":"navigable"},"integrations":{"koala":{"publicApiKey":"pk_28dd6b0bb95629a42e92bd526a1234a9fc79"},"posthog":{"apiKey":"phc_jeluwNoJNpc7zEzkQrPbjyMOqdnJQjFAVr849LaEaPG"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"helicone","actualSubdomain":"helicone","customDomains":["docs.helicone.ai"],"gitSource":{"type":"github","owner":"helicone","repo":"helicone","deployBranch":"main","contentDirectory":"docs","mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a9503834e25ee4c8efaab1b","collectionId":"7da6ed8d-fff1-476b-8c52-a246522476b7","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a9503834e25ee4c8efaab1b"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a9503834e25ee4c8efaab1b","clientVersion":"0.0.3675","searchFilterCounts":[{"language":"default","tag":"Documentation","count":131},{"language":"default","tag":"Legacy Integrations","count":65},{"language":"default","tag":"Guides","count":62},{"language":"default","tag":"Provider-Specific","count":50},{"language":"default","tag":"API Reference","count":49},{"language":"default","tag":"AI Gateway","count":30},{"language":"default","tag":"Prompts","count":19},{"language":"default","tag":"Observability \u0026 Analytics","count":18},{"language":"default","tag":"References","count":15},{"language":"default","tag":"How-to Guides","count":15}]},"assistantConfig":{"deflection":{"enabled":true,"email":"support@helicone.ai","showHelpButton":true}},"hasChatPermissions":false,"hasWebMcpPermissions":false,"isAtlas":false},"customCss":[],"page":{"pagePath":"guides/cookbooks/segmentation","slug":"/guides/cookbooks/segmentation","pageMetadata":{"title":"Using Custom Properties to Segment Data","sidebarTitle":"Segmenting Data","description":"Derive powerful insights into costs and user behaviors using custom properties in Helicone. Learn to track environments, user types, and more.","twitter:title":"Using Custom Properties to Segment Data - Helicone OSS LLM Observability","href":"/guides/cookbooks/segmentation"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Derive powerful insights into costs and user behaviors using custom properties in Helicone. Learn to track environments, user types, and more.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"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`,hr:`hr`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,Card,CardGroup,CodeBlock,Frame,Heading,Note,OptimizedImage,Step,Steps,Tip}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Use `,_jsx(_components.a,{href:`features/advanced-usage/custom-properties`,children:`Custom Properties`}),` to segment your data and derive meaningful insights. This feature can help you understand the costs and behavior of different user groups, and gain other insights to help inform strategic decisions and optimizations.`]}),`\n`,_jsx(_components.p,{children:`Here are some methods that we recommend for data segmentation:`}),`\n`,_jsxs(CardGroup,{cols:3,children:[_jsx(Card,{title:`Use Case 1`,href:`/use-cases/segmentation#use-case-1-tracking-environments`,children:_jsx(_components.p,{children:`Tracking Environments`})}),_jsx(Card,{title:`Use Case 2`,href:`/use-cases/segmentation#use-case-2-user-segmentation`,children:_jsx(_components.p,{children:`User Segmentation`})}),_jsx(Card,{title:`Use Case 3`,href:`/use-cases/segmentation#use-case-3-advanced-segmentation`,children:_jsx(_components.p,{children:`Advanced Segmentation`})})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`If you have other use cases, we’d love to know! Send us an\n`,_jsx(_components.a,{href:`mailto:help@helicone.ai`,children:`email`}),` or `,_jsx(_components.a,{href:`https://cal.com/team/helicone/helicone-discovery`,children:`schedule a\ncall`}),` with us.`,` `]})}),`\n`,_jsx(Heading,{level:`2`,id:`use-case-1-tracking-environments`,children:`Use Case 1: Tracking Environments`}),`\n`,_jsxs(_components.p,{children:[`Organizations use `,_jsx(_components.strong,{children:`Custom Properties`}),` to track different environments (i.e. development, staging, and production). To distinguish between these environments, you can create a `,_jsx(_components.code,{children:`Helicone-Property-Environment`}),` property.`]}),`\n`,_jsx(Heading,{level:`3`,id:`quick-start`,children:`Quick Start`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Add the 'Environment' property and assign a value.`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`python`,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:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.chat.completions.create(`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # ...`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` extra_headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Helicone-Property-Environment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"development\"`}),_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`]})})})}),_jsxs(Step,{title:`Send a request.`,children:[_jsxs(_components.p,{children:[`You will then see the `,_jsx(_components.code,{children:`Environment`}),` property appear in the Requests page.`]}),_jsx(Frame,{caption:`In this example, we now have a property called 'environment'.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/2.png?fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=1d3159bb47d3190be39702b8384f8706`,alt:`Example of the Helicone Requests page showing a custom property named 'environment'.`,\"data-og-width\":`2598`,width:`2598`,\"data-og-height\":`862`,height:`862`,\"data-path\":`images/environment-cp/2.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/2.png?w=280\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=32873b9c1197d1eab91dacfe2d6cdd89 280w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/2.png?w=560\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=e1c21c3eadfe7c38a73ad4e89be335fb 560w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/2.png?w=840\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=cf955b555a465829c415b78109950b5e 840w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/2.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=7f51c7786d7bd277e8dfef053a26cc4b 1100w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/2.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=403d5e873b2b9de9167a73faabe5cc9e 1650w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/2.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=5708fc8bac76b8b22e5f8f48c6fb17ea 2500w`})}),_jsxs(_components.p,{children:[`You can choose to hide the custom property by deselecting it under `,_jsx(_components.code,{children:`Columns`}),`.`]}),_jsx(Frame,{caption:`You can modify other properties in a similar manner.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/cp-1.png?fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=6ffd661c71f017b4def4ea912877564b`,alt:`Example of modifying Helicone's interface to show or hide a custom property.`,\"data-og-width\":`940`,width:`940`,\"data-og-height\":`602`,height:`602`,\"data-path\":`images/environment-cp/cp-1.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/cp-1.png?w=280\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=674a9273dd2865feeebdac4d25448167 280w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/cp-1.png?w=560\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=4e33b178f4b5257b9528fa24383ca46f 560w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/cp-1.png?w=840\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=952e60ba0931e68be9deb3062c938a84 840w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/cp-1.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=da516c04fd0d2aa0eb95770d7631e71c 1100w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/cp-1.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=70f5e6918a91b01a546d493303ddde3f 1650w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/cp-1.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=e996c395351d4936ed1c1b3ceb25cfa3 2500w`})})]}),_jsx(Step,{title:`Filter by custom properties`,children:_jsx(Frame,{caption:`Filter all requests labelled as 'development'.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/3.png?fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=9143d8168897517e7d2e63893784ea75`,alt:`Example of filtering requests labeled 'development' in Helicone.`,\"data-og-width\":`1546`,width:`1546`,\"data-og-height\":`474`,height:`474`,\"data-path\":`images/environment-cp/3.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/3.png?w=280\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=e4464aa886696af4322bb8fbd828610f 280w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/3.png?w=560\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=a895f5ce35f3cbeace212ee2c8ed444f 560w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/3.png?w=840\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=11cb5ca350d70799a0b13f043b89c90d 840w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/3.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=256747e9beb9b01b2fd57cb79ec743af 1100w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/3.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=75e2da200bf7e3e9e051272b723050c0 1650w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/3.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=b170d2be548455d5f641bd9831421534 2500w`})})}),_jsxs(Step,{title:_jsx(_Fragment,{children:`View metrics associated with a custom property.`}),children:[_jsxs(_components.p,{children:[`Go to the `,_jsx(_components.code,{children:`Properties`}),` page, and select `,_jsx(_components.code,{children:`Environment`}),`. You will see metrics associated with this custom property.`]}),_jsx(Frame,{caption:\"View total costs, requests and average latency for `Environment'.\",children:_jsx(OptimizedImage,{src:`https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/4.png?fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=bf69f742bec0aafed4a2cb3d72b7cdec`,alt:`Viewing metrics associated with the 'Environment' custom property on Helicone's Properties page.`,\"data-og-width\":`3376`,width:`3376`,\"data-og-height\":`1892`,height:`1892`,\"data-path\":`images/environment-cp/4.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/4.png?w=280\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=194a55a0314a6f656f0f8817a6f3c55a 280w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/4.png?w=560\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=12c9737b7fe91e44f4a741e8f2000d2a 560w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/4.png?w=840\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=35d176f7ebad5260f606504954b283ae 840w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/4.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=ee3b86d49fb31c3f6b8632cde8990c48 1100w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/4.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=d3d535cdad7b23e649c3ec9a08d95141 1650w, https://mintcdn.com/helicone/tEQUFyBH7IjDxuEd/images/environment-cp/4.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tEQUFyBH7IjDxuEd\u0026q=85\u0026s=7310f903225fa6b6518ff05f2825affc 2500w`})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`use-case-2-user-segmentation`,children:`Use Case 2: User Segmentation`}),`\n`,_jsxs(_components.p,{children:[`A common method of data segmentation is by `,_jsx(_components.code,{children:`user type`}),`. For example, you might want to distinguish between `,_jsx(_components.strong,{children:`paying`}),` and `,_jsx(_components.strong,{children:`free`}),` users to understand their behaviors and costs.`]}),`\n`,_jsx(Heading,{level:`3`,id:`quick-start-2`,children:`Quick Start`}),`\n`,_jsxs(_components.p,{children:[`To do this, create a `,_jsx(_components.code,{children:`user_type`}),` custom property and assign either `,_jsx(_components.strong,{children:`“paid”`}),` or `,_jsx(_components.strong,{children:`“free”`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`python`,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:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.chat.completions.create(`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # ...`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` extra_headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Helicone-Property-User-Type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"free\"`}),_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:`Then, you can filter by paid/free users, or view associated metrics in the same way.`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Data segmentation can become powerful when you combine it with other\nproperties.`,` `]})}),`\n`,_jsx(Heading,{level:`3`,id:`further-segmentation`,children:`Further Segmentation`}),`\n`,_jsxs(_components.p,{children:[`Suppose you want to understand the behavior of paying users when they use a specific feature (i.e. spellcheck). You can add a `,_jsx(_components.code,{children:`Feature`}),` custom property.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`python`,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:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.chat.completions.create(`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # ...`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` extra_headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Helicone-Property-User-Type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"paid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Helicone-Property-Feature\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"spellcheck\"`}),_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`,_jsxs(_components.p,{children:[`You can create highly detailed segment by adding even more custom properties. For example, you may segment users further by `,_jsx(_components.code,{children:`plan`}),` and `,_jsx(_components.code,{children:`Job ID`}),`. There are no limits on the number of custom properties you can add.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`python`,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:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.chat.completions.create(`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # ...`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` extra_headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Helicone-Property-User-Type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"paid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Helicone-Property-Feature\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"spellcheck\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Helicone-Property-Plan\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"enterprise\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Helicone-Property-Job-UUID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1234-5678-9012-3456\"`}),_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(Heading,{level:`3`,id:`analyzing-segmented-data`,children:`Analyzing Segmented Data`}),`\n`,_jsx(_components.p,{children:`Segmented data can provide you with invaluable insights. For example, you might discover that your free users are using the spellcheck feature more than your paid users. This could signal an opportunity to market this feature more aggressively within your premium plans.`}),`\n`,_jsx(Heading,{level:`2`,id:`use-case-3-advanced-segmentation`,children:`Use Case 3: Advanced Segmentation`}),`\n`,_jsx(_components.p,{children:`You can refine your segments further by incorporating other properties. The more detailed your segments, the more accurate insights you can derive. Here are some examples:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Location: `,_jsx(_components.code,{children:`Helicone-Property-Location`})]}),`\n`,_jsxs(_components.li,{children:[`Device type: `,_jsx(_components.code,{children:`Helicone-Property-Device-Type`})]}),`\n`,_jsxs(_components.li,{children:[`Use activity level: `,_jsx(_components.code,{children:`Helicone-Property-Activity-Level`})]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Remember, the key is to select properties that best align with your objectives and that will yield valuable insights upon analysis.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Accordion,{title:`Need more help?`,id:`need-more-help`,children:_jsxs(_components.p,{children:[`Additional questions or feedback? Reach out to\n`,_jsx(_components.a,{href:`mailto:help@helicone.ai`,children:`help@helicone.ai`}),` or `,_jsx(_components.a,{href:`https://cal.com/team/helicone/helicone-discovery`,children:`schedule a\ncall`}),` with us.`]})})]})}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":"Using Custom Properties to Segment Data","sidebarTitle":"Segmenting Data","description":"Derive powerful insights into costs and user behaviors using custom properties in Helicone. Learn to track environments, user types, and more.","twitter:title":"Using Custom Properties to Segment Data - Helicone OSS LLM Observability","href":"/guides/cookbooks/segmentation"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[2259,2263,""],[14155,14197,"(_components.p,{children:`Data segmentat"],[14264,14269,""]]},"mdxExtracts":{"tableOfContents":[{"title":"Use Case 1: Tracking Environments","slug":"use-case-1-tracking-environments","depth":2,"children":[{"title":"Quick Start","slug":"quick-start","depth":3,"children":[]}]},{"title":"Use Case 2: User Segmentation","slug":"use-case-2-user-segmentation","depth":2,"children":[{"title":"Quick Start","slug":"quick-start-2","depth":3,"children":[]},{"title":"Further Segmentation","slug":"further-segmentation","depth":3,"children":[]},{"title":"Analyzing Segmented Data","slug":"analyzing-segmented-data","depth":3,"children":[]}]},{"title":"Use Case 3: Advanced Segmentation","slug":"use-case-3-advanced-segmentation","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"helicone","siteName":"Helicone OSS LLM Observability","title":"Using Custom Properties to Segment Data - Helicone OSS LLM Observability","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-03-06T00:00:56.490Z","originalFileLocation":"guides/cookbooks/segmentation.mdx"},"headHtml":"\u003cmeta data-mint-head name=\"description\" content=\"Derive powerful insights into costs and user behaviors using custom properties in Helicone. Learn to track environments, user types, and more.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Helicone OSS LLM Observability\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/helicone/My8DBiBXkkatGWhp/_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/helicone/My8DBiBXkkatGWhp/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/helicone/My8DBiBXkkatGWhp/_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/helicone/My8DBiBXkkatGWhp/_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/helicone/My8DBiBXkkatGWhp/_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/helicone/My8DBiBXkkatGWhp/_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/helicone/My8DBiBXkkatGWhp/_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/helicone/My8DBiBXkkatGWhp/_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/helicone/My8DBiBXkkatGWhp/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Using Custom Properties to Segment Data - Helicone OSS LLM Observability\">\u003cmeta data-mint-head property=\"og:description\" content=\"Derive powerful insights into costs and user behaviors using custom properties in Helicone. Learn to track environments, user types, and more.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Helicone OSS LLM Observability\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.helicone.ai/guides/cookbooks/segmentation\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://helicone.mintlify.app/favicon.svg\">\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=\"Using Custom Properties to Segment Data - Helicone OSS LLM Observability\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Derive powerful insights into costs and user behaviors using custom properties in Helicone. Learn to track environments, user types, and more.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://helicone.mintlify.app/favicon.svg\">\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/helicone/My8DBiBXkkatGWhp/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Helicone OSS LLM Observability\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0CA5E9\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.helicone.ai/guides/cookbooks/segmentation\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/cookbooks/segmentation.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.helicone.ai/#organization\",\"name\":\"Helicone OSS LLM Observability\",\"url\":\"https://docs.helicone.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/helicone/H0xDJmuTzfSrq5RW/logo/light.png?fit=max\u0026auto=format\u0026n=H0xDJmuTzfSrq5RW\u0026q=85\u0026s=748e5ab8e134752664c5847901a2cb8c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.helicone.ai#website\",\"name\":\"Helicone OSS LLM Observability\",\"url\":\"https://docs.helicone.ai\",\"publisher\":{\"@id\":\"https://docs.helicone.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.helicone.ai/guides/cookbooks/segmentation#webpage\",\"url\":\"https://docs.helicone.ai/guides/cookbooks/segmentation\",\"name\":\"Using Custom Properties to Segment Data\",\"description\":\"Derive powerful insights into costs and user behaviors using custom properties in Helicone. Learn to track environments, user types, and more.\",\"dateModified\":\"2026-03-06T00:00:56.490Z\",\"isPartOf\":{\"@id\":\"https://docs.helicone.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.helicone.ai/guides/cookbooks/segmentation#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.helicone.ai/guides/cookbooks/segmentation#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Guides\",\"item\":\"https://docs.helicone.ai/guides/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How-to Guides\",\"item\":\"https://docs.helicone.ai/guides/cookbooks/debugging\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Using Custom Properties to Segment Data\",\"item\":\"https://docs.helicone.ai/guides/cookbooks/segmentation\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.helicone.ai/guides/cookbooks/segmentation#article\",\"headline\":\"Using Custom Properties to Segment Data\",\"name\":\"Using Custom Properties to Segment Data\",\"description\":\"Derive powerful insights into costs and user behaviors using custom properties in Helicone. Learn to track environments, user types, and more.\",\"url\":\"https://docs.helicone.ai/guides/cookbooks/segmentation\",\"mainEntityOfPage\":{\"@id\":\"https://docs.helicone.ai/guides/cookbooks/segmentation#webpage\"},\"image\":\"https://docs.helicone.ai/favicon.svg\",\"dateModified\":\"2026-03-06T00:00:56.490Z\",\"publisher\":{\"@id\":\"https://docs.helicone.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.helicone.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Helicone OSS LLM Observability\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Helicone OSS LLM Observability","nav":{"global":null,"anchors":[{"anchor":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/getting-started/quick-start"}]},{"anchor":"API Reference","icon":"code","pages":[{"title":"API Reference","href":"/rest/ai-gateway/post-v1-chat-completions"}]},{"anchor":"Guides","icon":"file-lines","groups":[{"group":"Guides","pages":[{"title":"Helicone Guides","description":"Guides for building, optimizing, and analyzing LLM applications with Helicone.","sidebarTitle":"Overview","twitter:title":"Helicone Guides | Building, Optimizing, and Analyzing LLM Applications","href":"/guides/overview"},{"group":"Tutorials","pages":[{"title":"Building and Monitoring AI Agents with Helicone","sidebarTitle":"AI Agent Monitoring","description":"Learn how to build autonomous AI agents, monitor and optimize their performance using Helicone's Sessions.","twitter:title":"Building and Monitoring AI Agents with Helicone—LLM Observability","href":"/guides/cookbooks/ai-agents"},{"title":"How to Build a Multi-Model AI Assistant with Vercel AI Gateway and Helicone","sidebarTitle":"Customer Support Assistant","description":"Build a customer support assistant that switches between AI models based on query complexity while tracking costs","twitter:title":"Multi-Model AI Assistant with Vercel AI Gateway + Helicone","href":"/guides/cookbooks/vercel-ai-gateway"},{"title":"Build an AI Debate Simulator with Vercel AI Gateway","sidebarTitle":"AI Debate Simulator","description":"Create an interactive debate app that showcases different ways to integrate Vercel AI Gateway with Helicone observability","twitter:title":"AI Debate Simulator with Vercel AI Gateway + Helicone","href":"/guides/cookbooks/vercel-ai-gateway-demo"},{"title":"Helicone Evals with Ragas","sidebarTitle":"Helicone Evals with Ragas","description":"Evaluate your LLM applications with Ragas and Helicone.","twitter:title":"Helicone Evals with Ragas - Helicone OSS LLM Observability","href":"/guides/cookbooks/helicone-evals-with-ragas"},{"title":"How to build a chatbot with OpenAI structured outputs","sidebarTitle":"OpenAI Structured Outputs","description":"This step-by-step guide covers function calling, response formatting and monitoring with Helicone.","twitter:title":"How to build a chatbot with OpenAI structured outputs - Helicone OSS LLM Observability","href":"/guides/cookbooks/openai-structured-outputs"},{"title":"How to Prompt Thinking Models","sidebarTitle":"Prompt Thinking Models","description":"Learn how to effectively prompt thinking models like DeepSeek R1 and OpenAI o1/o3 for optimal results.","twitter:title":"How to Prompt Thinking Models - Helicone Guide","href":"/guides/cookbooks/prompt-thinking-models"}]},{"group":"How-to Guides","pages":[{"title":"Debugging LLM Applications","sidebarTitle":"Debugging","description":"Helicone provides an efficient platform for identifying and rectifying errors in your LLM applications, offering insights into their occurrence.","twitter:title":"Debugging LLM Applications - Helicone OSS LLM Observability","href":"/guides/cookbooks/debugging"},{"title":"Environment Tracking","sidebarTitle":"Environment Tracking","description":"Effortlessly track and manage your development, staging, and production environments with Helicone.","twitter:title":"Environment Tracking - Helicone OSS LLM Observability","href":"/guides/cookbooks/environment-tracking"},{"title":"ETL / Data Extraction","sidebarTitle":"ETL / Data Extraction","description":"Extract, transform, and load data from Helicone into your data warehouse using our CLI tool or REST API.","twitter:title":"ETL / Data Extraction - Helicone OSS LLM Observability","href":"/guides/cookbooks/etl"},{"title":"How to Run LLM Prompt Experiments","sidebarTitle":"Prompt Experiments","description":"Run experiments with historical datasets to test, evaluate, and improve prompts over time while preventing regressions in production systems.","twitter:title":"How to Run LLM Prompt Experiments - Helicone OSS LLM Observability","href":"/guides/cookbooks/experiments"},{"title":"How to fine-tune LLMs with Helicone and OpenPipe","sidebarTitle":"Fine-tuning LLMs with Helicone and OpenPipe","description":"Learn how to fine-tune large language models with Helicone and OpenPipe to optimize performance for specific tasks.","twitter:title":"How to Fine-Tune LLMs with Helicone and OpenPipe","href":"/guides/cookbooks/fine-tune"},{"title":"Retrieving Sessions","sidebarTitle":"Retrieve Sessions","description":"Use the Request API to retrieve session data, allowing you to analyze conversation threads.","twitter:title":"Retrieving Sessions - Helicone OSS LLM Observability","href":"/guides/cookbooks/getting-sessions"},{"title":"Getting User Requests","sidebarTitle":"User Requests","description":"Use the Request API to retrieve user-specific requests, allowing you to monitor, debug, and track costs for individual users.","twitter:title":"Getting User Requests - Helicone OSS LLM Observability","href":"/guides/cookbooks/getting-user-requests"},{"title":"Integrating Helicone with GitHub Actions","sidebarTitle":"GitHub Actions Integration","description":"Automate the monitoring and caching of LLM calls in your CI pipelines with Helicone.","twitter:title":"Integrating Helicone with GitHub Actions - Helicone OSS LLM Observability","href":"/guides/cookbooks/github-actions"},{"title":"How to Label Your Request Data","sidebarTitle":"Labeling Requests","description":"Label your request data to make it easier to search and filter in Helicone. Learn about custom properties, feedback, and scores.","twitter:title":"How to Label Your Request Data - Helicone OSS LLM Observability","href":"/guides/cookbooks/labeling-request-data"},{"title":"Manual Logger with Streaming","description":"Learn how to use Helicone's Manual Logger to track streaming LLM responses","href":"/guides/cookbooks/manual-logger-streaming"},{"title":"Logging OpenAI Batch API Requests with Helicone","sidebarTitle":"OpenAI Batch API","description":"Learn how to track and monitor OpenAI Batch API requests using Helicone's Manual Logger for comprehensive observability.","twitter:title":"Logging OpenAI Batch API Requests with Helicone - LLM Observability","href":"/guides/cookbooks/openai-batch-api"},{"title":"How to build a chatbot with OpenAI structured outputs","sidebarTitle":"OpenAI Structured Outputs","description":"This step-by-step guide covers function calling, response formatting and monitoring with Helicone.","twitter:title":"How to build a chatbot with OpenAI structured outputs - Helicone OSS LLM Observability","href":"/guides/cookbooks/openai-structured-outputs"},{"title":"Predefined Request IDs","sidebarTitle":"Request ID Predefinition","description":"Learn how to predefine Helicone request IDs for advanced tracking and asynchronous operations in your LLM applications.","twitter:title":"Predefined Request IDs - Helicone OSS LLM Observability","href":"/guides/cookbooks/predefining-request-id"},{"title":"Replaying LLM Sessions","sidebarTitle":"Replay Sessions","description":"Learn how to replay and modify LLM sessions using Helicone to optimize your AI agents and improve their performance.","twitter:title":"Replaying LLM Sessions - Helicone OSS LLM Observability","href":"/guides/cookbooks/replay-session"},{"title":"Using Custom Properties to Segment Data","sidebarTitle":"Segmenting Data","description":"Derive powerful insights into costs and user behaviors using custom properties in Helicone. Learn to track environments, user types, and more.","twitter:title":"Using Custom Properties to Segment Data - Helicone OSS LLM Observability","href":"/guides/cookbooks/segmentation"}]},{"group":"Knowledge Base","pages":[{"group":"Prompt Engineering","pages":[{"title":"Overview","sidebarTitle":"Overview","description":"Prompt engineering is the strategic crafting of prompts to guide Large Language Models to produce accurate and desired outputs.","twitter:title":"Overview - Prompt Engineering Techniques | Helicone","href":"/guides/prompt-engineering/overview"},{"title":"Be specific and clear","sidebarTitle":"Be specific and clear","description":"Be specific and clear in your prompts to improve the quality of the responses you receive.","twitter:title":"Be Specific and Clear - Prompt Engineering Techniques","href":"/guides/prompt-engineering/be-specific-and-clear"},{"title":"Implement few-shot learning","sidebarTitle":"Implement few-shot learning","description":"Provide the model with a few examples of the desired output to guide it to produce responses that closely align with your expectations.","twitter:title":"Implement Few-Shot Learning - Prompt Engineering Techniques","href":"/guides/prompt-engineering/implement-few-shot-learning"},{"title":"Leverage role-playing","sidebarTitle":"Leverage role-playing","description":"Assign a specific role or persona to the model as a system prompt to set the style, tone, and content of the output.","twitter:title":"Leverage Role-Playing - Prompt Engineering Techniques","href":"/guides/prompt-engineering/leverage-role-playing"},{"title":"Use Chain-of-Thought prompting","sidebarTitle":"Use chain-of-thought prompting","description":"By encouraging the model to generate intermediate reasoning steps before arriving at a final answer, you can achieve more accurate and insightful responses.","twitter:title":"Use Chain-of-Thought Prompting - Prompt Engineering Techniques","href":"/guides/prompt-engineering/use-chain-of-thought-prompting"},{"title":"Use constrained outputs","sidebarTitle":"Use constrained outputs","description":"Set clear boundaries and rules for the model's responses to improve accuracy, consistency, and utility","twitter:title":"Use Constrained Outputs - Prompt Engineering Techniques","href":"/guides/prompt-engineering/use-constrained-outputs"},{"title":"Use Least-to-Most prompting","sidebarTitle":"Use least-to-most prompting","description":"Break down complex problems into smaller parts, starting with the least amount of information.","twitter:title":"Use Least-to-Most Prompting - Prompt Engineering Techniques","href":"/guides/prompt-engineering/use-least-to-most-prompting"},{"title":"Use Meta-Prompting","sidebarTitle":"Use meta-prompting","description":"Use large language models (LLMs) to create and refine prompts dynamically.","twitter:title":"Use Meta-Prompting - Prompt Engineering Techniques","href":"/guides/prompt-engineering/use-meta-prompting"},{"title":"Use structured formats","sidebarTitle":"Use structured formats","description":"Format the generated output to make it easier to interpret and parse the information.","twitter:title":"Use Structured Formats - Prompt Engineering Techniques","href":"/guides/prompt-engineering/use-structured-formats"},{"title":"Use Thread-of-Thought prompting","sidebarTitle":"Use thread-of-thought prompting","description":"Maintain a coherent line of reasoning between LLM interactions by building on previous ideas. ","twitter:title":"Use Thread-of-Thought Prompting - Prompt Engineering Techniques","href":"/guides/prompt-engineering/use-thread-of-thought-prompting"}]}]}]}]},{"anchor":"FAQ","icon":"lightbulb"}]},"title":"Using Custom Properties to Segment Data - Helicone OSS LLM Observability","buildId":"dpl_GxLKTNgVgMFmEBB5ZzPVwniJKE25","deploymentId":"dpl_GxLKTNgVgMFmEBB5ZzPVwniJKE25","dynamics":["Frame","ZoomImageLightbox","Markdown"]}