Business Memory & Knowledge Graphs — Starter Schema
A pragmatic, starter schema and ingestion checklist to capture clients, offers, decisions, SOPs, assets, and relationships so AI and humans can reliably find and reuse business knowledge. Includes minimal fields, tagging guidance, example records, ingestion checklist, governance notes, and suggestions for small-business-friendly automation.
Purpose
Use this starter schema to capture the things that matter in a small business so both humans and AI can find context quickly and reuse knowledge. The goal is a minimal, practical business memory that makes repeated work easier, reduces errors, and accelerates automation.
Design principles
- Start small: capture the minimum useful fields that let you identify, link, and act on information.
- Make relationships explicit: store links between clients, offers, decisions, SOPs, and assets.
- Tag consistently: a compact, shared tag vocabulary helps search and AI context-building.
- Record provenance and confidence so humans can judge whether automated actions are safe.
- Make ingestion repeatable: use the checklist below to keep quality high as the memory grows.
Core entity types (starter set)
For each entity, a Minimal Viable Record (MVR) includes required fields; Recommended fields add useful context. Use the unique id to link entities in relationships.
1) Client (customer, organization, contact)
- Required: id, name, primary_contact_name, primary_contact_email, status (active/inactive)
- Recommended: industry, location, account_tier, first_engaged_date, notes, tags
2) Offer (product, service, package)
- Required: id, title, short_description, price_model (fixed/recurring/value-based), status
- Recommended: deliverables, delivery_timeframe, owner_id, typical_customer_ids (examples), tags
3) Decision
- Required: id, title, decision_date, made_by, summary
- Recommended: rationale, alternatives_considered, impact_estimate, related_entity_ids, tags, confidence_level
4) SOP (Standard Operating Procedure / Recipe / Checklist)
- Required: id, title, version, owner_id, summary
- Recommended: steps (short list or link to document), time_estimate, required_tools, last_reviewed_date, tags
5) Asset (template, file, contract, invoice, knowledge artifact)
- Required: id, title, asset_type (template/file/contract), location_or_url, owner_id
- Recommended: created_date, last_modified, related_entity_ids, tags, licensing_or_privacy_notes
6) Project / Engagement
- Required: id, title, client_id, start_date, status
- Recommended: scope_summary, milestones, associated_offer_id, people_involved, tags
Minimal metadata every record should have
- id — stable unique identifier
- title — short human-friendly label
- created_by — who added the record
- created_date
- last_modified — last update timestamp
- status — draft / active / archived / deprecated
- source — origin (e.g., CRM, email, upload, agent)
- tags — small list of standardized tags (see below)
- confidence — low / medium / high (useful for automation decisions)
Tagging and taxonomy guidance
Keep tags short, consistent, and limited. Aim for a controlled vocabulary of 50 or fewer high-value tags for a small business. Use compound tags sparingly.
Suggested starter tags:
- urgent, recurring, onboarding, billing, legal, marketing, sales, troubleshooting, template, contract, SOP, demo, pilot
Tagging tips:
- Prefer nouns or noun-phrases (e.g., billing, not billing issue).
- Use owner_id for responsibility; tags for classification.
- Document the tag list and enforce it during ingestion where practical.
Example Minimal Record (human-readable)
{
"id": "client-001",
"title": "Acme Landscaping",
"primary_contact_name": "R. Gomez",
"primary_contact_email": "rgomez@acme.com",
"created_by": "alice@example.com",
"created_date": "2026-05-03",
"status": "active",
"tags": ["recurring", "landscaping", "billing"]
}
Relationships and simple graph model
Represent relationships with arrays of ids. Examples:
- offer.related_client_ids = ["client-001"]
- sop.related_offer_ids = ["offer-021"]
- decision.related_entity_ids = ["offer-021", "client-001"]
Include relationship types when helpful: owns, uses, replaced_by, applies_to.
Ingestion checklist (practical steps)
- Identify sources: CRM records, invoices, Google Drive, Notion/Confluence, email, chats, contracts, spreadsheets.
- Map fields from each source to the starter schema. Aim to populate required fields at minimum.
- Normalize identifiers: assign stable ids where none exist (e.g., client-xxx).
- Apply tags using the controlled vocabulary; add owner_id and confidence.
- Record provenance: source system, importer identity, and import date.
- Run a light QA pass: check for duplicates, missing required fields, or badly formatted contact info.
- Set status = draft until verified; move to active after review.
- Schedule periodic reviews for SOPs, offers, and decisions (e.g., quarterly).
Small-business-friendly automation tips
- Automate simple imports from your CRM and file storage using filename conventions or webhook triggers.
- Create a short intake form for new clients and offers that maps directly to the schema (reduces manual work).
- Use a confidence field to prevent AI agents from acting on low-confidence records without human approval.
- Convert repeated SOPs into checklists that can be executed and recorded in the memory (captures real-world outcomes).
Common use cases / queries
- Show active offers for a client: find offer records where related_client_ids includes client id.
- Find the SOP for onboarding a client by tag: search SOPs tagged onboarding & matching industry.
- List recent decisions affecting pricing: find Decision records with tag pricing and date > X.
- Surface templates used in invoices: search assets where asset_type == template and tags contain billing.
Governance and responsibilities
Decide who owns the business memory. For a one-person business that may be the owner; for slightly larger teams, assign an owner (or rotating steward) responsible for:
- Tag vocabulary and small-scale taxonomy updates.
- Periodic review of SOPs, offers, and decisions.
- Running ingestion checks and resolving duplicates or conflicts.
Privacy, retention and compliance quick rules
- Mark records that contain PII and treat them according to your privacy policy.
- Keep minimum required data for compliance (invoices, contracts), delete or anonymize extraneous data after retention period.
- Record consent sources for any customer-provided information used for automation or agents.
Next steps and integration ideas
- Create a small, enforced tag list and a short intake form that maps to required fields.
- Prioritize automating imports for your highest-volume sources (CRM, invoices, file storage).
- Use the confidence field to gate automated actions; require human sign-off when confidence is low.
- Save a living example of 5–10 linked records (client, offer, SOP, asset, decision) to test search, agent prompts, and automation safely.
Where this starter schema helps most
This starter schema is tailored to entrepreneurs and very small businesses that need leverage: standardize what you capture so a little automation and a knowledge graph can have outsized impact. It supports faster onboarding, safer automation, better reuse of templates and SOPs, and clearer decisions.
Appendix: quick JSON example linking entities
{
"client": {"id":"client-001","title":"Acme Landscaping"},
"offer": {"id":"offer-021","title":"Weekly Lawn Care","related_client_ids":["client-001"]},
"sop": {"id":"sop-09","title":"Week 1 lawn care checklist","related_offer_ids":["offer-021"]},
"decision": {"id":"dec-03","title":"Discount policy for recurring clients","related_entity_ids":["offer-021","client-001"]}
}
If you want, the next step is a simple intake form that maps to the required fields above so new records are always created in a clean, consistent way.
Discussion
Comments and conversation will live here.