All Collections
Integrations
Netsuite
Integrate NetSuite with Dotdigital
Integrate NetSuite with Dotdigital

Set up your NetSuite integration in your Dotdigital account.

Gareth Burroughes avatar
Written by Gareth Burroughes
Updated over a week ago

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

Be aware

When initially setting up the integration you must complete the process in one go, therefore, please ensure you have read the guidance and are as prepared as possible to ensure this can be completed.

Things you need to know:

  • You must have first prepared your NetSuite account for the integration.

  • Ensure you have read and understood the integration behaviour guide.

  • Created any custom data fields in Dotdigital you need to for mapping NetSuite fields to, and they are the correct data type to hold the data.

  • You need to have requested that the NetSuite integration is activated via you Customer Success Manager, and had confirmation this has been completed.


1. Configure the NetSuite integration

  • In Dotdigital, go to Connect > Integrations.

  • In the left menu, under SHOW, select Installed.

  • Find Oracle Netsuite, then select SETUP.


2. Connect to NetSuite

  1. Select Connect your NetSuite Token-based Authentication.

    If you have previously set up a connection, select Next.

  2. Enter your connection details:

    • account_id

      Enter your NetSuite account ID.

      To find it, in NetSuite, go to Setup > Company > Company Information, and copy it from the ACCOUNT ID field.

    • consumer_key

      Enter the consumer key (client ID), you copied in step 4 of Prepare your NetSuite environment for the Dotdigital integration.

    • consumer_secret

      Enter the consumer secret (client secret), you copied in step 4 of Prepare your NetSuite environment for the Dotdigital integration.

    • realm

      Enter your account ID again. If you're using a Sandbox instance of NetSuite, you must:

      • Change the - (dash) with _ (underscore).

      • Change the characters after the underscore to UPPERCASE.

      • For example, 123456-sb5 becomes 123456_SB5.


        WGrM8_mc.png

  3. Select Save.

  4. When asked, log in to NetSuite. Your account must have permission to access to all the data you want to sync to Dotdigital.

  5. On the authentication screen, read the details, and if you agree with the Role, select Allow.


    d9lelzrY.png

3. 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.

3aGeY3kQ.png
  1. On Detecting changes from NetSuite, expand the Date format drop-down menu, and choose the date format shown in NetSuite.

  2. Expand the Time format drop-down menu, and choose the time format shown in NetSuite.

  3. Expand the Timezone drop-down menu, and choose the timezone shown in NetSuite.

  4. Select Next.


4. Set up multiple match handling

Learn more about how Netsuite handles duplicate emails in Netsuite integration behaviour.

When we try to relate a contact in Dotdigital with 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.

DiCQuxgU.png

To set up multiple match handling:

  1. On Multiple match handling, expand the Multiple contact 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.

  2. Select Next.


5. Set up opt-in and opt-out status syncing

Choose whether you want to sync opt-in and opt-out status and how it's stored in NetSuite.

Learn more about the integration's behaviour for syncing opt in/out status in Netsuite integration behaviour.

  1. Expand the Sync opt-ins 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 6.

  2. Expand the Sync opt-in state drop-down menu, then choose the sync direction.

    Options:

    • From NetSuite to Dotdigital

    • From Dotdigital to NetSuite

    • Bi-directional

  3. For Select the entities you want to sync opt-in state for, choose from customers, leads, prospects, and contacts.

  4. Select Next.

  5. If you chose your sync direction as Dotdigital to NetSuite or Bi-directional, expand the Create contacts for opt-outs drop-down menu, and choose Yes or No. Then select Next.

  6. Expand the Default category drop-down menu, and choose a default category.

    An earlier version 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 value.

  7. Expand the Default category when missing drop-down menu, and choose either Yes or No.

    Yes - The default category is used when required.
    No - The update is skipped if no category is available.

  8. Select Next.

  9. 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.

    • 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.

  10. Select Next.

If you selected Subscription Status then continue to the steps below. If you selected Using a field, then skip forward to Holding Opt In/Out Status in a field configuration section.

Holding Opt In and Opt-out status in NetSuite's marketing subscription field

