{"$schema":"https://soulcraft.com/schemas/kit/v2.json","id":"personal-crm","type":"soulcraft","role":"primary","status":"released","name":"Personal CRM","description":"Relationship manager with contact network visualization and interaction tracking","longDescription":"Build a relationship-focused contact manager where connections matter as much as contacts. Track interactions, visualize your network graph, and surface contacts you have not spoken to recently. Uses Brainy for rich relationship modeling with person, organization, event, and topic entity types.","version":"1.0.0","author":{"name":"Soulcraft Labs","email":"kits@soulcraft.com","url":"https://soulcraft.com"},"icon":"👥","tags":["crm","contacts","relationships","networking","brainy","sveltekit"],"variables":[{"key":"appName","label":"App Name","description":"The name of your personal CRM app","type":"string","required":true,"example":"my-network"},{"key":"description","label":"Description","description":"A short description of your network","type":"string","required":false,"example":"My personal contact network","default":"A relationship-first contact manager"}],"shared":{"industry":"personal-productivity","category":"business","aiExpertise":["Contact relationship management","Network analysis and insights","Follow-up strategy","Relationship nurturing","Contact organization and tagging"],"dataModelHints":["person","organization","event","topic"],"dataModel":{"entities":[{"domain":"contact","type":"Person","description":"A person in the relationship network with contact details","products":{"workshop":{"view":"gallery","icon":"👤"},"academy":{"mapsTo":"learning-subject","assessable":false},"venue":{"mapsTo":"CustomerMeta","pos":false}}},{"domain":"company","type":"Concept","description":"An organisation or company contacts are associated with","products":{"workshop":{"view":"graph","icon":"🏢"},"academy":{"mapsTo":"knowledge-unit","assessable":false}}},{"domain":"interaction","type":"Event","description":"A logged interaction such as a call, email, or meeting","products":{"workshop":{"view":"timeline","icon":"💬"},"academy":{"mapsTo":"practice-session","assessable":true},"venue":{"mapsTo":"BookingMeta","pos":false}}},{"domain":"tag","type":"Concept","description":"A label categorising contacts by context or relationship type","products":{"workshop":{"view":"graph","icon":"🏷️"},"academy":{"mapsTo":"knowledge-unit","assessable":false}}}],"relationships":[{"from":"contact","to":"company","verb":"MemberOf","description":"Contact works at this company"},{"from":"contact","to":"contact","verb":"FriendOf","description":"Contact knows another contact"},{"from":"contact","to":"contact","verb":"References","description":"Contact was introduced by another"},{"from":"interaction","to":"contact","verb":"Communicates","description":"Interaction was with this contact"},{"from":"tag","to":"contact","verb":"Categorizes","description":"Tag is applied to this contact"}]},"suggestions":[{"label":"Add a contact","prompt":"Help me add a new contact to my personal CRM"},{"label":"Log an interaction","prompt":"Help me log a recent interaction with a contact"},{"label":"Plan follow-ups","prompt":"Show me contacts I should follow up with and help me plan outreach"},{"label":"Tag and organize","prompt":"Help me organize my contacts with tags and groups"},{"label":"Relationship insights","prompt":"Analyze my contact network and suggest relationship-building opportunities"},{"label":"View my network","prompt":"Show me my contact network in the graph view"}]},"academy":{"skillPath":"relationship-management","level":"beginner","learningObjectives":["Build a structured contact record capturing role, context of meeting, and shared interests","Log interactions consistently so the history of any relationship is retrievable at a glance","Identify contacts who need follow-up using recency data and prioritise outreach","Map network connections to discover shared contacts and introduction opportunities"],"assessmentTypes":["portfolio"],"mode":"certification","tutorPersona":{"inheritsFrom":"workshop.aiPersona","method":"socratic","encouragementLevel":"neutral","flashcardsEnabled":true},"certification":{"requiresHumanCertifier":false,"aiCertifierAllowed":true,"lineageEnabled":true,"certificationSlug":"relationship-manager"},"gamification":{"enabled":true,"achievements":["deep-thinker","completionist","chain-maker"],"streaks":false,"leaderboard":true}},"workshop":{"difficulty":"intermediate","templateTier":4,"aiPersona":{"role":"You are a relationship management expert helping users build and maintain meaningful professional and personal connections.","expertise":["Contact relationship management","Network analysis","Follow-up strategy","Relationship nurturing","Contact organization"],"tone":"collaborator"},"graphGuidance":{"conceptCreation":{"triggers":["User adds a new contact","User creates a company","User logs an interaction","User creates a tag"],"typeMapping":{"contact":"person","company":"organization","interaction":"event","tag":"topic"}},"relationshipPatterns":[{"from":"person","to":"organization","verb":"memberOf","description":"Contact works at company"},{"from":"person","to":"person","verb":"friendOf","description":"Contact knows another contact"},{"from":"person","to":"person","verb":"references","description":"Contact was introduced by another"},{"from":"event","to":"person","verb":"communicates","description":"Interaction was with contact"},{"from":"topic","to":"person","verb":"categorizes","description":"Tag applied to contact"}],"rules":["Every contact should have at least one interaction logged","Prefer relationships over nested properties for connections","Use tags consistently across contacts for filtering"]},"qualityGates":{"fileChecks":[{"path":"package.json","required":["svelte","@sveltejs/kit","@soulcraft/brainy"],"optional":["typescript"]},{"path":"src/lib/types.ts","required":["Contact","Company","Interaction"],"optional":["Tag"]}],"projectChecks":["App starts with npm run dev","Can create new contacts","Can log interactions","Can view contact network graph","Search returns matching contacts"],"exportReady":["No TypeScript errors","All routes load correctly","Error handling in place"]},"sampleData":{"description":"Realistic sample contacts demonstrating the CRM features","entities":[{"type":"person","name":"Alex Chen","properties":{"email":"alex.chen@techcorp.io","phone":"+1-555-0101","role":"Engineering Manager","description":"Engineering lead at TechCorp. Interested in knowledge graphs and AI.","notes":"Met at TechConf 2024. Interested in knowledge graphs.","lastContacted":"2024-11-15","status":"active","createdAt":"2024-09-01"}},{"type":"person","name":"Sarah Johnson","properties":{"email":"sarah.j@startup.co","phone":"+1-555-0102","role":"CEO","description":"Founder and CEO of Startup.co. College friend turned entrepreneur.","notes":"College friend, now running a startup","lastContacted":"2024-10-20","status":"active","createdAt":"2024-06-15"}},{"type":"organization","name":"TechCorp","properties":{"industry":"Technology","website":"https://techcorp.io","size":"500-1000","description":"Enterprise software company specializing in AI solutions.","createdAt":"2024-09-01"}}],"relationships":[{"from":"Alex Chen","verb":"memberOf","to":"TechCorp"},{"from":"Sarah Johnson","verb":"friendOf","to":"Alex Chen"}]},"templateMetadata":{"runnable":true,"runnableCommand":"npm run dev"},"deploy":{"provider":"cloud-run","buildCommand":"npm run build","outputDir":"build","config":{"port":3000,"memory":"512Mi"},"oneClickCommand":"gcloud run deploy"}},"venue":{"bookingNumberPrefix":"PC","subdomainPrefix":"crm","features":{"customerAccounts":true,"cms":true,"website":true,"notifications":true,"analytics":true,"subscriptions":true,"blog":false,"giftCards":false,"pos":false,"loyalty":false,"waivers":false,"animals":false,"adoption":false,"memories":false,"partners":false,"franchise":false},"fees":{"billingModel":"subscription","feeMode":"online-only"},"theme":{"primary":"oklch(0.40 0.14 245)","bgBase":"oklch(0.99 0.005 245)","accent":"oklch(0.58 0.18 195)","textPrimary":"oklch(0.20 0.03 245)","displayFont":"Inter","bodyFont":"Inter"},"experienceTypes":[{"slug":"networking-strategy-session","name":"Networking Strategy Session","description":"A 60-minute consultation to audit your professional network, identify relationship gaps, and build a 90-day outreach plan tailored to your goals.","priceInCents":20000,"durationMinutes":60,"minGuests":1,"maxGuests":1,"requiresWaiver":false,"isCombo":false,"sortOrder":0,"color":"oklch(0.52 0.14 245)","sessionAttributeDefinitions":[{"key":"networkingGoal","label":"Networking Goal","type":"select","perGuest":false,"required":true,"options":["Career change","Business development","Industry presence","Fundraising / investors","Mentorship"]},{"key":"currentNetworkSize","label":"Network Size","type":"select","perGuest":false,"required":false,"options":["< 50 people","50–200","200–500","500+"]}]},{"slug":"relationship-audit","name":"Relationship Audit","description":"A 45-minute review of your current contact database and relationship health. Walk away with a prioritised list of relationships to reinvest in and a reachout template pack.","priceInCents":10000,"durationMinutes":45,"minGuests":1,"maxGuests":1,"requiresWaiver":false,"isCombo":false,"sortOrder":1,"color":"oklch(0.55 0.16 195)","sessionAttributeDefinitions":[]}],"staffRoles":[{"id":"relationship-coach","label":"Relationship Coach","defaultCapabilities":["checkin","pos","cms","analytics"]}],"chatSuggestions":[{"label":"Manage my contacts","message":"I want to get my contact database organised. Where do I start?","emoji":"📇"},{"label":"Networking strategy","message":"I want to grow my professional network with intention. Can I book a session?","emoji":"🤝"},{"label":"Manage subscription","message":"I'd like to manage my account and subscription.","emoji":"💳"},{"label":"Stay in touch","message":"How do I set reminders to follow up with contacts I've let go quiet?","emoji":"🔔"}]},"previewImageUrl":"kits/personal-crm/images/preview.webp"}