> For the complete documentation index, see [llms.txt](https://docs.caraml.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.caraml.dev/user-guides/01_getting_started-1/15_creating_custom_segmenters.md).

# Creating Custom Segmenters

From the Settings page, click on the 'Segmenters' tab. ![Create Custom Segmenter Navigation](/files/ZhckOP1iimEu6jRTmXqY)

Created segmenters can be used just as global segmenters, but only in the project in which they are created in.

## 0. Create Segmenter

1. Click on 'More Actions', followed by the 'Create Segmenter' button on the landing page. ![Create Custom Segmenter Landing](/files/DPyg2WOj4Na3IUqdtOo1)

## 1. Configure Segmenter's General Settings

1. In the Create Segmenter's general settings page, fill up the given form ![Create\_Custom\_Segmenter General](/files/rTP5a8WUiBIrrSryBydz)
   1. **Name**: Name of segmenter.
   2. **Type**: Type of the segmenter (string, bool, integer or real).
   3. **Description**: Description of segmenter.
   4. **Required**: Indicates whether the segmenter must be selected in experiments.
   5. **Multi-Valued**: Indicates whether the segmenter has multiple values.
   6. **Options**: Name-value pairs for the segmenter values. This field needs to be a valid JSON object.
   7. **Constraints**: Constraints for the segmenter when prerequisite conditions are met.
      1. **Pre-Requisite Segmenter Values**: An array of objects with the fields `segmenter_name` and `segmenter_values`. This field needs to be a valid JSON array.
         1. **Segmenter\_Name**: A string indicating the name of the segmenter. Note that **none** of the objects specified should have a `segmenter_name` with the same name as the segmenter that you are creating.
         2. **Segmenter Values**: An array of segmenter values corresponding to the segmenter.
      2. **Allowed Values**: An array of allowed segmenter values. Note that the values specified here should form a subset of the values specified in 'Options' and cannot be empty. This field needs to be a valid JSON array.
      3. **Values Override**: New name-value mappings to overwrite the names for the values under 'Options'. Note that the values specified here should form a subset of the values specified in 'Options'. This field should specify the name-value mappings for each and every value in the allowed values field, and it needs to be a valid JSON object.
2. Click "Save" to create the Segmenter.
