2021-12-17 13:31:44 +01:00
---
title: How to define custom context fields
---
2021-12-20 12:54:59 +01:00
:::info Availability
2022-10-04 14:13:52 +02:00
Before Unleash 4.16, custom context fields were only available to Unleash Pro and Enterprise users. From 4.16 onwards, they're **available to everyone** . They were introduced in Unleash 3.2.28.
2021-12-20 12:54:59 +01:00
:::
2021-12-17 13:31:44 +01:00
refactor: move docs into new structure / fix links for SEO (#2416)
## What
This (admittedly massive) PR updates the "physical" documentation
structure and fixes url inconsistencies and SEO problems reported by
marketing. The main points are:
- remove or move directories : advanced, user_guide, deploy, api
- move the files contained within to the appropriate one of topics,
how-to, tutorials, or reference
- update internal doc links and product links to the content
- create client-side redirects for all the urls that have changed.
A number of the files have been renamed in small ways to better match
their url and to make them easier to find. Additionally, the top-level
api directory has been moved to /reference/api/legacy/unleash (see the
discussion points section for more on this).
## Why
When moving our doc structure to diataxis a while back, we left the
"physical' files lying where they were, because it didn't matter much to
the new structure. However, that did introduce some inconsistencies with
where you place docs and how we organize them.
There's also the discrepancies in whether urls us underscores or hyphens
(which isn't necessarily the same as their file name), which has been
annoying me for a while, but now has also been raised by marketing as an
issue in terms of SEO.
## Discussion points
The old, hand-written API docs have been moved from /api to
/reference/api/legacy/unleash. There _is_ a /reference/api/unleash
directory, but this is being populated by the OpenAPI plugin, and mixing
those could only cause trouble. However, I'm unsure about putting
/legacy/ in the title, because the API isn't legacy, the docs are. Maybe
we could use another path? Like /old-docs/ or something? I'd appreciate
some input on this.
2022-11-22 10:05:30 +01:00
This guide shows you how to create [custom context field for the Unleash Context ](../reference/unleash-context.md#custom-context-fields ). You can use custom context fields for [strategy constraints ](../reference/strategy-constraints.md ) and for [custom stickiness calculations ](../reference/stickiness.md#custom-stickiness ). If there are [standard Unleash Context fields ](../reference/unleash-context.md#structure ) missing from the context fields page, you can use the same steps to add them too.
2021-12-17 13:31:44 +01:00
2021-12-20 12:54:59 +01:00
## Step 1: Navigate to the context field creation form {#step-1-navigate-to-context-fields}
2021-12-17 13:31:44 +01:00
2021-12-20 12:54:59 +01:00
In the Unleash Admin UI, navigate to the _context fields_ page:
1. Click the "Configure" button in the top menu to open the configuration dropdown menu.
2. Click the "Context fields" menu item.
2021-12-17 13:31:44 +01:00
2021-12-20 12:54:59 +01:00
![A visual representation of the tutorial steps described in the preceding paragraph, showing the interaction points in the admin UI in order. ](/img/context-fields.png )
2021-12-17 13:31:44 +01:00
2021-12-20 12:54:59 +01:00
3. On the context fields page, click the "add new context field" button.
2021-12-17 13:31:44 +01:00
2021-12-20 13:06:32 +01:00
![The "context fields" page with the "add new context field" button highlighted. ]( /img/context-field-create-button.png )
2021-12-17 13:31:44 +01:00
2021-12-20 12:54:59 +01:00
## Step 2: Define the new context field {#step-2-define-new-context-field}
2021-12-17 13:31:44 +01:00
refactor: move docs into new structure / fix links for SEO (#2416)
## What
This (admittedly massive) PR updates the "physical" documentation
structure and fixes url inconsistencies and SEO problems reported by
marketing. The main points are:
- remove or move directories : advanced, user_guide, deploy, api
- move the files contained within to the appropriate one of topics,
how-to, tutorials, or reference
- update internal doc links and product links to the content
- create client-side redirects for all the urls that have changed.
A number of the files have been renamed in small ways to better match
their url and to make them easier to find. Additionally, the top-level
api directory has been moved to /reference/api/legacy/unleash (see the
discussion points section for more on this).
## Why
When moving our doc structure to diataxis a while back, we left the
"physical' files lying where they were, because it didn't matter much to
the new structure. However, that did introduce some inconsistencies with
where you place docs and how we organize them.
There's also the discrepancies in whether urls us underscores or hyphens
(which isn't necessarily the same as their file name), which has been
annoying me for a while, but now has also been raised by marketing as an
issue in terms of SEO.
## Discussion points
The old, hand-written API docs have been moved from /api to
/reference/api/legacy/unleash. There _is_ a /reference/api/unleash
directory, but this is being populated by the OpenAPI plugin, and mixing
those could only cause trouble. However, I'm unsure about putting
/legacy/ in the title, because the API isn't legacy, the docs are. Maybe
we could use another path? Like /old-docs/ or something? I'd appreciate
some input on this.
2022-11-22 10:05:30 +01:00
Define the custom context field by filling out the form. You must at least the field a unique _name_ . Everything else is optional. Refer to the [custom context field reference guide ](../reference/unleash-context.md#custom-context-fields ) for a full overview of the parameters and their functions and requirements.
2021-12-17 13:31:44 +01:00
2021-12-20 13:06:32 +01:00
When you are satisfied with the context field's values, use the "create" button to submit the form and save the context field.
2021-12-17 13:31:44 +01:00
2021-12-20 13:06:32 +01:00
![A "create context field" form. It contains data for a custom context field called "region". Its description is "allows you to constrain on specific regions" and its legal values are "Africa", "Asia", "Europe", and "North America". Its custom stickiness value is not shown. ](/img/new_context_field.png )