---
name: manifold-from-cin7
description: Set up Manifold for a merchant running Cin7 Core or Cin7 Omni today, through their agent, from sign-up to go-live — the migration the merchant starts with their own Cin7 key, the follow link that keeps Manifold a read-only mirror of Cin7 while they evaluate, the mirror lock, the order-history handover at go-live and the rest of setup. Use when a Cin7 or DEAR Inventory merchant wants to move onto Manifold.
---

# Setting Manifold up from Cin7

**Who this is for:** a merchant whose stock, products, suppliers, customers and orders live in Cin7 Core (formerly DEAR Inventory) or Cin7 Omni, and who will run Cin7 beside Manifold until they switch. If they also sell through Shopify, read the **manifold-shopify-and-cin7** skill alongside this one: it says when Shopify may be connected.

This skill is the whole journey. The **manifold-cin7-migration** skill is the detailed procedure for its middle: creating the Cin7 API application, the paste, and explaining the preview. Follow it where this skill says so.

## What the merchant needs ready

- **A Cin7 login** that can reach Integrations (Core) or is an administrator (Omni), to create the read-only API application.
- **A Manifold account**, or ten minutes to make one (`https://admin.getmanifold.io/signup?source=agent`).
- **The Manifold connector** in this client, connected with "Everything I can do" (**manifold-onboarding** skill, step 2).
- **A rough count** of their products and locations, so you can tell whether the preview looks right.

## Never

- Never ask for, read out, store or type the Cin7 key, the account id or any other credential. The merchant pastes them into Manifold's own form. There is no tool that starts a migration, by design: a key must never pass through this conversation.
- Never change anything in Cin7 beyond creating the one API application, and only on their word.
- Never apply a migration they have not seen previewed.
- Never start a second migration into the same organization (the opening stock would arrive twice), unless the first one failed before writing anything.
- Never decide go-live, stop following Cin7, choose a plan or invite people. Those are the merchant's, in the admin.

## 1. Account and journey

1. If they have no account, send them to sign up, then connect the connector to the new organization.
2. `onboarding_get_status`. No journey yet: `onboarding_start` with `source: "agent"`.
3. `onboarding_set_profile`: ask for the business name, country, timezone and the currency their Cin7 prices are in, what they sell, whether they buy from suppliers, and their channels.
4. `onboarding_list_sources`: check that their Cin7 (`cin7-core` or `cin7-omni`) is listed. The credential fields it names are what the merchant will paste, not you.

## 2. The migration (the merchant pastes, you do the rest)

Follow the **manifold-cin7-migration** skill, sections 1 to 5:

- create the API application in Cin7;
- open the products step, `https://admin.getmanifold.io/settings/setup?step=products`, and set the options with them;
- leave **Keep following this account until I go live** ticked;
- tick **Order history** if they want their past and open sales;
- the merchant pastes the two values and presses **Preview the migration**;
- `migration_list` for the newest migration, then `manifold_wait` on `migration_get` until `previewed` or `failed`;
- explain every count and warning.

Then, on their explicit go-ahead, `migration_apply`. Then `manifold_wait` on `migration_get` until `applied` or `failed`, and read the reconciliation (per SKU and location, Cin7's figure against Manifold's) together.

## 3. The follow link: a read-only mirror of Cin7

With following on, the import becomes a **link**. `onboarding_get_link` says:

- which system it follows;
- its `status`: `following`, `degraded` (Cin7 refused the last three cycles, usually a revoked key) or `ended`;
- how its recent cycles went.

On a schedule, each cycle re-reads Cin7. New products, suppliers, customers and orders arrive, and stock on hand is corrected to Cin7's figures.

- **To pick up a change now**, `onboarding_sync_link`. `onboarding_cancel_link_sync` stops a cycle that is running; the link keeps following.
- **A record Manifold refused three times** is set aside, and the cycle names it. Fix it in Cin7 (the next cycle sees the change), or fix what blocks it in Manifold, then sync.
- **Stopping following** destroys the stored key. It is the merchant's choice, at Settings › General; there is no tool for it.

