---
title: "Zoho Inventory Integration"
description: "Automate Zoho Inventory order and stock management. Agents manage items, sales and purchase orders, invoices, payments, packages, and shipments, and monitor low-stock items across warehouses."
url: https://flowrunner.ai/integrations/zoho-inventory
date_modified: 2026-08-07T17:20:23-07:00
---

# Zoho Inventory

[ERP](https://flowrunner.ai/integrations/category/finance-accounting)

Automate Zoho Inventory order and stock management. Agents manage items, sales and purchase orders, invoices, payments, packages, and shipments, and monitor low-stock items across warehouses.

[Verified](https://flowrunner.ai/integrations/verified "What does verified mean?") · 8 triggers · 110 actions · OAuth · available

[Zoho Inventory website](https://www.zoho.com/inventory/) · [Platform Documentation](https://www.zoho.com/inventory/api/v1/) · Capability data verified 2026-08-12

1.  On Low Stock Item fires when an item drops below reorder level
2.  Agent reads the item, its stock level, and preferred vendor
3.  Agent confirms no open purchase order already covers the item
4.  Agent raises a purchase order to reorder from the vendor
5.  Purchasing team is alerted that a reorder was prepared
6.  A reorder above a spend threshold routes to purchasing to approve

## What This Integration Enables

An agent can sync products, stock levels, and price lists between Zoho Inventory and external storefronts or databases, and automate order-to-cash by creating sales orders, generating invoices, recording customer payments, and emailing invoices. It drives procure-to-pay by raising purchase orders, receiving stock, recording bills, and paying vendors, and it fulfills orders through packages and shipment orders while processing sales returns and credit notes.

Eight polling triggers make Zoho Inventory a system that starts flows: new or updated sales orders, purchase orders, invoices, bills, items, contacts, and packages, plus On Low Stock Item. That last trigger is the one that turns a stockout from a surprise into a scheduled reorder. Managing inventory across multiple locations with transfer orders and stock adjustments keeps every warehouse honest.

### Without FlowRunner

**Stockouts caught late**: Low stock is noticed when an order cannot be filled

**Reorders raised by hand**: Purchasing builds each purchase order manually after checking levels

**Books lag inventory**: Sales in Zoho Inventory reach the accounting system in a later sync

### With FlowRunner

**Low stock triggers a flow**: On Low Stock Item starts the reorder before an order is at risk

**Reorders prepared automatically**: The agent raises the purchase order from the item and vendor data

**Books mirror sales**: Each invoice syncs into accounting as the sale is recorded

## Use Case Scenarios

### Fulfill an Order Through a 3PL

When the On New Or Updated Sales Order trigger fires, the agent calls [ShipBob](https://flowrunner.ai/integrations/shipbob) Create Order to fulfill it, then emails the customer their tracking details through [Gmail](https://flowrunner.ai/integrations/gmail-service) Send Message. The order moves from placed to shipping without an ops person rekeying it into the warehouse system.

### Reorder on Low Stock

When the On Low Stock Item trigger fires, the agent alerts the purchasing team through [Slack](https://flowrunner.ai/integrations/slack) Send Message To Channel, then calls Create Purchase Order to reorder from the vendor. Stockouts become reorders raised before an order is ever at risk.

### Mirror Sales Into the Books

When the On New Or Updated Invoice trigger fires, the agent calls [QuickBooks Online](https://flowrunner.ai/integrations/quickbooks-online) Create Invoice to mirror the sale into the books, and after payment records it there too. On reorders above a spend threshold, the agent holds the purchase order and asks purchasing to approve before it is issued.

## Human-in-Loop Highlight

A purchase order commits spend, and an automated reorder that misjudges demand ties up cash in stock you do not need. On reorders above a threshold you set, that commitment deserves a human. When the agent has prepared a purchase order above the limit, it treats issuing it as a [human-in-the-loop](https://flowrunner.ai/concepts/human-in-the-loop) step: it pauses, shows the item, the quantity, the vendor, and the total spend, and routes the decision to purchasing through Slack or email. Purchasing approves, and the agent issues the order. Purchasing holds, and it waits. Small, routine reorders flow through automatically; the ones that move real money get a person before the spend is committed.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via Slack

Human decides

Agent resumes with decision

## Agent Capabilities

110 actions

### Diagnostics

1

-   **Test Connection** Verifies the OAuth connection is healthy by listing the organizations the connected account can access. Use to sanity-check setup before wiring downstream actions.

### Contacts

7

-   **Create Contact** Creates a new customer or vendor contact. Supports primary contact details, billing address, shipping address, and contact persons.
-   **Get Contact** Retrieves full details of a contact, including contact persons, addresses, and outstanding balances.
-   **Update Contact** Updates an existing contact by merging supplied fields into the saved record. Use to change a subset of fields (e.g. adjust price, swap email) without re-sending the full payload.
-   **Delete Contact** Permanently deletes a contact. Use when removing a test record; for production records prefer mark-inactive so historical references stay valid. Contacts with linked transactions cannot be deleted.
-   **Mark Contact Active** Re-activates a contact previously marked inactive so it returns to pickers and reports. Use when restoring a customer or vendor relationship.
-   **Mark Contact Inactive** Marks a contact inactive so it stops appearing in pickers but historical transactions stay intact. Preferred over delete for retiring a customer or vendor.
-   **List Contacts** Lists contacts in the organization with optional filtering by type, status, and name.

### Items

7

-   **Create Item** Creates a new inventory, service, or sales item. Inventory items track stock levels; service items don't.
-   **Get Item** Retrieves an item with full detail: stock-on-hand and available-stock per location, pricing tiers, and custom fields. Use after listing or a trigger event to inspect a single item.
-   **Update Item** Updates an existing item by merging supplied fields into the record. Use to change a subset (price, reorder level, description) without re-sending every field.
-   **Delete Item** Permanently deletes an item. Use for cleanup; for production items prefer mark-inactive so historical line items remain valid. Items tied to transactions cannot be deleted.
-   **Mark Item Active** Re-activates an item previously marked inactive so it returns to pickers and can be added to new transactions. Use when bringing a discontinued SKU back into rotation.
-   **Mark Item Inactive** Marks an item inactive so it stops appearing in pickers and cannot be added to new transactions. Existing transactions remain intact. Preferred over delete for retiring an SKU.
-   **List Items** Lists items in the organization, with optional filters for SKU, name, status, and stock level.

### Item Groups

5

-   **Create Item Group** Creates a parent item group (variant container) with one or more variant items underneath.
-   **Get Item Group** Retrieves an item group with every variant item underneath. Use to enumerate variants of a parent SKU.
-   **Update Item Group** Updates an item group by merging supplied fields. Use when correcting or amending without re-sending the whole record.
-   **Delete Item Group** Permanently deletes an item group AND all its variant items in one shot. Use carefully, to retire a single variant, delete that item instead.
-   **List Item Groups** Lists item groups. Use to enumerate parent SKUs and their variants for batch processing or finding a group ID.

### Composite Items

6

-   **Create Composite Item** Creates a composite item (kit/bundle) made up of one or more existing items at fixed quantities.
-   **Get Composite Item** Retrieves a composite item (kit) with the component breakdown, every member item and its assembly quantity. Use to inspect kit composition before assembly.
-   **Update Composite Item** Updates a composite item by merging supplied fields. Use when correcting or amending without re-sending the whole record.
-   **Delete Composite Item** Permanently deletes a composite item (kit definition). Component items are unaffected. Use to retire a kit no longer offered for sale.
-   **Create Bundle** Records an assembly event: consumes the components of a composite item and produces stock of the kit.
-   **Delete Bundle** Reverses an assembly event by deleting the bundle record.

### Inventory Adjustments

4

-   **Create Inventory Adjustment** Records a stock adjustment (e.g. cycle count, write-off, damage) against one or more items. Use type=quantity for stock changes and type=value for cost-only revaluation.
-   **Get Inventory Adjustment** Retrieves an inventory adjustment record by ID. Use after listing/picker selection or a trigger event to read full details.
-   **Delete Inventory Adjustment** Permanently deletes an inventory adjustment record and reverses its stock impact. Use to undo a miscounted adjustment.
-   **List Inventory Adjustments** Lists inventory adjustments in the organization with optional filters.

### Sales Orders

7

-   **Create Sales Order** Creates a sales order against an existing customer with one or more line items. Optionally specify a location, salesperson, discount, and shipping charge.
-   **Get Sales Order** Retrieves a sales order with its line items, status history, and totals. Use after listing or a polling-trigger event to read full detail.
-   **Update Sales Order** Updates an existing sales order by merging supplied fields. Use when partial-updating without re-sending the whole record. Cannot edit confirmed/voided orders without reopening.
-   **Delete Sales Order** Permanently deletes a sales order. Use to clean up drafts; confirmed orders should be voided first via Mark Sales Order Void so stock impact unwinds correctly.
-   **Mark Sales Order Confirmed** Confirms a draft sales order so it can be packaged and shipped. Use once line items, customer, and price are final, confirmation locks the order and reserves stock.
-   **Mark Sales Order Void** Voids a sales order so it no longer affects stock or reports. Use to cancel an order after confirmation without losing its audit trail.
-   **List Sales Orders** Lists sales orders in the organization with optional filters by status, customer, and date range.

### Packages

5

-   **Create Package** Creates a package from a sales order. Packages must reference an existing sales order, the API requires salesorder\_id.
-   **Get Package** Retrieves a package record by ID. Use after listing/picker selection or a trigger event to read full details.
-   **Update Package** Updates a package record (e.g. tracking, line items, notes).
-   **Delete Package** Permanently deletes a package. Use to undo a packing mistake before the package is shipped; line items return to the sales order pool.
-   **List Packages** Lists packages with optional status filter.

### Shipment Orders

4

-   **Create Shipment Order** Creates a shipment order from one or more packages of a sales order. Shipments are separate from packages, packages get bagged into a shipment that the carrier collects.
-   **Get Shipment Order** Retrieves a shipment order with linked packages, tracking number, carrier, and delivery status. Use to follow shipment progress.
-   **Mark Shipment Delivered** Marks a shipment order as delivered, completing the order lifecycle. Use when carrier confirmation arrives out-of-band and Zoho should reflect final state.
-   **Delete Shipment Order** Permanently deletes a shipment order. Underlying packages remain intact and can be re-shipped. Use to fix carrier/tracking-number mistakes before delivery.

### Sales Returns

6

-   **Create Sales Return** Creates a sales return record. Optionally link it to the originating sales order; Zoho treats salesorder\_id as optional.
-   **Get Sales Return** Retrieves a sales return record by ID. Use after listing/picker selection or a trigger event to read full details.
-   **Update Sales Return** Updates a sales return by merging supplied fields. Use when correcting or amending without re-sending the whole record.
-   **Delete Sales Return** Permanently deletes a sales return record. Use only before the return is processed; for received returns, unwind via inventory adjustment instead.
-   **List Sales Returns** Lists sales returns with optional date range.
-   **Receive Sales Return** Records the physical receipt of returned goods against a sales return.

### Invoices

10

-   **Create Invoice** Creates an invoice for a customer. Optionally associates the invoice with a sales order via \`salesorder\_id\` in extraFields.
-   **Get Invoice** Retrieves an invoice with all fields, applied payments, and credit-note offsets. Use to inspect AR detail after listing or a payment trigger.
-   **Update Invoice** Updates an invoice by merging supplied fields. Use when correcting or amending without re-sending the whole record. Some fields are immutable once the invoice is sent.
-   **Delete Invoice** Permanently deletes an invoice. Use only for accidental drafts; for sent invoices use void instead so the audit trail is preserved.
-   **Mark Invoice Sent** Marks a draft invoice as sent without emailing it. Use when the invoice was delivered out-of-band (printed or exported) and you only need to advance status.
-   **Mark Invoice Void** Voids an invoice so it no longer counts toward AR. Audit-safe alternative to deletion, use whenever an issued invoice was a mistake or will not be paid.
-   **Mark Invoice Draft** Reverts an invoice back to draft status. Use to correct line items or details on an already-sent invoice before re-sending.
-   **Email Invoice** Emails the invoice to one or more recipients with optional subject and body.
-   **Write Off Invoice** Writes off an invoice's outstanding balance as bad debt.
-   **List Invoices** Lists invoices with status, customer, and date filters.

### Customer Payments

5

-   **Record Customer Payment** Records a customer payment and optionally applies it to one or more invoices.
-   **Get Customer Payment** Retrieves a customer payment record by ID. Use after listing/picker selection or a trigger event to read full details.
-   **Update Customer Payment** Updates a customer payment.
-   **Delete Customer Payment** Permanently deletes a customer payment and releases any applied amounts back to the invoices. Use to correct mistakenly-recorded payments.
-   **List Customer Payments** Lists customer payments with optional customer and date filters.

### Credit Notes

6

-   **Create Credit Note** Creates a credit note for a customer (used for returns or goodwill).
-   **Get Credit Note** Retrieves a credit note with line items, application history, and refunds. Use to inspect credit-note state.
-   **Update Credit Note** Updates a credit note by merging supplied fields. Use when correcting or amending without re-sending the whole record.
-   **Delete Credit Note** Permanently deletes a credit note. Cannot be undone; for applied credits, unapply or void so the audit trail survives. Cannot be undone; for applied credits, unapply or void instead so the audit trail survives.
-   **Apply Credit Note To Invoices** Applies all or part of a credit note to one or more invoices.
-   **List Credit Notes** Lists credit notes.

### Purchase Orders

10

-   **Create Purchase Order** Creates a purchase order against a vendor with one or more line items.
-   **Get Purchase Order** Retrieves a purchase order with line items, vendor info, and status. Use after listing or a trigger event for full detail.
-   **Update Purchase Order** Updates a purchase order by merging supplied fields. Use when correcting or amending without re-sending the whole record.
-   **Delete Purchase Order** Permanently deletes a purchase order. Use for draft PO cleanup; for issued POs cancel via Mark PO Cancelled first.
-   **Mark PO Issued** Issues a draft PO so it can receive goods against it. Use once the PO has been approved internally and the vendor delivery is expected.
-   **Mark PO Cancelled** Cancels an issued PO so it no longer expects deliveries. Use when a vendor order falls through or the order is no longer needed.
-   **List Purchase Orders** Lists purchase orders with optional filters.
-   **Receive Purchase Order** Records the physical receipt of items against a purchase order. Receives are separate from bills (financial liability).
-   **Get Purchase Receive** Retrieves a purchase receive record by ID. Use after listing/picker selection or a trigger event to read full details.
-   **Delete Purchase Receive** Permanently deletes a purchase receive record.

### Bills

7

-   **Create Bill** Creates a vendor bill recording purchases received. Optionally references a PO via extraFields.purchaseorder\_ids.
-   **Get Bill** Retrieves a vendor bill with line items, payment history, and status. Use after listing or a trigger event for full detail.
-   **Update Bill** Updates a bill by merging supplied fields. Use when correcting or amending without re-sending the whole record.
-   **Delete Bill** Permanently deletes a bill. Use for draft cleanup; for posted bills void via Mark Bill Void to preserve the audit trail.
-   **Mark Bill Open** Marks a draft bill as open and ready to pay. Use when finalizing a vendor bill staged via createBill in draft mode.
-   **Mark Bill Void** Voids a vendor bill so it no longer counts toward AP. Use as the audit-safe alternative to deletion when a posted bill will not be paid.
-   **List Bills** Lists vendor bills with optional filters.

### Vendor Payments

4

-   **Record Vendor Payment** Records a vendor payment and optionally applies it to one or more bills.
-   **Get Vendor Payment** Retrieves a vendor payment with applied bill breakdown. Use to inspect AP disbursement detail.
-   **Delete Vendor Payment** Permanently deletes a vendor payment and releases any applied amounts back to the bills. Use to correct a mistakenly-recorded payment.
-   **List Vendor Payments** Lists vendor payments with optional vendor and date filters.

### Vendor Credits

5

-   **Create Vendor Credit** Creates a vendor credit (credit memo from a vendor) used to offset future bills.
-   **Get Vendor Credit** Retrieves a vendor credit with line items and application history. Use to inspect open credit available against future bills.
-   **Delete Vendor Credit** Permanently deletes a vendor credit. Cannot be undone; use only for accidental drafts.
-   **Apply Vendor Credit To Bills** Applies all or part of a vendor credit to one or more bills.
-   **List Vendor Credits** Lists vendor credits.

### Transfer Orders

5

-   **Create Transfer Order** Creates a warehouse-to-warehouse transfer order. Uses location\_id semantics (the modern Zoho term replacing warehouse\_id).
-   **Get Transfer Order** Retrieves a transfer order with line items, from/to locations, and in-transit status. Use to track stock movements between warehouses.
-   **Delete Transfer Order** Permanently deletes a transfer order. Use to undo a not-yet-transferred move; for completed transfers, create a reverse transfer order instead.
-   **Mark Transfer Received** Marks an in-transit transfer order as received at the destination, releasing stock from in-transit into available inventory at the destination location.
-   **List Transfer Orders** Lists transfer orders with optional filters.

### Locations

6

-   **Enable Multi-Location** One-time enables the multi-location (multi-warehouse) feature for the organization. Required before creating locations.
-   **Create Location** Creates a new warehouse/location.
-   **Get Location** Retrieves a location/warehouse with its users and address. Use to inspect warehouse configuration.
-   **Update Location** Updates a location by merging supplied fields. Use when correcting or amending without re-sending the whole record.
-   **Delete Location** Permanently deletes a location/warehouse. Inventory at the location must first be moved out via transfer order or adjusted to zero. Use to retire a closed warehouse.
-   **Mark Location Primary** Sets a location as the organization's primary warehouse.

## Triggers

8 triggers

### Event Triggers

8

-   **On New Or Updated Sales Order (Polling)** Polls Zoho Inventory for new or updated sales orders on a schedule. Starts a flow to fulfill the order or notify the customer.
-   **On New Or Updated Purchase Order (Polling)** Polls Zoho Inventory for new or updated purchase orders on a schedule. Starts a flow to receive stock or reconcile procurement.
-   **On New Or Updated Invoice (Polling)** Polls Zoho Inventory for new or updated invoices on a schedule. Starts a flow to mirror the sale into your books.
-   **On New Or Updated Bill (Polling)** Polls Zoho Inventory for new or updated bills on a schedule. Starts a flow to route or reconcile payables.
-   **On New Or Updated Item (Polling)** Polls Zoho Inventory for new or updated items on a schedule. Starts a flow to sync product data to a storefront or database.
-   **On New Or Updated Contact (Polling)** Polls Zoho Inventory for new or updated contacts on a schedule. Starts a flow to sync customers or vendors.
-   **On New Or Updated Package (Polling)** Polls Zoho Inventory for new or updated packages on a schedule. Starts a flow to track fulfillment.
-   **On Low Stock Item (Polling)** Polls Zoho Inventory for items that fall below their reorder level. Starts a flow to alert purchasing and raise a purchase order.

## Frequently Asked Questions

### What can FlowRunner do with Zoho Inventory?

FlowRunner agents can run Test Connection, Create Contact, and Get Contact in Zoho Inventory, plus 107 more actions.

### Does connecting Zoho Inventory to FlowRunner require OAuth?

Yes. Zoho Inventory connects to FlowRunner with OAuth 2.0, so agents authenticate without handling raw credentials.

### Can Zoho Inventory trigger a FlowRunner workflow automatically?

Yes. Zoho Inventory supports 8 triggers that can start a FlowRunner workflow automatically.

**Work at Zoho Inventory?** This integration exposes Zoho Inventory to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/zoho-inventory. Site index: https://flowrunner.ai/llms.txt
