Configuring NetSuite Notification Integrations

For sending m3ter entity data outbound into your NetSuite system, you can set up native integrations which are based on Notification rules you've set up in your Organization. A NetSuite Notification integrations offer you wide flexibility both for controlling precisely when the integration runs and for controlling precisely what range of entity data is sent through to your NetSuite system. This type of integration:

  • Exploits m3ter's Notification framework driven by system Events, which means you can specify one or more Notifications that will trigger the integration. The integration runs when the relevant system Event occurs and triggers the Notification rule.

  • Links to a Transformation you've set up in m3ter. By defining a one-way data mapping from one specific data type to another, Transformations allow you to customize the conversion of data as it flows into or out of the m3ter system via integrations. Note that this extends to the use of secondary Transformations for your integration, which facilitates a more fine-grained control of data conversion for sub-entity mappings where master/detail record relationships exist for entities, such as Meter/Data Fields.

This topic explains how to create and configure NetSuite Notification integrations and how to set up authentication with your NetSuite system for these integrations:

This topic also includes a section designed to help you set up NetSuite in preparation for connecting and authenticating your m3ter Notification integration with your NetSuite instance:

Important!

  • Read Also. Before you attempt to set up and implement a NetSuite Notification integration, we strongly recommend that you first review the Creating, Managing, and Reviewing Notifications and Creating and Managing Transformations topics.

  • NetSuite Notification Integration in Preview Release. Please note that the NetSuite Notification Integration is currently available only in Preview release version. Preview features are in the final stages of testing and feedback, and are typically stable. We would expect only minor changes to be made prior to them becoming generally available. However, we recommend they’re not used in business critical processes. If you're interested in previewing the NetSuite Notification Integration, please get in touch with m3ter Support or your m3ter contact.

Creating the Integration

You can quickly set up a native NetSuite Notification integration in the Console.

Tip: Reviewing Integration Runs! When you've set up an integration with NetSuite for your Organization, you can review details of the integration runs performed for the integration. See Reviewing Integration Run Details.

To define a m3ter - NetSuite Notification integration:

1. Select Integrations:

The Integrations page opens with All selected by default.

2. Select Netsuite:

The Integrations>NetSuite page opens.

3. On the Configurations panel, select Configure new integration>Configure notification integration:

The Create page opens and the Entity type - Notification and External system - NetSuite are shown at the top of the page.

4. Use the Global configuration panel to:

  • Enter a Name for the new Notification integration. This is required and is useful if you intend to create multiple integrations for the same External system/Entity Type and need to clearly differentiate them.

  • Select the Accounts you want the integration to apply to:

    • Account ids. Select the Accounts you want to include - all selected Accounts are treated as allowed for the integration.

    • Restricted account ids. Select the Accounts you want to exclude - all selected Accounts are treated as not allowed for the integration.

Tip: Include all Accounts? If you want to include all Accounts in the integration, leave both Accounts ids and Restricted account ids empty.

  • Select Users for Email notifications if disabled:

    • Integration disabled notification users. Select Organization Users you want to receive an Email notification if the integration is automatically disabled.

Notes:

  • An integration is automatically disabled if there have been 10 successive previous error Event responses to earlier attempts to run the integration. See Reviewing and Resolving Integration Events for more details.

  • If you select Organization Users to receive an Email notification when the integration is automatically disabled, their User id will be listed under Configuration Data on the Integration Details page.

5. Use the External system configuration panel to enter settings specific to the external system:

  • Notification triggers. Select the Notifications you've set up in your m3ter Organization that will trigger the integration. See Creating, Managing, and Reviewing Notifications for more details.

  • Record type id. Enter the type of record that the integration will create in the NetSuite system.

