Product Families: Where the Names Come From and How They Stay in Line with NetSuite and Salesforce
Every product you quote is its own family in Quote Generator, and its name appears on the proposal and on the NetSuite project a won quote opens. This article explains where those names came from, how Quote Generator lines them up with NetSuite and Salesforce, and what to do when somebody renames one. It is for estimators who see a name they do not expect, and for the administrator who keeps the list tidy.
What a Product Family Is
Section titled “What a Product Family Is”Open Admin → Products. On a company that quotes from a fee menu, each product you sell is its own family: Initial Design Peer Review, Quality Assurance Site Visits, and so on. A family’s page carries its Family name, the names it is Also known as, its Print order, its Scope of work and its Standard fee.
One family is different. Service is the umbrella a unit lands on when Quote Generator could not tell which product it is. A unit on the umbrella has no scope and no standard fee until someone picks its family.
Where the Names Came From
Section titled “Where the Names Came From”The family list was written once, when Quote Generator was set up for your company, from four places:
- Your fee menu — the products your past NetSuite estimates billed most often. These names are spelled exactly as the NetSuite service item.
- Your proposal library — the headings of the proposal inserts you used before GrndCtrl.
Some of these spell a product slightly differently from NetSuite, for example without
the dash in
ASTM C1193 - Joint Sealant Testing. - Your NetSuite project templates — template tasks that named a product nothing else covered.
- Your pricing sheet — products on the current price list that were missing from the other three.
How a Product Finds Its Family
Section titled “How a Product Finds Its Family”A unit reaches a quote through one of three doors, and each one looks for the family its own way.
Building from a NetSuite project template
Section titled “Building from a NetSuite project template”Each parent task on the template becomes one unit. Quote Generator tries these in order and stops at the first that answers:
- A name listed under Also known as on a family.
- The family’s own product name or its Family name.
- The name of the NetSuite service item the task bills under.
- Nothing matched. The unit lands on Service, and the AI Record says so under Worth a closer look, for example “filed under the umbrella family: no product matched ‘QA/QC’”. Click the entry to open the unit and pick its family.
The comparison ignores capital letters, punctuation and spacing, and a trailing note in
brackets such as (BECx). On a task name it also ignores a trailing visit number, so
QA Site Visit 12 matches QA Site Visit. It never drops #1: on your templates DPR #1 and DPR #2 are two different products. Two families claiming the same name match
neither — Quote Generator refuses to guess.
The unit keeps the template’s own task name as its heading, so a template task called
QA/QC prints as QA/QC on the proposal even though its family is Quality Assurance
Site Visits. To change it on one quote, click the unit’s name on the canvas (“Rename
this unit”).
Adding a product by hand
Section titled “Adding a product by hand”On the Canvas, click + Add product (top right). Add a product lists one row per product, grouped by category; on a quote from an opportunity it opens on that opportunity’s category. Show all lists every category and, last, under Not in a family yet, each NetSuite service item no family claims, as itself. Tick one or several and click Add product (Add 2 products for two, and so on); a product already on the quote is marked On this quote. Change product… on a row opens the same list to swap that one product. A product arrives with its family’s scope and standard fee; a NetSuite item added from Not in a family yet lands on Service.
Starting from a Salesforce opportunity
Section titled “Starting from a Salesforce opportunity”The products Quote Generator proposes for an opportunity are matched to families by exact name, the same way as the picker.
Which System Owns Which Part
Section titled “Which System Owns Which Part”| Part of a product | Where it is kept | Where to change it |
|---|---|---|
| The product’s name and the proposal heading | Quote Generator: the family, and each unit’s own name | Admin → Products, or the unit on the quote |
| Scope of work | Quote Generator: the family’s default, copied onto each new unit | The family’s Scope of work, or the unit on the quote |
| Standard fee | Quote Generator. NetSuite service items carry no price. | The family’s Standard fee |
| Resource sub-tasks, their hours and billing class | NetSuite: the project template, read on every sync | The template, in NetSuite |
| The service item a resource row bills under | NetSuite’s item, held on the row by its NetSuite id | The row’s Billed as line on the quote |
What Goes Back to NetSuite and Salesforce
Section titled “What Goes Back to NetSuite and Salesforce”When a quote is won, the NetSuite project gets one parent task per unit, titled with the
unit’s name, and one child task per resource, titled {unit name} : {sub-task}. A
resource line that has a service item sends it by NetSuite id, so renaming the item in
NetSuite does not break it.
Salesforce receives the stage, the amount and the close date on the opportunity, and one CPQ quote with a single line named after the quote. No product name and no CPQ product is sent, and Quote Generator never reads a Salesforce product. See What Happens in Salesforce and NetSuite When a Quote Is Won or Lost.
When Somebody Renames Something
Section titled “When Somebody Renames Something”| What was renamed | What happens in Quote Generator | What to do |
|---|---|---|
| A NetSuite service item | Quotes already built do not change. On the next template build, a task that was matched only through that item’s name can land on Service. Resource rows keep billing correctly, and their Billed as line shows the new name. | Add the new name to the family under Also known as. |
| A task on a NetSuite project template | New quotes built from the template use the new task name as the heading. If the new name matches no family, the unit lands on Service. | Add the new name under Also known as. |
| A Salesforce CPQ product | Nothing. Quote Generator does not read Salesforce products. | Nothing. |
| The Family name in Admin | The family is listed under the new name, and the new name becomes one more name a template task can match. Units already on quotes keep their headings, and a product added from Add a product is still named by its product name. | Nothing more. |
Do Salesforce and NetSuite Have to Match?
Section titled “Do Salesforce and NetSuite Have to Match?”Quote Generator does not need them to. It reads names from NetSuite and your own families, never from Salesforce products, and it sends NetSuite item ids rather than names. Whether your Salesforce products and NetSuite items should keep the same names is a decision for your own reporting, not a requirement of Quote Generator.
Troubleshooting
Section titled “Troubleshooting”The proposal says one name and NetSuite says another
Section titled “The proposal says one name and NetSuite says another”A unit built from a template carries the template’s task name, and a unit added by hand carries the product name you picked. Neither follows a later rename in NetSuite. Rename the unit on the quote, and add NetSuite’s wording under Also known as so the next build finds the family.
A unit arrived with no scope and no fee
Section titled “A unit arrived with no scope and no fee”It landed on Service. Open the AI Record: the entry under Worth a closer look names the task that matched nothing. Pick the unit’s family, then add that task name under Also known as so the next quote gets it right.
The product picker shows the same product twice
Section titled “The product picker shows the same product twice”One row is the NetSuite item and the other is your family, spelled slightly differently. Pick the row that shows your standard fee.
An Also known as name was refused
Section titled “An Also known as name was refused”The name already belongs to another family, and one name may point at one family only. The message names both families. Remove it from the other family first, or choose a different name.