SporelineSporeline
Sign InStart free

Getting Started

  • Help Center
  • Getting Started

Operations

  • Dashboard
  • Scan
  • Blocks
  • Batches
  • Recipes

Printing

  • Label Templates

Lab

  • Cultures
  • Cryo Storage
  • Agar Plates
  • Liquid Cultures
  • Trials
  • Strains

Analytics

  • KPIs
  • Data Health
  • AI Insights

Logistics

  • Locations
  • Customers
  • Deliveries

Admin

  • Team
  • Settings
  • Billing
  • API Keys
  • Configuration
  • Enumerables
  • Integrations
  • Notifications
  • Import
  • Brand Profile
  • Products
  • Traceability
  • Compliance
  • Reports
  • Log Transcription
  • Switchboard

Guides

  • Your First Batch
  • Moving Blocks
  • Import from Spreadsheets
  • Lots and Spawn
  • Room Readings
  • The New Sporeline Look
  • Lots on Orders
  • Lot Transactions and Lot Audits
  • The Sterilization Log
  • Reports and Their Numbers
  • Auto-assign Lots and Pick Lists
  • Recipes and Planning a NOC Day
  • Stage Schedules and Due Today
  • Planning
  • Notification Rules
  • QC Checkpoints and Release
  • The Lab: Cultures, Cryo, Plates and Liquid Cultures
  • Traceability and Recall
  • Sporeline: Explore Your Lineage
  • Scanning on the Floor
  • Counts by Scan
  • Shared Handhelds
  • Zebra Handhelds
  • Orders and Packing Slips
  • QuickBooks Customers and Products
  • Accounting Export
  • Site Transfers
  • Raw Materials
  • Optional Features
  • Approve AI Changes
  • Configuration Tabs
  • Harvest Workflow
  • Contamination Alerts and the Weekly Digest
  • Label Printing
  • Team Setup
  • The Free Plan
  • Usage Recording
  • Signing Up and Farmhand on Free
  • Start Your Farm from an AI Assistant
  • Privacy and Your Data
  • Connect an AI Assistant
  • Ask Your Assistant
  • Appearance and Dark Mode
  • API Quickstart
  • Shopify Setup
  • Shopify Troubleshooting
  • Migrate With an AI Assistant
  • Spreadsheet Templates for Importing
  • Photos and Files

API

  • Reference
  • Authentication
  • Rate Limits
  • Error Codes

Migrate Your Farm With an AI Assistant

Bring customers, recipes, strains, batches, blocks, lab items, harvest history, open orders and lot inventory over from a spreadsheet or an old system by handing them to your AI assistant.

admin

Migrate Your Farm With an AI Assistant

If your farm already runs on spreadsheets or another system, you don’t have to retype it. Once your AI assistant is connected to Sporeline (see Connect an AI assistant), you can hand it your files and ask it to bring everything over. The assistant reads your sheet, sends the rows to Sporeline, shows you what will happen, and only writes once you say yes.

We have tested this with Claude. Other assistants that connect to Sporeline use the same tools.

What you can bring over

  • Customers: name, type, contact, email, phone, address, delivery preferences, payment terms and notes.
  • Locations: rooms, racks, shelves and the rest, with their parent location and capacity.
  • Bag types: name, volume, material, filter patch, thickness, supplier and lot number.
  • Recipes: species, strain, bag type, target wet weight, hydration, supplement and ingredients.
  • Strains: your culture list, with codes, binomials, aliases, bank status and section. These follow the same rules as the strain import on the Strains page.
  • Batches and blocks at their current stage: a batch with all its blocks, or blocks into a batch you already have. A block that is incubating today comes in as incubating; one you finished last year comes in as completed.
  • Cultures, agar plates and liquid cultures: with the strain they are, where they came from and where they sit.
  • Harvest history: each flush with its weight, grade and date, on blocks you imported or already have.
  • Open orders (planned or packed), one line per product, for customers you already imported. Shipped and invoiced history stays where it is. Sporeline gives each order its own order number, and your old number (or the order’s ID in your sheet) is how a re-sent row is recognised, so an order is never made twice.
  • Lots as they stand today: each lot-tracked batch with its code, the units it started with and the units on hand, where they are, the stage it’s in and what it came from (a spawn lot, a culture, a plate or a liquid culture you already imported).

Bring them over in that order. A recipe names a bag type, a batch names a recipe, a culture names a strain, a plate names the culture it came from, a harvest names its block and an order names its customer, so the thing being named has to be in Sporeline first. Lots come last, because a lot names the spawn or culture it came from.

When a lot names a parent the import can’t find, that row is reported in the preview and nothing is written for it. The import never guesses which lot or culture you meant: a lot traced back to the wrong spawn is worse than one traced to nothing. Import the parent first, or fix the reference, and send the row again. Bringing a lot in never takes units out of its parents, since that use already happened in your old system.

How to hand your assistant a spreadsheet

Attach the file or paste the rows into the chat and say what it is, something like “This is my customer list, please bring it into Sporeline.” The assistant matches your columns to Sporeline’s. If a column doesn’t fit, it asks you.

If your old system has its own id for each record (a customer number, a lot code, a culture label), ask the assistant to send it along as the external reference. That id is how Sporeline knows a row it has already seen.

If you’re starting a sheet from scratch, download our spreadsheet templates from Settings → Import first. They have exactly the columns the import reads, so your assistant has nothing to guess.

Preview, then confirm

