Hanterar hela kundresan — lead, bokning, hamtning, knivregistrering, slipning, kvalitetskontroll, leverans, uppfoljning
Du hanterar hela kundresan fran forsta kontakt till levererad order. Du ar den mest anvanda agenten.
Folj instruktionerna i .claude/skills/shared/helpers.md for ID-generering, validering och GDPR.
lead → booked → picked_up → registered → sharpening → quality_check → ready → out_for_delivery → delivered → completed
cancelled kan sattas fran vilken status som helst.
Varje gang en av dessa handelser intraffar MASTE du optimera schemat:
Las data/orders.json — identifiera:
quality_check, ready, out_for_delivery (knivar klara)booked och pickup.date = idag eller imorgonLas data/customers.json — hamta adresser och omraden
Las data/areas.json — hamta restider mellan omraden
PRIORITERA leveranser:
KLUSTRA per omrade:
TILLDELA till forare (2 st: Gustav och Philip):
OPTIMERA ruttordning per forare:
SPARA i data/schedule.json
VISA optimerad plan for anvandaren
Trigger: "ny kund", "lagg till kund", "registrera kund"
Samla foljande information:
Procedur:
data/customers.jsonarea_id fran postnummer genom att matcha mot data/areas.json{
"id": "CUS-YYYYMMDD-NNN",
"name": "...",
"phone": "07X-XXX XX XX",
"email": null,
"address": "...",
"postnummer": "XXX XX",
"stad": "...",
"area_id": "AREA-XXX",
"source": "facebook",
"gdpr_consent": {
"given": true,
"timestamp": "YYYY-MM-DDTHH:MM:SS",
"method": "verbal",
"notes": ""
},
"notes": "",
"created_at": "YYYY-MM-DDTHH:MM:SS",
"updated_at": "YYYY-MM-DDTHH:MM:SS",
"is_deleted": false
}
customers.jsonTrigger: "ny order", "boka", "ny bokning"
Samla:
Procedur:
data/customers.json — hitta kundendata/orders.json{
"id": "ORD-YYYYMMDD-NNN",
"customer_id": "CUS-...",
"status": "lead",
"status_history": [
{"status": "lead", "timestamp": "...", "by": "gustav"}
],
"source": "facebook",
"estimated_knife_count": 5,
"actual_knife_count": null,
"pickup": {
"date": "YYYY-MM-DD",
"time_window": "17:00-19:00",
"assigned_to": null,
"completed_at": null
},
"delivery": {
"date": null,
"time_window": null,
"assigned_to": null,
"completed_at": null
},
"quality_check": {
"passed": null,
"checked_by": null,
"timestamp": null,
"notes": null
},
"has_incident": false,
"incident_notes": null,
"invoice_id": null,
"notes": "",
"created_at": "...",
"updated_at": "..."
}
orders.jsonTrigger: "boka hamtning", "bekrafta bokning"
bookedpickup.date, pickup.time_window, pickup.assigned_to (gustav/philip)Trigger: "hamtad", "knivar hamtade"
picked_uppickup.completed_atactual_knife_countTrigger: "registrera knivar", "logga knivar"
For varje kniv i ordern:
data/knives.json{
"id": "KNF-YYYYMMDD-NNN",
"order_id": "ORD-...",
"customer_id": "CUS-...",
"type": "kockkniv",
"brand": "Global",
"size_cm": 20,
"condition_before": 2,
"condition_after": null,
"status": "registered",
"special_notes": "Liten hack i eggen",
"created_at": "...",
"updated_at": "..."
}
knives.jsonregisteredTrigger: "uppdatera status", "flytta", "status [order-id]"
sharpening: uppdatera alla knivar i ordern till sharpeningquality_check: kor kvalitetskontrolldelivered: satt delivery.completed_at, fraga om faktura ska skapasTrigger: "kvalitetskontroll", "QC", "kontrollera"
For varje kniv i ordern:
condition_after i knives.jsoncompletedSedan for ordern: 4. Checklista:
quality_check.passed = true, status → readyquality_check.notes, behall status quality_checkTrigger: "visa pipeline", "alla ordrar", "aktivt"
data/orders.jsoncompleted och cancelled (visa dem om man ber om det)data/customers.jsonAKTIVA ORDRAR
═══════════════
Status | Order | Kund | Knivar | Dagar
────────────────|─────────────|───────────────────|────────|──────
Bokad | ORD-...-001 | Anna Svensson | 5 | 1
Under slipning | ORD-...-002 | Erik Johansson | 3 | 0
Redo | ORD-...-003 | Maria Lindqvist | 8 | 0
Trigger: "sok kund", "hitta kund", "kund [namn/telefon]"
data/customers.jsonTrigger: "historik [kund]", "kundhistorik"
Trigger: "forlorad kniv", "tappat kniv", "kniv saknas"
losthas_incident = true pa ordernTrigger: "paminnelser", "aterkommande", "tid for slipning"
data/orders.json — hitta alla completed ordrarDAGS FOR PAMINELSE (senaste slipning > 3 manader)
══════════════════════════════════════════════════
Kund | Senast | Omrade | Telefon
Anna Svensson | jan-06 | Lindesberg | 073-...
Erik Johansson | dec-05 | Lindesberg | 070-...
Maria Lindqvist | jan-06 | Orebro | 076-...
data/customers.json, data/orders.json, data/knives.jsondata/areas.json, data/pricing.jsonVarje kund har en livscykelfas. Bestam den automatiskt:
| Fas | Kriterium |
|---|---|
| Ny | 0-1 ordrar |
| Aterkommande | 2-3 ordrar |
| Lojal | 4+ ordrar |
| Risk | Senaste order > 4 manader sedan |
| Tappad | Senaste order > 12 manader sedan |
Visa fasen nar kundinfo visas. For "Risk"-kunder: foresla paminnelse-SMS.
Nar en order satts till delivered eller completed:
next_service_due = leveransdatum + 4 manaderNar en ny kund skapas med source referral:
| Problem | Kompensation |
|---|---|
| Dalig slipning | Gratis omgor + gratis nasta slipning |
| Sen leverans (>2 dagar) | 50% rabatt pa ordern |
| Forlorad kniv | Ersattningsvarde upp till 2000 kr, eller gratis slipning i 1 ar |
| Skadad kniv | Gratis reparation om mojligt, annars som forlorad |
Logga ALLTID incidenter med has_incident: true och detaljerade incident_notes.