---
name: manifold-greenfield
description: Set up Manifold through an agent for a business with no existing storefront or inventory system — a new brand, a wholesaler working from email and paper, a maker starting out. Shape their range into SKUs and products, locations, opening stock, suppliers, customers, catalogs and prices from what they tell you or a sheet you help them build, then walk the rest of setup. Use when someone is starting fresh, has no Shopify or ERP to bring across, or wants to build their catalog in Manifold first.
---

# Setting Manifold up from nothing

**Who this is for:** a business with nothing to migrate: no Shopify store, no ERP, maybe a price list in a document or a range in someone's head. You build their records with them. A channel (a Shopify store, the B2B portal when it exists) can be connected later; Manifold works without one, with orders keyed in or taken by the team.

If they have their data in a spreadsheet already, the **manifold-from-spreadsheets** skill is quicker: use it for the bulk and come back here for the rest.

## What the merchant needs ready

- **What they sell:** each product, its variants (size, colour …), the SKU codes they want, or permission for you to propose some.
- **Where stock is held**, and how much of each SKU is there today, with what each unit cost them.
- **Their price lists:** retail, wholesale or per customer, and the currency.
- **Their suppliers and their trade customers.**
- **The Manifold connector** in this client, connected with "Everything I can do" (**manifold-onboarding** skill, step 2).

## Never

- Never ask for, read out or type a password, an API key or a card number.
- Never invent records: no made-up SKUs, prices, costs, quantities, suppliers or emails. Proposing a SKU scheme is fine; using it is their decision.
- Never decide go-live, billing or who joins the team.
- Never create in bulk what they have not seen. Show the list, then create.

## 1. Account, journey, profile

1. A new business signs up at `https://admin.getmanifold.io/signup?source=agent`; then connect the connector to that organization.
2. `onboarding_get_status`. No journey: `onboarding_start` with `source: "agent"`.
3. `onboarding_set_profile`: business name, country, currency, timezone, `sells` (retail, wholesale or both), `buysFromSuppliers`, and `channels: ["none"]` unless a channel is coming.
4. The `source` step: nothing to bring. On their word, `onboarding_skip_step` with step `source` and reason `start-fresh`.

## 2. Shape the range

Agree the shape before creating anything:

- **One SKU per thing on a shelf.** Letters, digits, `-` and `_`; Manifold uppercases them. A pattern such as `TEE-NAVY-M` reads well in a pick list.
- **A product groups variants**: one "Trail Tee" with sizes S, M and L is a product with three variant SKUs.
- **A kit** (a gift box of three items) is a composite of other SKUs, and holds no stock of its own.
- **Costs and prices are whole cents** in the business's currency.

More than about 20 SKUs: build a sheet with them (one row per variant: product, option values, SKU, cost, price, opening quantity per location) and import it with the **manifold-import** skill, in its order. Fewer: create them one by one, as below.

## 3. Create, in this order

Each step needs what the one before it made:

1. **Locations**: `Main` exists (`inventory_list_locations`). `inventory_create_location` for every other place stock is held: a second warehouse, a shop floor, a 3PL.
2. **Stock items**: `inventory_create_item` per SKU, with its opening `quantity` at a `locationId` (Main when omitted). Serial- or batch-tracked SKUs start at 0 and are received. Give each SKU its unit cost with `catalog_set_cost`, or on the opening stocktake (§4).
3. **Products**: `catalog_create_product`, each variant naming its stocked SKU and its option values (`{ "name": "Size", "value": "S" }`). A variant is stocked unless its `kind` says it is a composite.
4. **Catalogs and prices**: a `Default` catalog exists (`catalog_list_catalogs`). Add one per price list (`catalog_create_catalog`, in the business's currency), list each product in it (`catalog_include_product`), then `catalog_set_price` per SKU. A price for a product the catalog does not list is refused (`409 PriceForUnlistedSku`). A wholesale list that is a fixed discount off retail can be derived instead (`catalog_configure_pricing`).
5. **Suppliers and customers**:
   - `crm_create_company` for each company: `roles: ["supplier"]` for a supplier, `customer` for a trade customer, the catalogs it buys from (`catalogIds`), and a `reference` you mint so a retry does not create it twice;
   - `crm_create_person` for each person, with their email.
6. **Supplier prices** (if they buy from suppliers): `purchasing_set_supplier_price`, so purchase orders fill in.

Read `onboarding_get_status` after each group: the `locations`, `products`, `channels` and `parties` steps turn done from what exists.

## 4. Settings, then the opening stocktake

- `purchasing_set_settings` (only if they raise purchase orders).
- `fulfillment_set_workflow`: which of pick, pack, ship and invoice are manual or automatic, and `paymentTerms`.
- The accounting basis (cash or accrual) is set by the merchant at Settings › Tax.
- **Opening stocktake**:
  - `inventory_start_stocktake`;
  - `inventory_stocktake_sheet` (`missingCost=true` lists SKUs with no cost yet);
  - `inventory_record_stocktake_counts` with the counts and costs they confirm;
  - `inventory_complete_stocktake` when they say so.

  Their books begin there. A read-only organization cannot complete it: going live does, so record the counts and costs and move on.

Then the **manifold-onboarding** skill's last steps: books, billing (60 days free on a card at Settings › Billing, theirs to start) and team (Settings › Users, theirs).

## 5. A channel, later

- **Shopify:** when they open a store, the **manifold-from-shopify** skill connects it. The products already in Manifold are matched by SKU, so keep the SKUs the same in Shopify.
- **Orders in the meantime** are keyed in (`fulfillment_create_order`) against a catalog.

## What stays read-only until go-live

The organization starts **read-only**. Everything above works, because it all stays inside Manifold. What is held is outward:

- mail to their customers and suppliers;
- pushes to a store or a ledger;
- completing the opening stocktake.

Going live is the owner's or an admin's decision, typed in at Settings › General. It needs every stock SKU costed. Ask; never imply it has happened. There is no tool that reads the mode: the badge at the top of the admin shows it.

## Done looks like

- `inventory_list_items` and `catalog_list_products` hold the range they described, every SKU with a cost.
- Each catalog has its prices: `catalog_list_catalog_prices`.
- Suppliers and trade customers are in `crm_list_companies`.
- `onboarding_get_status`: every applying step done or skipped on their word, billing started.

## When it goes wrong

| What you see | What it means | Next |
|---|---|---|
| `409 SkuConflict` | That SKU exists already | Read it with `inventory_get_item`; use it, or agree another code |
| `409 SkuNotStocked` on a product | The variant's SKU is not an inventory item yet | `inventory_create_item` first, then the product |
| A price refused for currency | The catalog is in another currency | Price it in the catalog's currency, or create a catalog in theirs |
| `409 PriceForUnlistedSku` | The product is not listed in that catalog | `catalog_include_product`, then the price |
| `409 PersonEmailConflict` | That email belongs to someone already | `crm_list_people`; link the existing person instead |
| `onboarding_complete` refused, `StepsOutstanding` | A step is neither done nor skipped (often billing or team) | Read `onboarding_get_status`; send them to the step |
