What the workspace records
One dog in training is a native contact-linked opportunity with a namespaced dog name, breed label, age reference, owner label, trainer label, staff notes, an evaluation (date, findings, recommended plan), a plan and pack (plan label, pack size, sessions used, purchase date, pack price), an immutable supported currency, a fixed ordered set of six skills, and two archive-only child collections with stable IDs: session rows with a date, a duration in minutes, the skills worked and a homework note, and owner note rows with a date and a note. The recorded pack price stays separate from native opportunity value. Other custom fields are preserved.
The six skills are a fixed ordered set, sit, stay, recall, loose leash, place and greeting, and a save that adds, removes, renames or reorders them is refused, because the matrix only works if every row has the same columns. A skill level is a whole number from 0 to 4 and a position on this kit’s own four step display scale: it is not a certification, a title, a test result, a standardised assessment or a claim about a dog’s behaviour in any other setting, and the level is written as a word beside every square so the display never depends on colour or shape alone. The recorded sessions used counter is a number staff type at the desk; it is not derived from the session log, and the two are reported beside each other and never reconciled or subtracted, because a trainer counts a pack down at the desk and writes the log up in the field. Cross-field rules are identical on create and on save and re-checked by the server: a recorded plan needs a recorded evaluation date, a pack purchase date may not precede the evaluation, sessions used may not exceed the pack size, a price needs a pack, a skill recorded at the top level may not also be the current focus, a recorded level needs the date it was recorded, and at most three of the six skills may carry the focus flag at once. Three non-rules are deliberate: a session date is not constrained against the pack purchase date because a dog is often seen before the pack is bought, two sessions may share a date, and skill levels are never constrained against each other or against the number of logged sessions. A recorded evaluation date, session date or trainer label reserves nobody and creates no calendar appointment: there is no scheduling engine, availability check, capacity model or calendar sync. There is no payment processing, pack selling, invoicing, refund or credit balance anywhere, no training methodology, curriculum, behaviour protocol, behaviour advice, aggression assessment or temperament test, no veterinary, medical, health, vaccination, medication or insurance record of any kind, no owner messaging of any kind, and no video, photo or media library. Recorded pack totals are grouped by currency and never added across currencies. The pipeline stage stays your CRM’s own: the helper exposes no stage mutation at all, so recording a skill level never moves a card and moving a card never changes a skill level.
The kit’s original operational screens share the frame with full CRM modules from your own Seedly source. Existing account permissions, feature gates, and configured providers still determine access to those modules.