> ## Documentation Index
> Fetch the complete documentation index at: https://parabola.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Send data to NetSuite

> Create and update NetSuite records (sales orders, purchase orders, item receipts, and more) from a Prowork flow using the same token-based authorization as pulling data.

Once your [NetSuite authorization](/docs/product/integration/netsuite#authorizing-token-based-access-pulling-data-via-saved-search-and-sending-data) is set up, the **Send to NetSuite** step lets you create and update records in NetSuite (sales orders, purchase orders, item receipts, and more) directly from a Prowork flow. It reuses the same token-based authorization as [Pulling Data via Saved Search](/docs/product/integration/netsuite-saved-search), with one extra role permission; see the Authorization page for setup. Pulling Data via [SuiteQL](/docs/product/integration/suiteql) is the one flow that additionally needs OAuth enabled on that same integration.

## Using the step

NetSuite requires internal IDs for related objects (items, customers, subsidiaries, etc.) rather than human-readable names (SKUs, order numbers, customer names).

<Tip>
  **Best practice:** use a Pull from NetSuite step (or a reference file) earlier in your flow to look up internal IDs before the Send to NetSuite step. This is the single biggest way to avoid send errors.
</Tip>

**Example: creating sales orders from a customer's PDF purchase order**

*Flow inputs:*

* An **Extract from email** step that parses the PDF, pulling out order number, customer name/address, each SKU, quantity, and order/ship dates.
* **Pull from NetSuite** steps that return master data: Customer and Item records with their name and internal ID.

*Transformation:*

* Combine the parsed PDF data with the NetSuite reference searches, matching on SKU name and Customer name.
* Your dataset now includes the internal ID for each object (Item, Customer, Location).

*Flow output:*

* A **Send to NetSuite** step: select action **Create**, object **Sales Order**, and map the required fields (entity ID for the customer, item internal ID, status, etc.).

<Frame>
  <img src="https://mintcdn.com/parabola-7119dfb0/0nraqrpqz7vDBm9K/images/integration/prowork-send-so-flow-example.png?fit=max&auto=format&n=0nraqrpqz7vDBm9K&q=85&s=4bb92bb9de06cec1fd06f7e3aea789c7" alt="Prowork flow that parses a retailer purchase order from email, looks up internal IDs in NetSuite, and creates a sales order via Send to NetSuite" width="1650" height="568" data-path="images/integration/prowork-send-so-flow-example.png" />
</Frame>

## Record statuses

NetSuite requires status fields to be set using specific internal status codes rather than the display name. Set the status by inserting a custom value using the Status Internal Identifier from the reference table below.

| Record Type      | Status Internal Identifier | Label                                 |
| ---------------- | -------------------------- | ------------------------------------- |
| Purchase Order   | A                          | Pending Supervisor Approval           |
| Purchase Order   | B                          | Pending Receipt                       |
| Purchase Order   | C                          | Rejected by Supervisor                |
| Purchase Order   | D                          | Partially Received                    |
| Purchase Order   | E                          | Pending Billing / Partially Received  |
| Purchase Order   | F                          | Pending Bill                          |
| Purchase Order   | G                          | Fully Billed                          |
| Purchase Order   | H                          | Closed                                |
| Sales Order      | A                          | Pending Approval                      |
| Sales Order      | B                          | Pending Fulfillment                   |
| Sales Order      | C                          | Cancelled                             |
| Sales Order      | D                          | Partially Fulfilled                   |
| Sales Order      | E                          | Pending Billing / Partially Fulfilled |
| Sales Order      | F                          | Pending Billing                       |
| Sales Order      | G                          | Billed                                |
| Sales Order      | H                          | Closed                                |
| Item Fulfillment | A                          | Picked                                |
| Item Fulfillment | B                          | Packed                                |
| Item Fulfillment | C                          | Shipped                               |
| Item Receipt     | \*                         | N/A                                   |

## Bulk creation

A single flow run can create multiple records in NetSuite at once. Use the **grouping** function on the item-level mapping so sub-items are consolidated under the correct parent record. For example, group sales order line items by sales order number so each item lands on the right order.

**Tips:**

* Use Pull from NetSuite steps with saved searches for items, customers, vendors, or locations, and reference them in your flow to look up internal IDs.
* The NetSuite **Entity** field maps to **Vendor** on purchase orders and **Customer** on sales orders.

## Transfer orders

Creating an item line on a Transfer Order causes NetSuite to automatically generate three lines per item: an item line, a fulfillment line, and a receipt line. For example, a Transfer Order with SKUs A and B adds A on line 1 and B on line 4: lines 2 and 3 are the fulfillment and receipt for A, and lines 5 and 6 are for B.

Keep this in mind when modifying a fulfillment, receipt, or item on a Transfer Order. You'll need to reference the correct line number for the object you're updating.

## Common questions

**If one record fails to send, does the whole flow stop?**
No. A failed record logs an error in the flow run history, while other records in the same run can still succeed. Open the run log to see which rows succeeded, which failed, and why.

**Can I send to multiple record types in the same flow?**
Yes. Add multiple Send to NetSuite steps to the canvas, each pointed at a different action and record type. For example, one step could create a purchase order and a second could create an item receipt.

**How do I confirm a record was actually created in NetSuite?**
Check the flow run log in Prowork, which shows a success or error response for each record. For the first few runs of a new send flow, it's worth also confirming directly in NetSuite rather than relying on the log alone.

**Do I need to map all fields, or just the required ones?**
Only the required fields, plus any optional fields you specifically want populated. The step flags required fields and won't run until they're mapped. Unmapped optional fields are left blank or filled with NetSuite's defaults.