Follow these steps if you chose to store your subscription status in NetSuite's marketing subscription field.

  1. For Statuses that indicate a contact can be marketed to, select your marketing subscription statuses.

    For a standard NetSuite installation, this is Soft Opt-in and Confirmed Opt-in.

  2. Select Next.

  3. Expand the Opt-in status drop-down menu and choose the subscription status to indicate a contact or customer has opted into marketing.

    For standard NetSuite installations, this is Soft Opt-In.

  4. Select Next.

  5. For Opt-out statuses, choose the statuses to indicate a contact or customer is opted out of marketing.

    For standard NetSuite installations this would be Soft Opt-out

  6. Select Next

  7. Expand the Opt-out status drop-down menu and choose the subscription status to set when syncing from Dotdigital to NetSuite, to indicate a contact or customer has opted out of marketing.

    For standard NetSuite installations, this is Soft Opt-Out and Confirmed Opt-out.

  8. Select Next, and proceed to Step 6.

Holding Opt-in and Opt-out status in a field

Follow these steps if you chose to store your subscription status in a field:

  1. In this step, you choose whether you set a default opt-in status for your contacts. Expand the Default opt-in status drop-down menu and choose a default opt-in status.
    Options:

    • 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.

  2. Select Next.

  3. Expand the Opt-in status property drop-down menu, then choose the property field that holds your contacts’ and customers’ opt-in and opt-out status.

  4. Expand the Value type drop-down menu, then choose the field's data type.
    Options:

    • Boolean value - A boolean (true/false) value is held in the field.

    • Specific values - Text with specific values is held in the field.

  5. Select Next.

  6. 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. Select either Opted in or Opted out, depending on your setup.

    Gpr37S5M.png

  7. Select Next.

  8. 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.

    Ruy9podM.png

6. 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.

Set up customer sync

  1. For Customer syncing, expand the Sync customer data drop-down menu and choose either Yes or No.
    Options:

    • Yes - To sync customer entities.

    • No - Don’t sync customer entities.

  2. Select Next.

  3. 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.
    Options:

    • 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.

  4. Select Next.

  5. 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.

    Options:

    • 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.

      ⚠️Warning

      Make sure you choose the correct master system, or you will lose data.

  6. For Customer types to sync, you can choose between People (B2C) and Companies (B2B).

    If you choose to sync Companies then you will need to ensure you have custom data fields available in Dotdigital to map the NetSuite fields isPerson and Companyname to.

  7. For Customer stages to sync, you can choose the stages you want to sync customer data for. Choose between Prospects, Leads, and Customers.

The integration can only track up to 400,000 contacts and customers combined. If you need more, contact us to discuss your requirements.

Prospects, Leads, and Customers

  1. 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 between each section.

  2. 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.

  3. Expand the Initial contact data alignment drop-down menu, and choose either Yes or No.

    Options:

    • Yes - All data from the master system is synced to the non-master system.

    • No - Only data changed from this point is synced.

⚠️Warning

Make sure you choose the correct master system, or you will lose data.

CYGQbqmI.png

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

  • FIRSTNAME

  • LASTNAME

If syncing companies then the following NetSuite fields must be mapped:

  • companyname - to a text field

  • isperson - 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

  • entitystatus - 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:

  1. On the Customer field mappings, use the drop-down menus to map your Dotdigital data fields to your NetSuite customer fields.

    H9xXRan8.png

  2. Select Next.

  3. Your mappings are now tested against your NetSuite instance to ensure they are usable. If an issue is shown, adjust your mappings to correct this.

  4. Once testing is successfully completed, select Next.

The NetSuite field names are listed as the internal ids and custom fields by name. To find your internal IDs, check out the NetSuite article How to Find a Field's Internal ID.

If you haven’t mapped the NetSuite category field

For the integration to create a lead, prospect, or customer in NetSuite, we need some category settings. Because you didn't map the NetSuite category field, you must specify a default category to apply when creating a lead, prospect or customer.

In addition, 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 will be unable to update.

jCQMjDnM.png
  1. Expand the Default category drop-down menu, then choose a default category.

  2. Expand the Use default category when missing drop-down menu, then choose whether of not the integration is allowed to apply the default category when required:

    Options

    • Yes - The default category is applied when required.

    • No - The update is skipped if no category is present on the record

  3. Select Next

If you need to filter to a subset of contacts

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.

8a10g_uw.png
  1. For Customer's SuiteQL filter, enter additional filter criteria, using SuiteQL WHERE clause syntax against the customers table for example, country = ‘US’.

    If you specify a filter, it is tested and must work before you can proceed.

  2. Select Next


