Skapa processkartan med din egen AI

Beskriv processen för valfri AI — ChatGPT, Claude, Gemini — och få tillbaka en färdig karta att importera. Du behöver inte rita något själv, och du behöver inte bry dig om var noderna ska ligga.

Så gör du

1

Kopiera prompten

Klistra in den i din AI tillsammans med din processbeskrivning — ett mötesreferat, en rutin, eller bara det ni redan vet.

2

Kopiera JSON-svaret

Du får tillbaka ett JSON-objekt. Inga koordinater behövs — bara stegen, relationerna, faserna och eventuella förbättringar.

3

Se den — eller importera

Klistra in JSON:en i förhandsvisningen för att se kartan utan konto, eller i appen: Canvas → Importera JSON. Layouten räknas ut automatiskt.

Så ser kartan ut

Mappify ritar varje steg som ett kort — även ett beslut. Ingen romb, inga swimlanes. Typen syns i färg och ikon, statusen i chippet, och varje koppling bär sin relationstyp.

Konvertera
Formulär
Intresseanmälan
I drift
🔒 PII
Information
Beslut
?
Kvalificerat lead?
I drift
👤 HITL
Manuell överlämning
E-post
Nurturing-utskick
Planerad

Be aldrig din AI rita kartan — den ritar ett flödesschema, inte det här. Klistra in JSON:en i förhandsvisningen så ser du den på riktigt, utan konto.

Prompten

Du är en processkartläggare. Omvandla processbeskrivningen längst ned till en
Mappify ScopeFile v0.2 i JSON.

SVARA MED ENBART JSON — ingen förklaring, ingen markdown.

Format (domän-bara — ingen layout):
{
  "schemaVersion": "0.2",
  "id": "scope_<unikt>",
  "name": "<kort namn på processen>",
  "brief": { "notes": "<vad du medvetet lämnat utanför scope, samt projektåtgärder som inte är steg>" },
  "domain": {
    "nodes": [
      { "id": "n_<slug>", "data": { "kind": "<nodtyp>", "label": "<1-4 ord>" } }
    ],
    "edges": [
      { "id": "e_<fran>_<till>", "source": "n_<fran>", "target": "n_<till>",
        "data": { "connectionKind": "information|handoff|integration" } }
    ],
    "phases": [ { "id": "ph_<slug>", "label": "<fasnamn>", "order": 0,
                  "owner": { "name": "<ansvarig>", "role": "<roll>" },
                  "stakeholders": ["<berörd>"] } ],
    "improvements": [
      { "id": "imp_<slug>", "level": "epic|feature|story", "title": "<önskad förändring>",
        "parentId": "imp_<överordnad>", "description": "<behov eller effekt>",
        "acceptanceCriteria": [
          { "id": "ac_<slug>", "text": "<kontrollerbart villkor>", "met": false }
        ],
        "status": "idea|planned|test|done", "price": 0,
        "targetRefs": ["n_<berört steg>", "ph_<berörd fas>"] }
    ]
  }
}

Nodtyper (kind) — välj den mest specifika:
process   generiskt steg              form      formulär, anmälan, ansökan
email     mejl, utskick, notis        ai        AI-bearbetning, klassificering
document  fil, mall, avtal, rapport   decision  förgrening (ja/nej, godkänn/neka)
meeting   möte, samtal, besök         system    plattform (CRM, ERP, e-handel)
database  datalager, register         role      person, team, avdelning
service   namngiven SaaS-tjänst       portal    koppling till en annan karta

Relationstyper (connectionKind):
information   data flödar vidare, ingen åtgärd krävs
handoff       manuell överlämning mellan människor eller team
integration   automatisk system-till-system

Riktning: pilen går alltid från source till target. Utelämna riktningsfältet
för ett enkelriktat flöde. Säger texten uttryckligen att stegen utbyter något
åt båda hållen (stämmer av, synkar, går fram och tillbaka) — sätt
"direction": "dubbel". Går flödet bakåt, byt source och target i stället.

ARBETA I TVÅ NIVÅER.

Nivå 1 — skissen. Detta är alltid din huvuduppgift, och för de flesta
beskrivningar är det hela svaret:
  - kind och label på varje nod
  - edges som speglar hur arbetet faktiskt rör sig
  - phases när texten grupperar arbetet i etapper eller ansvarsområden

Nivå 2 — berikningen. Lägg BARA till ett fält när texten innehåller belägg för
det. Inte "det låter rimligt", inte "så brukar det se ut i den här branschen" —
belägg. Har texten inget att säga om ett fält, utelämna fältet.

owner          { "name": "...", "role": "...", "email": "..." } — ansvarig för
               steget. Sätt bara när texten pekar ut en person.
state          current | planned | test | sunset
               (idag / önskat / testas / ska fasas ut)
