Appearance
Importing from Sum-It and Herdwatch
Time: ~5 minutes per file | Works offline: No (commit needs a network connection)
Already keeping records in Sum-It (PocketPro / Cattle Manager) or Herdwatch? You can move your history into Kilnside without re-entering it. Export from your existing system, drop the CSV into Kilnside, preview what we'll create, and commit.
Step 1 — Export your CSV
Sum-It (PocketPro / Cattle Manager)
- Open Sum-It on your desktop.
- Choose Reports → Export.
- Pick one export at a time (Sum-It keeps each list as a separate file):
- Animals — your full flock or herd roster
- Movements — on/off-farm movements
- Treatments — medicine records
- Lambings — lambing events with offspring tags
- Save as
.csv.
Herdwatch
- Open the Herdwatch web app at
app.herdwatch.com. - Choose Reports → Animals (for the roster) or Reports → Events (for everything else — movements, treatments, lambings together).
- Set the date range and tap Export to CSV.
- Download the file to your computer or phone.
Pick one file at a time
For Sum-It, upload each export separately and pick the matching kind (animals, movements, treatments, lambings). For Herdwatch's events export, run it three times — once for movements, once for treatments, once for lambings. The importer filters events by type per upload.
Step 2 — Preview (dry-run)
Drop the CSV into the Import screen. Kilnside parses it and shows you a preview, broken down into three buckets:
- Creates new — animals or events that don't exist in Kilnside yet
- Extends existing — events that attach to an animal Kilnside already knows about (matched by ear tag)
- Conflicts with existing — an import row's ear tag is already in Kilnside, but the row tries to register a new animal
The preview also lists any diagnostics — rows the importer couldn't fully parse (missing date, ambiguous product name, etc.). Those don't block the import; they just won't commit.
Dry-run is the default
Nothing is written to Kilnside until you explicitly tap Commit. The preview is safe to run as many times as you like.
Step 3 — Pick a conflict strategy
When an ear tag in your import already exists in Kilnside:
| Strategy | What it does |
|---|---|
| Skip (default) | Drops the conflicting row. Existing animal is unchanged. Use when you're re-importing a file you've already imported. |
| Merge | Keeps the imported event but attaches it to the existing animal. Any "new animal" rows for the same tag get downgraded to legacy attachments so we don't end up with two animals sharing a tag. Use when your import has more history than Kilnside currently knows. |
| Replace | Annotates the conflicting row with a "supersedes" marker for review. Doesn't auto-rewrite the ledger — the most invasive choice and the slowest to apply. Use only when you're sure the import is more authoritative than Kilnside's current record. |
Step 4 — Commit
Tap Commit. The importer posts the resolved batch through the same airlock that handles every event Kilnside writes, so the bouncer (axiom engine) still gets the last word — bad data won't slip through just because it came from a CSV.
Every imported event carries:
payload.import_source—sumitorherdwatchpayload.confidence—csv_import(lower than a hands-onOBSERVATION, higher than a guess)
You can filter your ledger by these later to audit what came from where.
What gets imported
| Source row | Kernel event |
|---|---|
| Sum-It / Herdwatch animal with born date and "homebred" origin | LIFECYCLE:BORN |
| Animal with purchase date or "purchased" origin | LIFECYCLE:PURCHASED |
| Movement with from/to CPH or location | MOVEMENT (resolution by ear tag) |
| Treatment row with product + dose | INTERVENTION:TREAT |
| Lambing row with offspring tags | One LIFECYCLE:BORN per lamb, plus stillborn count → OBSERVATION |
| Death event in Herdwatch's event feed | LIFECYCLE with sub_type: DEATH |
| Sale (Herdwatch) | MOVEMENT off-farm (sale recognition will land in a follow-up) |
If a row references an ear tag the importer doesn't yet know about (no matching animal row in the file, no matching animal already in Kilnside), it appears in the preview's conflicts bucket so you can fix the import before committing.
Troubleshooting
- "No data rows" — Your CSV has a header but no rows. Re-export with a wider date range.
- "Missing ear tag" diagnostics — Your export's tag column is named something Kilnside didn't recognise. The importer matches case-insensitively against
EarTag,Ear Tag,TagNumber,IDand a handful of other variants — if yours doesn't match, rename the header in the CSV before uploading. - Date warnings — A row's date couldn't be parsed. The event still imports, but with the current timestamp instead of the original date. Most often caused by free-text dates like "last summer".