Important! Please ensure this matches the record type in the NetSuite system that you've used for the Transformation you select for the integration.

  • Transformation id. Select the Transformation you've created in your m3ter Organization that the integration will use to convert the m3ter entity into the NetSuite record. See Creating and Managing Transformations for more details.

  • Entity type. Select the m3ter entity type that the integration will send. This entity will be used to create external mappings.

  • Enable sub entity transformation. If you want to include for sub entity data conversions, enable this switch and enter the requisite settings:

    • Sub entity field. The parent m3ter entity field that contains a list of sub entities.

    • Sub entity record type id. The type of record that the integration will create for sub entities in the NetSuite system.

    • Sub entity transformation id. The transformation that will be used to convert the m3ter sub entity into the NetSuite record.

    • Sub entity type. Select the m3ter sub entity type that the integration is sending. This value will be used to create external mappings.

7. Select Create integration. You are taken to the Integrations>NetSuite page, where the new integration is listed:

  • To complete the configuration, you must now set up authentication to allow the integration to connect with your NetSuite system - see the following section for details:

Setting Up Authentication for the Integration

When you've created a NetSuite Notification integration, you can select a Credential you've created for authentication allowing the integration to connect with your NetSuite system.

To set up authentication for your m3ter - NetSuite Notification integration:

1. Select Integrations. The Integrations page opens.

2. Select NetSuite. The Integrations>NetSuite page opens.

3. On the Configurations panel, select the Name hotlink text of the NetSuite integration you want to set up authentication for. The Integration details page opens:

  • Notes:

    • A warning is shown that the integration is not yet connected to your NetSuite system.

    • The ID of the integration configuration is shown at the bottom of the Integration details card, and you can copy the ID directly to your clipboard.

4. Select Connect credential. A Select credential modal appears.

5. Select a Credential you created earlier and want to use to authenticate the integration with NetSuite. See Creating NetSuite Integration Credentials.

6. Select Confirm. The modal closes and on Integrations details, the integration now shows as CONNECTED:

  • If at any time you want to disconnect the integration, select Disconnect.

  • If you want to use a different Credential for connecting the integration, select Update credential. The Select credential modal appears and you can select a different Credential.

Tip: Integrations API Calls? When you have set up your NetSuite integration, you can review and manage the integration using a full set of API Calls. See the Integrations section of our API Reference Docs.

Completing Prerequisites and Setting Up your NetSuite System

This section provides guidance on completing necessary prerequisites and setting up Netsuite in preparation for connecting and authenticating your m3ter integration with your NetSuite instance to allow m3ter to send out Bills to NetSuite:

Important - Please consult your NetSuite Documentation! The instructions given in this section for setting-up your NetSuite system to prepare for an outbound Bill integration with m3ter are intended for guidance only. We do not hold ourselves responsible for any changes made by NetSuite, and strongly recommend that you consult the NetSuite end user documentation as you perform this configuration and treat the NetSuite documentation as authoritative.

Completing Prerequisites

There are two prerequisites tasks you'll need to complete:

Creating New Role and User for the Integration

For your NetSuite instance, you'll first have to complete the following:

1. Go to Setup>Company>Enable Features:

  • Select the SuiteCloud tab.

  • Select the option for OAuth 2.0.

  • Accept the OAuth 2.0 Terms and Conditions.

2. Go to Setup>Users/Role>Manage Roles>New:

  • Create a new Role for the m3ter integration. This Role will need read access to Customer/Items and read/write access to Invoices.

  • Select the option for Web Services Only Role.

  • Select Save.

3. Go to Setup>Users/Roles>Manage Users>New:

  • Create a new User for the m3ter integration that uses the m3ter integration Role you’ve just created.

4. Go to the Custom>List, Records & Fields>Transaction Column Fields>New. This opens Transaction Line Field.

5. Enter a LABEL, such as m3ter External ID.

6. Enter the ID as: _m3ter_external_line_item.

  • This will create a custom field for transactions called: custom_m3ter_external_line_item.

7. Check that the TYPE setting is Free-Form Text.

8. Under Applies to check SALE ITEM.

9. Select Save and Apply to Forms.

Generating Key Pair Using OpenSSL

This section explains how to generate a new key pair using OpenSSL. You'll generate the m3ter-cert certificate for upload into your NetSuite, and the corresponding m3ter-key that the Integration will be using to authenticate when synching data.

