# AI and Cin7.

URL: https://levystreet.com/integrations/cin7/
Updated: 2026-10-19

An AI Cin7 integration guide for NZ: ForesightAI, AMA and document recognition, the Core and Omni APIs and webhooks, plus inventory exception summaries.

## Short answer

An AI Cin7 integration connects a model to your stock, sales and purchase data, through Cin7's own AI (ForesightAI, the AMA assistant and document recognition) or through the Cin7 Core and Omni APIs. For New Zealand product businesses the most useful first job is a daily exception summary: code finds the stock problems, the model explains them plainly, and a person decides what to reorder or chase.

- Cin7 Core's API allows 60 calls a minute; Omni allows 3 a second and 5,000 a day.
- Core webhooks need the Automation module and switch off after six failed attempts.
- Cin7 Core API dates are in UTC, 13 hours behind NZ daylight time.
- We found no official Cin7 MCP server as at 19 October 2026.
- Cin7 lists US$349 to US$1,199 a month for new customers, excluding taxes.

## What Cin7's own AI does (October 2026)

[Cin7's AI page](https://www.cin7.com/features/ai/) lists four tools: ForesightAI for demand forecasting, AMA (Ask Me Anything), an assistant in Cin7 Core that answers questions about sales, stock and product how-to and flags low stock across warehouses, Intelligent Document Recognition for supplier invoices and purchase orders, and AI product descriptions. Cin7 publishes prices in USD, excluding taxes, for new customers: Standard US$349, Pro US$599 and Advanced US$1,199 a month, for 5, 10 and 15 users. It lists an Auckland office.

A decision rule: if someone wants to know what is low right now, ask AMA. Build when exceptions must combine Cin7 with other data (Shopify orders, freight ETAs, Xero payment status), reach people who never log in to Cin7, or follow your own thresholds.

## Integration routes and when to use each

| Route | What it gives you | Use it when |
|---|---|---|
| ForesightAI, AMA and document recognition | Forecasting, Q&A and supplier document capture inside Cin7 | Buyers and managers work in Cin7 Core |
| Cin7 Core API v2 | Products, availability by location and batch, sales, purchases and transfers; a subset of what the UI does | Custom exception reports and integrations on Core |
| Core webhooks | Events such as `Stock/AvailableStockLevelChanged`, `Sale/Backordered` and `Purchase/StockReceivedAuthorised` | You need triggers rather than polling, and have the Automation module |
| Cin7 Omni API | Basic authentication; 3 calls a second, 60 a minute, 5,000 a day | You run Cin7 Omni |
| Your own MCP server | Read-only stock and PO tools for an AI assistant | Staff want Cin7 in Claude or ChatGPT; no official server exists |

## Automation 1: a daily inventory exception summary


- **Inputs**: Product availability (OnHand, Allocated, Available, OnOrder, InTransit, NextDeliveryDate by location and batch), open sales with backorders, and open purchase orders.
- **Rules in code**: Flag the exceptions in the table below. The rules, not the model, decide what counts.
- **Model step**: Group exceptions by cause and supplier and write one plain sentence per group, quoting figures from the rule output.
- **Validator**: Every number in the text must appear in the rule output. If one does not, the summary is withheld and the raw table goes out instead.
- **Human approval**: The purchasing or operations lead decides each action: reorder, transfer, chase the supplier or warn the customer.
- **Write-back**: None to Cin7 at first; the summary goes to Teams, Slack or email with SKU links. Later, draft purchase orders can be created in DRAFT status for a buyer to authorise.
- **Failure and recovery**: A partial data pull sends nothing new; yesterday's summary stays visible with its date, and the run retries.


| Exception | Cin7 fields used | Rule |
|---|---|---|
| Stock-out risk | Available, open sale quantities | Available at or below zero with open sales |
| Uncovered backorder | Backordered sales, OnOrder | Backorder with no purchase order quantity |
| Late supplier | NextDeliveryDate, purchase status | Date passed and stock not received |
| Expiring batch | Batch, ExpiryDate, OnHand | Expiry within 30 days and stock on hand |

The retail version of this workflow is in [inventory exception reporting](/industries/retail/inventory-exception-reporting/), and the validator follows [structured outputs and validation](/engineering/structured-outputs-and-validation/).

## Automation 2: supplier invoice against purchase order


1. **Capture.** The supplier invoice arrives by email, or through Cin7's own document recognition.
2. **Match.** Lines are matched to the open purchase order by supplier and PO number.
3. **Compare in code.** Quantity, unit price and GST are checked against the order, and variances above tolerance are flagged.
4. **Approve.** The buyer accepts or disputes each variance before the purchase invoice is authorised in Cin7.
5. **Confirm.** The `Purchase/InvoiceAuthorised` webhook closes the loop, with a daily reconciliation behind it.


## Permissions and approval design

The [Cin7 Core docs](https://dearinventory.docs.apiary.io/) say the Account ID and Application Key are equivalent to a login and password. Create a separate API application per integration, because limits apply per application and a single key can then be revoked without breaking others. Put your own read-only wrapper in front of the key and add write calls only behind approval. Webhooks call your endpoint with Basic or Bearer credentials you configure, so check them on every request.

Sales orders carry customer names and addresses. Leave customer fields out of anything sent to a model; stock exceptions do not need them, and that keeps personal information out of scope.

## Costs and limits (as listed 19 October 2026)

- **Core API**: 60 calls a minute; list endpoints page up to 1,000 records, so 20,000 availability rows take about 20 calls.
- **Core webhooks**: at most five of one type; six delivery attempts spaced 1, 5, 10, 15, 20 and 25 minutes apart, about 76 minutes, then the webhook is deactivated.
- **Model cost, worked example**: one daily summary at 30,000 input and 2,000 output tokens on Claude Sonnet 5.5 (US$2 and US$10 per million) is about US$0.08, or roughly US$2.40 a month.

## Where it goes wrong

- **UTC dates.** Core dates are UTC. Midnight UTC is 1 pm in New Zealand during daylight saving, so convert before grouping by day.
- **Silent webhook loss.** After about 76 minutes of failures a webhook switches off. Monitor `IsActive` and reconcile daily.
- **Core versus Omni.** Different APIs, authentication and limits; code written for one does not run on the other.
- **API gaps.** Cin7 notes the API is a subset of the UI. Confirm every field you need before promising a report.

Most Cin7 stacks also run [Shopify](/integrations/shopify/) and [Xero](/integrations/xero/); see those guides, and our [AI reporting](/services/ai-reporting/) service for builds that combine them.

## Questions people ask

### What AI features does Cin7 include?

Cin7's AI page lists ForesightAI for demand forecasting from sales history, AMA (Ask Me Anything), an assistant in Cin7 Core for questions about sales, stock and how to use the product, Intelligent Document Recognition for supplier invoices and purchase orders, and AI-generated product descriptions. Check with Cin7 which features your plan includes, as the pricing page does not itemise them.

### Is there an official Cin7 MCP server?

We found none on Cin7's site or developer documentation as at 19 October 2026. To use Cin7 from Claude or ChatGPT you would build a small MCP server over the Core or Omni API with read-only tools such as stock by SKU and open purchase orders. Keep any write tool, such as creating a draft purchase order, behind human approval.

### How often can we pull stock levels from Cin7?

Cin7 Core allows 60 API calls a minute per API application, and list endpoints return up to 1,000 records a page, so 20,000 SKU-location rows take about 20 calls. Cin7 Omni allows 3 calls a second, 60 a minute and 5,000 a day. For near-real-time alerts on Core, use the Stock/AvailableStockLevelChanged webhook instead of polling.

### Why does our Cin7 report disagree with what staff saw this morning?

Often it is the clock. Cin7 Core's API uses UTC for every date field, so a report that cuts off at midnight UTC actually stops at 1 pm New Zealand time during daylight saving. Convert all dates to Pacific/Auckland before grouping by day, and label each summary with the exact time its data was read.


## Sources

- [Cin7 AI features](https://www.cin7.com/features/ai/)
- [Cin7 pricing](https://www.cin7.com/pricing/)
- [Cin7 Core API v2 developer portal](https://dearinventory.docs.apiary.io/)
- [Cin7 Omni API](https://api.cin7.com/)
- [Contact us](https://www.cin7.com/contact-us/)
- [Pricing](https://platform.claude.com/docs/en/about-claude/pricing)

Published by Levy Street (https://levystreet.com), Wellington, New Zealand.
