Published on August 11, 2022.
I've been working on a project for a NetSuite client that uses the Multi-Partner Management feature. If you're not familiar with that feature, it essentially lets you associate multiple partners with a single customer and/or transaction.
In this post, I'll show how you can enable Multi-Partner Management, and more importantly, how you can use SuiteQL to query for the partners associated with a transaction.
To determine if the Multi-Partner Management feature is enabled, navigate to Setup > Company > Enable Features. The option is available on the CRM subtab in the Partners section.
Another way to determine the status of the Multi-Partner Management feature is to use a variation of the SuiteQL query that I wrote about in this blog post. For example:
SELECT Name, ID, IsAvailable, IsActive FROM CompanyFeatureSetup WHERE ID = 'MULTIPARTNER'
If you're in the process of setting up the Multi-Partner Management feature, then you might be wondering how to configure the list of Partner Roles - the list that appears when you're associating partners to a customer or transaction.
You can manage that list by navigating to: Setup > Sales > CRM Lists. You can then use the filter function to display only the "Partner Category/Role" values.
The partner information for transactions is stored in a table named TransactionPartner. Here's a query against that table.
SELECT TransactionPartner.Partner AS PartnerID, Partner.CompanyName AS PartnerName, BUILTIN.DF( TransactionPartner.PartnerRole ) AS Role, TransactionPartner.IsPrimary, TransactionPartner.Contribution FROM TransactionPartner INNER JOIN Partner ON ( Partner.ID = TransactionPartner.Partner ) WHERE ( TransactionPartner.Transaction = 26279 )
The query returns all of the partners that are associated with the transaction, including their internal IDs, names, roles, and contribution percentages. It also indicates which of the partners is the primary partner.
Note that I'm using the BUILTIN.DF function on the TransactionPartner.PartnerRole column to get the name of the partner role. However, the BUILTIN.DF function doesn't work on the TransactionPartner.Partner column. Therefore, to get the partner names, I'm joining to the Partner table.
In the example above, I'm querying for the partner relationships associated with a Sales Order that has an internal ID of 26279. Here's a screen shot that shows what that Sales Order looks like in the NetSuite UI.
Click the image to view a larger version.
Note the two partners that are associated with the Sales Order, as shown in the Relationships > Partners subtab.
In this post, I've introduced the TransactionPartner table and shown how you can query it to get the partners associated with a transaction. As always, I hope you've found this information to be helpful.
Hello, I'm Tim Dietrich. I develop custom software for businesses that are running on NetSuite, including mobile apps, Web portals, Web APIs, and more.
I'm the developer of several popular NetSuite open source solutions, including the SuiteQL Query Tool, SuiteAPI, and more.
I founded SuiteStep, a NetSuite development studio, to provide custom software and AI solutions - and continue pushing the boundaries of what's possible on the NetSuite platform.
Copyright © 2025 Tim Dietrich.