# Cin7 Omni

{% hint style="info" %}
**Quick Answer:** The Cin7 Omni integration syncs your inventory, sales, and purchase orders to Moselle automatically. Setup currently requires assistance from Moselle support.
{% endhint %}

## What is the Cin7 Omni Integration?

**The Cin7 Omni integration** connects your warehouse management system directly to Moselle's planning engine. It automates the flow of critical supply chain data, ensuring your forecasts and replenishment plans are based on real-time stock levels.

### Key Benefits:

* **Automated Sync:** Daily updates of inventory, sales, and orders.
* **Unified Planning:** View all your warehouse data in one dashboard.
* **Accurate Forecasting:** Use historical sales data from Cin7 to predict future demand.

## Prerequisites

**Time Required:** 5-10 minutes (with Support) **Difficulty:** Easy

Before you begin, ensure you have:

* [ ] Admin access to your Cin7 Omni account
* [ ] Your **Cin7 Omni Account ID**
* [ ] An **API Application Key** from Cin7

## How to Connect

Currently, the setup process is handled by our team to ensure proper configuration of your warehouse mappings.

{% stepper %}
{% step %}
**Gather Your Credentials**

Log in to Cin7 Omni and retrieve your Account ID and generate an API Application Key.
{% endstep %}

{% step %}
**Contact Support**

Email <support@moselle.io> with your credentials and request the Cin7 Omni integration activation.
{% endstep %}

{% step %}
**Verification**

Once configured, our team will confirm that data is flowing correctly. You should see your products and inventory populate in Moselle within 24 hours.
{% endstep %}
{% endstepper %}

## Data Synchronization Details

### Sync Schedule

Moselle performs a full sync **daily**. This ensures your "Stock on Hand" and order statuses are current.

### Data Sync Strategy: The 90-Day Lookback

To keep your account fast and responsive, Moselle uses a "Lookback Period" strategy for syncing large datasets.

**Why we do this:** Instead of re-downloading your entire history every single day (which can be slow and cause timeouts), we only check for changes made in the last **90 days**. This is efficient because historical data rarely changes once an order is closed.

**What you need to know:** If you need to update an old record, you must be mindful of this window.

{% hint style="info" %}
**Recent Update:** Prior to January 21, 2026, the lookback period for **Branch Transfers** was limited to 2 days. If you find transfers missing from before this update, please request a historical re-sync.
{% endhint %}

{% hint style="warning" %}
**Backdating Limitation**

If you modify a Sales Order, Purchase Order, or Branch Transfer to a date **older than 90 days**, Moselle will **not** see the change automatically because it falls outside the daily sync window.

**Fix:** If you must change data older than 90 days, please contact <support@moselle.io> to request a one-time "Historical Re-sync."
{% endhint %}

### Data Mapping

#### Products

| Moselle Field | Cin7 Omni Field       | Notes                                |
| ------------- | --------------------- | ------------------------------------ |
| **Name**      | `name`                |                                      |
| **SKU**       | `productOptions.code` | Unique identifier used for matching. |
| **Category**  | `category`            | Used for grouping in forecasts.      |

#### Sales Orders (Historical Sales)

| Moselle Field    | Cin7 Omni Field | Notes                                              |
| ---------------- | --------------- | -------------------------------------------------- |
| **Order Number** | `reference`     |                                                    |
| **Date**         | `invoiceDate`   | Only **"Dispatched"** orders are imported.         |
| **Channel**      | *Derived*       | Mapped based on settings; Shopify orders excluded. |

#### Purchase Orders

| Moselle Field    | Cin7 Omni Field | Notes                                                                       |
| ---------------- | --------------- | --------------------------------------------------------------------------- |
| **Order Number** | `reference`     |                                                                             |
| **Status**       | `status`        | **Voided** Purchase Orders in Cin7 are imported as **Archived** in Moselle. |

#### Inventory

| Moselle Field | Cin7 Omni Field | Notes                               |
| ------------- | --------------- | ----------------------------------- |
| **Available** | `available`     | Stock currently available for sale. |
| **Incoming**  | `incoming`      | Stock on order (PO).                |
| **Branch**    | `branchId`      | Mapped to Moselle Warehouses.       |

#### Branch Transfers

| Moselle Field   | Cin7 Omni Field       | Notes                                                 |
| --------------- | --------------------- | ----------------------------------------------------- |
| **Reference**   | `reference`           | Used as the Order Number in Moselle.                  |
| **Source**      | `sourceBranchId`      | The sending warehouse.                                |
| **Destination** | `destinationBranchId` | The receiving warehouse.                              |
| **Status**      | *Derived*             | Maps to Moselle's Draft, Active, or Delivered states. |

## How Transfers Work in Moselle

Moselle treats Cin7 Omni **Branch Transfers** as a type of replenishment. This allows you to plan stock movements between your own warehouses just like you plan purchases from suppliers.

### Transfers as Purchase Orders

In the Moselle app, your Cin7 Branch Transfers are displayed alongside your regular Purchase Orders. This provides a unified view of all incoming stock for any specific warehouse.

* **In-Transit Visibility:** When a transfer is "Dispatched" in Cin7, Moselle shows it as "Active" in your replenishment plan, accurately reflecting stock that is currently in transit.
* **Replenishment Planning:** Moselle's engine accounts for these transfers when calculating your "Projected Stock," ensuring you don't over-order from suppliers when a transfer is already on its way.

## Troubleshooting & FAQ

| Problem / Question                        | Solution / Answer                                                                                 |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------- |
| **Custom fields not mapping**             | Contact Support to map specific Cin7 attributes to Moselle.                                       |
| **Missing recent orders**                 | Check if the order is marked as **"Dispatched"** in Cin7. Only dispatched orders are imported.    |
| **Inventory count mismatch**              | Verify that the correct Warehouses are enabled in settings and products exist in Moselle.         |
| **Duplicate sales**                       | Ensure "Shopify" orders aren't being double-counted if both integrations are active.              |
| **Can I trigger a manual sync?**          | Yes, typically via **Settings > Integrations** or **Beta** tab in Moselle.                        |
| **Does Moselle write data back to Cin7?** | No, the integration is currently one-way (Cin7 to Moselle) for planning purposes.                 |
| **Why aren't my open orders showing?**    | Moselle only imports **"Dispatched"** orders for sales history. Open/pending orders are excluded. |
