{"nodes":{"0w8kl8g0ykzwi8fkj5v87vkrzb3q734m":{"type":"start","x":0,"y":0,"properties":{"title":"2 Understanding flow edges (may, must, not)","excerpt":"","author":"GraVersal","license":"CC BY 4.0","channel":"chat","category":"Tutorial - Basics","post":"## Flow Edges in GraVersal: How Flows Move from Node to Node\n\n**Edges** connect nodes and shape the actual **flow**. In GraVersal, edges are **directional**, they define what can happen first, and what can happen next.\n\n### The three flow edge types\n\nGraVersal uses three flow edge types to control execution:\n\n- **May-Edges**\n- **Must-Edges**\n- **Not-Edges**\n\n### May-Edges: “This could happen next”\n\nA **May-Edge** is the most common connection. It simply means the next node **could** be executed if the flow reaches it through that edge.\n\nImportant detail: for the **target node**, it doesn’t matter *which* May-Edge activated it. Once the node is reached, it runs.\n\n### Must-Edges: “All conditions must be met”\n\nA **Must-Edge** is stricter: it **must be traversed** to activate the destination node. If there are multiple Must-Edges pointing to the same destination, **every single one** has to be satisfied before the node can launch.\n\nThink of it like a checklist. Only when all required “yes” answers (or required steps) have happened does the flow unlock the next node.\n\n### Not-Edges: “This blocks the destination”\n\nA **Not-Edge** does the opposite of enabling: it **blocks** a destination node as soon as it’s traversed.\n\nThat makes Not-Edges useful for ruling out paths e.g., when a certain answer should prevent a specific suggestion or outcome from appearing.\n\nWith these three flow edge types, you can build flows that are flexible (May), strict (Must), and guarded (Not).","slug":""}},"1gt1u2th6xp440onfnwg8x6abig82ff2":{"type":"message","x":-177.32395556749282,"y":-200.99500377780487,"properties":{"text":"Edges connect nodes to each other and thus form the flow.","repeatOnReentry":true}},"7lmonmjqso58ua8d846obpsln9z2np9o":{"type":"message","x":-354.37466792593494,"y":-51.07223871208234,"properties":{"text":"The edges in GraVersal are directional. This means they have a direction and thus determine what happens first and what happens next.","repeatOnReentry":true}},"1pwez1w2lot5vkmsq07l1q4u6tyg3ih4":{"type":"message","x":-107.41597175745738,"y":208.75370858063727,"properties":{"text":"There are three different types of edges that control the flow:\n\n* May-Edges\n* Must-Edges\n* Not-Edges\n","repeatOnReentry":true}},"czstznjbelhv3sgzpyshfdjanabokoqu":{"type":"question","x":-49.66855982950722,"y":384.74470147780255,"properties":{"text":"Which type would you like to learn more about?","repeatOnReentry":true,"reviewable":true}},"cch32b13h1822ft81qcewic6iyqve7iz":{"type":"suggestion","x":-246.19470334613447,"y":454.0168113693855,"properties":{"value":"","label":"May-Edges"}},"ws01oju0wz6nwsh0e0dg80jw3jfj3upd":{"type":"suggestion","x":-19.449992689096646,"y":558.8325457868592,"properties":{"value":"","label":"Must-Edges"}},"8g8wvdjo24ornirjckn4sz9wezccqzd9":{"type":"suggestion","x":230.99741913515538,"y":442.5386683934116,"properties":{"value":"","label":"Not-Edges"}},"khdbg8oo0c23s5pulqggc2jtwwvlqwu1":{"type":"message","x":-925.7784385865518,"y":627.1635128208133,"properties":{"text":"This type of edge is probably the most common. Simply put, a may-edge indicates that the next node COULD be executed if it is reached via this edge.","repeatOnReentry":true}},"9a33sugkxshi71e45zgo88hm58kkkcli":{"type":"conclusion","x":-652.1952444529229,"y":460.12477168208466,"properties":{"text":"This conclusion forms a parallel path"}},"1hd5phbmjeyi8pgzuxwcmemyitkp73o4":{"type":"conclusion","x":-577.83949939741,"y":634.9211284430327,"properties":{"text":"This conclusion forms a parallel path"}},"plrdsaxrzvy6m3jtknbp6xfva8r6y7v4":{"type":"message","x":-1120.9968962271648,"y":402.8390071947584,"properties":{"text":"For the target node, it doesn't matter which May edge ultimately activated it. It will be executed when it is reached.","repeatOnReentry":true}},"r7aegyspv1abd6w857p5kjgrux1rvkrj":{"type":"conclusion","x":-705.3577642905458,"y":218.856,"properties":{"text":""}},"yfnxbc592jpf98h5llaj5adhtk1ji0u1":{"type":"message","x":23.48331777616258,"y":695.115075742918,"properties":{"text":"The special thing about a must edge is that it must be crossed to activate the destination node.","repeatOnReentry":true}},"2btr3qo91lnkwvfkvyp2aa3buxv4grxh":{"type":"message","x":37.29160911072532,"y":1068.7720378042427,"properties":{"text":"You will be asked two questions below. Answer both with \"yes\" to reach the destination.","repeatOnReentry":true}},"3qd64zfeppjlv0bvjrsefb8kw7yhayof":{"type":"question","x":-266.8913679007744,"y":1389.2000229851496,"properties":{"text":"Do you like GraVersal?","repeatOnReentry":true,"reviewable":true}},"ynb4r8jd4b2h130vndxogwatx5fvi31z":{"type":"question","x":292.2337478836738,"y":1279.2961356201126,"properties":{"text":"Do you really like GraVersal?","repeatOnReentry":true,"reviewable":true}},"8y3195ayoteatrsaq49g9vfp8gq8idkl":{"type":"suggestion","x":-71.6002135899919,"y":1534.5680623381895,"properties":{"value":"","label":"yes"}},"fyzeo1bwglvicwfxnf2it2bfrg0ema35":{"type":"suggestion","x":-440.70722914538504,"y":1230.019362572347,"properties":{"value":"","label":"no"}},"57pfpbn06tput7nrr8p12enj05vp7d4p":{"type":"suggestion","x":520.0688280267489,"y":1277.4227351689615,"properties":{"value":"","label":"no"}},"4bw3sw20solki9t42dk6k1qjh09w4rvg":{"type":"suggestion","x":180.91302640548406,"y":1515.5321924413095,"properties":{"value":"","label":"yes"}},"lv6sxlvdbvn9i2us6bh7slx2yjfc88gd":{"type":"message","x":96.12926984140155,"y":1884.2929246137653,"properties":{"text":"Congratulations! As you can see, every must-edge must be activated to launch the target node.","repeatOnReentry":true}},"lic4hc3rfzvzoi60zumgsbuwlgllmkbs":{"type":"conclusion","x":-1204.6668799942615,"y":1303.3128663883429,"properties":{"text":""}},"90npt2fribeq5kj926t5e0tqn5w7opyo":{"type":"message","x":512.3673771245957,"y":973.6507214057447,"properties":{"text":":-(","repeatOnReentry":true}},"rs7t5t5lafmn9dvk0i7amq938b7jqcns":{"type":"message","x":-273.8105207455231,"y":979.7526884757121,"properties":{"text":":-(","repeatOnReentry":true}},"deieg8oechtj0bvu1w5nqokkd3eon041":{"type":"message","x":522.456545630863,"y":486.3426111070654,"properties":{"text":"A NOT edge blocks a destination node as soon as it is traversed.\n","repeatOnReentry":true}},"upt2t3kjmiaplqal9mgyvovvn5kqsqgr":{"type":"message","x":774.5949238593843,"y":565.3143704004341,"properties":{"text":"Look at the possible answers to the following question. I'll unblock some suggestions after 15 seconds, revealing even more possible answers.","repeatOnReentry":true}},"91zoxnw8khtnc73hqnhg2tttbjakhjym":{"type":"conclusion","x":998.5738129332858,"y":632.8873843197275,"properties":{"text":"lets start"}},"eu72yzjw1fjxrfoqpl8mo9xfqq72wn60":{"type":"question","x":1173.5522503154984,"y":381.45374553136236,"properties":{"text":"What is your favorite animal?\n","repeatOnReentry":true,"reviewable":true}},"5z6zjl2roaxva8vhf76knnfhwt0uyvaa":{"type":"suggestion","x":1338.1013097426978,"y":234.5549770508025,"properties":{"value":"","label":"cat"}},"kctzo0q7s5cvvuqg0fgoqjlwujtwxsam":{"type":"suggestion","x":1506.0749342333997,"y":342.06448686582485,"properties":{"value":"","label":"dog"}},"mm0zqv3qbnfwg2oe4j6l4s7mlc0o21s2":{"type":"suggestion","x":1250.6178023031132,"y":527.9148279001628,"properties":{"value":"","label":"monkey"}},"0rf41lrgtys90xc154wqp8te726iu399":{"type":"suggestion","x":1393.9085202842116,"y":463.35759682550105,"properties":{"value":"","label":"penguin"}},"y7zu4f3igy0w84cnqa5vkx8b8vf9unod":{"type":"timer","x":1244.2152627944402,"y":957.9147580950042,"properties":{"seconds":"15","repeatOnReentry":true}},"tv79va2c1u1h9a1omppulsp0aq5mpq4l":{"type":"message","x":1548.3772717830634,"y":903.8675657741363,"properties":{"text":"looks like you need more suggestions","repeatOnReentry":true}},"sqg7ncaulgjuquou454tyrjat5rjnmri":{"type":"conclusion","x":1411.150237320089,"y":753.1970386147334,"properties":{"text":""}},"6ylgnnpsvwateadli7x9fwifky70skqj":{"type":"conclusion","x":1147.4735272474516,"y":763.3809056764021,"properties":{"text":""}},"p078gef7pcetm1y3peelh21aihh1lz3b":{"type":"comment","x":1511.8796314184137,"y":706.2598548174136,"properties":{"text":"Yes :-) We're using a Not Edge here to block the node that would trigger other Not Edges. This is just an example. Actually, you could have built this more simply ;-)"}},"8y9alwcpndqd3y6f6ktmadeoyj4yybm5":{"type":"message","x":777.5446310841594,"y":173.57110733873242,"properties":{"text":"This is a great animal","repeatOnReentry":true}},"m06l7zlu9ubf686r5fsh5xfmck759ga3":{"type":"jump","x":118.3318034683557,"y":214.84125608193017,"properties":{"label":"Back to tutorial start","flow":"https://platform.graversal.io/flows/xnggg7ykv5sppva649cd73r6zh2zfedg"}}},"edges":{"uxdd80yhoicmbba4hdd9rreayurajojj":{"type":"may","from":"0w8kl8g0ykzwi8fkj5v87vkrzb3q734m","to":"1gt1u2th6xp440onfnwg8x6abig82ff2","properties":{"priority":4}},"e8qoysyqj4m6uw4opszeci71yqyac8k5":{"type":"may","from":"1gt1u2th6xp440onfnwg8x6abig82ff2","to":"7lmonmjqso58ua8d846obpsln9z2np9o","properties":{"priority":4,"condition":"arrived"}},"q8ezurnghb2tcbk9kfqor02lmsfn71c3":{"type":"may","from":"7lmonmjqso58ua8d846obpsln9z2np9o","to":"1pwez1w2lot5vkmsq07l1q4u6tyg3ih4","properties":{"priority":4,"condition":"arrived"}},"x0lvglet08mkpqsiryie3mbc2fqs18uo":{"type":"may","from":"1pwez1w2lot5vkmsq07l1q4u6tyg3ih4","to":"czstznjbelhv3sgzpyshfdjanabokoqu","properties":{"priority":6,"condition":"arrived"}},"s4ni7lz35xs3ynd7oqq60svr14hwc1c6":{"type":"may","from":"czstznjbelhv3sgzpyshfdjanabokoqu","to":"cch32b13h1822ft81qcewic6iyqve7iz","properties":{"priority":6,"condition":""}},"o75belfvhsq2vy1qpby48d2sa60cvfhs":{"type":"may","from":"czstznjbelhv3sgzpyshfdjanabokoqu","to":"ws01oju0wz6nwsh0e0dg80jw3jfj3upd","properties":{"priority":5,"condition":""}},"yhc6y1zjndtjltov2hz4zcbz4lf3bfcg":{"type":"may","from":"czstznjbelhv3sgzpyshfdjanabokoqu","to":"8g8wvdjo24ornirjckn4sz9wezccqzd9","properties":{"priority":4,"condition":""}},"y9x7y90f73vfrljmv5dw7alrp09ie0e2":{"type":"may","from":"cch32b13h1822ft81qcewic6iyqve7iz","to":"9a33sugkxshi71e45zgo88hm58kkkcli","properties":{"priority":4,"condition":"selected"}},"e618s2ugf3p6vww7i7eubfv63ejooek1":{"type":"may","from":"cch32b13h1822ft81qcewic6iyqve7iz","to":"1hd5phbmjeyi8pgzuxwcmemyitkp73o4","properties":{"priority":4,"condition":"selected"}},"z8jgdowjrparmgogpl4v4k1b9ku7x8wb":{"type":"may","from":"9a33sugkxshi71e45zgo88hm58kkkcli","to":"khdbg8oo0c23s5pulqggc2jtwwvlqwu1","properties":{"priority":4}},"sft9j9bk8xpwrqcvy9yinban43n4ov6j":{"type":"may","from":"1hd5phbmjeyi8pgzuxwcmemyitkp73o4","to":"khdbg8oo0c23s5pulqggc2jtwwvlqwu1","properties":{"priority":4}},"qnesx0nzxxh5esbiuyfx7usohqb0ph33":{"type":"may","from":"khdbg8oo0c23s5pulqggc2jtwwvlqwu1","to":"plrdsaxrzvy6m3jtknbp6xfva8r6y7v4","properties":{"priority":4,"condition":"arrived"}},"43qbny4u6p3hhh2uq9nleu1xsz0a4lks":{"type":"may","from":"plrdsaxrzvy6m3jtknbp6xfva8r6y7v4","to":"r7aegyspv1abd6w857p5kjgrux1rvkrj","properties":{"priority":4,"condition":"arrived"}},"kdzxkhsipp9j01tywysq3wd8aqir2ozj":{"type":"call","from":"r7aegyspv1abd6w857p5kjgrux1rvkrj","to":"czstznjbelhv3sgzpyshfdjanabokoqu","properties":{"priority":4,"method":"reset"}},"sdjphprnlh0fbjwok4lt6flqtberk1lx":{"type":"may","from":"ws01oju0wz6nwsh0e0dg80jw3jfj3upd","to":"yfnxbc592jpf98h5llaj5adhtk1ji0u1","properties":{"priority":4,"condition":"selected"}},"jiqef5pdb62p4tj672imgnbru4xnzadg":{"type":"may","from":"yfnxbc592jpf98h5llaj5adhtk1ji0u1","to":"2btr3qo91lnkwvfkvyp2aa3buxv4grxh","properties":{"priority":4,"condition":"arrived"}},"jap47xl95qrioe859ffqn78lnfcshg8n":{"type":"may","from":"2btr3qo91lnkwvfkvyp2aa3buxv4grxh","to":"3qd64zfeppjlv0bvjrsefb8kw7yhayof","properties":{"priority":6,"condition":"sent"}},"oikp5m0ofwaw38muf268evlb5fkcsu6j":{"type":"may","from":"2btr3qo91lnkwvfkvyp2aa3buxv4grxh","to":"ynb4r8jd4b2h130vndxogwatx5fvi31z","properties":{"priority":4,"condition":"sent"}},"mrlheecn1p5hmpqdldk18y3l6wrimfel":{"type":"may","from":"3qd64zfeppjlv0bvjrsefb8kw7yhayof","to":"8y3195ayoteatrsaq49g9vfp8gq8idkl","properties":{"priority":4,"condition":""}},"sowkg63vbg69m01i7799y90fxn4eru6j":{"type":"may","from":"3qd64zfeppjlv0bvjrsefb8kw7yhayof","to":"fyzeo1bwglvicwfxnf2it2bfrg0ema35","properties":{"priority":4,"condition":""}},"97rhggho1lvsx07u98xbmty77p9y5igp":{"type":"may","from":"ynb4r8jd4b2h130vndxogwatx5fvi31z","to":"57pfpbn06tput7nrr8p12enj05vp7d4p","properties":{"priority":4,"condition":""}},"9tr9j7u169vscju7yytlcttukgm1pp4c":{"type":"may","from":"ynb4r8jd4b2h130vndxogwatx5fvi31z","to":"4bw3sw20solki9t42dk6k1qjh09w4rvg","properties":{"priority":4,"condition":""}},"pylfobygt7rkk3w3mjz7q80to5xncx7l":{"type":"must","from":"4bw3sw20solki9t42dk6k1qjh09w4rvg","to":"lv6sxlvdbvn9i2us6bh7slx2yjfc88gd","properties":{"priority":4,"condition":"selected"}},"wv5uepbztqqmunl7np3b6cmbbhg2v5io":{"type":"must","from":"8y3195ayoteatrsaq49g9vfp8gq8idkl","to":"lv6sxlvdbvn9i2us6bh7slx2yjfc88gd","properties":{"priority":4,"condition":"selected"}},"sgfbdqmdfxlzlxlpj4hwekt6ju5ozu22":{"type":"may","from":"lv6sxlvdbvn9i2us6bh7slx2yjfc88gd","to":"lic4hc3rfzvzoi60zumgsbuwlgllmkbs","properties":{"priority":4,"condition":"sent"}},"jl312xw29g6nijtvfcklou6nmtv6yw1m":{"type":"call","from":"lic4hc3rfzvzoi60zumgsbuwlgllmkbs","to":"czstznjbelhv3sgzpyshfdjanabokoqu","properties":{"priority":4,"method":"reset"}},"ym7i3yrfbqq57i0ncx4p0st1s7w0emii":{"type":"may","from":"57pfpbn06tput7nrr8p12enj05vp7d4p","to":"90npt2fribeq5kj926t5e0tqn5w7opyo","properties":{"priority":4,"condition":"selected"}},"ddwmqkvfpklzb5ogzfvmx7zcm7iagpd8":{"type":"call","from":"90npt2fribeq5kj926t5e0tqn5w7opyo","to":"czstznjbelhv3sgzpyshfdjanabokoqu","properties":{"priority":4,"condition":"arrived","method":"reset"}},"pfyl8nwnoogfkm1zqe7jhffwl1clwdm7":{"type":"may","from":"fyzeo1bwglvicwfxnf2it2bfrg0ema35","to":"rs7t5t5lafmn9dvk0i7amq938b7jqcns","properties":{"priority":4,"condition":"selected"}},"h5spa9gdc7dfw2f5sl736vr82y1uk866":{"type":"call","from":"rs7t5t5lafmn9dvk0i7amq938b7jqcns","to":"czstznjbelhv3sgzpyshfdjanabokoqu","properties":{"priority":4,"condition":"arrived","method":"reset"}},"hrza6ld60t2twak1y0z3sjy7wt8y8jzg":{"type":"may","from":"8g8wvdjo24ornirjckn4sz9wezccqzd9","to":"deieg8oechtj0bvu1w5nqokkd3eon041","properties":{"priority":4,"condition":"selected"}},"pqwox6y0tfyp9r02n3a6ftowwiqbaxrx":{"type":"may","from":"deieg8oechtj0bvu1w5nqokkd3eon041","to":"upt2t3kjmiaplqal9mgyvovvn5kqsqgr","properties":{"priority":4,"condition":"arrived"}},"20qz4qli7h93zq7mo16xq6knsvn1wtxj":{"type":"may","from":"upt2t3kjmiaplqal9mgyvovvn5kqsqgr","to":"91zoxnw8khtnc73hqnhg2tttbjakhjym","properties":{"priority":4,"condition":"arrived"}},"dqqti2upemprr50uxqz1qjp4b0zant91":{"type":"may","from":"91zoxnw8khtnc73hqnhg2tttbjakhjym","to":"eu72yzjw1fjxrfoqpl8mo9xfqq72wn60","properties":{"priority":4}},"0ydnzm2hvy6h3j7ey9ildeao37xatelk":{"type":"may","from":"eu72yzjw1fjxrfoqpl8mo9xfqq72wn60","to":"5z6zjl2roaxva8vhf76knnfhwt0uyvaa","properties":{"priority":4,"condition":""}},"r6x9dv349kf5tnk7lrulib30sk4stqal":{"type":"may","from":"eu72yzjw1fjxrfoqpl8mo9xfqq72wn60","to":"kctzo0q7s5cvvuqg0fgoqjlwujtwxsam","properties":{"priority":4,"condition":""}},"807pfr7niqfsmpj8xdvkb13vab5gx5hy":{"type":"may","from":"eu72yzjw1fjxrfoqpl8mo9xfqq72wn60","to":"mm0zqv3qbnfwg2oe4j6l4s7mlc0o21s2","properties":{"priority":4,"condition":""}},"a8nvstuuc6zeygxzy11u3nciukbao8du":{"type":"may","from":"eu72yzjw1fjxrfoqpl8mo9xfqq72wn60","to":"0rf41lrgtys90xc154wqp8te726iu399","properties":{"priority":4,"condition":""}},"osqtg7adasib3xp77tf5i5akcqpecnep":{"type":"may","from":"y7zu4f3igy0w84cnqa5vkx8b8vf9unod","to":"tv79va2c1u1h9a1omppulsp0aq5mpq4l","properties":{"priority":4,"condition":"elapsed"}},"lesqqym3so9e4cvm1ym4eeqy1uogonf5":{"type":"not","from":"sqg7ncaulgjuquou454tyrjat5rjnmri","to":"mm0zqv3qbnfwg2oe4j6l4s7mlc0o21s2","properties":{"priority":4}},"rxco5qewwggtf8mkvsr5gri78ims4dol":{"type":"not","from":"sqg7ncaulgjuquou454tyrjat5rjnmri","to":"0rf41lrgtys90xc154wqp8te726iu399","properties":{"priority":4}},"dr9qsqwse6adcncuvkew9awvdthtp3rg":{"type":"may","from":"91zoxnw8khtnc73hqnhg2tttbjakhjym","to":"6ylgnnpsvwateadli7x9fwifky70skqj","properties":{"priority":4}},"0xo95kbygvd70gtuf8u68omtz61gls9c":{"type":"may","from":"6ylgnnpsvwateadli7x9fwifky70skqj","to":"sqg7ncaulgjuquou454tyrjat5rjnmri","properties":{"priority":5}},"k3mbqbjta2cdji5e5n1auq1eth22pqfa":{"type":"may","from":"6ylgnnpsvwateadli7x9fwifky70skqj","to":"y7zu4f3igy0w84cnqa5vkx8b8vf9unod","properties":{"priority":7}},"1xa9ktsb9me6qgv6fmq5nsa5ijlwxp9t":{"type":"not","from":"tv79va2c1u1h9a1omppulsp0aq5mpq4l","to":"sqg7ncaulgjuquou454tyrjat5rjnmri","properties":{"priority":4,"condition":"arrived"}},"ksp7sl7pa7qmfo3qwbtmd1c9iym3cm32":{"type":"may","from":"eu72yzjw1fjxrfoqpl8mo9xfqq72wn60","to":"8y9alwcpndqd3y6f6ktmadeoyj4yybm5","properties":{"priority":4,"condition":"answered"}},"81ckbatcdqowf4ofa3kvkgv6q7lqtvu3":{"type":"call","from":"8y9alwcpndqd3y6f6ktmadeoyj4yybm5","to":"czstznjbelhv3sgzpyshfdjanabokoqu","properties":{"priority":4,"condition":"arrived","method":"reset"}},"cw73lvalpn03g6hhj6xas9yuy1u2akj9":{"type":"may","from":"1pwez1w2lot5vkmsq07l1q4u6tyg3ih4","to":"m06l7zlu9ubf686r5fsh5xfmck759ga3","properties":{"priority":4,"condition":"arrived"}}}}