Skip to main content
All CollectionsIntegrationsNetsuite
NetSuite integration behaviour
NetSuite integration behaviour

Learn about the behaviour of the NetSuite integration for each of the data types it syncs.

Gareth Burroughes avatar
Written by Gareth Burroughes
Updated over 3 months ago

⚠️ You must understand the behaviour and limitations of the integration prior to setting it up in order to avoid unexpected results.

The NetSuite integration syncs the following kinds of data:

  • Customers

  • Contacts

  • Opt-in/opt-out status

  • Items

  • Orders

For each of these kinds of data, there are certain behaviours that you should be aware of. These are listed in the relevant section below.


Address data

The default billing address is exposed through the following fields for mapping purposes for prospect, lead, customer and contact records in NetSuite:

  • addressee

  • addr1

  • addr2

  • addr3

  • city

  • country

  • state

  • zip

⚠️ If you're syncing records bidirectionally and you want to sync address data, then you must map all the address fields. Otherwise any address fields left unmapped will lose their values.


Duplicate email handling

NetSuite permits multiple contacts and customers to use the same email address. Although it isn’t recommended, it is very easy to do. This also applies leads and prospects as they are just stages of a customer.

You could potentially therefore have multiple NetSuite records trying to map to a single Dotdigital contact, as email addresses are considered unique identifiers in Dotdigital.

The NetSuite integration ensures only a single NetSuite record is mapped to a single Dotdigital contact at any one time. This single mapping is important to prevent data corruption due to cross linking of multiple NetSuite records to a single Dotdigital contact when syncing bidirectionally.

The integration allows the remapping of a Dotdigital contact to a later sales stage NetSuite record if the following are true:

  • The email addresses match.

  • The names match.
    If enabled in your integration's multiple match handling settings.

  • They both are people or companies.

  • It is a later sales stage.

The sales stage order of importance is as follows:

The reasoning for this order is so that you can continue to engage throughout the sales cycle and sync a customer's order history.


