# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.caraml.dev/user-guides/01_getting_started-1/15_creating_custom_segmenters.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
