Loopfour
Integrations

Zoho Inventory actions

Reference for the Zoho Inventory actions: the connection type, each action and what it does, its inputs and outputs, and the live catalog call.

The Zoho Inventory block manages items, contacts, invoices, sales orders, purchase orders, inventory adjustments, packages and shipments in a Zoho Inventory organization. For the plain-language overview, see Zoho Inventory.

When to use it

Use a Zoho Inventory step to turn a confirmed order into an invoice, email that invoice, raise a purchase order, adjust stock, or keep items and contacts in step with another system.

Connection

ItemValue
Block typezoho-inventory (the older id zohoInventory still resolves to it)
ConnectionOAuth sign-in from Integrations (provider id zoho-inventory)
Account pinconfig.connection, the connection row id. Without it the step uses the company's default Zoho Inventory connection
Organizationconfig.organizationId, required on every action and sent to Zoho as organization_id

Actions

The action id is zoho-inventory.<action>. All of these are in the Studio Action list.

GroupActionRequired config
ItemslistItems, getItem, createItem, updateItem, deleteItem, searchItemsitemId (get, update, delete); itemData (create, update)
ContactslistContacts, getContact, createContact, updateContact, deleteContact, searchContactscontactId (get, update, delete); contactData (create, update)
InvoiceslistInvoices, getInvoice, createInvoice, updateInvoice, deleteInvoiceinvoiceId (get, update, delete); invoiceData (create, update)
Sales orderslistSalesOrders, getSalesOrder, createSalesOrder, updateSalesOrder, deleteSalesOrdersalesOrderId (get, update, delete); salesOrderData (create, update)
Purchase orderslistPurchaseOrders, getPurchaseOrder, createPurchaseOrder, updatePurchaseOrder, deletePurchaseOrderpurchaseOrderId (get, update, delete); purchaseOrderData (create, update)
InventorylistInventoryAdjustments, createInventoryAdjustmentadjustmentData (create)
Order to cashconfirmSalesOrder, voidSalesOrder, convertSalesOrderToInvoice, markInvoiceSent, emailInvoice, getInvoicePdfsalesOrderId or invoiceId; toEmail on emailInvoice
ShippingcreatePackage, createShipmentOrdersalesOrderId; packageIds on shipment orders

Fields

FieldTypeMeaning
organizationIdstringZoho organization id
itemId, contactId, invoiceId, salesOrderId, purchaseOrderIdstringRecord ids
itemData, contactData, invoiceData, salesOrderData, purchaseOrderData, adjustmentData, packageData, shipmentDataJSON objectThe Zoho request body, with Zoho's field names. A JSON string is accepted and parsed
toEmail, subject, bodystringRecipient, subject and body for emailInvoice
packageIdsstringComma-separated package ids for createShipmentOrder
nameContains, emailContains, companyContains, phoneContainsstringsearchContacts filters
itemNameContains, skuContains, descriptionContainsstringsearchItems filters
limitnumberResults per page for the two search actions
page, per_pagenumberPaging for list actions (not shown in the Studio form)

Behaviour worth knowing

  • convertSalesOrderToInvoice creates an invoice linked to the sales order. Zoho Inventory has no dedicated convert call, so the line items may not be copied. Pass invoiceData with the lines, or read the order first and build the invoice from it.
  • getInvoicePdf requests the invoice in PDF form (accept=pdf).
  • markInvoiceSent changes the status only; it does not email anyone. Use emailInvoice to send.

Output

The step output is Zoho's response, keyed by resource, so a later step reads {{steps.<id>.invoice.invoice_id}} or {{steps.<id>.sales_order.salesorder_id}}. Curated examples for several actions are at GET /api/v1/blocks/zoho-inventory/actions/<action>/examples.

Example

{
  "id": "invoice_order",
  "type": "action",
  "name": "Invoice the confirmed order",
  "action": "zoho-inventory.convertSalesOrderToInvoice",
  "config": {
    "operation": "convertSalesOrderToInvoice",
    "connection": "<zoho-inventory-connection-id>",
    "organizationId": "10234695",
    "salesOrderId": "{{input.salesOrderId}}",
    "invoiceData": {
      "customer_id": "{{input.customerId}}",
      "line_items": [{ "item_id": "{{input.itemId}}", "quantity": 2, "rate": 150 }]
    }
  }
}

Live catalog

GET /api/v1/blocks/zoho-inventory returns the fields and all actions. See Block and action discovery.

Errors and limits

  • organizationId is required for Zoho Inventory API calls
  • <field> is required and must be a JSON object: a data field is missing, or is an array or text that is not JSON.
  • Zoho errors come back with Zoho's code and message.

On this page