Many-to-Many Module Association in Zoho CRM | Multi-Select Lookup Guide

Many-to-Many Module Association in Zoho CRM: Multi-Select Lookup Fields and Linking Modules

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.

Why a standard lookup field is not enough

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.

Multi-select lookup fields: the mechanism behind many-to-many

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 typeWhat it allowsRelationship created
Standard lookup fieldA single valueOne-to-many
Multi-select lookup fieldMultiple valuesMany-to-many

Common scenarios where this pattern applies include:

  • A training provider with Students and Courses modules, where one student takes several courses and one course has several students.
  • An insurer with Policyholder and Policies modules, where one policyholder holds several policies and one policy can cover several holders.
  • An estate agency with Prospects and Listings modules, where one prospect is interested in several properties and one property attracts several prospects.

Worked example: an estate agency

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.

Creating a multi-select lookup field

Method 1: add the field directly to a module

  1. Open Modules and Fields. Go to Setup, then Customisation, then Modules and Fields.
  2. Choose the module. Select the module that needs the new field, for example Prospects.
  3. Drag in the field. From the field list, drag the Multi-Select Lookup field onto the layout. A module can hold a maximum of two multi-select lookup fields, so you may wish to verify this ceiling still applies in your CRM edition before planning your build.
  4. Configure the properties. Fill in the Multi-Select Lookup Properties window, including the module it should relate to.
  5. Decide on a linking module. Tick Allow Creating Relationship-Specific Modules if you need a dedicated linking module, and give it a name.
  6. Save. Click Done, then save the layout to finish.

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.

Note: If a module does not appear in the Select Related Module list, it has likely reached its own limit for multi-select lookup fields. Each module can hold a maximum of two such fields, and if a module has more than one layout, you will be asked which layout should carry the new field.

Method 2: add a multi-select lookup 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.

Assigning related records

  1. Open the record. Go to the relevant module record.
  2. Pick the related list. Choose the multi-select related list you want to work with.
  3. Assign records. Select the records you want to associate.

What is a linking module?

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.

Note: Multi-select lookup fields can currently only be populated while creating a record individually; they are not supported through data import. Custom views cannot be built on a multi-select lookup field itself, though they can be built on the linking module, and automation is not currently supported for linking module records.

Working with the linking module's related lists

  • Each of the two primary modules shows the other module's related list on its record detail page, along with linking module details where one has been set up.
  • The columns shown in that related list can be customised, and the related list itself can be renamed.
  • Clicking the edit icon against a record opens the linking module record, while clicking the record's own hyperlink opens its own detail page instead.
  • New associations can be assigned, or existing ones edited, using the Assign and Edit links above the related list, and an association can be removed by clicking the cross icon against it.
  • Viewing and customising the related list requires the appropriate permission on the underlying multi-select lookup field.
  • Records in a linking module carry no related lists of their own other than Notes.

Customising a linking 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

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.

Note: A linking module appears in the Related Modules list whenever a report is based on one of the two modules it depends on. Selecting the linking module as a related module automatically brings in its other primary module too, and reports based on a linking module itself can only list its two primary modules as related modules.

Deleting a linking module

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.

A few further properties worth knowing

  • A multi-select lookup field is created against the current page layout, and if a module has several layouts, you will be prompted to choose which one, or several, should carry the field.
  • Removing a multi-select lookup field from a layout leaves it sitting in Unused Fields. To delete it permanently, it must be removed from every layout and from the Unused Fields list, and this action cannot be undone. Deleting the field also removes its linking module.
  • Deleting a record that has associations through a multi-select lookup field sends the corresponding linking module records to the Recycle Bin along with it, and restoring the original record restores those associations too.
  • Export is not supported for records in a linking module, nor for the multi-select lookup field itself.
Need help? If you would like a hand designing many-to-many relationships, multi-select lookup fields, or linking modules for your own Zoho CRM setup, 1 Cloud Consultants can guide you through the build. Book a discovery call with 1 Cloud Consultants.