> For the complete documentation index, see [llms.txt](https://docs.dinmo.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dinmo.io/segments/visual-builder.md).

# Visual Builder

The visual builder is a no-code tool that is designed to help non-technical users create user segments easily

## Create a new segment

To create a segment using the visual builder, follow these steps:

* **Select the type of segment you want to create** - A user segment to build a list, an event segment for all transactional use cases, or a custom segment (company, product, etc.).
* **Select a Source Entity** - Select the entity you want to use as the basis for your user segment. This could be any entity from your connected data sources, such as Customers, Orders, Products, or any other relevant entity.
* **Preview available data** - Before defining conditions, inspect the fields and values available in the source entity and its related models. This helps you choose the right model and fields for your segment.
* **Filter Data Based on Properties** - After selecting the source entity, you can filter the data based on the properties of that entity. For instance, you can filter customers based on their location, age, or any other relevant property.\
  \
  Icons next to each field name in the Segment Builder indicate their data type, making it easier to understand which rules apply to each field at a glance.\
  \
  You can add as many filters as you want, and combine them using the AND/OR operators.

<figure><img src="https://3204318043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxzBTp1t4OfqV67nXkVse%2Fuploads%2Fgit-blob-209d398d9ade2e5ce9dbf8aa268aa3a0ba43c5f6%2FCleanShot%202026-07-16%20at%2010.10.33%402x.png?alt=media" alt="Property filters in the Segment Builder"><figcaption><p>Build property rules with AND/OR logic.</p></figcaption></figure>

### **Filter Data Based on Related Models**

You can also filter data based on related entities, such as Orders or Order Lines. For instance, you can select all customers who made at least 2 orders in the last year. You can also filter data based on entities related to related entities, such as selecting all customers who made an order in which there is an order line corresponding to a given product.\
\
\&#xNAN;*In the example below, we take all those over 20 years of age, who have already had a discount total greater than 80% of customers, and who prefer to be contacted by SMS.*

Click **Filter using a related model** and select the related model you want to filter.

<figure><img src="https://3204318043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxzBTp1t4OfqV67nXkVse%2Fuploads%2Fgit-blob-adc9ab31de79aa04204e32ecc7b2854f8d8b5e19%2Fsegment-builder-related-model-picker.png?alt=media" alt="Related model picker in the Segment Builder"><figcaption><p>Select the related model to use in your filter.</p></figcaption></figure>

<figure><img src="https://3204318043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxzBTp1t4OfqV67nXkVse%2Fuploads%2Fgit-blob-de1f58b0a1efe1d7cb4ad95c304be3274050856e%2FCleanShot%202026-07-16%20at%2010.14.27%402x.png?alt=media" alt="Configured related model filter in the Segment Builder"><figcaption><p>Configure aggregation and property conditions for the related model.</p></figcaption></figure>

### **Filter Data Based on Existing Segments**

Finally, you can filter data based on existing user segments from the same parent model. For instance, you can exclude all users from a specific segment, or include only users from a specific segment.

<figure><img src="https://3204318043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxzBTp1t4OfqV67nXkVse%2Fuploads%2Fgit-blob-d52c2439e6a1e6ec8f4e345d49e16ad64d403c3e%2Fsegment-builder-existing-segment-filter.png?alt=media" alt="Existing segment filter in the Segment Builder"><figcaption><p>Include or exclude existing segments from the same parent model.</p></figcaption></figure>

### Master exclusion lists

After a model has been created, a user with access to the model can configure a master exclusion list from the model's **Segments** tab. When this is configured, the Segment Builder adds it as an **Exclude All** condition. The condition is managed at the model level, so it cannot be removed from an individual segment.

To add, change, or remove a master exclusion list, open the parent model and update its configuration. See [Master exclusion list](/models/overview.md#master-exclusion-list) for the full workflow and its impact on existing segments.

### Limit segment size

To reduce or control the size of your segment:

1. Turn on **Limit this segment size**.
2. Enter the number of records to keep.
3. Choose how DinMo should select them:
   * **Top** or **Bottom** applies the limit to the segment as a whole.
   * **Top N per group** or **Bottom N per group** applies the limit independently to each distinct value of a grouping field.
4. Select the field used to order the records.
5. For a per-group limit, select the eligible main-model field under **Grouped by**.
6. Choose whether null values should be excluded or placed first or last.

<figure><img src="https://3204318043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxzBTp1t4OfqV67nXkVse%2Fuploads%2Fgit-blob-8fc918511d629433dcb088c44cdd057d5db17532%2Fsegment-builder-size-limit.png?alt=media" alt="Segment size limit controls"><figcaption><p>Set a size limit and sort the records used to build the segment.</p></figcaption></figure>

**Top** keeps the highest-ranked values, while **Bottom** keeps the lowest-ranked values. The same ordering is applied independently inside each group when you use a per-group option.

For example, configure **Top N per group**, enter `1`, group by company ID, and order by lead score to keep the highest-scoring profile for each company.

Only compatible main-model fields are available under **Grouped by**. Field availability depends on the connected data source and the field's underlying data type.

This Top/Bottom logic is also available in **Calculated Fields** when you need to select the most or least significant related records.

## Configure your Segment

Once your segment is ready, click on *Preview* and *Continue* to access the configuration page. Enter a name and description, then add tags to help organize and find the segment across your workspace.

For the general concept and examples, see [Tags](/core-concepts.md#tags).

<figure><img src="https://3204318043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxzBTp1t4OfqV67nXkVse%2Fuploads%2Fgit-blob-2166179addf61a4fbf4303618c8bd6ed87309adb%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

***

## Ready to get started?

Book a demo and we will walk through the best way to launch your first DinMo use case.

[Book a demo](https://www.dinmo.com/contact/)

## Need help?

Our team is here to help with setup, modeling, activation, and troubleshooting.

[Contact us](mailto:hello@dinmo.com?subject=Docs%20help)

## Feature requests?

Tell us which connector, workflow, or improvement would make DinMo more useful for your team.

[Request a feature](mailto:hello@dinmo.com?subject=Feature%20request)

[Privacy Policy](https://www.dinmo.com/legals/privacy/) | [Terms of Service](https://www.dinmo.com/terms-of-service/)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.dinmo.io/segments/visual-builder.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
