Add your own objects to a call

You can send any Salesforce object to NetSuite as part of an existing call. It syncs in the same run as the rest of the call.

QuantumBit tracks setup work in a custom Provisioning Task object, with one or more tasks per order. QuantumBit wants each task in NetSuite, linked to its order. So it adds Provisioning Task to the Order Booking call.

You can add objects to seven of the calls that push data to NetSuite, and to calls you build. Order Line Sync sends a fixed set of fields, and POB Refresh pulls data back, so neither can take new objects.

Set up the record type in NetSuite first

The wizard connects to a NetSuite record type that already exists. It never creates one. For a custom record, have your NetSuite admin set up:

Standard NetSuite records, such as a Sales Order or a project, need no setup.

Add the object

  1. Open Calls & Mappings, pick the call, and click Add object.
  2. In Salesforce object, find your object.
  3. In Parent node, pick the object it belongs under. QuantumBit picks Order. Leave it blank for a top-level object.
  4. Read the line under the parent. It says what you're about to build, such as a record under Order or a line on a transaction.
  5. Check the Relationship field. It's the lookup from your object to the parent, and it fills in by itself when there's only one.
  6. Pick the NetSuite kind and record type. For a custom record, start typing its name and pick it. Then click Check and wait for NetSuite to confirm the type.
  7. Change the Display name if you like. The sync card shows it.
  8. In NS parent field, pick the NetSuite field that links to the parent.
  9. Optional: in Only sync records where…, enter a filter such as Status__c = 'Active'.
  10. Optional: in Writeback field, pick a text field to hold the NetSuite id after each sync.
  11. Click Create. The object appears in the call with a Custom badge, and the call shows Draft changes.

Map its fields and publish

Click the new object to open its empty row grid. Add a row for each NetSuite field you want filled, from a Salesforce field or a fixed value. Field mappings explains rows.

The NetSuite record's name comes from the object's Name source setting under Advanced. By default, a row aimed at the name, the customer or the item is ignored.

Then validate and activate the call. Validate checks each record type and field against your NetSuite account. A missing field blocks Activate and names the field.

On the next run, each matching record is created or updated in NetSuite. Running again never makes duplicates. The sync card gains a row for the new object.

Add a transaction and its lines

A NetSuite transaction, such as a Sales Order, is two objects: the document, and its lines under it. NetSuite won't save a transaction without lines.

  1. Add the document object. Pick Standard record and the transaction. Set the Entity field to the lookup that names the customer.
  2. Click Add line object on the new document. The wizard opens with the document as the parent and suggests the line object.
  3. Check that the Item field is the lookup that names the product. Click Create.

Six transactions can carry lines: Sales Order, Estimate, Invoice, Cash Sale, Credit Memo and Return Authorization. Customer payments and refunds can't be added.

Lines can't go under a shipped document such as Order. Those lines would be dropped. The wizard offers to add your own document first, then brings you back for the lines.

Each product on a line needs a NetSuite item. The line finds that item by its External ID, which must be the product's Salesforce id. Items that Product Sync created from this org have it. Items you matched in step 7 of the Connection wizard keep the External ID they already had. Set it to the product's id in NetSuite first. A line with no item is dropped.

A new customer is created for you

If a document's account isn't in NetSuite yet, the sync creates the customer first, in the same run. It uses your Customer Sync mapping, so it's the same customer a normal sync would make. Ten documents for one new account create one customer. This works when the Entity field points at an Account.

Control how records are written

Open Advanced on an object you added, then Write options. Each option is off until you set it.

OptionUse it to
Allow this node to create the recordLet the sync create customers or contacts. Otherwise it only updates them.
Custom formSave the record on a particular NetSuite form.
Set by text, not by idSend a list value by its label, such as "Net 30".
Clear when Salesforce is blankErase a NetSuite field when the Salesforce field is empty.
LookupsFill a link by finding the other record by its Salesforce id.
Sublist key fieldsName the column that identifies each row on a sublist.

Lookups and sublist keys appear once the object exists. Anatomy of the payload shows what these send.

Good to know.
  • The sync never deletes NetSuite records. Deleted or filtered-out Salesforce records leave theirs in place.
  • A mistake in the row filter shows up as an error on that object's next run. The rest of the run still works.
  • The sync reads this object's records as the person who starts it. The row filter can only use fields that person can read.
  • You can't add an object under a line, such as Order Line. Add it under the document instead.
  • A record type the package doesn't ship has no "Open in NetSuite" link yet.