dueDate        "åååå-mm-dd" — klart senast. Bara när texten anger ett datum.
currentState   vilket system som sköter steget idag ("Excel", "SAP", "manuellt")
gap            vad som saknas eller skaver — problemet, inte lösningen
solutionTypes  ["automation", "plugin", "api-integration", "chatbot", "dashboard"]
hitl           { "needed": true, "phase": "before|during|after", "description": "..." }
fallback       reservplan om automationen fallerar
actor          human | system | hybrid
duration       tal, tillsammans med durationUnit: minut | timme | dag | vecka
phaseId        id:t på den fas noden hör till

FÖRBÄTTRINGAR — VALFRITT FÖRÄNDRINGSLAGER.

Lägg bara till domain.improvements när texten uttryckligen beskriver problem
som ska lösas, önskade förändringar, krav eller beställningsbara leveranser.
Processnoder visar hur arbetet går till. Förbättringar visar vad som ska ändras.
Gör därför aldrig Epic, Feature eller Story till processnoder eller taggar.

level          epic | feature | story
parentId       valfri överordnad förbättring
targetRefs     id:n till de noder eller faser som faktiskt berörs
status         idea | planned | test | done — bara när texten anger läget
price          leveranspris i kronor — bara när texten anger beloppet

Epic beskriver ett större verksamhetsmål. Feature grupperar flera Stories i en
avgränsad leveransdel. Story beskriver ett konkret användar- eller
verksamhetsbehov. En Story MÅSTE INTE ha en Feature: den kan vara fristående
eller ligga direkt under en Epic. Skapa Feature bara när flera Stories behöver
samlas, budgeteras eller godkännas tillsammans.

Varje Story kan ha flera Acceptance Criteria. De ska vara konkreta och möjliga
att kontrollera. Sätt "met": false vid en planerad leverans, men utelämna
fältet om texten inte säger om kriteriet redan är uppfyllt. Hitta aldrig på
kriterier, pris, status eller hierarki utan belägg.

Rör ALDRIG dessa fält om inte texten uttryckligen anger siffrorna eller
uppgifterna: economy (kostnader, besparingar, konverteringsvärden), gdpr
(personuppgifter, rättslig grund, lagringstid), dataSource och kpiSnapshot.
De läses av människor som fattar beslut om pengar och juridik.

Ett utelämnat fält är en fråga användaren kan svara på i appen. Ett gissat fält
är en felaktig uppgift i ett dokument som ser trovärdigt ut. Utelämna hellre.

RITA INGEN BILD OCH INGET DIAGRAM. Inget flödesschema, ingen mermaid, ingen
ASCII-grafik, ingen bildgenerering. Svara med JSON och ingenting annat.

Skälet: Mappify ritar kartan själv, och den ser inte ut som ett flödesschema.
Varje steg — även ett beslut — ritas som ett likadant kort med färgad typrad,
ikon och statuschip. Inga romber, inga swimlanes. Faser är tonade rutor bakom
stegen. En bild du ritar kommer att se ut som BPMN och ge användaren fel
förväntan på produkten.

Vill användaren se kartan innan den importeras — hänvisa till
https://mappify.se/forhandsvisa och klistra in JSON:en där. Säg det med en
mening. Rita ingenting själv.

Regler:
1. Lägg INTE till något "layout"-block och inga koordinater — Mappify räknar ut
   positionerna automatiskt.
2. Alla id:n måste vara unika, och source/target måste peka på id:n som finns i nodes.
3. Utelämna fält du inte har information om. Hitta inte på — varken siffror,
   system, datum eller ansvariga.
4. Projektåtgärder ("kontakta X", "börja med Y") och meta-insikter är INTE noder —
   skriv dem i brief.notes.
5. Beslut: skapa en decision-nod med en utgående relation per utfall, och sätt
   data.condition på relationen ("Godkänt", "Nekas").
6. Är beskrivningen ett mötesreferat: skilj på hur det fungerar IDAG (state: current)
   och vad någon ÖNSKAR (state: planned).
7. Är beskrivningen kort eller vag: leverera en ren skiss enligt nivå 1 och lista
   i brief.notes vad du hade behövt veta för att fylla på — som frågor, en per
   rad. Be inte om allt; ta de tre till fem som betyder mest för att förstå
   processen.
8. Finns flera Stories får de ligga under samma Epic eller Feature. Feature är
   alltid valfri. Alla parentId och targetRefs måste peka på id:n som finns i
   samma JSON.

Processbeskrivning:
<<< klistra in din text här >>>

Så ser resultatet ut

Ett bokningsflöde med två faser och ett valfritt förbättringslager: en Epic, en Feature och flera Stories med Acceptance Criteria.

