Integrate your NetSuite account with Dotdigital to sync your customers, contacts, opt-in or opt-out status, product catalogs, and orders between the two platforms.
Before you start
Things you need to know:
You must have first prepared your NetSuite account for the integration.
Learn how in Prepare your NetSuite environment for the Dotdigital integration.
Ensure you understand the integration behaviour.
Learn more in NetSuite integration behaviour.
You must have already created any custom data fields in Dotdigital you need for mapping NetSuite fields to, and have ensured they are the correct data type.
Learn more in Create, delete, and edit Custom data fields.
You must have requested that the NetSuite integration is activated through your Customer Success representative, and had confirmation this has been completed.
⚠️ When initially setting up the integration you must complete the process in one go. Ensure you have read the guidance and are as prepared as possible to make sure you're able to complete the process.
1. Configure the NetSuite integration
In Dotdigital, go to Connect.
If you need to install the integration:
Select Integrations.
Select the CRM & CLM filter under Categories in the left side menu.
Select ADD for Oracle NetSuite.
If you have the NetSuite integration already installed:
Select Oracle NetSuite.
Select Settings.
2. Connect to NetSuite
Select New authentication.
If you have previously set up a connection, select NEXT.Enter your connection details:
Account ID
To find it, in NetSuite, go to Setup > Company > Company Information, and copy it from the ACCOUNT ID field.Token ID
Enter the consumer key (client ID) from NetSuite.Token secret
Enter the consumer secret from NetSuite.
Select CREATE.
Select NEXT.
Your NetSuite connection is tested to ensure we can access your NetSuite data using the authentication details entered.
If this is successful, you see a confirmation message. Select NEXT.
If an error message is displayed, select PREVIOUS, and double check the authentication details entered are correct, then try again.
If you continue to have issues, confirm that all the steps in Prepare your NetSuite environment for the Dotdigital integration have been completed correctly.
3. Choose your subsidiary to sync data for
NetSuite can compartmentalize data by subsidiaries. The integration can be configured to access data for all or a specific subsidiary.
Expand the Subsidiary drop-down menu and select the subsidiary you want to sync data for. Select All to sync data for all subsidiaries.
Select NEXT.
4. Set up the time and date format
To accurately detect changes, the integration must know how your NetSuite instance is configured for dates and times.
If you’re unsure of the information requested in this step, you can find it in your NetSuite account. Go to Home > Set > Preferences.
Expand the NetSuite date format drop-down menu, and choose the date format shown in NetSuite.
Expand the NetSuite time format drop-down menu, and choose the time format shown in NetSuite.
Expand the NetSuite Timezone drop-down menu, and choose the timezone shown in NetSuite.
Select NEXT.
5. Set up multiple match handling
Learn how the integration handles duplicate emails in NetSuite integration behaviour.
When we try to relate a contact in Dotdigital to a record in NetSuite, we might find multiple contacts, prospects, leads, or customers with the same email address. Having duplicates in NetSuite is not recommended, but you can tell the integration what to do if it discovers them.
To set up multiple match handling:
Expand the Multi match handling drop-down menu, and choose how you want to handle multiple matches.
Options are:Update first contact where email and names match
Correlates when the email address and the first and last names match.Update first contact
Chooses the first contact with the same email address.Do not update
No updates are applied when we find a duplicate.
Select NEXT.
6. Set up default country for phone numbers
When we try to import phone numbers from NetSuite to Dotdigital, we need to ensure the phone numbers are for mobile phones and are in international format. If a number is not in international format then the integration attempts to convert it using the assumed default country you enter in this step.
Expand the Default country drop-down menu, and choose the country you would like to use.
Select NEXT.
7. Opt in/out status sync
Choose whether you want to sync opt-in and opt-out status and how this data is stored in NetSuite.
Learn about integration behaviour for syncing opt-in/out status in NetSuite integration behaviour.
Expand the Sync opt in/out status drop-down menu, and choose Yes (to sync) or No (not to sync).
If you choose No, and don’t want to sync opt-ins, you can move forward to Step 8.
Expand the Choose in what directions(s) opt in state is synced drop-down menu, then choose the sync direction.
From NetSuite to Dotdigital
From Dotdigital to NetSuite
Bi-directional
Sync updates from either system.
Expand the Select the entities you want to sync opt-in state for to select the entities you want to sync opt-in state for, choose from customers, leads, prospects, and contacts or combinations of.
Select NEXT.
Expand the Opt in data held in drop-down menu, and choose how you want to store your opt-in and opt-out data in NetSuite.
NetSuite’s subscription status
Use the default mechanism in NetSuite for the marketing subscription status.
Using a field
The opt-in and opt-out statuses are stored in a field on the contact and customer records.
If you selected Subscription Status then skip to step 8, otherwise continue to the steps below.
Holding opt-in and opt-out status in a field
Expand the Default opt in status drop-down menu and choose a default opt in status from:
None
No opt-in status is set. Each contact or customer has their opt-in and opt-out status set in a field.Opted in
All customers and contacts are opted in unless explicitly opted out by a field value.Opted out
All customers and contacts are opted out unless explicitly opted in by a field value.
Expand the Opt in status field drop-down menu, then choose the property field that holds your contacts’ and customers’ opt-in and opt-out status.
Expand the Value type drop-down menu, then choose the field's data type.
Boolean value
A Boolean (true/false) value is held in the field.Specific value
Text with specific values is held in the field.
If you chose your data type as Boolean values with no assumed default opt-in or opt-out status, you must now choose what the true value indicates in the field.
Expand the Checked value represents drop-down menu and select either Opted in or Opted out.
If you chose your data type as Specific values, enter the text value precisely as it appears in NetSuite to indicate your opt-in value and opt-out value.
Select NEXT.
8. Contacts sync
For Contact syncing, expand the Sync contact data drop-down menu and choose either Yes (to sync contacts) or No (not to sync).
Select NEXT.
To choose the direction that you sync contact data, expand the Contact sync option drop-down menu, then choose the direction you want to sync contact data.
Bi-directional
Contact data is synced from both NetSuite and Dotdigital.From NetSuite to Dotdigital
Contact data is synced only from NetSuite to Dotdigital.From Dotdigital to NetSuite
Contact data is synced only from Dotdigital to NetSuite.
When syncing data, the integration must know which system holds the master data initially. If conflicting data is found in the initial sync, it takes the data from the master system and overwrites the other system.
Expand the Master system drop-down menu, then choose your master system.NetSuite
NetSuite data overwrites any conflicting records in Dotdigital during the initial sync.Dotdigital
Dotdigital data overwrites any conflicting records in NetSuite during the initial sync.
⚠️ You must choose the correct master system, or you will lose data.
Select NEXT.
Contact field mapping
You can map fields from a Dotdigital data field to a NetSuite field, and we automatically reverse these to map the other way when required.
In addition to the NetSuite entities fields and custom fields, we also list some calculated fields which are indicated by the encapsulating [[ ]] , such as [[ Firstname Lastname ]].
These Dotdigital data fields must be mapped:
EMAIL
FIRSTNAME
LASTNAME
You should map the following NetSuite fields if you want to use or set them:
Category (category) - to a text field
By default, we pre-populate the minimum required fields that need mapping. We recommend only mapping fields you want to use in Dotdigital rather than all fields on the entity.
To set up field mapping:
On the Contact field mappings, use the drop-down menus to map your Dotdigital data fields to your NetSuite contact fields.
Your mappings are tested to ensure the minimum required fields are mapped. If an issue is shown, adjust your mappings to correct this.Once testing is successfully completed, select NEXT.
If you need to filter to a subset of contacts
⚠️ Important
These steps must be performed by a developer.
The integration uses SuiteQL to access your NetSuite data, and we automatically filter for customer entities that have an email and are not duplicates. Optionally you can add your own filters if you need to limit the data further.
For Contacts SuiteQL filter, enter additional filter criteria, using SuiteQL WHERE clause syntax against the contacts table (c).
The filter will be something like BUILTIN.DF(c. {The field id} ) = ' {Value to filter on} ' for example:c.country = ‘US’
BUILTIN.DF(c.myCustomField) = ‘Region A’
If you specify a filter, it is tested and must work before you can proceed.
Select NEXT.
Data alignment
The integration can align the contact data from the master system to the other system when first created. This can be useful to ensure your data is fully populated in the non-master system. However, the master system's data will overwrite any conflicting data in the non-master system.
Expand the Initial contact data alignment drop-down menu, and choose either Yes or No.
No
Only data changed from this point is synced.Yes
All data from the master system is synced to the non-master system.
⚠️ Warning
You must choose the correct option, or you will lose data.
9. Sync customer data
In this section we set up the integration to sync customer data with NetSuite. Customer entities in NetSuite includes customers, prospects and leads.
For Customer syncing, expand the Sync customer data drop-down menu and choose either Yes (to sync) or No (not to sync).
Select NEXT.
To choose the direction that you sync customer data, expand the Contact sync options drop-down menu, then choose the direction you want to sync customer data.
Bi-directional
Customer entity data is synced from both NetSuite and Dotdigital.From NetSuite to Dotdigital
Customer entity data is synced only from NetSuite to Dotdigital.From Dotdigital to NetSuite
Customer entity data is synced only from Dotdigital to NetSuite.
When syncing data, the integration must know which system holds the master data initially. If conflicting data is found in the initial sync, it will take the data from the master system and overwrite the other system. Choose from.
Expand the Master system drop-down menu, then choose your master system.NetSuite
NetSuite data overwrites any conflicting records in Dotdigital during the initial sync.Dotdigital
Dotdigital data overwrites any conflicting records in NetSuite during the initial sync.
⚠️ You must choose the correct master system, or you will lose data.
Select NEXT.
For Customer types to sync, you can choose between People, Companies (B2B) or both.
If you choose to sync Companies then you must ensure you have custom data fields available in Dotdigital to map the NetSuite fields isPerson and Companyname to.
For Customer stages to sync, you can choose the stages you want to sync customer data for. Choose between Prospects, Leads, and Customers.
Select NEXT.
Customer default statuses
For each contact entity type (Prospect, Lead and Customer) you must choose a default status to set on the record. Expand the relevant drop-down menu, then choose the default status you want to apply.
Select NEXT.
Customer default category
Earlier versions of NetSuite allowed leads, prospects and customers to be created without providing a value for their Category. However, later versions made this a required field. Therefore, if the integration needs to update the opt-in or opt-out status for a record without a category, it must apply a default category, or it's unable to update.
Expand the Default category drop-down menu, then choose a default category.
Expand the Use default category when missing drop-down menu, then choose whether or not the integration is allowed to apply the default category when required:
Yes
The default category is applied when required.No
The update is skipped if no category is present on the record.
Select NEXT.
Customer data alignment
The integration can align the customer entity data from the master system to the other system when first created. This can be useful to ensure your data is fully populated in the non-master system. However, the master system's data will overwrite any conflicting data in the non-master system.
Expand the Initial contact data alignment drop-down menu, and choose either Yes or No.
No
Only data changed from this point is synced.Yes
All data from the master system is synced to the non-master system.
⚠️ Warning
You must choose the correct option, or you will lose data.
Customer field mapping
You can map fields from a Dotdigital data field to a NetSuite field, and we automatically reverse these to map the other way when required. In addition to the NetSuite entities fields and custom fields, we also list some calculated fields which are indicated by the encapsulating [[ ]] , such as [[ Firstname Lastname ]].
These Dotdigital data fields must be mapped:
Email
First name
Last name
If syncing companies then the following NetSuite fields must be mapped:
Company name - to a text field.
Is individual - to a Yes/No field.
You should map the following NetSuite fields if you want to use or set them:
Category - to a text field.
Entity status- to a text field.
By default, we pre-populate the minimum required fields that need mapping. We recommend only mapping fields you want to use in Dotdigital rather than all fields on the entity.
To set up field mapping:
On the Customer field mappings, use the drop-down menus to map your Dotdigital data fields to your NetSuite customer fields.
Your mappings are checked against the required minimum mappings. If an issue is shown, adjust your mappings to correct this.
Select NEXT.
If you need to filter to a subset of contacts
⚠️ Important
These steps must be performed by a developer.
The integration uses SuiteQL to access your NetSuite data, and we automatically filter for contacts entities that have an email and are not duplicates. Optionally you can add your own filters if you need to limit the data further.
For Contact's SuiteQL filter, enter additional filter criteria, using SuiteQL WHERE clause syntax against the customers table (c).
The filter will be something like BUILTIN.DF(c. {The field id} ) = ' {Value to filter on} ' for example:c.country = ‘US’
BUILTIN.DF(c.myCustomField) = ‘Region A’
If you specify a filter, it is tested and must work before you can proceed.
Select NEXT.
10. Import your product catalog
In this section, we configure how items sync from NetSuite to Dotdigital as a product catalog. You must complete this step if you want to make the most of Dotdigital’s ecommerce features.
Learn more about Dotdigital ecommerce features.
On Product catalog sync, expand the Sync product catalog drop-down menu, then choose Yes (to sync) or No (not to sync).
Select NEXT.
NetSuite lets you specify the prices of items in multiple currencies. However, Dotdigital’s product catalogs only store prices in a single currency. Expand the Catalog price currency drop-down menu, then choose the currency you want to use in Dotdigital.
You might not hold an online store URL and image URL for each item you want to sync. However, Dotdigital's ecommerce features require these to operate. You can specify default values to use if we cannot find a value for an item.
For Company or online store URL, enter the URL for your company or online store.
For Fallback product image URL, enter the URL to use whenever we cannot map an item’s specific image.
Select NEXT.
If you use NetSuite’s built-in ecommerce store, you can choose to filter products listed for sale online.
Expand the Sync only online products drop-down menu, then choose Yes or No.Yes
Syncs only items flagged as online (isOnline = ‘T’ in SuiteQL) .No
Syncs all items available for syncing.
For What product types do you want to sync, select the item types you want to sync into the product catalog.
Optional: If you want to filter to a custom subset of items.
By default, the integration syncs all items matching the types you requested in the previous step.
However, you can specify additional filter criteria for each item type to further customise which items are included in the product catalog.
Requires NetSuite administrator knowledge.
In the Product filters box, enter any additional filter criteria, using SuiteQL WHERE clause syntax against the items table (i), for example, i.shipindividually = ‘T’.
If you specify a filter, it is tested and must work before you can proceed.
Select NEXT.
You must define the field mappings from Dotdigital’s product catalog fields to NetSuite's item fields. By default we define the minimum mappings required.
In addition to the NetSuite items fields and custom fields we list some calculated fields which are indicated by the encapsulating [[ ]] , such as [[ Price: Base Price]]. The calculated fields include mappings to the price types held against an item denoted as [[ Price: Price type name ]], which allow you to assign the price type you wish to the product catalog's price and specialPrice fields.
You must map the following Dotdigital product catalog fields:
image_path
Use [[ Blank ]] if you don't hold this in NetSuite, and the default image path is used.name
price
sku
url
Automatically set to your fallback store URL.
Enter the Product field mappings as required.
Select NEXT.
11. Orders sync
This section configures the syncing of order data to Dotdigital to enable Dotdigital’s ecommerce features.
Expand the Sync orders drop-down menu, then choose whether you want to sync orders or not.
Yes - Sync orders.
No - Don’t sync orders.
Select NEXT.
Sometimes you may have a custom field on a sales order that better represents who made the purchase rather than using NetSuite’s associated customer record. For instance this could be that you are a B2B business and track the individual who made the order, rather than just using the default email associated with the company that made the order.
Expand the Alternative email field drop-down menu, then choose whether you want to to use an alternate email field to associate an order with.No
Associate the order with the customer record it is linked to; choose this if you are not sure.Yes
Choose an alternate email field or link to a customer or contact field to associate the order with.
If you selected Yes, select the custom field that you want the order associated with. We use the email address of any contact or customer to identify the contact in Dotdigital who will have the order associated with it.
Select NEXT.
Optionally, select any additional fields that are associated with a sales order that you want to add to an order record in Dotdigital.
Select NEXT.
The integration uses SuiteQL to access your NetSuite transaction data, and we automatically bring in any sales orders and cash sale transactions that can be associated by email address to a contact in Dotdigital.
Optionally you can add your own filters if you need to limit the data further using SuiteQL WHERE clause syntax against the transaction table which can be referred to using the table reference t. e.g. t.currency= 1.
Select NEXT.
10. Setup complete
The integration is now active, and it syncs data hourly. If you chose to align data from the master system to the non-master system, due to the volume of data, it might take between 24 and 48hrs before all data is synced, but this can vary greatly depending on data volumes.
You must be patient with the initial sync, but if you still are missing data after 72 hours, then contact our Support team.
Next steps