# Draft NetSuite purchase orders when stock hits its reorder point

> Every weekday at 7am, spot NetSuite items at or below their reorder point, draft one purchase order per vendor, and post a Slack summary.

- Workflow type: agent
- Services: NetSuite, Slack Bot
- Categories: Operations, Finance
- Published: 2026-08-07

## What it does

- Each weekday morning it reviews your stocked items in NetSuite and flags every one whose available quantity has fallen to or below its reorder point.
- Flagged items are grouped by their preferred vendor, and a draft purchase order is created for each vendor with enough quantity to bring stock back up to the preferred stock level.
- Every purchase order is left pending approval, so a buyer reviews and releases it rather than anything going out to a supplier automatically.
- One Slack message lands in your purchasing channel listing each draft order with vendor, item count, total value, and a direct link to the record, plus callouts for anything already at zero on hand or missing a preferred vendor.

## What you'll need

- A NetSuite account where your stocked items have reorder point and preferred stock level filled in
- A NetSuite login with permission to view items and vendors and to create purchase orders
- A Slack workspace and the channel your purchasing team watches

## Prompt

Every weekday at 7am, run an inventory replenishment pass in NetSuite and give my purchasing team a single Slack summary of what needs ordering.

Start by running a SuiteQL query in NetSuite that reads my stocked inventory items along with their reorder point, preferred stock level, available quantity, quantity on hand, purchase price, and preferred vendor. Flag every item where available quantity has fallen to or below its reorder point. Skip items that are not stocked and items with no reorder point set, since those are not managed by reorder point replenishment.

Before drafting anything, work out which flagged items already sit on an open purchase order. Do that with a second SuiteQL query across purchase order lines, or by listing the purchaseOrder record collection and filtering to orders that are still open. Drop those items from the flagged list so we never double order, and keep a count of how many were skipped for this reason.

Group the remaining flagged items by preferred vendor. For each vendor group, create one draft purchase order in NetSuite using the Create a Record operation against the purchaseOrder record type, with that vendor as the entity and one line per item. Set each line quantity to the amount that brings the item back up to its preferred stock level, which is preferred stock level minus available quantity, rounded up to a whole unit. Leave every purchase order in a pending approval state. Do not approve or submit any of them, because a buyer reviews before anything reaches a supplier.

If a flagged item has no preferred vendor set, do not guess a supplier and do not put it on any purchase order. Collect those items into a separate list instead.

Finally, post one Slack message to my purchasing channel. List each draft purchase order with the vendor name, the number of items on it, the total value of the order, and a link to the purchase order record in NetSuite. The record link follows the pattern https://{accountId}.app.netsuite.com/app/accounting/transactions/purchord.nl?id={internalId} using my NetSuite account id and the internal id returned when the record was created. Under that, add a separate callout listing any flagged item that is already at zero on hand, since those are live stockouts. Add a second callout listing the items that need manual attention because they have no preferred vendor, showing the current available quantity and reorder point for each. Mention how many items were skipped because they are already on an open purchase order. If nothing has dropped to its reorder point, post a short message saying every stocked item is above its reorder point so the team knows the check ran.

## How to customize

- Change the timing, for example every morning including weekends, or a second pass in the afternoon
- Send the summary to a different channel, or direct message the buyer who owns purchasing
- Limit the check to one location, subsidiary, or product class instead of every stocked item
- Adjust the target quantity rule, for example rounding up to full case or pallet quantities

## Example output

*Reorder point check - Tue 7:00am*
3 draft purchase orders created, all pending approval.

• *Ridgeline Components* - 6 items - $14,820.00 - <https://1234567.app.netsuite.com/app/accounting/transactions/purchord.nl?id=88412|PO #88412>
• *Delta Fasteners* - 2 items - $1,340.50 - <https://1234567.app.netsuite.com/app/accounting/transactions/purchord.nl?id=88413|PO #88413>
• *Novak Packaging* - 4 items - $6,275.00 - <https://1234567.app.netsuite.com/app/accounting/transactions/purchord.nl?id=88414|PO #88414>

*Already at zero on hand*
• SKU-2041 Hex Bolt M8 (Ridgeline Components)
• SKU-7734 Shipping Carton 12x9 (Novak Packaging)

*Needs manual attention - no preferred vendor*
• SKU-5590 Nylon Spacer 4mm - available 12, reorder point 40

Skipped 5 items that are already on an open purchase order.

## FAQ

### Will this send purchase orders to my suppliers automatically?

No. Every purchase order is created in a pending approval state and left there. Nothing reaches a vendor until someone on your team reviews it and approves it in NetSuite, so you keep the final say on every order.

### What happens if an item has no preferred vendor set?

It never guesses a supplier. Items without a preferred vendor are left off every purchase order and listed separately in the Slack message as needing manual attention, so a buyer can pick the right supplier or fill in the missing vendor.

### How does it avoid ordering the same item twice?

Before drafting anything it checks which items already sit on an open purchase order and drops them from the list. An item that has already been ordered but has not arrived yet will not be reordered.

### Do I need reorder points already set up in NetSuite?

Yes. This runs on the reorder point and preferred stock level already on your item records, which is what makes it different from a generic low stock alert. Items with no reorder point are skipped rather than guessed at.

### Can it handle more than one warehouse or location?

Yes. Reorder points in NetSuite can be set per location, and the check can be scoped to a single location or run across all of them. Tell it which locations matter when you set it up.

### What if nothing is low on a given day?

You still get a short Slack note confirming the check ran and everything is above its reorder point, so silence never leaves you wondering whether it worked.

Use this prompt in General Input: https://www.generalinput.com/prompts/draft-netsuite-purchase-orders-when-stock-hits-its-reorder-point