Creating Modules
Step-by-step guide to creating custom modules in Coherence
Modules: 19 pages
This guide walks you through creating a custom module from scratch: naming it, adding fields, setting up views, and publishing it so your team can use it.
Looking for a ready-made module instead? Install one from the Marketplace — template modules don't count toward your plan's custom module limit.
Prerequisites
- An Owner, Admin, or Builder role in your workspace. The Modules item appears in the sidebar only for these roles.
- Room in your plan's custom module limit (see Plan limits below).
Step 1: Open the Module Catalog
- Click Modules in the sidebar. This opens the Module catalog.
- Click New module. The Create module dialog opens.
Step 2: Name Your Module
The Create module dialog asks for:
| Field | What it's for |
|---|---|
| Plural name | Used in navigation menus and list views, e.g. "Properties", "Candidates", "Invoices" |
| Singular name | Used in record forms and detail views, e.g. "Edit Property". Filled in automatically from the plural name — adjust it if the guess is wrong |
| Slug | Used for API endpoints and routing. Filled in from the plural name; lowercase letters, numbers, and dashes only |
| Module icon | Shown in navigation and module lists. Pick one from the Choose an icon menu |
Click Create module. Coherence creates the module as a Draft and sets up two default views: All Records (a list) and Record Detail.
Choose clear names your team will recognize — "Properties", not "Table1". The plural name is what people see in the sidebar.
Step 3: Add Fields
Open your new module from the Module catalog, then go to the Fields panel.
- Click New field. The Create field dialog opens.
- Enter a Label. The API name and Slug are generated from it.
- Pick a Data type (see the list below).
- Set the Privacy level — Account, Role restricted, or Private.
- Turn on Required if the field must be filled in on create and update.
- Click Create field.
Data types
The Data type menu offers:
| Group | Types |
|---|---|
| Basic | Text, Long text, Rich text, Number, Currency, Checkbox, Date, Time, Date range, Duration |
| Selection | Select, Tags, Reference, Person |
| Contact | Phone, Email, URL, Address, Social profile |
| Visual | Image, Attachment, Rating, Progress |
| System | Auto-number |
| Relationships | Parent Record |
| Computed | Formula, Rollup |
See Field Types for details on each.
Recommended first fields
- A Select field for status, so you can group records on a board
- A Person field for the owner — it lets you pick workspace members
- Date fields for the key dates in your process
Step 4: Connect to Other Modules
To link records across modules, add a field with the Reference data type:
- Under Reference target, choose Module records (or Any module to link to records from any published module).
- For Module records, pick the Allowed module.
- Under Selection mode, choose Single value or Allow multiple.
Reference fields can also point to Workspace users or Teams.
Contacts → Companies (each contact links to one company)
Deals → Contacts (a deal links to multiple contacts)
Step 5: Set Up Views
Your module starts with the All Records and Record Detail views. To add more, open the Views panel and click New view. The Create view dialog offers three view types:
- Records — display records as List, Board, or Calendar layouts
- Detail — the record detail layout
- Form — the form used to create records
Board layouts work best with a Select field to group by; Calendar layouts need a Date field. See Views for layout options.
Step 6: Publish
New modules stay in Draft and don't appear in the sidebar until they're published. When your fields and views are ready, click Publish module at the top of the module page. Owners and Admins can publish.
After publishing, the module appears in the sidebar under its plural name. Create a test record to check your setup.
You can keep changing a module after it's published — add fields, adjust views, or update settings at any time.
Plan Limits
Each plan caps how many custom modules a workspace can create:
| Plan | Custom modules |
|---|---|
| Free | 3 |
| Starter | 10 |
| Pro | 50 |
| Team | 100 |
Only modules you build yourself count toward the limit. Modules installed from the Marketplace (template packs and individual vendor modules) are free.
When you reach the limit, creating another module fails with "Module limit reached for the current subscription plan. Upgrade to add more modules." Upgrade your plan, or remove a custom module you no longer need.
Best Practices
Start simple
Begin with the essential fields. You can add more as your process evolves.
Use consistent naming
Establish conventions across modules:
- Use "Owner" for assignment fields
- Use "Status" for workflow states
Plan relationships
Sketch how your modules connect before you build them. It saves restructuring later.