How to Email NetSuite Invoices to Multiple Contacts with a Workflow

Keep extra invoice recipients on the customer and let a SuiteFlow Send Email action copy them on every new invoice, with your own sender, template and PDF.

The quick answer

NetSuite's To Be E-mailed box sends an invoice to the address next to it, usually the customer's Email, and it has no Cc. To copy more people on every invoice, add a Free-Form Text customer field for the extra addresses, separated by commas with no spaces. Then build an Invoice workflow that runs On Create, with a Send Email action set to After Record Submit. Send it to the customer's E-mail, put in Cc, pick your template, and check Include Transaction with Type PDF. Give the action the condition Customer : Additional Invoice Recipients Is Not Empty, and add a copy with Is Empty and no Cc for everyone else. Leave To Be E-mailed cleared on the invoice, or NetSuite's own email can go out as well.

The screenshots show sample data. Person and operating-company names are fictional. Use your own records and values when following the steps.

Before you start

You need an Administrator role, or one that can create custom fields, customize entry forms, create email templates and build workflows. SuiteFlow has to be enabled. The template in step 6 uses FreeMarker fields like ${transaction.tranid}, which need the Scriptable Templates feature. Without it, use the template editor's own merge fields.

The sender and the customer both need a working email address. The workflow in this example doesn't check either one, so a blank address on the sender employee or the customer can make the email fail.

In this example Example Supply Co. bills Copperleaf Dental Group. The customer's Email is payables@copperleafdental.net, its accounts payable inbox. The controller and the office manager want every invoice too. The workflow keeps sending to the AP inbox and copies them.

01. See who the native email reaches

Open the customer. Copperleaf Dental Group has one Email, payables@copperleafdental.net, and nowhere to keep anyone else.

Then open an earlier invoice that went out with the native email, INV10457 here, and click the Communication subtab. To Be E-mailed is checked next to payables@copperleafdental.net, and Messages has one email to that address with Invoice_INV10457.pdf attached. Click View on the row and open the Recipients tab. Recipient is the AP inbox and Cc is empty, so the controller and office manager never got it.

The native invoice email went to one address. Cc is empty.

You can type several addresses, separated by semicolons, into the To Be E-mailed box on a single invoice. They all become primary recipients, and you have to do it on every invoice. The workflow's Cc box in step 8 is different: it takes commas. The rest of this guide keeps the extra addresses on the customer so every new invoice picks them up.

02. Create the Additional Invoice Recipients field

Go to Customization > Lists, Records, & Fields > Entity Fields > New. Enter the Label Additional Invoice Recipients and the ID _add_invoice_recipients. Leave Type at Free-Form Text.

On the Applies To subtab, check Customer. On Display, set Subtab to Main and put the format in Help, "Extra invoice recipients, separated by commas with no spaces." A text field doesn't check email addresses, so the help text is what keeps people entering them the right way.

Label, ID and Type, with Subtab Main and the format in Help.

Click Save. NetSuite adds the custentity prefix to the ID you typed, so the field's ID is custentity_add_invoice_recipients. Copy it exactly. The workflow uses it in step 8.

The saved field's full ID is custentity_add_invoice_recipients.

03. Move the field under Email

Open Copperleaf Dental Group again. The new field shows up at the end of the Classification section, far from Email, which is where the AR team will look for it.

Click Customize > Customize Form. On the Fields subtab, the Main list has Additional Invoice Recipients in the Classification field group. Set its Field Group to Email | Phone | Address. Then drag the row up by its handle and drop it on Phone, so it sits right under Email. Click Save.

Additional Invoice Recipients moved under Email in the Email | Phone | Address group.

04. Add the extra addresses to the customer

Open Copperleaf Dental Group and click Edit. Additional Invoice Recipients now sits under Email. Enter controller@copperleafdental.net,officemgr@copperleafdental.net, with a comma and no space between them, and click Save.

The AP inbox stays in Email. The two extra contacts sit right under it.

From now on, the AR team changes who gets copied by editing this field. Nobody has to touch the workflow.

05. Create a sender employee

A workflow email needs an employee as its sender. Using a shared one keeps customer replies out of whoever happened to save the invoice.

Go to Lists > Employees > Employees > New. Enter First Name Accounts and Last Name Receivable, Email receivables@examplesupply.example, and your Subsidiary. The employee has to be active and have an email address, but it doesn't need login access. Click Save.

Accounts Receivable has an email address and no login access.

06. Create the email template

Go to Documents > Templates > Email Templates > New and name it Invoice Notice with Number. Enter the Subject Example Supply Co. | ${transaction.tranid}, so each email carries its invoice number.

In the body, type:

  • Hello ${transaction.entity},
  • Please see the attached invoice for ${transaction.total} due on ${transaction.duedate}.
  • Thank you, Example Supply Co. Accounts Receivable

Click Save. When the workflow sends it, these fields fill in from the invoice.

The subject carries the invoice number. The body merges the customer, total and due date.

If you want more on merge fields, creating an invoice email template with merge fields covers the template on its own.

07. Create the invoice workflow

Go to Customization > Workflow > Workflows > New. Enter the Name Invoice Email to All Recipients, set Record Type to Transaction, and select Invoice in Sub Types.

Leave Release Status at Testing. A testing workflow only runs for its owner, so nobody else's invoices send email while you try it. Under Event Definition, check On Create and click Save. The workflow opens in the designer with State 1.

Invoice sub type, Release Status Testing, and On Create.

08. Add the Send Email action

