{"nodes":{"fy4ngidrwftqwxhcd19yrd714vnkj6w3":{"id":"fy4ngidrwftqwxhcd19yrd714vnkj6w3","type":"start","x":0,"y":0,"properties":{"title":"Automatic Multi Intent Serialization - Online Shop Example","excerpt":"This example shows how the flow derives multiple intents from a prompt and processes them cleanly one after the other.","author":"Wanderer","license":"CC BY 4.0","channel":"chat","category":"Context Reactivity","private":false,"post":"**Your user sends: \"Opening hours? Address? I want skincare products.\" Most chatbot builder picks one. Wanderer processes all three.**\n\nTry it yourself. Just type to the chat on this page: *\"I would like to buy a skin cream, please, and I have questions about my last order. And what are the opening hours?\"*\n\nWatch what happens. The bot doesn't panic. It doesn't pick the first intent and ignore the rest. It doesn't ask you to \"please repeat your other questions one at a time.\" It identifies all three requests, tells you it found them, and works through each one \u2014 sequentially, transparently, and completely.\n\nThis is **multi-intent serialization**, and it's one of the most practical things Wanderer can do.\n\n## The problem everyone knows\n\nThink about how people actually talk to chatbots. They don't send one clean, perfectly scoped request per message. They dump everything at once. It's natural. It's efficient. It's how you'd talk to a human.\n\n*\"What are your opening hours, where are you located, and do you carry organic skincare?\"*\n\nThat's three distinct intents packed into a single input. And here's what happens in most chatbot builder on the market: the system detects one intent \u2014 usually the first or the strongest match \u2014 and runs with it. The other two? Gone. Silently dropped. The user has to repeat themselves, which means frustration, which means abandonment.\n\nThis isn't a niche edge case. It happens constantly. Anyone who's ever used a chatbot has experienced it. Anyone who's ever built one has struggled with it. The standard workaround is to tell users to ask one thing at a time. That's not a solution. That's an admission of failure.\n\n## How Wanderer handles it: the full pipeline\n\nWanderer solves this with a structural approach, not a hack. Here's the actual architecture behind multi-intent serialization:\n\n### 1. Prompt Input Node \u2192 GPT Node: decomposition\n\nThe user's message enters through a **Prompt Input Node**. From there, it's sent to a **GPT Node**, which analyzes the raw input and breaks it down into structured intents \u2014 returned as JSON. This is where the intelligence lives: the GPT Node doesn't just classify the message into a single category. It identifies *every* intent present and outputs them in a structured format that the rest of the graph can work with.\n\nIt looks like this:\n\n```\n\"intent\": {\n    \"order\": true,\n    \"store\": false,\n    \"product\": true,\n}\n```\n\n### 2. GPT Node \u2192 Queue Node: orchestration\n\nThe structured JSON flows into a **Queue Node**. This is the orchestrator. The Queue Node doesn't execute anything itself \u2014 it organizes. Using **Reactive Graph Sequencing (RGS)**, it discovers which Task Nodes in the graph are contextually relevant based on the intents it received. The edges connecting the Queue Node to the Task Nodes determine which tasks get activated: if the GPT Node identified \"opening hours,\" \"skincare products,\" and \"order inquiry\" as intents, only the Task Nodes connected via matching edges get unlocked.\n\nThe order in which tasks are processed is determined by **edge strength** \u2014 the weight of the connection between the Queue Node and each Task Node. This gives you full visual control over task priority, right there in the editor.\n\n### 3. Task Nodes: sequential execution\n\nOnce the queue knows what to do and in what order, it begins working. It sets the first Task Node to `running = true`. That task's entire subflow executes \u2014 messages are sent, user input is collected, APIs are called, whatever the flow requires.\n\nEach Task Node is aware of its position in the sequence. It knows whether it's the first, second, or third task, and it knows the total task count. This allows the bot to adapt its messaging dynamically: different framing for the first task versus transitions into subsequent ones, and different behavior depending on whether there's one task or five.\n\n### 4. Done Nodes: completion signals\n\nHere's the critical piece. Further down each task's branch sits a **Done Node**. When a Done Node executes, it signals to the Queue Node that its parent task is complete. The queue then moves on to the next task and sets that one to `running = true`.\n\nThe beauty of this design is that **the Done Node determines when a task is finished \u2014 not the Queue Node, and not a timer.** This means it doesn't matter whether a task completes instantly (like sending store hours) or requires extended interaction (like asking for an order number, waiting for the user to type it, validating it, and forwarding it to support). The Done Node fires when it fires. The queue waits. No polling, no timeouts, no race conditions.\n\nThis is what makes the system genuinely sequential rather than just parallel with a wrapper. Each task gets the time and space it needs to fully resolve before the next one begins.\n\n## Context-aware messaging: every task knows where it stands\n\nBecause each Task Node receives metadata from the Queue \u2014 its position, the total count, what's been completed \u2014 the bot can shape its communication at every stage.\n\nLook at how this plays out in practice:\n\n**Three tasks:**\n\n* Bot: \"I found 3 tasks. Let's begin.\"\n* Bot: \"Regarding the question about the care products...\"\n* Bot: \"Let's take a look at your order now. What is the order number?\"\n* User: \"423345\"\n* Bot: \"Thank you! The order number is: 423345. Support will take care of it.\"\n* Bot: \"All 3 tasks done. Is there anything else I can do for you?\"\n\n**Two tasks:**\n* Bot: \"I found 2 tasks. Let's begin.\"\n* Bot: \"All 2 tasks done. Is there anything else I can do for you?\"\n\n\u2192 Handles opening hours \u2192 Handles skincare\n\n**One task:**\n* Bot: \"I found one task.\"\n\n\u2192 Handles it directly. No \"let's begin,\" no completion summary. The framing scales down because it doesn't need ceremony for a single request.\n\nThis isn't cosmetic. It's structural intelligence. The transitions between tasks (*\"Regarding the question about...\"*, *\"Let's take a look at your order now\"*) happen because each task knows it's not the first one in the queue and adjusts accordingly. All of this is configurable visually in the editor \u2014 you decide what the bot says before, between, and after tasks.\n\n## Before and after: the real difference\n\n**Without multi-intent handling:**\n\n* User: \"I'd like skincare products, I have a question about my last order, and what are the opening hours?\"\n* yBot: \"Our opening hours are Monday to Friday, 8 a.m. to 4 p.m.\"\n\n*(Skincare? Order question? Never happened.)*\n\n**With Wanderer's multi-intent serialization:**\n\n* User: \"I would like to buy a skin cream, please, and I have questions about my last order. And what are the opening hours?\"\n* Bot: \"I found 3 tasks. Let's begin.\"\n* Bot: \"Our address and opening hours: Garmisch-Partenkirchen, 82467, Germany. Monday to Friday, 8 a.m. to 4 p.m.\"\n* Bot: \"Regarding the question about the care products: Sure, I'll show you skincare products. Just follow this link: *Skin care products*\"\n* Bot: \"Let's take a look at your order now. What is the order number?\"\n* User: \"423345\"\n* Bot: \"Thank you! The order number is: 423345. Support will take care of it.\"\n* Bot: \"All 3 tasks done. Is there anything else I can do for you?\"\n\nNotice the third task. It didn't just fire off a canned response. It asked a follow-up question, waited for user input, processed it, and *then* the Done Node fired to complete the task. That's real sequential task execution with full conversational depth per task \u2014 not string concatenation.\n\n## Why this is hard \u2014 and why RGS makes it natural\n\nIn a traditional chatbot builder, conversation flow is linear. One input maps to one intent maps to one response path. The architecture doesn't have a concept of \"multiple things to do.\" You'd have to build a custom middleware layer to split inputs, manage a queue, track completion state per task, handle tasks that require user interaction mid-sequence, and reassemble everything into a coherent conversation.\n\nWanderer's underlying technology \u2014 **Reactive Graph Sequencing (RGS)** \u2014 makes this behavior architecturally natural. RGS continuously evaluates the state of the entire graph. When the Queue Node populates with tasks, the graph doesn't choke. It re-sequences. When a Done Node fires, the graph reacts \u2014 the queue advances, the next Task Node activates, and the conversation continues. There's no polling loop, no state machine you have to hand-code. The graph *is* the state machine, and RGS keeps it moving.\n\n## Why this matters for real businesses\n\nMulti-intent isn't an academic curiosity. It directly impacts metrics that businesses care about:\n\n- **Resolution rate goes up.** If the bot handles all three requests instead of one, fewer users need to repeat themselves or escalate to a human.\n- **User satisfaction improves.** People notice when a bot actually listens. They also notice when it doesn't.\n- **Conversation length drops.** Three requests resolved in one exchange instead of three separate back-and-forth cycles.\n- **Drop-off rate decreases.** Users who get ignored tend to leave. Users who feel heard tend to stay.\n- **Support ticket volume goes down.** When the bot can handle a multi-part question about orders, products, and store info in a single pass, that's one interaction instead of three \u2014 or one frustrated escalation.\n\nFor support bots, e-commerce assistants, intake forms, and FAQ systems, multi-intent handling isn't a nice-to-have. It's the difference between a bot that feels like a tool and a bot that feels like a wall.\n\n## Almost no one else does this\n\nLook across the chatbot builder landscape. Dialogflow, Botpress, ManyChat, Voiceflow, Landbot \u2014 pick your favorite. Try sending a multi-intent message. In the vast majority of cases, you'll get a single-intent response. Some platforms have partial workarounds, but none offer a clean, structural, visual solution for decomposing and sequentially processing multiple intents from a single input \u2014 let alone one where each task is context-aware, completion is driven by explicit Done Nodes, and the bot dynamically frames the entire conversation around the workload.\n\nThis is one of those problems that's so universal, so obvious, that it's almost invisible.\n\n## Try it yourself\n\nMulti-intent serialization isn't a plugin or a premium feature. It's just how Wanderer works.","slug":"Automatic-Multi-Intent-Serialization-Online-Shop-example"}},"n8246otsliylh6forn160l30ze9u6c6y":{"id":"n8246otsliylh6forn160l30ze9u6c6y","type":"prompt","x":223.35446834176125,"y":327.790660886855,"properties":{"placeholder":"Type your message"}},"jqz5w78itx7zaq8t64vl7efc2ajvh1oe":{"id":"jqz5w78itx7zaq8t64vl7efc2ajvh1oe","type":"message","x":1472.0106721196712,"y":1650.9914902168452,"properties":{"text":"{{#if (gt task.position 1)}}\nRegarding the question about the care products:\n{{\/if}}\n\nSure, I'll show you skincare products. Just follow this link: [Skin care products](https:\/\/example.com)","repeatOnReentry":true}},"fl59aochaz65xb2u43yg2f2ztovfpskh":{"id":"fl59aochaz65xb2u43yg2f2ztovfpskh","type":"message","x":496.48206726162863,"y":1777.0892235285876,"properties":{"text":"Our address and opening hours:","repeatOnReentry":true}},"xc9oo7vga62889gt19zw6qve1bdfgr8r":{"id":"xc9oo7vga62889gt19zw6qve1bdfgr8r","type":"message","x":-348.8354053350826,"y":1479.4483070927981,"properties":{"text":"What is the order number?","repeatOnReentry":true}},"qz0l6w3c6ug67ct82dkax4zbgivgxnd5":{"id":"qz0l6w3c6ug67ct82dkax4zbgivgxnd5","type":"message","x":-570.0835285228286,"y":2137.700391610783,"properties":{"text":"Thank you! The order number is: **{{value}}**","repeatOnReentry":true}},"1m4bl6ke2goqm59943ncepqtbv6aps3n":{"id":"1m4bl6ke2goqm59943ncepqtbv6aps3n","type":"message","x":488.6478032801973,"y":1979.1928433597304,"properties":{"text":"Garmisch-Partenkirchen\n82467 Garmisch-Partenkirchen\nGermany","repeatOnReentry":true}},"cgzmu0eopbylxzf1rlnt1is8toly7f1s":{"id":"cgzmu0eopbylxzf1rlnt1is8toly7f1s","type":"task","x":1015.7671831518883,"y":1396.6154828894673,"properties":{"repeatOnReentry":true}},"isr2ke737czigwse0eti2eczf406s2rd":{"id":"isr2ke737czigwse0eti2eczf406s2rd","type":"task","x":160.978658391776,"y":1264.3540823221674,"properties":{"repeatOnReentry":true}},"tr7w5wn05xex6cub02hwuxxybukcndzj":{"id":"tr7w5wn05xex6cub02hwuxxybukcndzj","type":"task","x":501.63226927607235,"y":1501.6413868761078,"properties":{"repeatOnReentry":true}},"dh9xb4omuwa4tb9z3dwhff3qpikp3239":{"id":"dh9xb4omuwa4tb9z3dwhff3qpikp3239","type":"message","x":-177.7810704870392,"y":1024.4418507644325,"properties":{"text":"{{#if (gt taskCount 1)}}\n  All **{{taskCount}} tasks** done\n{{else}}\n  Task done\n{{\/if}}\n","repeatOnReentry":true}},"bfqlcmohs1hwdxjm0qhbgvljmhqfwyfj":{"id":"bfqlcmohs1hwdxjm0qhbgvljmhqfwyfj","type":"chatgpt","x":207.1013185157867,"y":704.3305067728181,"properties":{"prompt":"Please identify a user's intent in the following text. Intents can be:\n\norder: The person has questions or a problem with their order\nstore: The person has questions about the store. For example, about the address or opening hours\nproducts: The person is looking for skincare products\nnone: None of the intents were identified\n\nPlease return the identified intents as a comma-separated list in the identified order. Or none if none were identified. Examples (one per line):\n\norder\nproducts, store\nstore, order\nstore, products, order\nnone\n\nUser input:\n{{value}}","repeatOnReentry":true,"model":"gpt-4o-mini","systemPrompt":"Set the following keys to true or false as JSON.\n\n- order: Questions about the order\n- store: Questions about the address, contact information, or opening hours\n- product: Questions about skincare products in the shop\n- cantHelp: Prompt not understood or none of the answers apply\n- cantHelpText: Specify the exact topic that was not understood as a string\n\nUse the following prompt as your source of information. Return only raw JSON without markdown for direct parsing.","userPrompt":"{{value}}","onReentry":"reset","onChange":"reset"}},"rl9ks8na5umhbkhu9gkm6044pxoo16jr":{"id":"rl9ks8na5umhbkhu9gkm6044pxoo16jr","type":"message","x":1087.003125726457,"y":768.489589442705,"properties":{"text":"Sorry. I can't help you with your topic **\"{{cantHelpText}}\"**.","repeatOnReentry":true}},"k81ijrqy858429nnumo8br5dmkge9gym":{"id":"k81ijrqy858429nnumo8br5dmkge9gym","type":"prompt","x":-490.3904739176782,"y":1730.8095190534787,"properties":{"placeholder":"Order number"}},"j3mmcgq1fj71s8dvu6djgj6gz8x85mgh":{"id":"j3mmcgq1fj71s8dvu6djgj6gz8x85mgh","type":"queue","x":508.773,"y":1161.5027715500821,"properties":[]},"3ttz9n1wen7zz8apca7sktyqlth1p4hv":{"id":"3ttz9n1wen7zz8apca7sktyqlth1p4hv","type":"done","x":-682.7029046636251,"y":2568.7352209609544,"properties":[]},"9s5l93gqwzdj94b1hk04l1s7jizic1ps":{"id":"9s5l93gqwzdj94b1hk04l1s7jizic1ps","type":"done","x":510.7028469212848,"y":2291.6699079810633,"properties":[]},"syyo9ic980qutsxbbmcqu31285w1bmmh":{"id":"syyo9ic980qutsxbbmcqu31285w1bmmh","type":"done","x":1791.2185005079584,"y":1973.4783737929877,"properties":[]},"dtfvrwtfqmtrilvr558mefi6io2e5qg2":{"id":"dtfvrwtfqmtrilvr558mefi6io2e5qg2","type":"message","x":-649.5030122070312,"y":2354.60890234375,"properties":{"text":"Support will take care of it.","repeatOnReentry":true}},"yq4su6h9m5oxt0c0xqhwkt7hc7v06oa8":{"id":"yq4su6h9m5oxt0c0xqhwkt7hc7v06oa8","type":"message","x":-170.702326259155,"y":830.9603696786588,"properties":{"text":"Is there anything else I can do for you?","repeatOnReentry":true}},"02tkoi3nxbkckprg3gsttc6unflcryod":{"id":"02tkoi3nxbkckprg3gsttc6unflcryod","type":"message","x":-682.9850244140625,"y":169.200951171875,"properties":{"text":"For example **you can ask**:  \"I would like to buy a skin cream, please, and I have questions about my last order. And what are the opening hours?\"\n\nOr: \"I need your opening hours and care products.\"\n\nOr: \"I need your address please\"","repeatOnReentry":true,"repeatOnChance":true}},"8n2arkptmrr5z7z88xlj0vjisgpnlnvz":{"id":"8n2arkptmrr5z7z88xlj0vjisgpnlnvz","type":"message","x":-157.0732563768641,"y":-241.85612198644554,"properties":{"text":"This example shows you how __automatic multi-intent serilization__ works.","repeatOnReentry":true,"repeatOnChance":true}},"s4b0ge7hcg474qjka5foufkhbjt2s6mr":{"id":"s4b0ge7hcg474qjka5foufkhbjt2s6mr","type":"message","x":-662.6160732421874,"y":-172.9519938964844,"properties":{"text":"Multi-intent means that a user expresses **several different requests** in a single input. These must be recognized and processed sequentially.","repeatOnReentry":true,"repeatOnChance":true}},"0wqromuw6o8l2f8oels7tzzhih1gs8tw":{"id":"0wqromuw6o8l2f8oels7tzzhih1gs8tw","type":"message","x":1076.1930196470353,"y":1066.5436540388762,"properties":{"text":"{{#if (gt taskCount 1)}}\n  I found **{{taskCount}} tasks**. Let's begin.\n{{else}}\n  I found one task\n{{\/if}}\n","repeatOnReentry":true,"repeatOnChance":true}},"pcg70bum4s5l1upy7w4vlcw80l0kbt8c":{"id":"pcg70bum4s5l1upy7w4vlcw80l0kbt8c","type":"message","x":-106.19184416743917,"y":1342.986297355654,"properties":{"text":"{{#if (gt task.position 1)}}\nLet's take a look at your order now.\n{{\/if}}\n{{#if (eq task.position 1)}}\nOf course I'll help you with your order.\n{{\/if}}","repeatOnReentry":true,"repeatOnChance":true}},"jflnwxv2ckyla36gcdaxzwzz2y94zge3":{"id":"jflnwxv2ckyla36gcdaxzwzz2y94zge3","type":"message","x":492.38088005378376,"y":2146.0157896494584,"properties":{"text":"Opening hours: Monday to Friday, 8 a.m. to 4 p.m.","repeatOnReentry":true,"repeatOnChance":true}},"fkmdolax95t99frl7mt4objorgsli96w":{"id":"fkmdolax95t99frl7mt4objorgsli96w","type":"task","x":783.2575964904972,"y":930.4725233039079,"properties":[]},"8kvcjt04wrker7r5d35rg2qg1be4d188":{"id":"8kvcjt04wrker7r5d35rg2qg1be4d188","type":"done","x":1343.6451923308312,"y":617.8469732884666,"properties":[]}},"edges":{"gdh9ntsyycc3adownel3eig78o1ksm1a":{"id":"gdh9ntsyycc3adownel3eig78o1ksm1a","type":"may","from":"fl59aochaz65xb2u43yg2f2ztovfpskh","to":"1m4bl6ke2goqm59943ncepqtbv6aps3n","properties":{"priority":4,"condition":"arrived"}},"7v2cxiyun1bz7c1ip0cse5kug5s0yspj":{"id":"7v2cxiyun1bz7c1ip0cse5kug5s0yspj","type":"may","from":"tr7w5wn05xex6cub02hwuxxybukcndzj","to":"fl59aochaz65xb2u43yg2f2ztovfpskh","properties":{"priority":4,"condition":"running"}},"sx76bskyckdvmr86ahx2ksat7pkynz6e":{"id":"sx76bskyckdvmr86ahx2ksat7pkynz6e","type":"may","from":"cgzmu0eopbylxzf1rlnt1is8toly7f1s","to":"jqz5w78itx7zaq8t64vl7efc2ajvh1oe","properties":{"priority":4,"condition":"running","as":"task"}},"9acaktyo45vsu9pjnpxkto5am337bvu4":{"id":"9acaktyo45vsu9pjnpxkto5am337bvu4","type":"may","from":"n8246otsliylh6forn160l30ze9u6c6y","to":"bfqlcmohs1hwdxjm0qhbgvljmhqfwyfj","properties":{"priority":4,"condition":"sent","push":"value"}},"822x85ij900r0wdedm17gdwzbirtrwx5":{"id":"822x85ij900r0wdedm17gdwzbirtrwx5","type":"may","from":"xc9oo7vga62889gt19zw6qve1bdfgr8r","to":"k81ijrqy858429nnumo8br5dmkge9gym","properties":{"priority":4,"condition":"arrived"}},"apjgcqzfj3ixohglqn84gm24p4f53t39":{"id":"apjgcqzfj3ixohglqn84gm24p4f53t39","type":"may","from":"k81ijrqy858429nnumo8br5dmkge9gym","to":"qz0l6w3c6ug67ct82dkax4zbgivgxnd5","properties":{"priority":4,"condition":"sent","push":"value"}},"e5o2p2gvs129ya1zbhesaym0v40wk8ex":{"id":"e5o2p2gvs129ya1zbhesaym0v40wk8ex","type":"may","from":"bfqlcmohs1hwdxjm0qhbgvljmhqfwyfj","to":"j3mmcgq1fj71s8dvu6djgj6gz8x85mgh","properties":{"priority":4,"condition":"done","push":"answer","as":"intent"}},"2m5m4j9wz5f54l2zkffygoto7ss7y5kk":{"id":"2m5m4j9wz5f54l2zkffygoto7ss7y5kk","type":"may","from":"j3mmcgq1fj71s8dvu6djgj6gz8x85mgh","to":"isr2ke737czigwse0eti2eczf406s2rd","properties":{"priority":5,"condition":"intent.order","as":""}},"gusmk5yc7gmnv5xkzpl1lnr9v0xsdjzn":{"id":"gusmk5yc7gmnv5xkzpl1lnr9v0xsdjzn","type":"may","from":"j3mmcgq1fj71s8dvu6djgj6gz8x85mgh","to":"tr7w5wn05xex6cub02hwuxxybukcndzj","properties":{"priority":8,"condition":"intent.store"}},"unufl01y8fuff8kos1yinih7k76h5139":{"id":"unufl01y8fuff8kos1yinih7k76h5139","type":"may","from":"jqz5w78itx7zaq8t64vl7efc2ajvh1oe","to":"syyo9ic980qutsxbbmcqu31285w1bmmh","properties":{"priority":4,"condition":"arrived"}},"ma7jd1ltcd70w0h59l5nad9god2x6ugi":{"id":"ma7jd1ltcd70w0h59l5nad9god2x6ugi","type":"may","from":"j3mmcgq1fj71s8dvu6djgj6gz8x85mgh","to":"dh9xb4omuwa4tb9z3dwhff3qpikp3239","properties":{"priority":4,"condition":"done","push":"taskCount"}},"ln89g3otvg8ud9cwdvi5egpua0yborv9":{"id":"ln89g3otvg8ud9cwdvi5egpua0yborv9","type":"may","from":"qz0l6w3c6ug67ct82dkax4zbgivgxnd5","to":"dtfvrwtfqmtrilvr558mefi6io2e5qg2","properties":{"priority":4,"condition":"arrived"}},"4tv430k0evt7zq656s1i7cja75dtz1am":{"id":"4tv430k0evt7zq656s1i7cja75dtz1am","type":"may","from":"dtfvrwtfqmtrilvr558mefi6io2e5qg2","to":"3ttz9n1wen7zz8apca7sktyqlth1p4hv","properties":{"priority":4,"condition":"arrived"}},"sny08ejmk909as6ug2i31ndpjl75w3ps":{"id":"sny08ejmk909as6ug2i31ndpjl75w3ps","type":"may","from":"dh9xb4omuwa4tb9z3dwhff3qpikp3239","to":"yq4su6h9m5oxt0c0xqhwkt7hc7v06oa8","properties":{"priority":4,"condition":"arrived"}},"135krue7hofxzpsoakgk5p02lemsqyie":{"id":"135krue7hofxzpsoakgk5p02lemsqyie","type":"call","from":"yq4su6h9m5oxt0c0xqhwkt7hc7v06oa8","to":"n8246otsliylh6forn160l30ze9u6c6y","properties":{"priority":4,"condition":"arrived","method":"reset"}},"dbwx9lek6ikgn4we6borhbrg48q1x3dj":{"id":"dbwx9lek6ikgn4we6borhbrg48q1x3dj","type":"may","from":"j3mmcgq1fj71s8dvu6djgj6gz8x85mgh","to":"cgzmu0eopbylxzf1rlnt1is8toly7f1s","properties":{"priority":6,"condition":"intent.product"}},"nylhe1bbtcqqwe8iuhewgs1ff8osq4aj":{"id":"nylhe1bbtcqqwe8iuhewgs1ff8osq4aj","type":"may","from":"fy4ngidrwftqwxhcd19yrd714vnkj6w3","to":"8n2arkptmrr5z7z88xlj0vjisgpnlnvz","properties":{"priority":4}},"hkuv9h5qbuquq6kiwm28sidnm80he5m7":{"id":"hkuv9h5qbuquq6kiwm28sidnm80he5m7","type":"may","from":"8n2arkptmrr5z7z88xlj0vjisgpnlnvz","to":"s4b0ge7hcg474qjka5foufkhbjt2s6mr","properties":{"priority":4,"condition":"arrived"}},"vc6gauhtl5xffsvt8peexhz5npanthlo":{"id":"vc6gauhtl5xffsvt8peexhz5npanthlo","type":"may","from":"s4b0ge7hcg474qjka5foufkhbjt2s6mr","to":"02tkoi3nxbkckprg3gsttc6unflcryod","properties":{"priority":4,"condition":"arrived"}},"q49kbmjqgyzfggq3hqyqi7oy86e2qnyf":{"id":"q49kbmjqgyzfggq3hqyqi7oy86e2qnyf","type":"may","from":"02tkoi3nxbkckprg3gsttc6unflcryod","to":"n8246otsliylh6forn160l30ze9u6c6y","properties":{"priority":4,"condition":"arrived"}},"8ggks0110kimopb3cvxosy5kbpo3pk1e":{"id":"8ggks0110kimopb3cvxosy5kbpo3pk1e","type":"may","from":"j3mmcgq1fj71s8dvu6djgj6gz8x85mgh","to":"0wqromuw6o8l2f8oels7tzzhih1gs8tw","properties":{"priority":12,"condition":"taskCount and done == false","push":"taskCount"}},"qtsps92gc3trsdfbveahcf5xa1o5gjfc":{"id":"qtsps92gc3trsdfbveahcf5xa1o5gjfc","type":"may","from":"isr2ke737czigwse0eti2eczf406s2rd","to":"pcg70bum4s5l1upy7w4vlcw80l0kbt8c","properties":{"priority":4,"condition":"running","as":"task"}},"zuj6msoyu97uimkibkxn9z1tvbz32kb0":{"id":"zuj6msoyu97uimkibkxn9z1tvbz32kb0","type":"may","from":"pcg70bum4s5l1upy7w4vlcw80l0kbt8c","to":"xc9oo7vga62889gt19zw6qve1bdfgr8r","properties":{"priority":4,"condition":"arrived"}},"hzexyrw3dfj32zwusok31rsu7ceamiju":{"id":"hzexyrw3dfj32zwusok31rsu7ceamiju","type":"may","from":"1m4bl6ke2goqm59943ncepqtbv6aps3n","to":"jflnwxv2ckyla36gcdaxzwzz2y94zge3","properties":{"priority":4,"condition":"arrived"}},"qctu3w4yg1jbpofcfrgzk3xr5agxsrv3":{"id":"qctu3w4yg1jbpofcfrgzk3xr5agxsrv3","type":"may","from":"jflnwxv2ckyla36gcdaxzwzz2y94zge3","to":"9s5l93gqwzdj94b1hk04l1s7jizic1ps","properties":{"priority":4,"condition":"arrived"}},"f7nywxm03mjtbyax9kss641r9i0egsfe":{"id":"f7nywxm03mjtbyax9kss641r9i0egsfe","type":"may","from":"j3mmcgq1fj71s8dvu6djgj6gz8x85mgh","to":"fkmdolax95t99frl7mt4objorgsli96w","properties":{"priority":4,"condition":"intent.cantHelp","push":"intent.cantHelpText","as":"cantHelpText"}},"s0k4nfhusyb64lro1g9jqp39r4c1tzya":{"id":"s0k4nfhusyb64lro1g9jqp39r4c1tzya","type":"may","from":"fkmdolax95t99frl7mt4objorgsli96w","to":"rl9ks8na5umhbkhu9gkm6044pxoo16jr","properties":{"priority":4,"condition":"running","push":"cantHelpText"}},"fd6k2rmqrmqlqdq6ii6nn8iuja0yh1dt":{"id":"fd6k2rmqrmqlqdq6ii6nn8iuja0yh1dt","type":"may","from":"rl9ks8na5umhbkhu9gkm6044pxoo16jr","to":"8kvcjt04wrker7r5d35rg2qg1be4d188","properties":{"priority":4,"condition":"arrived"}}}}