How to Create Custom Modules for Any Business Process
Learn how to build custom modules (objects, tables) in your CRM to track any type of data—projects, vendors, inventory, and more. No code required.
TL;DR
Custom modules let you track any type of data in your CRM beyond the standard Contacts and Deals. Build modules for projects, vendors, inventory, properties, candidates—anything your business manages. The process: (1) Define what you're tracking, (2) Create fields for each attribute, (3) Set up relationships to other modules, (4) Configure views for different use cases. Modern no-code platforms make this accessible to anyone.
What Are Custom Modules?
A module (also called an object, entity, or table) is a type of record in your CRM. Standard CRMs come with built-in modules:
- Contacts — People you interact with
- Companies — Organizations
- Deals/Opportunities — Sales you're pursuing
Custom modules extend this to anything else:
- Projects — Work you're delivering
- Vendors — Companies you buy from
- Properties — Real estate you manage
- Products — Inventory you sell
- Candidates — People you're recruiting
- Events — Conferences, webinars, meetings
If you can define it with attributes and track multiple instances, it can be a module.
This capability is central to XRM (Anything Relationship Management)—the idea that your CRM should manage all relationships, not just customers.
When to Create Custom Modules
Signs You Need Custom Modules
You're using spreadsheets alongside your CRM: If you track something in a spreadsheet because it doesn't fit in the CRM, that's a module candidate.
You're abusing existing modules: Using "Contacts" for vendors, "Deals" for projects, or "Notes" for everything else? Create dedicated modules.
You want relationships between data types: Spreadsheets can't easily link a Project to its Client and its Vendors. Modules with relationships can.
Multiple people need access: Spreadsheets become chaos with multiple editors. Modules provide structured, permissioned access.
Examples by Business Type
Marketing Agency:
- Projects (campaigns, deliverables)
- Vendors (freelancers, subcontractors)
- Assets (creative files, brand materials)
Property Manager:
- Properties (buildings, units)
- Tenants (residents, occupants)
- Maintenance Requests (work orders)
Recruiting Firm:
- Candidates (job seekers)
- Job Orders (open positions)
- Placements (successful matches)
E-commerce Business:
- Products (inventory)
- Suppliers (where you source)
- Orders (purchases, linked to contacts)
Planning Your Custom Module
Before building, define clearly:
1. What Is This Module?
Write a one-sentence description:
- "Projects track client deliverables from kickoff to completion."
- "Vendors are companies we purchase services from."
- "Properties are real estate units we manage."
2. What Fields Does It Need?
List every attribute you want to track:
Example: Projects Module
| Field | Type | Required? | Notes |
|---|---|---|---|
| Name | Text | Yes | Project title |
| Client | Relationship | Yes | Links to Companies |
| Status | Single Select | Yes | Planning, Active, Review, Complete |
| Start Date | Date | No | When work begins |
| Due Date | Date | No | Deadline |
| Budget | Currency | No | Project value |
| Project Lead | User | No | Team member responsible |
| Description | Long Text | No | Details and scope |
3. How Does It Relate to Other Modules?
Map relationships:
- Projects → Companies (many projects belong to one company)
- Projects → Contacts (many contacts involved in one project)
- Projects → Vendors (many vendors work on one project)
4. Who Needs Access?
Consider permissions:
- Can everyone see all records?
- Can anyone create/edit/delete?
- Should some fields be restricted?
Building a Custom Module: Step-by-Step
Step 1: Create the Module
In Coherence:
- Go to Settings → Modules
- Click Create Module
- Enter module name (singular and plural)
- Add an icon (optional but helps identification)
- Save
The module now exists, but it's empty.
Step 2: Add Fields
Add each field from your plan:
Text Field:
- Name, Description, Notes
- Single line or multi-line
Number Field:
- Quantity, Score, Rating
- Configure decimal places, range
Date Field:
- Due Date, Start Date, Created Date
- Date only or date-time
Single Select:
- Status, Type, Priority
- Define the options
Multi-Select:
- Tags, Categories
- Allow multiple selections
Currency:
- Budget, Price, Revenue
- Configure currency symbol
Relationship:
- Links to another module
- One-to-many or many-to-many
User:
- Assigned To, Owner, Project Lead
- Links to team members
Formula (if available):
- Calculated fields based on other values
Step 3: Configure Field Properties
For each field, set:
Required vs. Optional: Only require what's truly essential. Required fields block record creation until filled.
Default Value: Pre-fill common values (e.g., Status defaults to "New").
Visibility: Hide fields from certain views or roles if needed.
Validation: Restrict values (e.g., numbers only, email format).
Step 4: Create Relationships
Relationships connect modules:
One-to-Many: One company has many projects.
- On Projects module, add "Company" relationship field
- Type: Links to Companies
- Cardinality: One (each project has one company)
Many-to-Many: Projects can have multiple team members; team members work on multiple projects.
- On Projects module, add "Team" relationship field
- Type: Links to Contacts
- Cardinality: Many (each project has multiple contacts)
After creating relationships, you can:
- View a Company and see all their Projects
- View a Contact and see all Projects they're on
- View a Project and see its Company and Team
Step 5: Set Up Views
Views display your data in different layouts:
List View:
- Spreadsheet-style, all records
- Best for bulk operations, data review
Kanban View:
- Grouped by a field (usually Status)
- Best for pipeline/workflow management
Calendar View:
- Records plotted on dates
- Best for deadline tracking
Create views for common use cases:
| View Name | Type | Filter | Use Case |
|---|---|---|---|
| All Projects | List | None | Full overview |
| Active Projects | Kanban | Status = Active | Current work |
| My Projects | List | Lead = Me | Personal queue |
| Project Calendar | Calendar | Date = Due Date | Deadlines |
Step 6: Configure Layout
Customize how individual records appear:
Summary Card: Which fields show in lists and previews?
Detail View: Arrange fields into sections:
- Overview (key info at top)
- Details (secondary info)
- Related Records (linked modules)
- Activity (timeline, notes)
Step 7: Set Up Automations
Automate common actions:
When Status changes to Complete:
- Send notification to billing team
- Update last project date on Company
When Due Date approaches:
- Send reminder to Project Lead
- Add task to follow up
When new Project created:
- Add standard tasks
- Notify team members
Best Practices for Custom Modules
Start Simple
Don't build everything day one. Create the minimum viable module:
- Core fields only
- Basic relationships
- One or two views
Use it for a week. You'll discover what's missing and what's unnecessary.
Use Consistent Naming
Establish conventions:
- Module names: Singular (Project, not Projects)
- Field names: Clear, specific (Due Date not Date)
- Status values: Active verbs (Planning, Active, Review, Complete)
Consistency helps users understand the system intuitively.
Design for the User
Ask: "What does someone need to see when they open this record?"
Put the most important information first. Hide rarely-used fields. Reduce cognitive load.
Document Your Modules
Maintain a simple doc explaining:
- What each module is for
- What each field means
- When to create new records
- Who is responsible for what
New team members will thank you.
Review Periodically
Quarterly, audit your custom modules:
- Are all fields being used?
- Are there fields people wish existed?
- Are relationships accurate?
- Do views match how people actually work?
Evolve the system based on real usage.
Common Module Patterns
Projects
Purpose: Track deliverables from start to completion
Core Fields:
- Name, Client (Company), Status, Start Date, Due Date, Budget, Lead (User)
Relationships:
- Belongs to one Company
- Has many Contacts (team members)
- Has many Tasks (if tracking tasks)
Views:
- Active Projects (Kanban by Status)
- My Projects (filtered to current user)
- Project Calendar (by Due Date)
Vendors
Purpose: Track companies you buy from
Core Fields:
- Name, Primary Contact, Category, Payment Terms, Rating
Relationships:
- Has many Contacts (people at vendor)
- Links to Projects (vendors involved)
- Links to Invoices (if tracking)
Views:
- All Vendors (List)
- By Category (Kanban)
Products/Inventory
Purpose: Track items you sell or manage
Core Fields:
- Name, SKU, Category, Price, Cost, Quantity, Reorder Level
Relationships:
- Links to Suppliers (Vendors)
- Links to Orders or Deals
Views:
- All Products (List)
- Low Stock (filtered by Quantity < Reorder Level)
- By Category (Kanban)
Applications/Candidates
Purpose: Track people in a hiring process
Core Fields:
- Name, Email, Position, Status, Source, Resume (file), Applied Date
Relationships:
- Links to Job (if tracking open positions)
- Links to Interviews (if tracking separately)
Views:
- Active Candidates (Kanban by Status)
- By Position (grouped)
- Recent Applications (sorted by date)
Frequently Asked Questions
How many custom modules can I create?
Depends on the platform. Most modern CRMs allow unlimited or high numbers (50+). Coherence allows unlimited custom modules.
Do custom modules slow down the system?
Not if designed well. Keep fields reasonable (<50 per module), archive old records, and avoid overly complex automations.
Can I delete a custom module?
Yes, but be careful—this typically deletes all records in that module. Most platforms require confirmation and some offer soft-delete/archive.
Can I change modules after creating them?
Yes. You can add fields, remove unused fields, change field types (with limitations), add views, etc. Design changes are normal as you learn.
Who can create custom modules?
Usually admins or users with specific permissions. Regular users typically can't modify the data structure.
What if I need something more complex than modules?
For truly complex needs (advanced calculations, external integrations, custom UI), you may need API access or developer assistance. But most business needs are met by modules + automations.
Build Your First Custom Module
Ready to try? Here's your 15-minute challenge:
- Identify one thing you track in spreadsheets that should be in your CRM
- List 5-7 fields that describe each instance
- Create the module in your CRM
- Add 3 test records
- Create one filtered view
Once you've done this once, you'll realize how powerful custom modules are—and how much of your business can be systematized.