Sales data rarely sits in isolation. Records in one module are often connected to several records in another, and Zoho CRM gives you a proper way to model that connection rather than forcing everything through a single lookup value.
A regular Account lookup field lets you tie a contact to one account, and you can repeat that same account across several contacts to build a one-to-many relationship. What a standard lookup cannot do is let a single record point to more than one related record at once, because it only ever holds a single value.
Picture a contact who works on a contractual basis for two separate companies. A single Account lookup field cannot represent both relationships at the same time, which is exactly the gap that a many-to-many association is designed to close.
A multi-select lookup field allows a record to hold several look-up values instead of just one, which is what makes a genuine many-to-many association possible between two modules.
| Field type | What it allows | Relationship created |
|---|---|---|
| Standard lookup field | A single value | One-to-many |
| Multi-select lookup field | Multiple values | Many-to-many |
Common scenarios where this pattern applies include:
A fictional estate agency runs two modules, Listings and Prospects. One prospect wants to view three separate listings, and one of those listings is also of interest to three other prospects. A standard lookup field cannot capture either side of that arrangement, since it only ever stores one value. Building a multi-select lookup field on the relevant module solves the problem by letting each record reference as many related records as needed.
Once saved, users creating a record in that module can select more than one value from the field, and each chosen value appears in the related record's related list.
Once a module has reached its field limit, you can still add up to ten multi-select lookup related lists to it. These behave in the same way as the field itself but sit in the record's related lists rather than on the form, and they work across both standard and custom modules.
A training academy running two intakes a year, with students able to take multiple courses, is a typical case where this second method proves useful once the two-field ceiling has been reached. Relationships such as Instructor to Course, Student to Mentor, and Project to Team can all be modelled this way.
To add the related list, either open Module Builder, go to the Details tab, and drag Multi-Select Related List onto the layout, or open a record's detail page, choose Add Related List, and select Multi-Select Lookup Related List.
A linking module sits between two modules joined by a multi-select lookup field, and it exists to hold data that belongs to the relationship itself rather than to either side of it. In the estate agency example, if a prospect negotiates a different rent on each of three listings, that figure cannot live on the prospect's record, because there are three different values, and it cannot live on the listing's record either, because other prospects may have negotiated different figures for the same listing. Zoho CRM solves this by creating one record in the linking module for every individual association, so each of the three listing-prospect pairings gets its own negotiated rent field.
To create one, tick Allow Creating Relationship-Specific Modules when setting up the multi-select lookup field and give it a name. From that point, the linking module can be customised with its own fields, much like any other custom module.
A linking module can be customised in the same way as any other custom module, with new fields and sections and its own permission settings. In the estate agency example, a Prospects vs Listings linking module might hold Negotiated Rent and Negotiated Advance fields against each individual association.
A few points are worth keeping in mind. Disabling one of the two primary modules through Setup, Customisation, Modules and Fields also disables the linking module, since it depends on both parent modules to function. The fields that reference the two primary modules are mandatory by default within the linking module and cannot be made optional, because the whole module is built around that pairing. A linking module can hold a maximum of 100 fields in total, counting both system and custom fields, though you may wish to confirm this figure is still current.
Reports and dashboards can be built directly from linking module data. For example, to see each prospect's negotiated rent grouped by their expected moving date, you would build a matrix report with Prospects as the primary module and select the Prospects vs Listings linking module under Related Modules. Choosing the linking module in a report automatically pulls in the other primary module as well.
A linking module cannot be deleted directly, and neither of its two primary modules can be removed while it still exists, since both are needed for it to function. To remove it, delete the multi-select lookup field that created the association in the first place, including removing it from any other layouts and from the Unused Fields list. Once that field is fully removed, the linking module disappears with it, and the two primary modules become free to delete if required.