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:
Name: Any descriptive name
Authorization Code Grant: Enabled
Redirect URI: https://app.productive.io/integrations/netsuite
RESTLETS: Enabled
REST WEB SERVICES: Enabled
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.