Select State 1, click New Action in the State panel, and choose Send Email. Set Trigger On to After Record Submit. The action then runs once the invoice is saved and has its number, so NetSuite can attach the PDF.

Click the icon beside Condition. In the Workflow Condition window, set Record to Customer, Field to Additional Invoice Recipients and Compare Type to not empty. Click Add, then Save. The Condition box reads Customer : Additional Invoice Recipients Is Not Empty.

After Record Submit, and only when the customer has extra recipients.

Under Parameters:

  • Sender: Specific Sender, Accounts Receivable.
  • Recipient: From Field, with Record (Join Field) Customer and Field E-mail.
  • Cc: {entity.custentity_add_invoice_recipients}. The braces tell NetSuite to read a field, and entity points at the invoice's customer. Use the full ID from step 2.
  • Content: Use Template, Invoice Notice with Number.
  • Attachment: check Include Transaction and set Type to PDF.
Cc reads the customer's Additional Invoice Recipients field on every invoice.

Click Save. The State panel shows Record Save > After Record Submit > Send Email, to Customer : E-mail with the template and Include Transaction.

One Send Email action on State 1, for customers with extra recipients.

09. Copy the action for customers without extra recipients

Customers with nothing in the new field still need their invoices. A single action with an empty Cc works in some accounts and fails in others, so a second action is the safer way to cover them.

Click Send Email in the State panel to open the saved action, then click Make Copy. The copy opens with every parameter filled in. Open the condition, click the Customer row, change Compare Type to empty, click OK, then Save. The Condition box reads Customer : Additional Invoice Recipients Is Empty. Clear the Cc box and click Save.

The copy keeps the sender, recipient, template and PDF. Only Cc is empty.

State 1 now has two Send Email actions. Their conditions are exact opposites, so only one of them runs for any invoice.

Two actions: Is Not Empty with Cc, and Is Empty without it.

10. Create an invoice

Go to Transactions > Sales > Create Invoices and select Copperleaf Dental Group. Due Date fills in as 10/25/2026 from the customer's Net 30 terms. On Items, add Fixture Installation with Quantity 4 at 965.00, for 3,860.00.

One line: 4 × 965.00 = 3,860.00.

On Communication, leave To Be E-mailed cleared. If it's checked, NetSuite can send its own email as well and the customer gets two. Click Save.

To Be E-mailed stays cleared. The workflow sends the email.

11. Check the email and its Cc list

The invoice saves as INV10483. Open Communication. Messages has a new row: Author Accounts Receivable, Primary Recipient payables@copperleafdental.net, Subject Example Supply Co. | INV10483, Type Email, and the attachment Invoice_INV10483.pdf.

The workflow's email, from Accounts Receivable with the invoice PDF.

The Messages grid only shows the primary recipient. Click View to open the message. In NetSuite it opens in its own window. The Message tab shows the template with the invoice's values merged in.

The subject has the invoice number and the body has the customer, total and due date.
The Recipients tab is the only place the Cc addresses show.

Check the result (example values)

  1. INV10483's Messages has one email from Accounts Receivable to payables@copperleafdental.net with Invoice_INV10483.pdf attached.
  2. The subject is Example Supply Co. | INV10483, and the message shows $3,860.00 due on 10/25/2026.
  3. The Recipients tab lists controller@copperleafdental.net and officemgr@copperleafdental.net under Cc.
  4. There's no second email from the native To Be E-mailed send.

A logged message shows NetSuite sent the email, not that it arrived. In a sandbox, NetSuite can redirect outgoing email, so check where yours goes before you test. Test with invoices for a customer with extra recipients and one without, and with each way your invoices get created. CSV imports, web services, scripts and billing runs may not trigger the workflow unless those contexts are enabled on it. When it all looks right, set the workflow's Release Status to Released so it runs for everyone.

To send a single invoice by hand instead, see sending an invoice email from NetSuite.

Common questions

Can the To Be E-mailed box send an invoice to more than one person?

Only as primary recipients. You can type several addresses into the box on one invoice, separated by semicolons, but it has no Cc and you'd have to do it on every invoice. Keeping the extra addresses on the customer and letting a workflow copy them works for every new invoice without anyone retyping them.

Can I use Bcc instead of Cc?

Yes. The Send Email action has a Bcc box next to Cc, and it takes the same field reference you entered in Cc. The extra people still get the invoice, but they don't see each other's addresses. Test it once and check the message's Recipients tab.

Why didn't the Cc addresses get the email?

Start with the customer field. The addresses need commas between them, no spaces and no blank entries, and a text field won't catch a typo. Then check the workflow: the Cc box has to use the field's full ID, the sender and the customer both need an email address, and a workflow still in Testing only runs on invoices its owner creates. The message's Recipients tab shows whether NetSuite included the Cc.

Why did the customer get two invoice emails?

Two things sent it. Usually that's the workflow plus NetSuite's own email from a checked To Be E-mailed box, which can default on from the customer's email preference. Another workflow or a script that emails invoices will do the same. Each send leaves its own row under Communication > Messages, so the Author and Subject tell you which one to turn off.

Can I use the customer's contacts instead of a text field?

You can, but it's more work. Picking several contact records usually takes extra workflow actions or a script. The text field is simpler when the customer just gives you a list of billing addresses. Contacts make more sense when each person needs their own record, role or email preference.

Does this work for invoices from CSV imports or billing runs?

Only if the workflow is set to run in those contexts. Invoices created by CSV import, web services, scripts or bulk billing run in a different context from invoices saved on the screen. Enable the contexts you need on the workflow, then test each way your invoices get created before customers see the result.