# Module Types

Every module in a workflow has a **type**. The type controls which components are available when you design the page in the Page Builder, and what behaviours the page supports at runtime. Pick the right type up front — switching later usually means redesigning.

## When you'd use this page

* Picking a type for a new module.
* Understanding why certain components don't appear in your Page Builder palette (it's filtered by module type).
* Diagnosing why a page can't do something — wrong module type for that capability.

## The ten types

The Add Module dialog (top-right of the **Workflow** tab → **+ Module**) groups types into three categories: **Pages**, **Navigation**, and **Utility**.

<table data-view="cards"><thead><tr><th>Type</th><th>Use it for</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Dashboard</strong></td><td>Home/landing page with metrics, quick actions, recent activity.</td><td><a href="#dashboard">#dashboard</a></td></tr><tr><td><strong>Page</strong></td><td>General-purpose page — search, lists, custom forms, info pages.</td><td><a href="#page">#page</a></td></tr><tr><td><strong>Order Form</strong></td><td>Transactions — POS sales, invoice payment, sales orders.</td><td><a href="#order-form">#order-form</a></td></tr><tr><td><strong>Catalog</strong></td><td>Product browsing and selection.</td><td><a href="#catalog">#catalog</a></td></tr><tr><td><strong>Reports</strong></td><td>Data visualisation pages.</td><td><a href="#reports">#reports</a></td></tr><tr><td><strong>Modal</strong></td><td>Pop-up dialog page that overlays another page.</td><td><a href="#modal">#modal</a></td></tr><tr><td><strong>Public Page</strong></td><td>Page accessible without login — used for the public-facing catalog.</td><td><a href="#public-page">#public-page</a></td></tr><tr><td><strong>Header Navigation</strong></td><td>Custom top nav bar.</td><td><a href="#header-navigation">#header-navigation</a></td></tr><tr><td><strong>Sidebar Navigation</strong></td><td>Custom left sidebar.</td><td><a href="#sidebar-navigation">#sidebar-navigation</a></td></tr><tr><td><strong>Copy Module</strong></td><td>Utility — clone an existing module from a default template or another workflow.</td><td><a href="#copy-module">#copy-module</a></td></tr></tbody></table>

{% hint style="info" %}
Three types are **restricted to one per workflow**: Dashboard (locked at position 1), Header Navigation (position 2), Sidebar Navigation (position 3). Every other type can be added as many times as you need.
{% endhint %}

## Dashboard

Home / overview page. **One per workflow, locked at position 1.**

**What it's for:** Stats, charts, quick-action buttons, recent activity widgets — anything users want to see first when they log in.

**Common pattern:** A row of Stats components across the top, Chart Widgets / Report Widgets below, Action Buttons for quick navigation.

## Page

General-purpose page. The most flexible type.

**What it's for:** Transaction search results, custom forms, record detail views, saved-orders lists, info pages — anything that doesn't fit one of the more specialised types.

**Component palette includes:** Layout, Transactions (search, list, record), Entity, Products, Actions, Widgets, Advanced, Content. Doesn't include the order-form-only blocks (Order Lines, Payments, Signature Pad).

## Order Form

Transaction entry — sales orders, POS, invoice payment, returns.

**What it's for:** Anywhere a user creates a transaction with line items and a customer. The Order Form module unlocks specialised transaction-building components.

**Component palette includes:** Order Lines, Payments, Customer Field, Discount Header, Shipping Method, Signature Pad, Registers, Scan Items, CSV Import, Submit Button — plus all the standard categories.

**Common pattern:** Customer Field at the top, Order Lines in the middle, payment + Submit Button at the bottom.

## Catalog

Product browsing and selection.

**What it's for:** Anywhere users browse, filter, and select products to add to an order. Pulls in catalog-specific blocks not available in other types.

**Component palette adds:** Catalog (the main browsing block), Catalog View Select, Catalog Filter, Category List / Categories / Category Modal — plus extended Products blocks (Product Gallery, Product Field Copy, Product Attachment).

## Reports

Data-visualisation pages.

