Demo without a NetSuite account

Turn on Simulated NetSuite to show Continuous Control before anyone has a NetSuite account. Every sync completes inside Salesforce with made-up NetSuite ids, and nothing leaves your org.

Use it for demos and evaluation only. Turn it off and clear the made-up ids before you connect a real account.

Know what it does

With the switch on, Salesforce answers every NetSuite request itself, the way NetSuite answers a successful sync.

Use it to demo the invoice, payment, refund and credit memo cards, or to evaluate the app before NetSuite is set up.

Turn it on in the wizard

Three steps of the Connection wizard get your org ready to demo.

  1. Install Continuous Control 3.4.0 or later. See Install the Salesforce package.
  2. Give yourself the Continuous_Control_Admin and Continuous_Control permission sets.
  3. Open the NetSuite Connection tab. In step 1, turn on Simulate NetSuite. The credential form goes away, and steps 1 and 2 show Complete.
  4. In step 6, click Deploy prebuilt calls & mappings.
  5. In step 7, click Stamp every account and product. Each account and active product without a NetSuite id gets a made-up one. Their invoices, payments, refunds and credit memos can then sync right away.
  6. Place the sync cards. See Demo invoices, payments, refunds and credit memos.

You can skip the other wizard steps. Added accounts or products later? Click Stamp every account and product again. It skips records that already have an id.

Set it up from the command line

If you use the Salesforce CLI, one script does the three wizard steps for you. Download simulated-setup.apex and run it from the folder you saved it in.

sf apex run -f simulated-setup.apex -o <alias>

Building a scratch org with the rlm-scratch-org skill? ./install-cc.sh <alias> --simulated installs the package and does the same three steps in one go.

The script turns on the switch, deploys the prebuilt calls if your org has none, and stamps accounts and products. It's safe to run again.

See what changes while it's on

In the wizard

On the sync cards

Demo invoices, payments, refunds and credit memos

This demo shows billing documents flowing to NetSuite, with no order booking. Turn Simulated NetSuite on in the wizard first, including the step 7 stamp.

Set up the pages

  1. Put the Continuous: NetSuite Sync card on the Invoice, Payment and Refund record pages. Use the Header and Right Sidebar template and place the card at the top of the sidebar. Leave Sync Mode on Auto. See Placing the components.
  2. Activate each page as the default. For Payment and Refund, make it the default in each app you use.
  3. For credit memos, activate the packaged Credit Memo Record Page as the org default. The card is already on it.
  4. Leave the Order, Account and Product pages without the card. The step 7 stamp already gave accounts and products their ids.

Give the demo

  1. Post an invoice, for example one for Kingsbridge Digital. Click Sync Invoice to NetSuite.
  2. Process a payment and apply it to that invoice. Click Sync Payment to NetSuite.
  3. Refund that payment. Click Sync Refund to NetSuite. A refund must apply to a synced payment, so sync the payment first.
  4. Post a credit memo. Click Sync Credit Memo to NetSuite.
  5. Open the Sync Runs tab to show the four runs. Open Calls & Mappings to show what each call sends.

To show automation, use the Flow actions. Each button has a Flow action of the same name that does the same sync.

Know the limits

Connect a real NetSuite account later

Turn the switch off and clear the made-up ids first. Otherwise Salesforce treats those records as already in NetSuite.

  1. In wizard step 1, turn off Simulate NetSuite. The credential form comes back.
  2. Clear the made-up ids on accounts and products. Open the Developer Console, click Debug, then Open Execute Anonymous Window. Paste this script and click Execute.
    List<SObject> rows = new List<SObject>();
    for (Account a : [SELECT Id FROM Account WHERE NetSuiteRecordId__c != null])
        rows.add(new Account(Id = a.Id, NetSuiteRecordId__c = null, NetSuiteSyncStatus__c = null));
    for (Product2 p : [SELECT Id FROM Product2 WHERE NetSuiteRecordId__c != null])
        rows.add(new Product2(Id = p.Id, NetSuiteRecordId__c = null, NetSuiteSyncStatus__c = null));
    update rows;
    It clears NetSuite Record Id and NetSuite Sync Status on every account and product.
  3. Install the NetSuite components and work through every step of the Connection wizard.

Invoices, payments, refunds and credit memos you synced while simulated keep their made-up ids too. Clear those fields as well, or connect the real account from a fresh org.

Entered real credentials earlier? Simulate NetSuite never changes them. They work again as soon as the switch is off.