{
  "schemaVersion": "0.2",
  "id": "scope_bokning_1",
  "name": "Bokning av säljbesök",
  "domain": {
    "nodes": [
      { "id": "n_forfragan", "data": { "kind": "form", "label": "Kund fyller i förfrågan",
        "phaseId": "ph_intag", "currentState": "WordPress" } },
      { "id": "n_match", "data": { "kind": "system", "label": "Matcha område",
        "phaseId": "ph_intag", "actor": "system" } },
      { "id": "n_tid", "data": { "kind": "decision", "label": "Finns tid i kalendern?",
        "phaseId": "ph_bokning" } },
      { "id": "n_crm", "data": { "kind": "process", "label": "Skapa aktivitet i CRM",
        "phaseId": "ph_bokning", "currentState": "Pipedrive" } },
      { "id": "n_ater", "data": { "kind": "email", "label": "Återkoppla senare",
        "phaseId": "ph_bokning", "gap": "Sker manuellt och glöms ibland bort" } },
      { "id": "n_bekraftelse", "data": { "kind": "email", "label": "Skicka bekräftelse" } }
    ],
    "edges": [
      { "id": "e_forfragan_match", "source": "n_forfragan", "target": "n_match",
        "data": { "connectionKind": "integration" } },
      { "id": "e_match_tid", "source": "n_match", "target": "n_tid",
        "data": { "connectionKind": "information" } },
      { "id": "e_tid_crm", "source": "n_tid", "target": "n_crm",
        "data": { "connectionKind": "handoff", "condition": "Ja" } },
      { "id": "e_tid_ater", "source": "n_tid", "target": "n_ater",
        "data": { "connectionKind": "handoff", "condition": "Nej" } },
      { "id": "e_crm_bekraftelse", "source": "n_crm", "target": "n_bekraftelse",
        "data": { "connectionKind": "integration" } }
    ],
    "phases": [
      { "id": "ph_intag", "label": "Intag", "order": 0,
        "owner": { "name": "Anna Lind", "role": "Marknad" } },
      { "id": "ph_bokning", "label": "Bokning", "order": 1,
        "owner": { "name": "Erik Sund", "role": "Säljchef" },
        "stakeholders": ["Innesälj", "Ekonomi"] }
    ],
    "improvements": [
      { "id": "imp_epic_bokning", "level": "epic",
        "title": "Öka antalet bokade kundmöten",
        "description": "Göra bokningsprocessen snabbare och mer tillförlitlig",
        "status": "planned", "targetRefs": ["ph_intag", "ph_bokning"] },
      { "id": "imp_feature_automatisk_bokning", "level": "feature",
        "title": "Automatisk mötesbokning", "parentId": "imp_epic_bokning",
        "status": "planned", "targetRefs": ["n_match", "n_tid", "n_crm"] },
      { "id": "imp_story_ratt_saljare", "level": "story",
        "title": "Kunden matchas med rätt säljare",
        "description": "Som potentiell kund vill jag kopplas till rätt säljare utifrån mitt område",
        "parentId": "imp_feature_automatisk_bokning", "status": "planned",
        "targetRefs": ["n_match"],
        "acceptanceCriteria": [
          { "id": "ac_omrade", "text": "Kundens område identifieras", "met": false },
          { "id": "ac_saljare", "text": "Rätt säljare väljs", "met": false }
        ] },
      { "id": "imp_story_ledig_tid", "level": "story",
        "title": "Kunden ser endast lediga tider",
        "parentId": "imp_feature_automatisk_bokning", "status": "planned",
        "targetRefs": ["n_tid"],
        "acceptanceCriteria": [
          { "id": "ac_lediga_tider", "text": "Endast tillgängliga tider visas", "met": false }
        ] },
      { "id": "imp_story_crm", "level": "story",
        "title": "Bokningen registreras i CRM",
        "parentId": "imp_feature_automatisk_bokning", "status": "planned",
        "targetRefs": ["n_crm"],
        "acceptanceCriteria": [
          { "id": "ac_crm", "text": "Aktiviteten skapas med kund, säljare och bokad tid", "met": false }
        ] }
    ]
  }
}

Formatet

Kartan lagras som ScopeFile v0.2 — ett öppet, versionerat format där semantiken (steg, roller, system, beslut) hålls skild från layouten. Det gör kartan till ett underlag som går att bygga vidare på, inte bara en bild.

  • Layout är valfri. Utelämnar du den räknar Mappify ut positionerna vid import.
  • Importen är förlåtande. Saknade fält fylls i med rimliga standardvärden, och du får se exakt vad som justerades innan kartan läggs till.
  • Förbättringar är ett separat lager. Epic, Feature och Stories kan kopplas till processens steg och faser utan att blandas ihop med själva processflödet. Feature är valfri.
  • Kontraktet är publikt. scopefile.schema.json är sanningskällan — validera mot den om du bygger något eget.

Har du redan en karta?

Då är det den andra prompten du vill ha — fyll i fält på kartan med AI. Den ritar ingen ny karta utan fyller i fälten på de steg som redan finns, ur en mejltråd eller ett mötesreferat. Strukturen rörs aldrig.

Vill du testa på er egen process?

Gratis i beta · inget kort · vi släpper in testkunder löpande