# Creating Custom Segmenters

From the Settings page, click on the 'Segmenters' tab. ![Create Custom Segmenter Navigation](https://2689420226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFMRO0BquZrbmgj6RBGJL%2Fuploads%2Fgit-blob-f2858556f7bb53cbcd409a62f2ec790349429b43%2F15_create_custom_segmenter_navigate.png?alt=media)

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](https://2689420226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFMRO0BquZrbmgj6RBGJL%2Fuploads%2Fgit-blob-95ab4e8a1884af96d7351857589fe1744bcb657a%2F15_create_custom_segmenter_button.png?alt=media)

## 1. Configure Segmenter's General Settings

1. In the Create Segmenter's general settings page, fill up the given form ![Create\_Custom\_Segmenter General](https://2689420226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFMRO0BquZrbmgj6RBGJL%2Fuploads%2Fgit-blob-e6188c89d0a8ed6be81d8c646722c8e46741075a%2F15_create_custom_segmenter_general.png?alt=media)
   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.
