Skip to main content

Exporting Invoices to NetSuite 

Connect Productive to NetSuite to sync invoices and companies. Set up the integration, map fields, and copy invoices directly from Productive.

Updated today

The NetSuite integration lets you sync invoices and companies from Productive to NetSuite. Once set up, you can copy invoices directly from Productive, with companies matched to existing NetSuite customers or synced as new ones.

In this article, we'll cover the initial setup and configuration options.

📌 Important: Only one invoicing integration can be connected per subsidiary in Productive.

Integrating your NetSuite account with Productive is available on the Ultimate subscription plans.

Before You Begin

Setting up the NetSuite integration requires Admin permission set in Productive and sufficient permissions in NetSuite.

👉 If your organization uses custom permission sets, the Manage organizational integrations permission is required to set up and manage the integration.

NetSuite User Permissions

The NetSuite user account used to connect the integration must have the following permissions:

  • All invoice-related permissions

  • All customer-related permissions

  • Under the Setup permission group:

    • REST Web Services

    • SuiteScript

    • Log In Using OAuth 2.0 Access Tokens

📌 The exact invoice and customer permissions required may vary depending on the NetSuite forms your organization uses. Check with your NetSuite administrator if you're unsure which permissions to enable.

Script Deployment

Before connecting, you'll need to deploy a script to NetSuite. Scripts are required for Productive and NetSuite to communicate and share data.

Download the Script from Productive

📌 The following steps require you to switch between Productive and NetSuite. Keep both open before continuing.

In Productive, go to Settings > App Marketplace, find the NetSuite integration, and click Connect App.

Select the Productive subsidiary you want to connect and click Next.

Download the SuiteScript file and copy the Script ID.

📌 Important: Store the Script ID as it will be used later in the setup.

Two scripts are available for download:

  • Metadata script (productive_metadata_service.js) — Allows Productive to read your custom forms and fields in NetSuite.

  • Attachment script (productive_attachment_service.js) — Allows invoice attachments, such as the invoice PDF, to be copied to NetSuite along with the invoice.

📌 The metadata script is required. The attachment script is optional and only needed if you want to copy invoice attachments to NetSuite.

Configuring NetSuite for the Integration

Open NetSuite, navigate to Manage Integrations > New. The exact path to this screen may vary depending on the role of the user account used to connect the integration.

Configure the integration with the following settings:

Click Save, and NetSuite will generate Client ID and Client secret for this integration.

📌 Important: You'll need the Client ID and Client secret to complete this setup and for any additional subsidiary connections. Store them immediately, as these values cannot be retrieved again.

Deploying the Script

Follow the steps below to deploy the downloaded script in NetSuite.

📌 If you're deploying both scripts, repeat the steps in this section for each one.

Go to Setup > Customization > Scripts > New.

Upload the downloaded file, and click Create Script Record.

Paste the Script ID into the ID field and click Save.

Once the script is uploaded, select Deploy Script.

In the deployment screen, grant access to the user role that will authorize the integration during the Productive configuration step.

Finally, set the script status to Released to activate it and press Save.

Productive Integration Configuration

Return to Productive where you downloaded the script and click Next.

Enter your NetSuite Account ID, along with Client ID, and Client Secret you stored after saving the integration in NetSuite, and click Next.

You will be redirected to NetSuite to log in. Select the role you granted access to the script in the previous steps and click Continue.

Once back in Productive, select the NetSuite subsidiary for this integration. This subsidiary will be used for all integration-related actions, such as creating an invoice.

Select the features you want to use with the integration:

  • Sync invoices from Productive to NetSuite.

  • Sync companies (customers) from Productive to NetSuite.

📌 You can enable both features or invoices only. Enabling companies without invoices is not supported.

📌 Companies are only synced when an invoice is copied to NetSuite, not automatically when created in Productive.

Companies Settings

Select the NetSuite form that Productive companies will sync to. The form you select determines which fields are available for mapping.

Map Productive company fields to their corresponding NetSuite customer fields:

  • The fields initially listed are required by the selected NetSuite form. Not all required fields need to be mapped — some may be populated automatically by NetSuite itself. Remove any fields that NetSuite will handle on its own.

  • Click + Add row to map additional fields.

  • You can also send a fixed value to a NetSuite field instead of mapping it to a Productive field. For example, you can set a Customer Status field in NetSuite always to receive the value "Closed - Won", regardless of the company data in Productive.

📌 When mapping fixed values, if the NetSuite field has a dropdown, those options will be available for selection.

Once you've mapped the fields you need, click Next.

Invoice Settings

To configure invoice synchronization, you'll need to set up invoice numbering, company matching, and map invoice fields, including service types and line item fields.

Invoice Numbers and Company Matching

Choose whether invoice numbers are generated by Productive or NetSuite.

  • If you select Productive, you also need to find and enable Allow Override in your NetSuite settings so that the NetSuite invoice number can be overwritten.

If you deployed the attachment script, choose how to handle the invoice PDF during export:

  • Push PDF from Productive to NetSuite

  • Pull PDF from NetSuite to Productive

  • Export invoice data only

Choose how companies on Productive invoices are matched to customers in NetSuite:

  • Using company name — the company name on the invoice is matched to a NetSuite customer with the identical name.

  • Using a different field — choose another NetSuite field whose value will be used to find the matching customer. For example, you could match a custom field in Productive, such as a CRM account ID, to the corresponding field in NetSuite.

Invoice Fields Mapping

Select the NetSuite form that Productive invoices will sync to. The form you select determines which fields are available for mapping.

Map Productive invoice fields to their corresponding NetSuite fields:

  • The fields initially listed are required by the selected NetSuite form. Not all required fields need to be mapped — some may be populated automatically by NetSuite itself. Remove any fields that NetSuite will handle on its own.

  • Click + Add row to map additional fields.

  • You can also send a fixed value to a NetSuite field instead of mapping it to a Productive field. For example, you can set an Invoice Source field in NetSuite to always receive the value "Productive", regardless of the invoice content.

📌 When mapping fixed values, if the NetSuite field has a dropdown, those options will be available for selection.

Once you've mapped the fields you need, click Next.

Service Types Mapping

Select a default NetSuite item for Productive service types. To map each service type to a different item, enable Map service types to NetSuite item.

Line Item Mapping

Map line item fields to their corresponding NetSuite fields. Fixed value mapping is also available here.

Click Save to finish the setup.

Syncing

Once setup is complete, you can sync any finalized invoice by clicking Copy to NetSuite.

📌 Important: Invoices are exported as net values. Tax rates are not included in the export; apply them directly in NetSuite after the invoice is received.

If you make changes to an invoice after copying it, click Copy again. This will create a new invoice record in NetSuite — the previously copied version will not be updated.

Updating Credentials

To update your NetSuite credentials, open the integration settings and select Update Credentials. You'll be prompted to enter a new Account ID, Client ID, and Client Secret.

📌 Once submitted, you'll need to complete the mapping process again.

If you only want to update your field mapping without changing credentials, select Edit instead.

Did this answer your question?