{"id":3604,"date":"2026-09-05T09:00:00","date_gmt":"2026-09-05T09:00:00","guid":{"rendered":"https:\/\/aaxonix.com\/resources\/?p=3604"},"modified":"2026-07-11T09:45:51","modified_gmt":"2026-07-11T09:45:51","slug":"zoho-crm-custom-modules","status":"publish","type":"post","link":"https:\/\/aaxonix.com\/resources\/zoho-crm-custom-modules\/","title":{"rendered":"Zoho CRM Custom Modules: How to Build and Configure Them Step by Step"},"content":{"rendered":"<style>\n.aax-post{font-family:'Poppins',sans-serif;color:#1a2332;max-width:820px;margin:0 auto;line-height:1.75}\n.aax-post h2{font-size:1.55rem;font-weight:600;margin:2.5rem 0 .9rem;color:#0a1628}\n.aax-post h3{font-size:1.15rem;font-weight:600;margin:1.8rem 0 .6rem;color:#1a2332}\n.aax-post p{margin:0 0 1.1rem}\n.aax-post ul,.aax-post ol{margin:0 0 1.1rem;padding-left:1.5rem}\n.aax-post li{margin-bottom:.45rem}\n.aax-post table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.93rem}\n.aax-post th{background:#0a1628;color:#fff;padding:.6rem 1rem;text-align:left}\n.aax-post td{padding:.55rem 1rem;border-bottom:1px solid #e8edf4}\n.aax-post tr:nth-child(even) td{background:#f5f7fb}\n.aax-post .faq-section{background:#f5f7fb;border-radius:10px;padding:1.8rem 2rem;margin:2.5rem 0}\n.aax-post .faq-item{margin-bottom:1.2rem;border-bottom:1px solid #e0e6ef;padding-bottom:1.2rem}\n.aax-post .faq-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}\n.aax-post .faq-question{font-weight:600;color:#0a1628;margin-bottom:.5rem}\n.aax-post .faq-answer{color:#3a4a5c;line-height:1.65}\n.aax-post .aax-cta{background:linear-gradient(135deg,#0a1628 0%,#1a3a5c 100%);border-radius:12px;padding:1.8rem 2rem;margin:2.5rem 0;text-align:center}\n.aax-post .aax-cta p{color:#e8edf4;margin:0 0 1.2rem;font-size:1.05rem}\n.aax-post .aax-cta a{display:inline-block;background:#fff;color:#0a1628;font-weight:600;padding:.65rem 1.6rem;border-radius:6px;text-decoration:none;font-size:.95rem}\n<\/style>\n<div class=\"sp-toc-wrap\"><nav class=\"sp-blog-toc\" id=\"spBlogToc\" style=\"display:none\">\n  <h4><svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"\/><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"\/><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"\/><line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"\/><line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"\/><line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"\/><\/svg> On this page<\/h4>\n  <ol class=\"sp-toc-list\" id=\"spTocList\"><\/ol>\n<\/nav><\/div>\n<div class=\"aax-post\">\n\n<p>Zoho CRM ships with a solid set of standard modules: Leads, Contacts, Accounts, Deals, and a handful of others. For many businesses, those modules cover most of the process. But the moment your sales or operations workflow includes something the default module set was not designed for, you need a way to extend the CRM without resorting to workarounds. Knowing <strong>how to create custom modules in Zoho CRM<\/strong> gives you that capability. You can model any business object, whether that is a product installation, a warranty claim, a training enrollment, or a vendor contract, directly inside the CRM and connect it to your existing records. This guide covers the full path from deciding whether you actually need a new module, through field configuration, lookup setup, subforms, layout rules, and automation. Each section is written for CRM admins and operations professionals who need to implement, not just understand the concept. For a broader view of what configuration is possible, the <a href=\"https:\/\/aaxonix.com\/resources\/zoho-crm-customization-guide-india\/\" class=\"sp-content-link\">Zoho CRM customization guide<\/a> is a useful reference before you begin.<\/p>\n\n<figure style=\"margin:36px 0;text-align:center;line-height:0;\"><img decoding=\"async\" src=\"https:\/\/aaxonix.com\/resources\/wp-content\/uploads\/2026\/05\/zoho-crm-custom-modules-inline1.jpg\" alt=\"Person configuring custom fields in a database application on a laptop\" style=\"width:100%;max-width:820px;height:auto;border-radius:10px;box-shadow:0 4px 20px rgba(10,22,40,.13);\" loading=\"lazy\" \/><\/figure>\n<h2>When to Create a Custom Module vs Use an Existing One<\/h2>\n\n<p>Adding a custom module is not always the right answer. Before building one, check whether the standard modules can be adapted first.<\/p>\n\n<h3>Cases where an existing module is enough<\/h3>\n<ul>\n  <li>You need to track additional attributes on a Contact or Deal. Adding custom fields to an existing module is simpler and keeps relationships intact.<\/li>\n  <li>The object you want to track has a direct 1:1 relationship with an existing record type. A subform on Deals, for example, handles line-item style data without a separate module.<\/li>\n  <li>You only need a handful of records and the data does not need to be queried, filtered, or reported independently.<\/li>\n<\/ul>\n\n<h3>Cases where a custom module is the right choice<\/h3>\n<ul>\n  <li>The object has its own lifecycle: it is created, updated, and closed independently from Contacts or Deals.<\/li>\n  <li>You need to assign owners, set up views, run reports, or trigger automations specifically for this object type.<\/li>\n  <li>Multiple standard records relate to it. For example, a single training session might link to many Contacts, which a subform cannot handle cleanly.<\/li>\n  <li>The object has 10 or more distinct fields that would clutter an existing module&#8217;s layout.<\/li>\n<\/ul>\n\n<table>\n  <thead>\n    <tr><th>Scenario<\/th><th>Recommended approach<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr><td>Track delivery address per Contact<\/td><td>Custom fields on Contacts module<\/td><\/tr>\n    <tr><td>Track product line items per Deal<\/td><td>Subform on Deals<\/td><\/tr>\n    <tr><td>Track warranty claims across multiple Accounts<\/td><td>Custom module: Warranty Claims<\/td><\/tr>\n    <tr><td>Track training sessions with attendance records<\/td><td>Custom module: Training Sessions + lookup to Contacts<\/td><\/tr>\n    <tr><td>Track vendor contracts with approval stages<\/td><td>Custom module: Contracts<\/td><\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>How to Create a Custom Module in Zoho CRM (Step by Step)<\/h2>\n\n<p>Custom module creation requires Administrator access. The process is found inside the Setup area under Modules and Fields. Zoho&#8217;s <a href=\"https:\/\/www.zoho.com\/crm\/help\/modules\/custom-modules.html\" class=\"sp-content-link\" target=\"_blank\" rel=\"noopener noreferrer\">official custom modules documentation<\/a> is a useful companion if you want to follow the platform&#8217;s own reference alongside these steps.<\/p>\n\n<ol>\n  <li>Go to <strong>Setup<\/strong> (gear icon, top right).<\/li>\n  <li>Under <strong>Customization<\/strong>, click <strong>Modules and Fields<\/strong>.<\/li>\n  <li>Click <strong>New Module<\/strong> in the top right corner of the module list.<\/li>\n  <li>Enter a singular name (e.g., &#8220;Warranty Claim&#8221;) and a plural name (e.g., &#8220;Warranty Claims&#8221;). Zoho uses both in the interface.<\/li>\n  <li>Choose whether to enable the module for all profiles or restrict access by profile. You can change this later.<\/li>\n  <li>Click <strong>Create<\/strong>. Zoho generates a default layout with a system Name field and basic system fields (Owner, Created By, Modified By, Created Time).<\/li>\n  <li>You are taken immediately to the Layout Editor for this module. Add fields from the left panel by dragging them onto the layout grid.<\/li>\n  <li>Click <strong>Save<\/strong> when the layout is complete.<\/li>\n<\/ol>\n\n<p>The module is now active. It appears in the top navigation bar (you may need to use the ellipsis menu or reorder modules in Setup). You can create records, configure views, and build reports against this module immediately.<\/p>\n\n<h3>Naming conventions to follow<\/h3>\n<p>Use singular nouns for module names. Avoid module names that collide with standard Zoho modules or Zoho One app names, since this causes confusion in cross-app integrations. Prefix custom modules with a short namespace if your org has multiple configuration owners, for example &#8220;CS_Warranty&#8221; to indicate CRM-side custom modules.<\/p>\n\n<h2>Custom Field Types: Standard and Advanced<\/h2>\n\n<p>Zoho CRM offers a wide range of field types when building layouts. Understanding Zoho CRM custom fields types prevents design mistakes that require rebuilding later. The full list of supported field types is documented in <a href=\"https:\/\/www.zoho.com\/crm\/help\/fields\/custom-fields.html\" class=\"sp-content-link\" target=\"_blank\" rel=\"noopener noreferrer\">Zoho&#8217;s custom fields reference<\/a> if you need specifics on validation options or character limits per type.<\/p>\n\n<h3>Standard field types<\/h3>\n<ul>\n  <li><strong>Single Line:<\/strong> Short text up to 255 characters. Use for names, codes, reference numbers.<\/li>\n  <li><strong>Multi Line:<\/strong> Long-form text. Use for descriptions, notes, addresses.<\/li>\n  <li><strong>Number \/ Decimal \/ Percent \/ Currency:<\/strong> Numeric input with format control. Currency fields respect the org&#8217;s base currency setting.<\/li>\n  <li><strong>Date \/ Date-Time:<\/strong> Calendar picker. Date-Time stores to the minute and respects user timezone.<\/li>\n  <li><strong>Checkbox:<\/strong> Boolean true\/false. Useful for flags and binary states.<\/li>\n  <li><strong>Picklist \/ Multi-Select Picklist:<\/strong> Predefined option lists. Multi-select stores comma-separated values. Useful for categories, status labels, tags.<\/li>\n  <li><strong>Email \/ Phone \/ URL:<\/strong> Validated input fields with click-to-action behavior in the UI.<\/li>\n<\/ul>\n\n<h3>Advanced field types<\/h3>\n<ul>\n  <li><strong>Lookup:<\/strong> Links a record in this module to a record in another module. Creates a relational connection. Covered in detail in the next section.<\/li>\n  <li><strong>Formula:<\/strong> Computes a value from other fields using arithmetic or string functions. Recalculates on save. Useful for derived scores, SLA deadlines, or margin calculations.<\/li>\n  <li><strong>Auto Number:<\/strong> System-generated sequential ID. Cannot be edited by users. Use for ticket numbers, claim IDs, contract references.<\/li>\n  <li><strong>File Upload:<\/strong> Allows users to attach documents to a record. Files are stored in Zoho&#8217;s cloud storage.<\/li>\n  <li><strong>Image:<\/strong> Single image upload. Displays inline on the record detail view.<\/li>\n  <li><strong>Rich Text:<\/strong> Formatted text editor. Use for content fields that need headings, lists, or inline formatting.<\/li>\n  <li><strong>Subform:<\/strong> Embeds a repeating table of rows within a record. Detailed in the next section.<\/li>\n<\/ul>\n\n<figure style=\"margin:36px 0;text-align:center;line-height:0;\"><img decoding=\"async\" src=\"https:\/\/aaxonix.com\/resources\/wp-content\/uploads\/2026\/05\/zoho-crm-custom-modules-inline2.jpg\" alt=\"Team reviewing and organizing data records in an office setting\" style=\"width:100%;max-width:820px;height:auto;border-radius:10px;box-shadow:0 4px 20px rgba(10,22,40,.13);\" loading=\"lazy\" \/><\/figure>\n<h2>Setting Up Lookup Fields and Subforms<\/h2>\n\n<p>Lookup fields and subforms are the two mechanisms that connect records. Understanding when to use each is critical for a clean data model. The lookup field connects your custom module to any standard module, including Contacts and Accounts. For a full picture of how those records are structured, the guide on <a href=\"https:\/\/aaxonix.com\/resources\/zoho-crm-contact-management-india\/\" class=\"sp-content-link\">contact and lead management in Zoho CRM<\/a> is a useful companion read.<\/p>\n\n<h3>Zoho CRM lookup field setup<\/h3>\n<p>A lookup field links one record to another across modules. When you add a lookup field to your custom module, you specify the target module. Users see a searchable dropdown that pulls records from that module.<\/p>\n\n<p>To add a lookup field:<\/p>\n<ol>\n  <li>In the Layout Editor for your custom module, drag a <strong>Lookup<\/strong> field from the left panel onto the layout.<\/li>\n  <li>In the configuration panel, select the <strong>Related Module<\/strong> (e.g., Contacts, Accounts, or another custom module).<\/li>\n  <li>Set the <strong>Field Label<\/strong> (what users see) and the <strong>Related List Label<\/strong> (the heading of the related list that appears on the linked record&#8217;s detail view).<\/li>\n  <li>Optionally configure the <strong>Related List Fields<\/strong>: which columns from your module appear in the related list on the linked record.<\/li>\n  <li>Save the layout.<\/li>\n<\/ol>\n\n<p>One lookup field creates a two-way connection: the custom module record shows the linked record&#8217;s name as a clickable link, and the linked record shows a related list of all connected custom module records.<\/p>\n\n<h3>Zoho CRM subform tutorial<\/h3>\n<p>A subform is a repeating table embedded inside a parent record. Unlike a lookup, which links to separate records, a subform stores child rows that only exist within the parent. Use subforms for line items, component lists, or sequential steps where the child data has no independent existence.<\/p>\n\n<p>To add a subform:<\/p>\n<ol>\n  <li>In the Layout Editor, drag a <strong>Subform<\/strong> element onto the layout (it spans the full width of the section).<\/li>\n  <li>Name the subform (e.g., &#8220;Replacement Parts&#8221; or &#8220;Approval Steps&#8221;).<\/li>\n  <li>Inside the subform editor, add columns using the same field types available for regular fields. Each column is a field in each row.<\/li>\n  <li>You can add a <strong>Lookup column<\/strong> inside the subform to reference records from another module (for example, a Product lookup inside a line-items subform).<\/li>\n  <li>Save the layout.<\/li>\n<\/ol>\n\n<p>Subform data is not independently searchable or reportable across records. If you need to query child rows across many parent records, a custom module with a lookup is more appropriate than a subform.<\/p>\n\n<h2>Field Dependencies and Conditional Layout Rules<\/h2>\n\n<p>Zoho CRM field dependency and layout rules let you control which fields are visible, required, or locked based on the value of another field. This reduces clutter and prevents data entry errors.<\/p>\n\n<h3>Field dependency<\/h3>\n<p>A field dependency links a controlling field (usually a picklist) to a dependent field (another picklist). The dependent field&#8217;s available options change based on what the user selected in the controlling field. For example, if &#8220;Product Category&#8221; is set to &#8220;Hardware,&#8221; the &#8220;Product Type&#8221; picklist shows only hardware options.<\/p>\n\n<p>To configure: Setup \u2192 Modules and Fields \u2192 select your module \u2192 Field Dependency. Choose the controlling field, the dependent field, and map which values unlock which options.<\/p>\n\n<h3>Conditional layout rules (Validation Rules and Layout Rules)<\/h3>\n<p>Layout rules go further than field dependencies. They can:<\/p>\n<ul>\n  <li>Show or hide entire sections when a field has a specific value.<\/li>\n  <li>Make a field mandatory only under certain conditions (e.g., &#8220;Resolution Notes&#8221; becomes required when Status is set to &#8220;Closed&#8221;).<\/li>\n  <li>Lock a field so it cannot be edited after a certain stage.<\/li>\n<\/ul>\n\n<p>To configure: Setup \u2192 Modules and Fields \u2192 select your module \u2192 Layout Rules. You define a condition (field, operator, value) and then specify the actions that apply when the condition is met. Multiple rules can stack on one layout, and rules evaluate in sequence.<\/p>\n\n<p>Zoho CRM validation rules are a related feature. They run on record save and can prevent saving if a field value fails a condition. Use them for cross-field checks that layout rules cannot enforce, such as ensuring an end date is always after a start date.<\/p>\n\n<h2>Connecting Custom Modules to Standard Modules<\/h2>\n\n<p>A custom module that exists in isolation has limited value. The full benefit comes from connecting it to standard modules so that records, views, and reports flow together.<\/p>\n\n<h3>Lookup connections<\/h3>\n<p>The most direct method is the lookup field described above. One custom module can have multiple lookup fields pointing to different standard modules. A &#8220;Support Installation&#8221; custom module, for example, might have lookups to Accounts (the customer), Contacts (the primary contact), and Deals (the originating sale).<\/p>\n\n<h3>Relating records via the standard module&#8217;s related list<\/h3>\n<p>Once a lookup exists, the standard module record automatically gains a related list section showing connected custom module records. CRM admins can configure which fields appear in that related list and the sort order via Setup \u2192 Modules and Fields \u2192 [Standard Module] \u2192 Related Lists.<\/p>\n\n<h3>Using custom modules in reports<\/h3>\n<p>Custom modules appear in the Report Builder alongside standard modules. You can create reports that join fields from a custom module and its linked standard modules in a single table. For example, a report on Warranty Claims can include the Account Name, the Deal Amount from the linked Deal, and the claim status and resolution date from the custom module itself.<\/p>\n\n<h2>Automating Custom Modules with Workflows and Blueprints<\/h2>\n\n<p>Custom modules support the same automation capabilities as standard modules. This is where the investment in a well-structured module pays off operationally. Solid <a href=\"https:\/\/aaxonix.com\/resources\/zoho-crm-automation-guide\/\" class=\"sp-content-link\">CRM workflow automation<\/a> across custom modules eliminates the manual follow-up that typically falls through the gaps.<\/p>\n\n<h3>Workflow rules<\/h3>\n<p>Go to Setup \u2192 Automation \u2192 Workflow Rules and select your custom module as the trigger module. You can fire actions on record creation, field update, or a date\/time condition. Available actions include email alerts, field updates, webhooks, and creating records in other modules.<\/p>\n\n<p>A practical example: when a Warranty Claim record&#8217;s Status field changes to &#8220;Escalated,&#8221; a workflow can assign the record to the senior support owner, send an email alert to the account manager, and update a timestamp field called &#8220;Escalation Date.&#8221;<\/p>\n\n<h3>Blueprints<\/h3>\n<p>Blueprints enforce a sequential process on a custom module. You define states (similar to pipeline stages) and transitions (the allowed moves between states). Each transition can require specific fields to be filled, enforce approvals, or trigger actions automatically.<\/p>\n\n<p>Blueprints are particularly useful when a custom module tracks a process with defined steps and accountable owners at each step, such as contract approvals, onboarding checklists, or installation sign-offs. Configure Blueprints via Setup \u2192 Process Automation \u2192 Blueprint, then select your custom module.<\/p>\n\n<h3>Approval processes<\/h3>\n<p>If records in your custom module require manager sign-off before a stage progresses, use Setup \u2192 Process Automation \u2192 Approval Processes. You can chain multiple approvers and specify the fields that must be completed before approval is requested.<\/p>\n\n<h2>Practical Custom Module Use Cases<\/h2>\n\n<p>These examples illustrate how the configuration techniques above combine into working solutions.<\/p>\n\n<h3>Equipment installations (field service)<\/h3>\n<p>Module: Installations. Fields: Installation Date (Date), Serial Number (Auto Number), Product (Lookup to Products), Account (Lookup to Accounts), Engineer (Lookup to Users), Warranty Expiry (Date), Status (Picklist). A Blueprint enforces the stages from Scheduled through Completed. A workflow fires an email to the customer 30 days before warranty expiry.<\/p>\n\n<h3>Training enrollment management<\/h3>\n<p>Module: Training Sessions. Fields: Session Date (Date-Time), Trainer (Lookup to Contacts), Capacity (Number), Status (Picklist). A subform on Training Sessions handles the attendee list, with each row containing a Contact lookup and an Attendance Status picklist. Reports show enrollment rates per session and per trainer.<\/p>\n\n<h3>Vendor contract tracking<\/h3>\n<p>Module: Vendor Contracts. Fields: Contract Value (Currency), Start Date (Date), End Date (Date), Auto-Renewal (Checkbox), Vendor (Lookup to Accounts), Contract Owner (Lookup to Users). A formula field calculates Days to Expiry. A workflow sends an alert to the Contract Owner when Days to Expiry drops below 60.<\/p>\n\n<h3>Referral tracking<\/h3>\n<p>Module: Referrals. Fields: Referrer (Lookup to Contacts), Referred Contact (Lookup to Contacts), Deal (Lookup to Deals), Referral Date (Date), Reward Status (Picklist), Reward Amount (Currency). A layout rule makes Reward Amount mandatory when Reward Status is set to &#8220;Approved.&#8221;<\/p>\n\n<h2>Common Mistakes and Limits to Know<\/h2>\n\n<p>Custom modules have both design pitfalls and hard platform limits. Knowing these before you build saves rework later. If you are evaluating whether your current <a href=\"https:\/\/aaxonix.com\/products\/zoho-crm\/\" class=\"sp-content-link\">Zoho CRM plan<\/a> supports the number of custom modules your architecture requires, checking the plan comparison before committing to a design is worthwhile.<\/p>\n\n<h3>Design mistakes<\/h3>\n<ul>\n  <li><strong>Over-building too early:<\/strong> Creating a custom module for data that could live as custom fields on an existing module adds unnecessary complexity. Start with the simplest structure and promote to a custom module if the data outgrows it.<\/li>\n  <li><strong>Ignoring naming conventions:<\/strong> Module and field names are visible across reports, automations, and API calls. Vague names like &#8220;Custom1&#8221; or &#8220;Module A&#8221; create permanent confusion.<\/li>\n  <li><strong>Subforms for independently queryable data:<\/strong> Subform rows cannot be searched, filtered, or reported across parent records. If you need to run a report on individual rows, use a custom module with a lookup instead.<\/li>\n  <li><strong>Missing the related list configuration:<\/strong> After adding a lookup, the related list on the linked standard module shows only default fields. Admins often forget to configure which columns appear there, leaving users with an incomplete view.<\/li>\n<\/ul>\n\n<h3>Platform limits (Zoho CRM Enterprise and above)<\/h3>\n<ul>\n  <li>Maximum custom modules per org: 50 (Enterprise), higher on Ultimate.<\/li>\n  <li>Maximum fields per module: 500 (across all layouts).<\/li>\n  <li>Maximum subforms per layout: 3.<\/li>\n  <li>Maximum rows per subform at data entry: 200.<\/li>\n  <li>Lookup fields per module: up to 3 on standard editions, higher on Enterprise.<\/li>\n  <li>Formula fields cannot reference lookup fields from another module directly; they can only compute values from fields within the same record.<\/li>\n<\/ul>\n\n<div class=\"faq-section\">\n  <h2>Frequently Asked Questions<\/h2>\n  <div class=\"faq-item\">\n    <p class=\"faq-question\">How many custom modules can I create in Zoho CRM?<\/p>\n    <p class=\"faq-answer\">On the Enterprise plan, you can create up to 50 custom modules per organization. The Ultimate plan increases this limit. Standard and Professional plans support fewer custom modules, so check your plan limits in Setup before designing a large multi-module architecture.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <p class=\"faq-question\">Can I add a custom module to the Zoho CRM mobile app?<\/p>\n    <p class=\"faq-answer\">Yes. Custom modules appear in the Zoho CRM mobile app automatically once they are created and the user&#8217;s profile has access. You can configure which fields appear in the mobile list view via the module&#8217;s layout settings under Mobile Layouts in Setup.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <p class=\"faq-question\">What is the difference between a lookup field and a subform in Zoho CRM?<\/p>\n    <p class=\"faq-answer\">A lookup field links one record to another existing record in a different module, creating a two-way relationship. A subform embeds multiple rows of child data directly inside a parent record, and those rows exist only within that parent. Use lookups when the related data needs to exist independently; use subforms for line items or lists that belong exclusively to one record.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <p class=\"faq-question\">Can I use Blueprints on a custom module?<\/p>\n    <p class=\"faq-answer\">Yes. Blueprints are available for custom modules on Enterprise and above. You select the custom module when creating the Blueprint, define the state field (typically a picklist), and configure transitions with conditions, required fields, and automated actions. This is one of the most powerful features for enforcing process compliance on custom workflows.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <p class=\"faq-question\">How do I delete a custom module if I no longer need it?<\/p>\n    <p class=\"faq-answer\">Go to Setup, then Modules and Fields, and click the settings icon next to the module. Choose Delete Module. Zoho will warn you that all records, fields, and related data in the module will be permanently removed. You cannot recover deleted module data, so export any records you need before deleting. Automations and reports referencing the module will also break and must be removed manually.<\/p>\n  <\/div>\n<\/div>\n\n<div class=\"aax-cta\">\n  <p>Aaxonix designs and implements custom Zoho CRM architectures for sales and operations teams that have outgrown the default module set. Book a free consultation to map your process to the right module structure from the start.<\/p>\n  <a href=\"https:\/\/aaxonix.com\/contact\/\">Book a free consultation<\/a>\n<\/div>\n\n<p>Custom modules are one of the most practical ways to extend Zoho CRM without leaving the platform. When combined with well-chosen field types, lookup relationships, layout rules, and automation, they let you track any business object with the same reliability as the built-in modules. Start with one module that has a clear use case, configure it fully, and validate it with real users before expanding to additional modules. For the broader context of how custom modules fit into your overall CRM configuration, the <a href=\"https:\/\/aaxonix.com\/resources\/zoho-crm-complete-setup-guide\/\" class=\"sp-content-link\">complete Zoho CRM setup<\/a> guide covers the full system architecture.<\/p>\n\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Build and configure custom modules in Zoho CRM step by step. Extend your CRM beyond default modules to match your exact sales and operations workflow.<\/p>\n","protected":false},"author":1,"featured_media":3601,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"seo_title":"How to Create Custom Modules in Zoho CRM | Aaxonix","seo_description":"Build and configure custom modules in Zoho CRM step by step. Extend your CRM beyond default modules to match your exact sales and operations workflow.","seo_keyword":"how to create custom modules in zoho crm","seo_faqs":"[{\"q\":\"How many custom modules can I create in Zoho CRM?\",\"a\":\"On the Enterprise plan, you can create up to 50 custom modules per organization. The Ultimate plan increases this limit. Standard and Professional plans support fewer custom modules, so check your plan limits in Setup before designing a large multi-module architecture.\"},{\"q\":\"Can I add a custom module to the Zoho CRM mobile app?\",\"a\":\"Yes. Custom modules appear in the Zoho CRM mobile app automatically once they are created and the user's profile has access. You can configure which fields appear in the mobile list view via the module's layout settings under Mobile Layouts in Setup.\"},{\"q\":\"What is the difference between a lookup field and a subform in Zoho CRM?\",\"a\":\"A lookup field links one record to another existing record in a different module, creating a two-way relationship. A subform embeds multiple rows of child data directly inside a parent record, and those rows exist only within that parent. Use lookups when the related data needs to exist independently; use subforms for line items or lists that belong exclusively to one record.\"},{\"q\":\"Can I use Blueprints on a custom module?\",\"a\":\"Yes. Blueprints are available for custom modules on Enterprise and above. You select the custom module when creating the Blueprint, define the state field (typically a picklist), and configure transitions with conditions, required fields, and automated actions. This is one of the most powerful features for enforcing process compliance on custom workflows.\"},{\"q\":\"How do I delete a custom module if I no longer need it?\",\"a\":\"Go to Setup, then Modules and Fields, and click the settings icon next to the module. Choose Delete Module. Zoho will warn you that all records, fields, and related data in the module will be permanently removed. You cannot recover deleted module data, so export any records you need before deleting. Automations and reports referencing the module will also break and must be removed manually.\"}]","footnotes":""},"categories":[1],"tags":[],"class_list":["post-3604","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts\/3604","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/comments?post=3604"}],"version-history":[{"count":2,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts\/3604\/revisions"}],"predecessor-version":[{"id":6571,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/posts\/3604\/revisions\/6571"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/media\/3601"}],"wp:attachment":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/media?parent=3604"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/categories?post=3604"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/tags?post=3604"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}