Skip to main content
Sending data back into NetSuite is where Parabola unlocks the most powerful automation patterns — automatically creating purchase orders, updating inventory records, or generating journal entries without anyone touching NetSuite manually. But there are a few important things to get right before your first flow works reliably.

What’s different from Pull

The Send to NetSuite step uses a different API than Pull from NetSuite:
  • Pull from NetSuite uses NetSuite’s SOAP API
  • Send to NetSuite uses NetSuite’s REST API
This means the role you set up in Lesson 2 needs one additional permission for Send to work: REST Web Services must be set to Full. If you followed the setup in Lesson 2, you should already have this. If you only enabled SOAP Web Services, pull works but send will fail authentication.

Permissions for Send to NetSuite

Beyond the REST Web Services permission, the key difference is in how you set access on individual record types. For Pull from NetSuite, View access is sufficient — you only need to read data. For Send to NetSuite, the relevant record types need Full access — Full means both read and write. Example permissions for creating purchase orders:
PermissionLevel
REST Web ServicesFull
Purchase OrdersFull
ItemsView
VendorsView
LocationsView
Permissions in NetSuite are set at the record type level — you can’t restrict access to specific fields within a record. If the role has Full access to Purchase Orders, it can read and write any field on a PO.

Why internal IDs are required

When you send data into NetSuite, every reference to another object must be provided as that object’s internal ID — not its name. This applies to everything: vendors, items, customers, locations, subsidiaries, cost centers, currency codes — all of them. NetSuite doesn’t do name-matching when receiving data via the API. Why this matters in practice: Even a small formatting difference — an extra space, a slightly different spelling, a name that’s been updated — will cause a record creation to fail when using names. Internal IDs are stable numbers that don’t change. As a general rule: once you’re building Send to NetSuite flows, use internal IDs everywhere. They have a much higher success rate than name-based matching.

Finding internal IDs: two patterns

The most reliable approach: create saved searches in NetSuite for each object type you need to reference — Items, Customers, Vendors, Locations, Subsidiaries — and pull those into your Parabola flow before the Send step.A complete Send to NetSuite flow typically looks like:
  1. Input data (from spreadsheet, PDF, another system, etc.)
  2. Pull from NetSuite — Vendor reference search (name + internal ID)
  3. Pull from NetSuite — Item reference search (name + internal ID)
  4. Combine Tables — join input data to reference searches to look up IDs
  5. Send to NetSuite — create or update records using the mapped IDs
This pattern scales automatically — when you add a new vendor in NetSuite, your next flow run picks them up without any manual updates.

Subsidiary is almost always required

For most transaction types in NetSuite — journal entries, purchase orders, sales orders — subsidiary is a required field. If you try to create a record without specifying the subsidiary, it will fail.
Subsidiary must be provided as an internal ID, just like all other object references. Don’t pass the subsidiary name — look up the ID first.
If all of your flows write to the same subsidiary, you can simplify this by setting a custom/default value directly in the Send to NetSuite step rather than looking it up dynamically each time.

What’s next

Now that you understand why internal IDs are required and how to look them up, the next lesson covers the supported action types, how to map fields correctly, and the most common gotchas that cause records to fail. In the building challenge there, you’ll wire your vendor reference search directly into a Send to NetSuite step.

Building challenge

Build a reference search for the object type you’ll need to look up internal IDs for. The steps below use Vendor as the example, but the same pattern applies to Items, Customers, Locations, Subsidiaries — whatever your Send flow will reference.
1

Create a reference saved search in NetSuite

Go to Reports > Saved Searches > All Saved Searches > New and select the search type that matches the object you need to look up (e.g., Vendor, Item, Customer). Under Results, add two columns: Name and Internal ID. No criteria needed — you want the full list. Make it public and save.
2

Pull it into Parabola

Add a Pull from NetSuite step to your flow alongside the saved search from Lesson 3. Select the matching search type and find your new reference search. Confirm it returns two columns: names and internal IDs.
3

Join it to your input data

Add a sample data step (or pull in a small spreadsheet) with a name column representing what your source data would look like. Use a Combine Tables step to join this to your reference search on the name column. Confirm the output now includes an Internal ID column for each row.
You’re done when: You have a Combine Tables step whose output includes an Internal ID column with numeric values for every row. That output feeds directly into the Send to NetSuite step in Lesson 6.
Last modified on March 5, 2026