Build a call of your own

Build a new call when you want to sync something no shipped call covers. Examples include a standalone custom object, or a Salesforce record that should become its own NetSuite transaction.

This page follows QuantumBit as it sends accepted Quotes to NetSuite as Estimates. The same steps work for an Opportunity as a Sales Order, or any other document with lines.

Check whether a shipped call already does it

If a shipped call already syncs your object, changing that call is simpler. Order and Product can be pointed at other NetSuite record types. See Book orders as Sales Orders.

The New call wizard warns you when you pick such an object. When that object can be re-pointed, a button such as Re-point Order Booking instead takes you to it. You can still build the new call. It then runs from a Flow, because the shipped sync card always runs the shipped call.

Get NetSuite ready

Every product on QuantumBit's quotes needs a NetSuite item. The call finds each line's item by the item's External ID. That External ID must be the product's 18-character Salesforce id.

Matching items in step 7 of the Connection wizard isn't enough for these lines. The match saves the item's NetSuite id in Salesforce and leaves the item's External ID as it is. Product Sync doesn't change it either. A line whose item NetSuite can't find is dropped.

The account doesn't need to be in NetSuite yet. The run creates the customer if it has to. See A new customer is created for you.

Build the Quote to Estimate call

  1. Open Calls & Mappings and click + New call.
  2. In Call name, enter Quote to Estimate. The key preview below it reads quote_to_estimate.
  3. In Root Salesforce object, pick Quote. This is the record the call runs on.
  4. For the NetSuite target, pick Standard record, then Estimate under Transactions.
  5. Check the Entity field. It fills in with Account ID, the lookup that names the customer.
  6. Click Create. The wizard switches to the new call and opens Add object for the lines.
  7. Quote Line Item is already picked, with Quote as the parent. The wizard shows the lines will go on the Estimate. Name it Estimate Line and click Create.

If you close the line wizard, the Estimate object keeps an Add line object button until you add one. Without lines, every run fails in NetSuite.

Map the fields

  1. Click the Estimate object. Add rows such as Quote Number to otherrefnum, Description to memo, and Expiration Date to expectedclosedate.
  2. Click the Estimate Line object. Add Quantity to quantity, Sales Price to rate, and Line Description to description.
  3. Optional: set a Writeback field on each object to store the NetSuite id.

You don't map the customer or the item. They come from the Entity field and the Item field.

Publish it

Click Validate. It checks every row against the Estimate record in your NetSuite account. Then click Activate. The call is now at version 1, and the toolbar shows its call key.

Run the call

You can run it two ways.

Each run lands the Estimate and its lines, and shows on the Sync Runs tab. Running again updates the same Estimate. New quote lines are added, and nothing is duplicated.

Built a call on an object with a shipped sync, such as Order or Account? The shipped card runs the shipped call there. Use the Flow action, or set the card's Call Key property to your call's key in App Builder. Leave that property blank on every other page.

Name your call well

The call key is how a Flow finds your call, so it can't change once a Flow uses it. It's made from the call name: lowercase, with spaces and punctuation turned into underscores.

Delete a call you built

Pick the call and click Delete call…, then Yes, delete. The call, its objects and its rows are gone at once, and it can't be undone. Past runs stay in your sync history. Shipped calls can't be deleted.