7. Sync contact data

In this section we set up the integration to sync contact data with NetSuite.

Set up contact sync

  1. For Contact syncing, expand the Sync contact data drop-down menu and choose either Yes or No.
    Options:

    • Yes - To sync contacts.

    • No - Don’t sync contacts.

  2. Select Next.

  3. To choose the direction that you sync contact data, expand the Contact sync options drop-down menu, then choose the direction you want to sync contacts data.
    Options:

    • 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.

  4. Select Next.

  5. 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. Expand the Master system drop-down menu, then choose your master system.

    Options:

    • 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.

      ⚠️Warning

      Make sure you choose the correct master system, or you will lose data.

  6. 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.

  7. Expand the Initial contact data alignment drop-down menu, and choose either Yes or No.

    Options:

    • No - Only data changed from this point is synced.

    • Yes - All data from the master system is synced to the non-master system.

⚠️Warning

Make sure you choose the correct master system, or you will lose data.

ptEen_r4.png

Contact field mapping

You can map fields from the Dotdigital data field to the 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 - to a text field

  • entitystatus - 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.

The NetSuite field names are listed as the internal ids and custom fields by name. To find your internal IDs, check out the NetSuite article How to Find a Field's Internal ID.

To set up field mapping:

  1. On the Contact field mappings, use the drop-down menus to map your Dotdigital data fields to your NetSuite contact fields.

    Zz_tmyCU.png

  2. Select Next.

  3. Your mappings are now tested against your NetSuite instance to ensure they are usable. If an issue is shown, adjust your mappings to correct this.

  4. Once testing is successfully completed, select Next.

If you need to filter to a subset of contacts

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.

-utQecCo.png
  1. For Contact's SuiteQL filter, enter additional filter criteria, using SuiteQL WHERE clause syntax against the contacts table for example, country = ‘US’.

    If you specify a filter, it is tested and must work before you can proceed.

  2. Select Next


8. 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.

To learn more about Dotdigital Ecommerce features, check out our Commerce articles.

  1. On Product catalog sync, expand the Sync product catalog drop-down menu, then choose Yes or No. Then select Next.

    Options:

    • Yes - To sync product catalog.

    • No - To not sync product catalog.

  2. 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. Then select Next.

  3. 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.
    Options:

    • Yes - Syncs only items flagged as online (isOnline = ‘T’ in SuiteQL) .

    • No - syncs all items available for syncing.

  4. For What product types do you want to sync, select the item types you want to sync into the product catalog. Then select Next.

  5. Optional: If you want to filter to a custom subset of items.

    ioOeB68w.png

    By default, the integration syncs all items matching the types you requested syncing in the previous step. However, you can specify additional filter criteria for each item type to customise further which items are included in the product catalog.

    Requires NetSuite administrator knowledge


    In the SuiteQL filter query box, enter any additional filter criteria, using SuiteQL WHERE clause syntax against the items table, for example, shipindividually = ‘T’. When complete, select Next.

    If you specify a filter, it is tested and must work before you can proceed.


  6. 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 values for an item.

    For Company or online store URL, enter the URL for your company or online store.

  7. For Fallback product image URL, enter the URL to use whenever we cannot map an items specific image. Then select Next.

  8. 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.

  9. You must map the following Dotdigital product catalog fields:

    1. image_path - Use [[ Blank ]] if you don't hold this in NetSuite, and you're using the default image path will be used

    2. name

    3. price

    4. sku

    5. url - Automatically set to your fallback store URL

  10. Enter the Product field mappings as required.

    O6yq15Lw.png

  11. Select Next.


9. Import orders

This section configures the syncing of order data to Dotdigital to enable Dotdigital’s ecommerce features.

  1. Expand the Enable order syncing drop-down menu, then choose whether you want to sync orders or not.

    Options:

    1. Yes - Sync orders.

    2. No - Don’t sync orders.

  2. Select Next.

  3. If you selected Yes you are now asked to select any custom fields, that are associated with a sales order, that you would like to add to an order record in Dotdigital. Optionally select the fields you want, then scroll to the bottom of the list and select Submit.

  4. 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

  5. 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.

  6. The integration uses SuiteQL to access your NetSuite transaction data, and we automatically bring in any transactions that can be associated through 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. For example, t.currency= 1


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.

_C4_6jgA.png

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

Did this answer your question?