> ## Documentation Index
> Fetch the complete documentation index at: https://docs.prodexlabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom modules

> Interactive pages Dexter builds for your factory — what-if tools, decision boards, and custom views you open from the Custom modules page.

Beta (ProDex sets this up per organization. Don't see it? Ask your ProDex representative to turn it on for your organization.)

## Overview

A **custom module** is a small interactive page that [Dexter](https://docs.prodexlabs.com/product/ai-assistant.md) builds for one factory: a what-if calculator, a board for recording planning decisions, a custom view of your BOMs or simulation results. You open it from **Custom modules** in the left navigation. Choose:

* **A module** when people will *work in* the page: change inputs, compare options, filter and explore data, record a decision, or send something back to Dexter.
* **A [report](https://docs.prodexlabs.com/product/dexter/reports.md)** when you need a file to download, circulate, or present.

## Getting a Module

**Ask Dexter.** Describe the page in chat — *"A page that shows which orders will ship late this week and why."* Dexter builds, checks, and publishes it, then links it in the conversation. It also appears on the **Custom modules** page.

**From the Custom modules page.** Open the folder where you want the module, click **New module**, describe it, and click **Build with Dexter**. This starts a new chat with your request.

**From a template.** Templates are ready-made modules that run on sample data. Find them under **Browse templates** in the **New module** dialog — for example *Ready to make*, which checks whether an order can be made by its need-by date, or *Data insights*, which, once Dexter connects it to your data, filters a dataset once and recomputes a set of linked charts and tables from it. Click a template card to open and try it, then **Use this template**: set the **Name**, optionally describe changes or how to connect your data under **What should be different?**, and click **Create module**. The module is published straight away; if you requested changes, Dexter picks them up in a new chat and publishes an update. Otherwise, it keeps using sample data until you ask Dexter to connect your own.

## The Custom Modules Page

The **Custom modules** page shows each module as a card with its description and when it was last **Updated**. Click a card to open the module.

* **New folder** organizes modules; choose its parent folder under **Create in**. From a card's menu you can **Rename** a module, **Move** it to another folder, or **Archive** it. Renaming and moving keep the module's link, versions, and data.
* The **Archived** tile, shown once you've archived a module, lists archived modules; **Restore** puts one back in its folder. Dexter can't change an archived module until you restore it.

### Versions

Every publish creates a new version. To view an earlier one, open the module's menu, choose **Version history**, and pick it; the bar at the top of the module then shows its number, such as **Version 2**. Opening a module always shows its latest version. When Dexter publishes a new one, an open module switches to it, or picks it up the next time you open it.

Dexter checks every change in a private preview first; previews never appear on the **Custom modules** page. To go back to an earlier version for good, ask Dexter to restore it and publish again.

### Asking for Changes

Ask Dexter in chat, or mark up the module directly. Click **Annotate**, click any element and type a comment, then click **Send all**. Dexter answers questions in the conversation, changes what you asked for, and publishes a new version. Leaving the module discards unsent comments, after asking.

## What Modules Can Do

Modules read your factory's data: BOMs, simulation models and results, datasets on the [Data page](https://docs.prodexlabs.com/product/data-overview.md), and, where those features are turned on, [planning](https://docs.prodexlabs.com/product/planning-overview.md) data and shared tables. Depending on what Dexter builds, a module can also:

* Save decisions made in the page, such as an allocation and its reason. They carry across versions.
* Edit values on existing BOM rows.
* Start a planning optimizer run or copy a planning run.
* Upload files and send form values to a Dexter conversation.

Two extra Beta capabilities are set up per organization:

* **Server-side calculations.** Modules can pull rows from connected integrations or uploaded files, run calculations on demand, run longer background jobs, and run jobs on a schedule.
* **AI features.** Modules can use AI for bounded tasks such as classifying a note, extracting fields, or summarizing text. These calls count toward your organization's AI usage.

## Keeping Modules Working

What a module's server-side calculations read can change: an integration renames a field, or a scheduled run starts failing. When that happens, Dexter is asked to repair it, and the module's owner gets an [inbox](https://docs.prodexlabs.com/product/settings.md) notice about the repair. **View** opens the repair conversation. Meanwhile, data that fails to refresh keeps showing its last successful result.

Dexter prepares and checks the fix, then asks you to publish it. Unless your organization is set up to publish repairs automatically, the fix goes live only when you tell Dexter to publish it.

## Sharing and Export

Modules travel with a factory. When you [share a factory](https://docs.prodexlabs.com/product/factory-management.md#sharing-a-factory-with-teammates), the **Custom modules** category includes them, and you can pick individual modules. A [factory export](https://docs.prodexlabs.com/product/factory-export.md) carries them with their source. Archived modules are left out of both.

## Limits

* **Isolated pages.** Modules can't reach outside websites; all data comes through ProDex.
* **Call time.** An on-demand calculation must finish within 30 seconds. Background jobs can run up to 15 minutes.
* **Schedules.** A module's schedules can run at most 100 times in 24 hours in total.
* **BOM edits.** Modules can change existing BOM rows but not add or remove them.
* **Stopped modules.** A module that takes too long to start, stops responding, or writes too much is stopped. **Reload module** starts it again.
* **Repairs** are requested at most once per failing calculation every six hours.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.