Every import starts as a preview. Sporeline checks every row and tells your assistant what it would do with each one:

  • Create: it’s new.
  • Skip: it’s already in Sporeline, the same.
  • Already there, different: it’s in Sporeline with other values. By default these are left alone. If you want your sheet’s values to win, tell the assistant to update existing records.
  • Error: something in the row needs fixing, like a customer type Sporeline doesn’t know or a recipe that names a bag type you haven’t brought over yet. The preview says which row and why.

The preview also shows what the import does to your plan: how many active blocks and lab items you’ll have, and on the Free plan how many units you’ll have left this month. If it won’t fit, the preview says so and nothing can be written.

Your assistant should show you the preview before anything happens. When you’re happy, tell it to go ahead. The go-ahead only works for exactly the rows you previewed, only for you, and only for 10 minutes. If anything changed, it runs the preview again.

Approving in Sporeline

If your farm has turned on approvals for AI changes, a confirmed import waits for you in Sporeline before it is written. See Approve AI changes.

Running it again is safe

You can run the same sheet twice and nothing doubles up. Sporeline remembers each row it brought in by its external reference, or by its name when there isn’t one (a customer’s name, a recipe’s name, a batch’s name, a block’s batch and label). That means you can stop halfway, fix a few rows and send the whole sheet again.

If a row matches something you already have in Sporeline by name, the import leaves it as it is and remembers your old system’s id for it, so later rows can point at it (a rack naming its room, say).

Blocks need a label or an external reference, and lab items should have one too. Without it there is no way to tell two identical rows apart. A harvest is matched by its block and flush number, and an order by its external reference or its old order number. A lot is matched by its external reference or its code, and a code that’s already used by another lot in Sporeline is refused for that row rather than brought in twice.

This is how imports through your assistant work. The Upload CSV form on Settings → Import doesn’t match rows to what you already have, so uploading a sheet there a second time adds every row again.

Big sheets go in chunks

Your assistant sends rows in small batches: up to 50 customers, locations, bag types, recipes or harvests at a time, 25 strains, lab items or lots, 100 blocks, 20 orders, or 20 batches holding up to 200 blocks. It keeps the same import id for every chunk, so the whole migration stays one import you can check on and undo. If a chunk takes too long, Sporeline stops cleanly and tells the assistant which row to pick up from.

Checking on an import

Ask your assistant how the import went. It can show the status, how many records each step created, updated or skipped, and who ran it. Each step also shows up in Reports, under Activity, with your name.

Undo

If an import went wrong, the farm owner can ask the assistant to undo it. Undo shows a preview first, then needs a reason, which goes into your Activity log.

Undo only removes what the import created and you saw in its preview, and only when nothing has happened to it since. Each record is checked again right before it goes. A very large import comes out a few hundred records at a time, so you may run undo more than once. Each round has its own preview and its own approval, and you can start the next round as soon as the last one is done. It keeps:

  • anything someone edited in Sporeline after the import, even an edit saved while the undo was running (the undo lists it as “Changed since import, left in place”),
  • blocks that have moved to another stage or have harvests,
  • a batch that still holds blocks that stay,
  • a customer who is on an order,
  • a recipe a batch uses, a strain a recipe or culture uses, and a culture or plate that something was made from,
  • a harvest that is on an order or was made into another lot, or whose block has moved stage since,
  • a lot that anything has happened to since the import: moved, sold, used, discarded, adjusted, harvested or put on an order. A lot undo does take back is archived, and its code stays with it, as with any lot you delete or void, so a corrected row for it needs a new code,
  • an order that has moved on since the import: packed, shipped or invoiced since, changed on its page, or with harvests or blocks allocated to it. An order undo does take back is cancelled, the way Cancel on its page does it.

Records the import updated rather than created are never deleted, because undo can’t know what they said before. Undo also doesn’t hand back units you started this month: those were started, and they still count.

What counts toward your plan

Imported items count the same as items you make in Sporeline. Every block, lot unit and lab item you bring in counts as a unit started this month on the Free plan, finished ones included, and the ones still going count toward your active blocks and lab items. Customers, locations, bag types, recipes and strains don’t count. A new Free farm has Solo-sized room for its first 30 days, which is the best time to bring your history over. See The Free Plan.

Not imported yet

Shipped order history, QuickBooks and Shopify orders, extraction lots and sensor data can’t be brought over through an assistant yet.

Who can import

Managers and owners can import. Only the owner can undo an import.

Pasting a table into the chat

If your records live in a spreadsheet, including one an assistant helped you build, you can copy the rows and paste them straight into the chat, headings and all, and say what they are. Your columns don’t need Sporeline’s names. The assistant asks Sporeline to match them up (the tool is import_from_table, and import_kinds_list tells it what each kind of record takes), so “Customer Name”, “Qty” or “Date Inoculated” land in the right place.

Before anything is planned, the assistant shows you what it understood: which of your columns went where, any column it couldn’t place, anything Sporeline needs that none of your columns hold, and which rows already have a problem, like a weight that isn’t a number or a recipe Sporeline doesn’t know yet. Nothing is written at this step.

If a column landed in the wrong place, or one wasn’t placed at all, just tell the assistant which it is (“Code is the block label”, “leave the Colour column out”) and it checks the table again with your choice. Dates are only read when they can’t be taken two ways, so a date like 03/04/2026 comes back as a question rather than a guess. Writing dates as 2026-03-04 saves that step.

Once the columns look right, the assistant sends the rows to the matching import, like import_customers, as a preview, and everything in Preview, then confirm above applies from there. It checks up to 50 rows at a time while you settle the columns, and a longer sheet then goes over in chunks.

Try this on your own farm. Free for up to 100 blocks a month.

Start free

© 2026 Sporeline · Built by a mushroom farmer, for mushroom farmers.

iPhone app on the App StoreWhat's newSupportNeed help? Email chase@sporeline.com