**What it's for:** Pages dedicated to charts, EOD reports, register reports, queue status. Similar palette to Dashboard but oriented towards reporting widgets.

If your page mixes reports with other content, **Page** or **Dashboard** is often the better choice.

## Modal

Pop-up dialog page that overlays another page without navigating away.

**What it's for:** Confirmation dialogs, quick-entry forms, detail views, category pickers, anything that should appear on top of the current page and dismiss back to it.

**Component palette:** the same broad set as the Page module type.

{% hint style="info" %}
The **Modal** *component* (in the Layout category) is available in most module types and lets you embed a pop-up directly inside the current page. Use a dedicated **Modal** *module* when the dialog needs its own full layout managed separately.
{% endhint %}

## Public Page

A page that doesn't require login. Used to power the **Public Portal** — typically a public-facing product catalog or storefront that anyone can browse without an account.

**What it's for:** anonymous catalog browsing, public landing pages, "anyone can view" product listings. The Public Portal lives at its own URL on your domain and is rendered by the public app, not the User Portal.

**Component palette:** intentionally narrower than the authenticated portal — only components that are safe and meaningful for anonymous visitors. The categories are Layout (Row, Column, Grid, Flex, Space, Divider, Modal, Tabs, Catalog Layout, Catalog), Catalog Sidebar (Catalog View Select, Category Sidebar, Dynamic Filters), Categories (Category Modal, Category), Products (Product Field, Product Image, Product Locations, Product Vendor, Product Variations, Add to Order Button, Scan Items, Product Gallery, plus the table-result and field-copy variants), Order Form (Order Lines, Record Field, Summary, Submit Button), Content (Heading, Button, Text, Hero, Card, Card Link, Logos, Stats), and Advanced (HTML, CSS).

{% hint style="warning" %}
Components that depend on a logged-in user — Customer Field, Customer Select, Entity 360, Saved Orders, Payments, Registers, and so on — aren't in the Public palette. If a feature requires login, it can't live on a Public Page.
{% endhint %}

## Header Navigation

Custom top navigation bar. **One per workflow, locked at position 2.**

Most workflows don't need this — the default header is generated automatically from your module list. Add this only if you need custom branding, breadcrumbs, custom links, or non-standard layout in the top bar.

## Sidebar Navigation

Custom left sidebar. **One per workflow, locked at position 3.**

Same story as Header Navigation — most workflows use the default sidebar. Add this only if you need grouped items, custom icons, dividers, or conditional visibility in the sidebar.

## Copy Module

Utility, not a page type. Opens a dialog to clone an existing module from a default template or another workflow.

**What it's for:** Quickly bringing in a well-tested page (e.g. a Dashboard or Reports page from a default workflow) instead of rebuilding from scratch. After cloning, the module behaves like its real type.

## Choosing the right type

Ask in this order:

1. **Should anyone be able to view it without logging in?** → **Public Page**
2. **Will users create transactions?** → **Order Form**
3. **Will users browse products?** → **Catalog**
4. **Is it a home / metrics page?** → **Dashboard**
5. **Is it data visualisation?** → **Reports**
6. **Is it a pop-up that overlays another page?** → **Modal**
7. **Is it custom navigation?** → **Header Navigation** or **Sidebar Navigation**
8. **None of the above?** → **Page**

## Changing a module's type

You can edit a module's type after creation, but components specific to the old type may stop working. Test before publishing. In most cases it's cleaner to create a new module of the right type than to convert an existing one.

## Related

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Creating Custom Workflows</strong></td><td>Where these types are picked.</td><td><a href="/pages/HXAKNURkKoLjhJP3Y3ht">/pages/HXAKNURkKoLjhJP3Y3ht</a></td></tr><tr><td><strong>Page Builder</strong></td><td>Design each module's page.</td><td><a href="/pages/cFWHMzaWYEsdDtvHLkFK">/pages/cFWHMzaWYEsdDtvHLkFK</a></td></tr></tbody></table>


---

# 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.in8sync.com/client-admin-guide/active-workflows/module-types.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.