### The mirror lock

While the organization is read-only and following Cin7, **what Cin7 feeds is read-only in Manifold**, for people and agents alike. That covers:

- products and catalogs;
- stock, receiving, allocations and locations;
- sales orders and payments;
- purchasing;
- customers and companies.

Do not write to any of them (`catalog_create_product`, `inventory_adjust_stock`, `crm_create_company` …) while the link is following. Those changes are made in Cin7 and arrive with the next cycle. Manifold refuses such a write with `409 MirroredFromSource`, but the lock rides on your access token: for up to 15 minutes after the import is applied, a token minted before it may still let a write through. Do not take a write that went through as permission. When one is refused, tell the merchant why instead of retrying.

What you can still set up:

- the order pipeline (`fulfillment_set_workflow`);
- the purchasing policy (`purchasing_set_settings`);
- the opening stocktake's counts and costs;
- notifications, reports and the chart of accounts.

## 4. The rest of setup

Hand back to the **manifold-onboarding** skill's checklist, step 5. The Cin7 import already did `products`, `locations` and `parties`; `onboarding_get_status` shows them done. Then:

- **Opening stocktake**: `inventory_start_stocktake`, then `inventory_stocktake_sheet` with `missingCost=true` to find the SKUs with no cost (`suggestedCostCents` is the import's figure). Save the counts and costs the merchant gives you with `inventory_record_stocktake_counts`. While read-only it cannot be completed: going live completes it, at the last sync's figures for anything uncounted, and refuses while a SKU has no cost. Get every SKU a cost before they try.
- **Books**, **billing** (60 days free on a card at Settings › Billing, the merchant's to start) and **team**, as that skill says.

## 5. Go-live: the handover

Going live is the owner's or an admin's decision, typed in at Settings › General. Never yours. Explain what it does, then let them decide:

- The **opening stocktake** completes. The books begin that day, in Manifold and in their accounting app.
- The link runs **one last read of Cin7** (the handover). With order history on, the Cin7 sales orders still open become live orders in Manifold, holding stock. Ended ones stay as history (`fulfillment_list_historical_orders`).
- The link **ends**, and the Cin7 key is destroyed. The mirror lock lifts: products, stock and parties are theirs to change in Manifold.
- Manifold starts writing outward: to the store, the ledger and customers' mail.

Advise them to go live at a quiet moment, after Cin7's last orders of the day.

**After going live:**

- `onboarding_get_link` shows `ended` with `went-live`.
- `fulfillment_list_orders` shows the handed-over open orders.
- They can delete the "Manifold migration" API application in Cin7, and should stop working orders in Cin7.

## Done looks like

- `migration_get`: `applied`, the reconciliation explained.
- `onboarding_get_status`: every applying step done or skipped on their word, billing started.
- Before go-live, `onboarding_get_link` is `following`. After it, `ended`, and the open orders are in Manifold.

## When it goes wrong

| What you see | What it means | Next |
|---|---|---|
| `migration_get` `failed`, "refused the credentials" | The values were pasted wrong, or Omni's permissions miss a resource | The merchant starts the migration again with corrected values: the one case where a second migration is right |
| `409 MirroredFromSource` | The organization is read-only and following Cin7, so that record is Cin7's | Make the change in Cin7, then `onboarding_sync_link` |
| `onboarding_get_link` `degraded` | Cin7 refused three cycles in a row (owners were emailed) | The merchant checks the API application in Cin7 still exists; then `onboarding_sync_link` |
| A cycle names records set aside | Manifold refused them three times unchanged | Fix them in Cin7, or fix the cause in Manifold, then sync |
| Go-live refused, `OpeningStocktakeIncomplete` | A stock SKU has neither a cost nor a cost basis | Cost it on the opening stocktake, then they try again |
| Go-live refused, `PlanRequiredToGoLive` | Billing is through an app with no plan approved | The merchant approves the plan at Settings › Billing |