Tip: Windows User? If you are a Windows user, OpenSSL will not be installed automatically and you will have to install it to complete this section. Here is a website with instructions on how to install openssl that you might want to use to help you do this.

1. Open a command line terminal window on your local machine.

2. Enter and run the following command:

1
openssl req -new -x509 -newkey rsa:4096 -keyout m3ter-key.pem -sigopt rsa_padding_mode:pss -sha256 -sigopt rsa_pss_saltlen:64 -out m3ter-cert.pem -nodes -days 730
2

3. When the command runs, you'll be asked to enter some details:

  • Country name

  • Organization

  • Email address

Two files are generated in the current directory.

4. Perform a list command to check. Two files should be listed:

  • m3ter-cert. This certificate will be uploaded to NetSuite.

  • m3ter-key. This private key will be loaded into m3ter.

Tip: Note that you'll be able to delete these key pair files from your local machine later.

Configuring NetSuite

Having completed the prerequisites, you can now proceed to configure your NetSuite instance.

1. Go to Setup>Integration>Manage Integrations>New:

  • Enter a NAME - for example: m3ter Integration - and a DESCRIPTION.

  • Unselect the options for TOKEN-BASED AUTHENTICATION, TBA: AUTHORIZATION-FLOW, and AUTHORIZATION CODE GRANT.

  • Under OAuth 2.0:

    • Select the option for CLIENT CREDENTIALS (MACHINE TO MACHINE) GRANT.

    • Under SCOPE, select the options for:

      • RESTLETS

      • REST WEB SERVICES

      • SUITEANALYTICS CONNECT

2. Select Save. Under Client Credentials, you'll see your credentials appear:

  • CONSUMER KEY / CLIENT ID

  • CONSUMER SECRET / CLIENT SECRET

Warning! Note the NetSuite warning that these credentials will be displayed only once - ensure you copy and save these locally before you leave this page. If you fail to record them, you can re-open the page for the new integration and select Reset Credentials.

3. Go to Setup>Integration>OAuth 2.0 Client Credentials (M2M) Setup:

4. Select Create New. This opens the Create a New Client Credentials Mapping modal:

  • ENTITY is the user you want to grant access for.

  • ROLE is Administrator.

  • APPLICATION is m3ter Integration for this example.

  • Under CERTIFICATE, select Choose a file. A select file dialog opens. Locate and select the m3ter-cert file. The chosen file will then show as selected.

5. Select Save. The Create a New Credentials Mapping modal closes.

6. Back on the OAuth 2.0 Client Credentials (M2M) Setup page, copy and save the CERTIFICATE ID.

7. Copy and save the URL prefix of your NetSuite instance. For example:

  • 1234555567-sb1.app.netsuite.com

You can now open your m3ter Organization and perform the required set up work there - see the following section.

Configuring m3ter

You can set up authentication for your m3ter NetSuite integration to connect with your NetSuite instance through the m3ter Console as described in the above section and using the Netsuite Connection modal:

On the modal, enter the settings for authentication with your NetSuite system for the integration:

  • Account Id. Enter the NetSuite Account Id. You can find this on the Setup>Company>Company Information page in the NetSuite console.

Warning! Sandbox Account Id - use hyphen: If you are setting up in your NetSuite Sandbox, the Account Id field will need to use an hyphen character instead of an underscore. For example, 12345-SB instead of 12345_SB.

  • Client Id. Enter the m3ter Integration Client ID, which was available when the integration was set up in the NetSuite console.

  • Certificate Id. The Certificate ID. You can obtain this from the Setup>Integrations>OAuth 2.0 Client Credentials Setup page in the NetSuite console.

  • Upload Netsuite Credentials. Allows you to upload a private key - click Browse and select the m3ter-key.pem you created under Key Pair Generation above using OpenSSL.

Next: Managing Multiple Third Party Destinations for Integrations



Additional Support

Login to the Support portal for additional help and to send questions to our Support team.