Customer data

  • Only customers records with an email address in NetSuite are synced.

  • Customers should be deduplicated by email; duplicate customers are not synced.

  • All email addresses are made lowercase.

  • You may opt to sync people, companies or both customer record types.

  • If opting to sync company records from NetSuite, the isPerson NetSuite field must be mapped to a Dotdigital yes/no custom data field, or a text custom data field containing True or False, to indicate if the record is a company or person. The companyname field must also be mapped to Dotdigital text custom data field.

  • The status of a customer can be updated if the entitystatus field is mapped to a text field in Dotdigital that holds the customer status ID.

  • When syncing back to NetSuite, we update a customer’s entitystatus with the default status for the customer stage if:

    • The customers current stage differs for the address book’s associated stage.

    • We need to create a new customer record in NetSuite.

  • Email addresses are validated prior to synchronisation. Invalid email addresses cannot be processed.

  • We cannot update a record’s email address if it conflicts with an existing customer, because the NetSuite API prevents duplicate records.

  • If a NetSuite customer has their email address removed then any Dotdigital contact associated with this email address is deleted.

  • If you map a phone number to Dotdigital’s Mobile Number field it is synced as long as it is a valid E.164 formatted international number, for example +44123123123, or if we can convert the local number using the default country you specify in the integrations settings.

  • Any contacts that are a subscribed member of the NetSuite integration’s customer list are considered as customer entities when syncing. NetSuite integration’s customer list is named in this format:

    NetSuite (<Parent company name> - <Company name> - <Country code> - Customers
    for example, NetSuite (Honeycomb Holdings Inc. - Dotdigital Dev - US) - Customers

  • Any contacts that are a subscribed member of the NetSuite integration’s leads list are considered as customer entities when syncing. NetSuite integration’s leads list is named in this format:

    NetSuite (<Parent company name> - <Company name> - <Country code> - Leads
    for example, NetSuite (Honeycomb Holdings Inc. - Dotdigital Dev - US) - Leads

  • Any contacts that are a subscribed member of the NetSuite integration’s prospects list are considered as customer entities when syncing. NetSuite integration’s prospects list is named in this format:

    NetSuite (<Parent company name> - <Company name> - <Country code> - Prospects
    for example, NetSuite (Honeycomb Holdings Inc. - Dotdigital Dev - US) - Prospects


Contacts

  • Only contacts that have an email addresses are synced.

  • Contacts should be deduplicated by email; duplicate contacts are not synced.

  • All email addresses are made lowercase.

  • It’s not possible to update a contact’s address in NetSuite from Dotdigital due to NetSuite API limitations.

  • Email addresses are validated prior to synchronisation. Invalid email addresses cannot be processed.

  • We cannot update a record’s email address if it conflicts with an existing contact because the NetSuite API prevents duplicate records.

  • If a NetSuite contact has their email address removed then any Dotdigital contact associated with this email address is deleted.

  • If you map a phone number to Dotdigital’s Mobile Number field it is synced as long as it is a valid E.164 formatted international number, for example +44123123123, or if we can convert the local number using the default country you specify in the integrations settings.

  • Any contacts that are a subscribed member of the NetSuite integration’s contacts list are considered as customer entities when syncing. NetSuite integration’s contacts list is named in this format:

    NetSuite (<Parent company name> - <Company name> - <Country code> - Contacts
    for example, NetSuite (Honeycomb Holdings Inc. - Dotdigital Dev - US) - Contacts


Opt-in/out status

Opt-in status is only synced if enabled, for only those entities you are syncing, and in the specified sync directions. For instance, to sync opt-in status for customers bidirectionally you must have opt-in status syncing enabled, have selected to sync for customer entities and set to bidirectional.

When an opt-out status is synced to Dotdigital from NetSuite, the Dotdigital contact is unsubscribed from the email channel to prevent any marketing email from being sent to them. The contact is subscribed on the email channel in Dotdigital when opted in to marketing in NetSuite. You can use either the NetSuite marketing subscriptions or a field to store opt-in/out status.

  • A single configuration is used for both customer and contact entities.

  • We optionally allow the creation of a contact if we can’t find a match in NetSuite. This is to ensure that NetSuite has the opt-out status for this email address.

  • Email addresses are validated prior to synchronisation. Invalid email addresses cannot be processed.


Item data for product catalog creation

  • The NetSuite product catalog is named in this format:

    catalog_<Parent company name><Company name><Country code>_NetSuite
    for example, catalog_ParentCompanyAcmeIncUS_NetSuite

  • Only active products are listed and synced initially.

  • Products that have no price mapped are not included in the catalog.

  • When a product is flagged as inactive it's removed from the catalog at next sync.

  • Custom multi-select fields cannot be mapped.

  • A fallback product URL can be set if we can't map one from NetSuite.

  • A fallback product image URL can be set if we can't map one from NetSuite.

  • You can reference NetSuite’s stores image URLs using these fields:

    • storedisplayimage

    • storedisplaythumbnail

  • Selects the highest price when multiple prices are stipulated for a price level using quantity discounts.


Orders

  • Only sales orders and cash sales that can be linked to an existing contact in Dotdigital are synced. As such, you should sync orders in conjunction with customer and contact syncing.

  • Discount lines are summarized to the total discount amount in the field discount_amount.

  • There is a location field in the order Insight records which provides information about where the order was taken.

  • You can optionally include custom fields that are associated with sales orders in NetSuite in the order Insight data records

  • By default, sales orders are linked to the customer entity who placed it through the email address. You can opt to associate an order with another contact by selecting a sales orders custom field that is an email address or a link to a contact or other customer record.

  • You can optionally specify your own additional filter criteria for selecting sales orders and returns from the transactions to ensure only those sales you want are synced.


Technical notes

This section is primarily aimed at NetSuite administrators who want to understand more about how the Dotdigital NetSuite integration accesses NetSuite.

Polling based

The integration polls hourly to detect modified records that need syncing. This is not on the hour but rather based on when a data set was last synced. If a large amount of data is being synced in a data set, such as customers during the initial sync, then other data sets are queued behind this and therefore do not sync until completed.

Uses a single API thread

The integration runs each data set it is told to sync sequentially, and only makes API calls to NetSuite single threaded, therefore ensuring only one of your permitted concurrent API calls is ever utilised by the integration.

Authentication

The integration uses NetSuite’s Token Based Authentication.

Learn more about Token Based Authentication in NetSuite in their support documentation.

NetSuite data access

The integration uses the NetSuite REST API for data access. You must have enrolled your NetSuite account on the Oracle NetSuite Umbrella Beta Program

The instructions to enrol can be found on the NetSuite help centre.


Next steps

Did this answer your question?