[{"id":"0axzkgt6uu2cp619h42k3xanqr5sujxh","title":"Branches","excerpt":"A branch structure is like the branches of a tree. They branch out further and further.\n","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Patterns","channel":"builder"},{"id":"0w8kl8g0ykzwi8fkj5v87vkrzb3q734m","title":"2 Understanding flow edges (may, must, not)","excerpt":"","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"## Flow Edges in Wanderer: How Flows Move from Node to Node\n\n**Edges** connect nodes and shape the actual **flow**. In Wanderer, edges are **directional**, they define what can happen first, and what can happen next.\n\n### The three flow edge types\n\nWanderer uses three flow edge types to control execution:\n\n- **May-Edges**\n- **Must-Edges**\n- **Not-Edges**\n\n### May-Edges: \u201cThis could happen next\u201d\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\u2019t matter *which* May-Edge activated it. Once the node is reached, it runs.\n\n### Must-Edges: \u201cAll conditions must be met\u201d\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 \u201cyes\u201d answers (or required steps) have happened does the flow unlock the next node.\n\n### Not-Edges: \u201cThis blocks the destination\u201d\n\nA **Not-Edge** does the opposite of enabling: it **blocks** a destination node as soon as it\u2019s 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).","category":"Tutorial - Basics","channel":"chat"},{"id":"1crgp4dxfail80av1ckxvu1x8tm89svj","title":"Start node","excerpt":"The start node is your central entry point into every flow.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Nodes","channel":"builder"},{"id":"1gl77xe5fw2ug2eeeluzuenv51fcztxp","title":"Message node","excerpt":"The message node allows the flow to send messages to the chat.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"message-node","post":"## The Message Node: Sending Chat Messages from Your Flow\n\nThe **Message Node** lets your flow **send messages directly to the chat** as soon as the node is reached.\n\n### Chain messages easily\n\nYou can **chain multiple Message Nodes** to create a smooth sequence e.g., a greeting, some context, and the next instruction.\n\n### Use the `arrived` state for branching\n\nIn your edges, you can use the **`arrived`** state to detect when a message **has arrived**. This is useful if you want the flow to continue only after delivery is confirmed.\n\n### Send multiple messages at once\n\nIf you want, you can also send **multiple messages in one Message Node**, for example:","category":"Nodes","channel":"chat"},{"id":"20l4vo9at74nsveaxlzgauppccjejb2x","title":"Logical XOR gate","excerpt":"This flow demonstrates how a logical XOR gate works.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"School and education","channel":"chat"},{"id":"2egvh2tdgz8c2f2pyojv6ribbwns1lm6","title":"Mail node","excerpt":"With the Mail node, you can easily send emails from your flow.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Nodes","channel":"chat"},{"id":"30j2p7ssblc35u5fcea95y6byke3983p","title":"Contains node","excerpt":"The contains node checks whether a specific word is present in an input.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Nodes","channel":"chat"},{"id":"3p0golcbd8zwsdi64da34tsl5mpta0mb","title":"Select your favorite animal","excerpt":"This example generates a button list. You can always revisit the selection and correct it.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Examples","channel":"chat"},{"id":"43rwriwvt82w57wckd07fcmfzjnumln4","title":"Stress Test direkt im Browser - Perceived Stress Scale (PSS-10) - German \/ Deutsch","excerpt":"Finde in nur 2-3 Minuten heraus, wie gestresst du wirklich bist. Dieser kostenlose Selbsttest basiert auf der wissenschaftlich validierten Perceived Stress Scale (PSS-10) und misst dein subjektiv wahrgenommenes Stresslevel der letzten 30 Tage.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"Stress-Test-direkt-im-Browser-Perceived-Stress-Scale-PSS-10-German-Deutsch","post":"## Stress-Selbsttest: Wie gestresst bist du wirklich?\n\nF\u00fchlst du dich manchmal \u00fcberfordert, nerv\u00f6s oder hast das Gef\u00fchl, die Kontrolle zu verlieren? Mit diesem **kostenlosen Stress-Selbsttest** kannst du in nur 2-3 Minuten herausfinden, wie hoch dein aktuelles Stresslevel ist.\n\n---\n\n## Was misst dieser Test?\n\nDer Test basiert auf der **Perceived Stress Scale (PSS-10)**, einem der weltweit am h\u00e4ufigsten verwendeten wissenschaftlichen Instrumente zur Messung von subjektiv wahrgenommenem Stress. Entwickelt von Cohen, Kamarck und Mermelstein, wird die PSS-10 in **klinischer Forschung, Arbeitspsychologie und Gesundheitsf\u00f6rderung** eingesetzt.\n\nDie PSS-10 erfasst nicht einzelne Stressereignisse, sondern **wie du pers\u00f6nlich dein Leben in den letzten 30 Tagen erlebt hast** \u2013 ob unvorhersehbar, unkontrollierbar oder \u00fcberlastend. Der Fokus liegt auf deiner **subjektiven Bewertung**: Wie sehr f\u00fchlst du dich gestresst, unabh\u00e4ngig davon, was konkret passiert ist?\n\n---\n\n## So funktioniert's\n\nDu beantwortest **10 kurze Fragen** auf einer **5-stufigen Skala** von \"niemals\" (0) bis \"sehr oft\" (4). Die Fragen erfassen zwei wichtige Dimensionen:\n\n- **Belastung und \u00dcberforderung**: Wie oft f\u00fchlst du dich nerv\u00f6s, gestresst oder mit Problemen \u00fcberfordert?\n- **Kontrolle und Bew\u00e4ltigung**: Wie gut kannst du mit unerwarteten Ereignissen umgehen und hast du das Gef\u00fchl, alles im Griff zu haben?\n\nEinige Fragen sind positiv formuliert (z.B. \"Wie oft hatten Sie das Gef\u00fchl, alles im Griff zu haben?\") und werden bei der Auswertung umgekehrt bewertet. Am Ende erh\u00e4ltst du **einen Gesamtscore zwischen 0 und 40 Punkten** mit einer Einsch\u00e4tzung deines Stresslevels:\n\n- **0-13 Punkte**: niedriger Stress\n- **14-26 Punkte**: moderater Stress  \n- **27-40 Punkte**: hoher Stress\n\nDu erh\u00e4ltst **sofort dein pers\u00f6nliches Ergebnis** direkt im Browser.\n\n---\n\n## Warum ist die PSS-10 so wertvoll?\n\nDie PSS-10 ist **einfach anzuwenden, gut validiert** und in vielen Sprachen verf\u00fcgbar. Sie wird weltweit in der Forschung eingesetzt, um:\n\n- **Zusammenh\u00e4nge zwischen Stress und Gesundheit** zu untersuchen\n- **Arbeitsbelastung und Burnout-Risiken** zu erfassen\n- **Stressbew\u00e4ltigungsprogramme** zu evaluieren\n- Als **Screening-Instrument** in epidemiologischen Studien zu dienen\n\nIm Gegensatz zu Tests, die nur objektive Stressfaktoren messen, erfasst die PSS-10, wie du Stress **wirklich empfindest** \u2013 denn zwei Menschen k\u00f6nnen dieselbe Situation v\u00f6llig unterschiedlich erleben.\n\n---\n\n## 100% anonym und sicher\n\nDieser Test l\u00e4uft **komplett in deinem Browser**. Es werden **keine Daten \u00fcbertragen, gespeichert oder an Dritte weitergegeben**. Sobald du das Fenster schlie\u00dft, sind alle Eingaben gel\u00f6scht. Deine Privatsph\u00e4re ist garantiert \u2013 eine reine Frontend-Anwendung ohne Server-Kommunikation.\n\n---\n\n## Gebaut mit dem Wanderer Flow Builder\n\nDieser Stress-Test wurde als **Beispiel-Anwendung** mit dem **Wanderer Flow Builder** erstellt \u2013 einem Tool zum Erstellen interaktiver Chatflows ohne Programmierkenntnisse. Der Flow Builder erm\u00f6glicht es dir, eigene Tests, Umfragen, Beratungs-Bots oder interaktive Guides zu bauen \u2013 schnell, einfach und flexibel.\n\nOb psychologische Selbsttests, Produktberater, Onboarding-Flows oder Gesundheits-Screenings: Mit dem Wanderer Flow Builder kannst du **professionelle, interaktive Erlebnisse** erstellen, die komplett im Browser laufen und h\u00f6chste Datenschutzstandards erf\u00fcllen.\n\n---\n\n**Bereit, deinen Stresslevel zu checken?** Starte den Test direkt hier im Browser und erhalte in wenigen Minuten dein Ergebnis!","category":"Medical & Therapy","channel":"chat"},{"id":"4qccf1j0x30i7avujowekvmonjoppl4r","title":"Tutorial: Create new nodes","excerpt":"","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Tutorial: Builder","channel":"builder"},{"id":"54v6dg43j88haesxwg6uv3grpb6gdi2s","title":"Tutorial: Connect nodes","excerpt":"","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Tutorial: Builder","channel":"builder"},{"id":"58261oaor5dmas1e7ocec1ghvqh8oq36","title":"Conclusion node","excerpt":"Use conclusion nodes to make conclusions visually understandable.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Nodes","channel":"builder"},{"id":"5e1a9odkg7krnelmltg7e3otwre62f9e","title":"Automatic Recursion Detection","excerpt":"Wanderer evaluates the flow every time data changes. These changes can also be triggered from within the flow itself. Theoretically, this can lead to infinite recursions. Wanderer automatically detects this and terminates the process.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Features","channel":"builder"},{"id":"64nw07i1s969t1rdnd46gmnsm3pqmilo","title":"Print node","excerpt":"Use the print node to dynamically create documents from Flow data. Give users the ability to print data directly.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Nodes","channel":"chat"},{"id":"6lvwn1j9f4yi0gw4t9qacevihb2key4w","title":"Comment node","excerpt":"Comment nodes don't do anything. You can theoretically use them to forward signals. But in reality, they only contain details and comments about why certain things in the flow are the way they are.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Nodes","channel":"builder"},{"id":"7c98rkyfygcjwim0kpwjs6fbmfeias9j","title":"Intake form for therapists, doctors or medical processes","excerpt":"This is a demo intake form for doctors and therapists. Ready to use or adapt.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"Intake-form-for-therapists-doctors-or-medical-processes","post":"Building patient-friendly intake forms doesn\u2019t have to mean PDFs, clipboards, or rigid portals. With **Wanderer** you can create modern, adaptive intake flows in minutes\u2014without coding\u2014and run them anywhere your clients need them.\n\n### Build once, run everywhere\nWanderer intake forms work smoothly on **tablets in your practice** and can also be embedded on your **website**. That means clients can complete their intake at reception, at home before the appointment, or wherever it\u2019s most convenient.\n\nYou can also **send forms via email** as a simple link. And if you prefer a \u201cpaper-friendly\u201d workflow, patients or clients can **print the completed intake** and bring it to the appointment\u2014ideal for hybrid processes or practices transitioning away from paper.\n\n### Smart questions that adapt in real time\nInstead of static forms, Wanderer lets you build **reactive, branching conversations**:\n\n- Questions can **build on previous answers**\n- Entire sections can **appear or disappear** based on earlier inputs\n- Answer options can change dynamically depending on context\n\nThis creates an intake experience that feels more like a real conversation\u2014shorter for simple cases, deeper when needed, and more relevant for every patient.\n\n### Your team can understand (and improve) the flow\nWanderer is a **no-code flow builder** where the logic is visible. Staff can quickly understand *why* a certain question appears, then **adjust, extend, or refine** the intake without waiting for developers. You can watch the flow execute live while editing, making it easy to test and iterate.\n\n### Optional: connect to your existing software\nIf you already use a practice management system or documentation tool, an **optional integration** can enable **structured import** of the collected data\u2014so intake answers don\u2019t have to be retyped manually.\n\n### Built for real-world clinical workflows\nWanderer was designed for complex, sensitive use cases like **medical and therapy intake**\u2014where transparency, flexibility, and a smooth patient experience matter. You can create unlimited flows, share them by URL, and run them on your own terms\u2014whether in-practice, online, or both.","category":"Medical & Therapy","channel":"chat"},{"id":"a1j2pf8ppngpzr19kxhee6751a13frlz","title":"Conversational XOR","excerpt":"Sometimes, in a conversation, it's necessary to check if exactly one condition is met. It doesn't matter which one condition is met, as long as it's one.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Logic","channel":"chat"},{"id":"a6q0kwtnishaw169k96i0x31e3km2rlc","title":"Switch node","excerpt":"This flow contains a switch. You can use 'call edges' to turn the switch on or off. When this happens is determined by a simple question. You can turn the switch on or off from the chat.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Nodes","channel":"builder"},{"id":"ay5fwmjk8jhbjp88ztb2n7rz772zot8n","title":"Question node","excerpt":"With questions, you can let users actively make decisions. Each question can have multiple suggestion nodes.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Nodes","channel":"builder"},{"id":"c972i1eu29uz5d0eefs4gw0h52nxfll4","title":"4 Understanding the flow order","excerpt":"","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Tutorial - Basics","channel":"builder"},{"id":"d4vukweaz6xeidp0h9fqeteupw4ztf5l","title":"Restore and watch contexts","excerpt":"This example shows you how repeatedly changing the answers to a question causes the count nodes in the branches to count their activations. You can use this to address users differently if they have already visited a branch before.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Examples","channel":"builder"},{"id":"di5amx9hykcbvtlmctzu02mjpm3gy7lo","title":"Markdown","excerpt":"You can use Markdown to format text. This example shows you how.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"markdown-support","post":"**Markdown** is a lightweight markup language that lets you format text using simple, readable syntax. Here's a quick guide to get you started.\n\n---\n\n## Bold and Italic Text\n\nTo make text stand out, you can use **bold** or *italic* formatting:\n\n- **Bold**: Wrap text in double asterisks or double underscores\n  - `**bold text**` or `__bold text__` \u2192 **bold text**\n- *Italic*: Use single asterisks or single underscores\n  - `*italic text*` or `_italic text_` \u2192 *italic text*\n- ***Bold and italic***: Combine them with triple asterisks\n  - `***bold and italic***` \u2192 ***bold and italic***\n\n---\n\n## Lists\n\nMarkdown supports both **ordered** and **unordered lists**.\n\n### Unordered Lists\n\nUse asterisks, plus signs, or hyphens followed by a space:\n\n```\n* First item\n* Second item\n* Third item\n```\n\nResult:\n* First item\n* Second item\n* Third item\n\n### Ordered Lists\n\nSimply use numbers followed by periods:\n\n```\n1. First step\n2. Second step\n3. Third step\n```\n\nResult:\n1. First step\n2. Second step\n3. Third step\n\n---\n\n## Images\n\nTo add images, use this syntax: `![alt text](image-url)`\n\n**Example:**\n```\n![A beautiful sunset](https:\/\/example.com\/sunset.jpg)\n```\n\nThe **alt text** (inside square brackets) describes the image for accessibility and appears if the image fails to load. The **URL** (inside parentheses) points to the image location.\n\n---\n\n## Links\n\nCreating links works similarly to images, just without the exclamation mark:\n\n```\n[Click here](https:\/\/example.com)\n```\n\nResult: [Click here](https:\/\/example.com)\n\n---\n\n## Quick Reference\n\n| Element | Syntax | Example |\n|---------|--------|---------|\n| **Bold** | `**text**` | **bold** |\n| *Italic* | `*text*` | *italic* |\n| Unordered list | `* item` | \u2022 item |\n| Ordered list | `1. item` | 1. item |\n| Image | `![alt](https:\/\/example.com)` | (image) |\n| Link | `[text](https:\/\/example.com)` | [text](https:\/\/example.com) |\n\nThat covers the essentials! These elements will handle most of your formatting needs in any markdown-enabled chat builder.","category":"Examples","channel":"chat"},{"id":"eyrmry3w4v0obbxqdxv0ogdpkmvokp7x","title":"5 Understanding control edges","excerpt":"","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Tutorial - Basics","channel":"builder"},{"id":"febkalxmyik1atins12rw7evur6eouta","title":"Product configurator with live stock context invalidation","excerpt":"This demo shows how spontaneously a context can change. In this case: because skateboards or shoes are constantly being taken out of storage and then suddenly become available again.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"Product-configuration-with-live-context-invalidation","post":"## What's happening here?\nIn this theoretical example flow, the user can add either a skateboard or shoe to their shopping cart. While the prompt for shoes or skateboards is displayed, the __stock is simultaneously checked__. The stock level is simulated here using two number nodes. One for shoes and one for skateboards.\n\nThis example demonstrates how flows __dynamically can react__ to parts of the context that no longer exist. What happens if you're still configuring your skateboard when the last one is __suddenly sold__? Test it by editing the number node in the builder! (You must load this flow in the Builder to change the values.)\n\nIt doesn't matter whether you're already configuring your skateboard or haven't yet decided between shoes or skateboards. The flow __recognizes__ when skateboards are sold out and, if necessary, returns you to the initial selection. This also happens if you were in the middle of configuring your product. If a product has a count of 0, the entire __branch disappears from the context__.\n\nAll of this works thanks to __RGS__ (Reactive Graph Sequencing) without any complicated programming.\nTry it out and play around!","category":"Context Reactivity","channel":"chat"},{"id":"fu1ntdhddy3y37ezqrkbaz89l6s77612","title":"Form with initial data","excerpt":"This example shows you how to fill the fields of your form with initial data.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Forms","channel":"chat"},{"id":"fy4ngidrwftqwxhcd19yrd714vnkj6w3","title":"Automatic Multi Intent Serilization for Online Shops","excerpt":"This example shows how the flow derives multiple intents from a prompt and processes them cleanly one after the other.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Context Reactivity","channel":"chat"},{"id":"g92xlurpz5iyqlvxfrw8d2fc3kw0rnyp","title":"Tutorial: Edit nodes and edges","excerpt":"","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Tutorial: Builder","channel":"builder"},{"id":"g98805v2j4g3i6wyxm8legk9bbp4hsct","title":"Once node","excerpt":"The once node can only be taken once. Ideal for things that can only happen once.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Nodes","channel":"chat"},{"id":"gyfp0a3r61ka3j98iwcju4k7ic7el6wy","title":"Rendering data with handlebars","excerpt":"Some node properties support handlebars. For example, the message text of the message node. Handlebars is a simple syntax for displaying existing state data at specific points within the text.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"Using-Handlebars-inside-Node-properties","post":"## Using Handlebars inside Node properties\n\nSome node properties support Handlebars. For example, the message text of the message node. \n\nHandlebars lets you insert dynamic state data directly into a node\u2019s message content. In practice, you write templates like `{{text}}` and the builder replaces them with values from the node\u2019s **state** at runtime.\n\n### How data reaches your Message Node\n\nIn this example:\n\n- A **Text Node** produces a value (e.g. `\"Cat\"`)\n- A **Number Node** produces a value (e.g. `42`)\n- A **Message Node** receives both values via **push edges**\n\nThose edges push the incoming values into the **Message Node\u2019s state**, so the Message Node can render them immediately.\n\n### Basic example: print values in a Message Node\n\nPut this directly into your Message Node:\n\n```handlebars\nYour text: {{text}}\nYour number: {{number}}\n```\n\nAfter the edges have delivered the values, your Message Node state might look like this (some fields are created by the Message Node itself, others were pushed in):\n\n```json\n{\n  \"sent\": true,\n  \"arrived\": true,\n  \"text\": \"Cat\",\n  \"number\": 42\n}\n```\n\n### Inspecting state: what can you use in Handlebars?\n\nYou can inspect a node\u2019s current **state** anytime by selecting the node in the builder. This is the easiest way to decide which variables are available for your templates (for example `text`, `number`, `sent`, `arrived`, etc.).\n\n---\n\n## Common Handlebars patterns you can use\n\n### 1) Conditional text with `if \/ else`\n\n```handlebars\n{{#if text}}\nYou entered: {{text}}\n{{else}}\nPlease provide a text value.\n{{\/if}}\n```\n\n### 2) Comparisons (greater than, less than, equal)\n\n**Greater than**\n\n```handlebars\n{{#if (gt number 10)}}\nBig number: {{number}}\n{{else}}\nSmall number: {{number}}\n{{\/if}}\n```\n\n**Less than**\n\n```handlebars\n{{#if (lt number 10)}}\nSmall number: {{number}}\n{{else}}\nBig number: {{number}}\n{{\/if}}\n```\n\n**Equal**\n\n```handlebars\n{{#if (eq text \"Cat\")}}\nMeow. \ud83d\udc3e\n{{else}}\nYou typed: {{text}}\n{{\/if}}\n```\n\n### 3) Range checks (between)\n\nUseful for scoring, ages, levels, budgets, etc.:\n\n```handlebars\n{{#if (between number 1 5 true)}}\nRating accepted (1\u20135): {{number}}\n{{else}}\nRating must be between 1 and 5.\n{{\/if}}\n```\n\n*(In this example, `true` means \u201cinclusive\u201d, so 1 and 5 are allowed.)*\n","category":"Examples","channel":"chat"},{"id":"h5d4n736f5rqae2z3o637r4cpze3yam9","title":"Count node","excerpt":"This node helps you determine how often a user has been in a specific branch of the flow.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Nodes","channel":"chat"},{"id":"hr3vdgb122ici3ahiqrwf8oobocnqabm","title":"Star structure","excerpt":"In a star structure, there is a central node from which the signals are sent outward. You can see that the connected nodes are processed in parallel. The respective layers are discovered simultaneously and sorted and executed according to the order of the widest edges.\n","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Patterns","channel":"builder"},{"id":"hvjtkrhp5vxbbb8n2tkpbyn5m6vrcwol","title":"Simple calculator","excerpt":"This example shows a simple calculator demo. Select the two numbers and see the result. Go back in the chat, change the numbers, and get a new result.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Examples","channel":"chat"},{"id":"i7lhup96dhpcql0o5pfitkabhuz9rb96","title":"Pattern: Sequenz","excerpt":"A sequence is simply a chain of nodes that are activated one after the other.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Patterns","channel":"builder"},{"id":"ifvozz5gllscayqv2hqvcexojt100h4g","title":"Number node","excerpt":"You can use the number node to define numbers or to calculate them.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Nodes","channel":"chat"},{"id":"ij36qmmlm4f67frln0w87smr3y7x8huc","title":"Text node","excerpt":"The text node helps you define strings or build them dynamically.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Nodes","channel":"chat"},{"id":"imkdjhcfygw14tc0xf7h8uqoohsacwvq","title":"A simple todo list","excerpt":"Tell me something and I'll add it to my to-do list.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Examples","channel":"chat"},{"id":"j6s7sgkqqm1eg4n2bnmtwhs7f119jivy","title":"Try Catch node","excerpt":"With Try \/ Catch, you can capture and redirect events deep within a conversation.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":"","category":"Nodes","channel":"chat"},{"id":"jflz4k8otvjtjun86fq4fbb25d5ox6yc","title":"1 Understanding Nodes","excerpt":"","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"## How Wanderer Flows Work: Nodes, State, and Properties\n\nIn **Wanderer**, flows are built from **nodes**. Each node can both **hold knowledge** and **perform actions**. For example, a **Message Node** can send a message directly to the chat.\n\n### When does a node become active?\n\nA node only becomes **active** if it\u2019s **directly or indirectly connected to the Start Node**. If it isn\u2019t connected, it stays **inactive** which makes it easy to spot parts of a flow that can\u2019t be reached.\n\n### State: what a node knows about itself\n\nNodes also track knowledge about themselves, called **state**. If you click a node, you can inspect its state like seeing which messages have already been sent or whether the last question has been answered.\n\nState matters because it can be referenced in **edges** to decide **which path the flow should take next**. And because state can change repeatedly, paths can be **enabled or disabled dynamically** over time.\n\n### Properties: stable configuration\n\nIn addition to state, nodes have **properties**. You edit these in the editor, and they remain **stable throughout a session**. In short: anything you can actively configure on a node is a **property**.\n\nThat\u2019s the core idea: nodes act, state drives decisions, and properties define stable behavior.","category":"Tutorial - Basics","channel":"chat"},{"id":"jj5abj5fr1ajja2632rnnzar8wojbw28","title":"3 Understanding the context","excerpt":"","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Tutorial - Basics","channel":"builder"},{"id":"jljccw420qmp66u4167f22vufh2qe8au","title":"Jump node","excerpt":"The jump node embeds a button in the chat that allows you to jump to the stored flow.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Nodes","channel":"chat"},{"id":"k551fbsybyiv3bvfxqdbgj6k0ddf7rf0","title":"Conversational AND","excerpt":"This example shows a conversational AND. The process only continues if both questions are answered with \"yes\".","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Logic","channel":"builder"},{"id":"keevhyvfot4wbyzo60wd1vjamwdh2zag","title":"Logical OR gate","excerpt":"An OR gate is a logical structure. It describes how different conditions can occur for the same event to be triggered. OR gates are represented in this system using 'may edges'.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"School and education","channel":"builder"},{"id":"kwgvyktxuq4l7g7awjlehwwhq9nkrhfs","title":"Multiple Questions at once","excerpt":"You can display multiple questions and answer options at once if they are active simultaneously.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":"","category":"Examples","channel":"chat"},{"id":"lfvdiy3m25xrk68ogeras94402y46fyz","title":"Check order status in the shop: Catch unexpected entries using Try and Throw nodes.","excerpt":"This example shows what happens when a user types a new intention into a prompt instead of an expected order number.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"Catch-unexpected-inputs-with-Try-and-Throw-nodes","post":"**Users don't follow scripts. RGS makes that a feature, not a problem.**\n\n## The Scenario\n\nA customer opens your e-commerce support chat. The flow is straightforward:\n\n1. A **Prompt node** captures the user's initial message.\n2. A **GPT node** classifies the intent.\n3. A **Queue node** routes to the matching **Task node** \u2014 here, \"Order Details.\"\n4. Further down, a second **Prompt node** asks for the order number.\n\nNow the user types: *\"What's your address?\"*\n\nThis has nothing to do with order tracking. In most chatbot systems, this is where things break. In RGS, it's where things get elegant.\n\n5. A **Throw node** on the order-number prompt performs a clean exit and pushes its state upward to a **Try node** sitting before the GPT node at the top of the graph.\n6. The GPT node re-evaluates the intercepted input, classifies the new intent, and the Queue and Task nodes react accordingly.\n\nThe conversation pivots seamlessly. The user notices nothing.\n\n## Why This Works in RGS\n\nThe core mechanism: **Throw pushes state to an earlier node, and when any node's state changes, the entire graph re-sequences.**\n\nRGS doesn't \"continue from where it left off.\" It re-evaluates everything. The GPT node sees the new input. The Queue picks up the new intent. The downstream sequence recalculates. No special-case logic, no rewiring \u2014 the behavior emerges from the graph structure itself.\n\nThis is fundamentally different from traditional try\/catch in programming. The Throw node doesn't signal an error. It signals *\"this input belongs somewhere else\"* \u2014 and uses a control edge to send it there. The graph then asks: *\"Given everything we know right now, what should be happening?\"* \u2014 and re-answers that question from scratch.\n\nEach node keeps a single responsibility. No node needs to understand the full flow. Add a new intent? Add a new task node. The Try\/Throw pattern handles rerouting automatically.\n\n## How Traditional Builders Handle This\n\nShort answer: not well. Most flow builders are linear \u2014 once you're in a branch, you're stuck. The usual workarounds:\n\n- **Fallback intents** that don't know the current context and just say \"Sorry, try again.\"\n- **Global intents** that compete with local ones and create priority conflicts.\n- **Manual state management** in custom code \u2014 functional but fragile and hard to maintain.\n\nThe fundamental limitation: traditional builders execute forward. Once a node has run, its result is final. There's no way to retroactively change an earlier node's state and have everything downstream recalculate. RGS can do exactly that, which is why late intent switching isn't an edge case \u2014 it's a natural consequence of how the system works.\n\n---\n\n*Try the live example above, or start building your own adaptive conversations at [wanderer-flow.de](https:\/\/wanderer-flow.de).*","category":"Context Reactivity","channel":"chat"},{"id":"mbo9idv868f1a8gz6egm1y9d42jedbc4","title":"Logical NOT gate","excerpt":"A logical NOT gate inverts the input. If the input is enabled the output is disabled for example.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"School and education","channel":"chat"},{"id":"mh9qco1sbybn2slnvx5p8qe28jsaeifz","title":"Echo: Repeat a prompt","excerpt":"This flow takes your input from a prompt, then sends a message and resets itself to wait for input again.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Examples","channel":"chat"},{"id":"ndqa2j197478yg6o476bqmquc5xt8n4e","title":"Send a message if a form field is invalid","excerpt":"In this example, I'll show you how to send a message if a form field has been filled out incorrectly.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Forms","channel":"chat"},{"id":"nomt8q8gjr2dpinscyhs1teeua9tl21t","title":"Timer node","excerpt":"With a timer, you can start things at a later time.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Nodes","channel":"chat"},{"id":"prrd0adz2lx7p3whr6tymo3aftuvw1jv","title":"Fetch node","excerpt":"This node allows you to send data from the flow to HTTP APIs and send data from APIs back to the flow.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Nodes","channel":"builder"},{"id":"qbr3svmapgatkfax1m04pyt9g2tv58xz","title":"Self repeating structures","excerpt":"Sometimes you need a structure that repeats itself after it has been completed.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":"","category":"Patterns","channel":"chat"},{"id":"qvjrdd7g2gv1mykv8dzk5yejde088rbo","title":"Form and input nodes","excerpt":"Use this node to collect form data in the chat. Connect input nodes to this node to create new input fields.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Nodes","channel":"chat"},{"id":"rct7wmr0d4k21quf4s0ozy0wt5oo2yh7","title":"ChatGPT node","excerpt":"GPT nodes can be used to generate dynamic prompts from the flow. These are answered by ChatGpt. You can then use the response in the flow.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Nodes","channel":"builder"},{"id":"u4ne9rzq88dgp04non88ksb5q399n4sl","title":"Logical AND gate","excerpt":"This flow demonstrates a logical AND gate","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"School and education","channel":"chat"},{"id":"ucav23z0ge7w3yv10wqvgie4cdcetwrw","title":"Welcome!","excerpt":"This flow is part of the onboarding chatbot on the homepage of wanderer-flow.de.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Wanderer Flowy","channel":"chat"},{"id":"uuxx5kmss3ogtb0hq2q8emzgq5m6qayk","title":"Multi intent to select","excerpt":"Various buttons are generated from your text input. So you can decide for yourself what you want to start with.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Examples","channel":"chat"},{"id":"v9bhfnheq5wr5wnvtyrbjfm2jnoja555","title":"Clear node","excerpt":"This example shows you how to clear the chat. This will delete all messages in the history.","license":"CC BY 4.0","author":"Wanderer","tags":[],"slug":null,"post":null,"category":"Nodes","channel":"chat"},{"id":"vtr5kq5oly41o66m911eaaepd7n1n1eg","title":"A simple contact form","excerpt":"This is a simple contact form. It provides a form and sends an email.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Forms","channel":"chat"},{"id":"w8lwh5jgfrnmw0hlsl19k4wj6die93es","title":"Context Change Detection for Web Shops","excerpt":"This flow reacts automatically when a user frequently switches back and forth between two product branches and then offers help. The flow recognizes that the user often changes context, which indicates uncertainty.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":"","category":"Context Reactivity","channel":"chat"},{"id":"w8no8c2zeadngr0pmx0inbrd9k5wm8ox","title":"PHQ-9 Depression-Screening direkt im Browser (German\/Deutsch)","excerpt":"Der PHQ-9 (Patient Health Questionnaire-9) ist ein wissenschaftlich validiertes Screening-Instrument zur Erfassung depressiver Symptome. Auf dieser Website k\u00f6nnen Sie den Test vollst\u00e4ndig anonym als interaktiven Chat durchf\u00fchren \u2013 alle Daten bleiben ausschlie\u00dflich in Ihrem Browser und werden beim Schlie\u00dfen automatisch gel\u00f6scht. Der Test umfasst neun Fragen zu typischen Depressionssymptomen der letzten zwei Wochen und liefert eine sofortige Auswertung mit Schweregradeinsch\u00e4tzung. Mit einer Sensitivit\u00e4t und Spezifit\u00e4t von jeweils 88% ist der PHQ-9 ein zuverl\u00e4ssiges Werkzeug f\u00fcr die Ersteinsch\u00e4tzung, ersetzt jedoch keine professionelle Diagnostik durch Fachpersonal.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"PHQ-9-Depression-Screening-direkt-im-Browser","post":"## PHQ-9 Depression-Screening direkt im Browser\n\nAuf dieser Website k\u00f6nnen Sie den **PHQ-9 Test vollst\u00e4ndig anonym und sicher in Ihrem Browser durchf\u00fchren**. Der Test wird als interaktiver Chat pr\u00e4sentiert, der Sie Schritt f\u00fcr Schritt durch die neun Fragen f\u00fchrt und Ihnen am Ende eine automatische Auswertung liefert.\n\nDieser Test wurde mit dem Wanderer Flow Builder erstellt. Sie k\u00f6nnen zu jeder Zeit nachvollziehen wie der Test aufgebaut wurde, wenn Sie auf den Button \"Inspect this Flow\" klicken.\n\n### Ihre Privatsph\u00e4re ist gesch\u00fctzt\n\n**Alle Ihre Antworten bleiben ausschlie\u00dflich auf Ihrem Ger\u00e4t.** Es handelt sich um eine reine Frontend-Anwendung \u2013 das bedeutet:\n\n- **Keine Daten\u00fcbertragung**: Zu keinem Zeitpunkt verlassen Ihre Antworten Ihren Browser\n- **Keine Speicherung auf Servern**: Es werden keinerlei Daten an externe Server gesendet oder dort gespeichert\n- **Automatische L\u00f6schung**: Alle Informationen werden beim Schlie\u00dfen des Browser-Tabs vollst\u00e4ndig gel\u00f6scht\n- **Vollst\u00e4ndige Anonymit\u00e4t**: Es werden keine pers\u00f6nlichen Daten erfasst oder gespeichert\n\nSie k\u00f6nnen den Test also in einer **vollkommen sicheren und vertraulichen Umgebung** durchf\u00fchren.\n\n---\n\n## Was ist der PHQ-9?\n\nDer **Patient Health Questionnaire-9 (PHQ-9)** ist ein **standardisiertes Screening-Instrument zur Erfassung depressiver Symptome**. Er wurde aus dem umfangreicheren PRIME-MD entwickelt und basiert auf den **diagnostischen Kriterien f\u00fcr Major Depression aus dem DSM-IV** (Diagnostic and Statistical Manual of Mental Disorders).\n\n---\n\n## Aufbau und Struktur\n\nDer PHQ-9 besteht aus **neun Items**, die jeweils eines der neun DSM-Kriterien f\u00fcr Major Depression abbilden:\n\n1. **Wenig Interesse oder Freude** an T\u00e4tigkeiten\n2. **Niedergeschlagenheit, Schwermut oder Hoffnungslosigkeit**\n3. **Schlafst\u00f6rungen** (Ein- oder Durchschlafprobleme, zu viel Schlaf)\n4. **M\u00fcdigkeit oder Energiemangel**\n5. **Ver\u00e4nderter Appetit** (verminderter oder gesteigerter Appetit)\n6. **Negatives Selbstbild** (Gef\u00fchle von Wertlosigkeit oder Schuld)\n7. **Konzentrationsschwierigkeiten**\n8. **Psychomotorische Ver\u00e4nderungen** (verlangsamte oder unruhige Bewegungen)\n9. **Suizidgedanken** oder Gedanken, sich selbst zu verletzen\n\nJedes Item wird auf einer **4-Punkte-Likert-Skala** bewertet:\n- **0** = \u00fcberhaupt nicht\n- **1** = an einzelnen Tagen\n- **2** = an mehr als der H\u00e4lfte der Tage\n- **3** = beinahe jeden Tag\n\nDer Zeitraum bezieht sich auf die **letzten zwei Wochen**.\n\n---\n\n## Auswertung und Interpretation\n\n### Scoring\n\nDer **Gesamtscore** wird durch Addition aller neun Items berechnet und kann zwischen **0 und 27 Punkten** liegen.\n\n| **Score-Bereich** | **Schweregrad der Depression** | **Empfehlung** |\n|-------------------|--------------------------------|----------------|\n| **0-4** | Keine oder minimal | Keine Behandlung notwendig |\n| **5-9** | Leicht | Watchful waiting, ggf. Verlaufskontrolle |\n| **10-14** | Mittelgradig | Behandlung erw\u00e4gen (Psychotherapie oder Pharmakotherapie) |\n| **15-19** | Mittelschwer | Aktive Behandlung mit Psychotherapie und\/oder Medikation |\n| **20-27** | Schwer | Sofortige Behandlung, ggf. spezialisierte Versorgung |\n\n### Diagnostische Hinweise\n\nEin **Score von \u226510** wird h\u00e4ufig als **Cut-off-Wert** f\u00fcr klinisch relevante Depression verwendet und hat eine **Sensitivit\u00e4t von 88%** und **Spezifit\u00e4t von 88%** f\u00fcr Major Depression.\n\n---\n\n## Einsatzbereiche und Vorteile\n\n### Wo wird der PHQ-9 eingesetzt?\n\n- **Hausarztpraxen** und Prim\u00e4rversorgung\n- **Psychiatrische und psychotherapeutische Einrichtungen**\n- **Klinische Forschung**\n- **Verlaufskontrolle** w\u00e4hrend der Behandlung\n- **Screening-Programme** in der Bev\u00f6lkerung\n\n### Warum ist der PHQ-9 so verbreitet?\n\n- **Kurz und effizient**: Ausf\u00fcllen dauert nur 2-3 Minuten\n- **Kostenlos verf\u00fcgbar**: Keine Lizenzgeb\u00fchren erforderlich\n- **Wissenschaftlich validiert**: Umfangreiche Studienlage zur Reliabilit\u00e4t und Validit\u00e4t\n- **Multifunktional**: Sowohl f\u00fcr Screening als auch f\u00fcr Verlaufsbeurteilung geeignet\n- **International etabliert**: In viele Sprachen \u00fcbersetzt und kulturell validiert\n\n---\n\n## Besonderheiten und Limitationen\n\n### Item 9 - Suizidalit\u00e4t\n\nDas **neunte Item** erfasst Suizidgedanken und erfordert **besondere Aufmerksamkeit**. Jede Antwort au\u00dfer \"0\" sollte klinisch nachverfolgt werden, unabh\u00e4ngig vom Gesamtscore.\n\n### Was der PHQ-9 nicht leistet\n\n- **Keine Differenzialdiagnose**: Unterscheidet nicht zwischen verschiedenen depressiven St\u00f6rungen\n- **Kein Ersatz f\u00fcr klinisches Interview**: Sollte als Erg\u00e4nzung, nicht als alleiniges Diagnoseinstrument verwendet werden\n- **Kulturelle Faktoren**: Symptomausdruck kann kulturell variieren\n- **Komorbidit\u00e4t**: K\u00f6rperliche Erkrankungen k\u00f6nnen Symptome verf\u00e4lschen\n\n---\n\n## Wichtiger Hinweis\n\nDieser Test dient ausschlie\u00dflich dem **Screening und der Selbsteinsch\u00e4tzung**. Er ersetzt **keine professionelle Diagnostik oder Behandlung** durch qualifizierte Fachkr\u00e4fte. Bei Verdacht auf eine Depression oder bei akuten Belastungen wenden Sie sich bitte an Ihren Hausarzt, einen Psychotherapeuten oder eine psychiatrische Fachkraft.\n\n**Bei akuten Suizidgedanken** wenden Sie sich bitte sofort an:\n- **Telefonseelsorge**: 0800 111 0 111 oder 0800 111 0 222 (kostenlos, 24\/7)\n- **Notarzt**: 112\n- Die n\u00e4chste psychiatrische Notaufnahme","category":"Medical & Therapy","channel":"chat"},{"id":"webml51rrvkzlu4oira5h1xh83e2nu5c","title":"Tutorial: Interface Basics","excerpt":"","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Tutorial: Builder","channel":"builder"},{"id":"xnggg7ykv5sppva649cd73r6zh2zfedg","title":"Tutorial: Start","excerpt":"This flow is part of the tutorial, which can be loaded within the builder.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Tutorial: Start","channel":"builder"},{"id":"yafjyoakipdkdaxz9wedil1dtwwlo591","title":"Cat quiz","excerpt":"A little cat quiz. Can you find the right answer before time runs out? If you like, you can use the 50% joker.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"School and education","channel":"chat"},{"id":"yop20nnb2rrxkguls3j6u37bcx9a5zdx","title":"Traffic counter","excerpt":"","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"School and education","channel":"chat"},{"id":"yoszf2oaib40th368srvrpcb7o0zm1ep","title":"Logical NAND gate","excerpt":"This flow demonstrates a logical NAND gate","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"School and education","channel":"builder"},{"id":"ysilstmyjaawq32c15fs3r6vx9nprpco","title":"Button node","excerpt":"A button emits an ultra short signal. Ideal for doing things once for a short moment. Like counting or adding data once.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":"","post":"","category":"Nodes","channel":"chat"},{"id":"ytczvu57dkjbfyla5xhuz7j7d4pyw7x7","title":"Fetching random cat facts from an API","excerpt":"This example shows how you can quickly turn a public API into a chatbot.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Examples","channel":"chat"},{"id":"z1la21glzroj69anfoab0kyitw22ihcq","title":"State Merging","excerpt":"This example demonstrates the advantages of state merging over crossing edges.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":"","category":"Patterns","channel":"chat"},{"id":"zrrplij5u8bio6bgq0zw6rq6y95aum57","title":"Prompt node","excerpt":"Prompt nodes display a prompt in the chat when they are in context. Use the entered data in the flow.","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Nodes","channel":"builder"},{"id":"zuey7m9cz7p6qb8hfmy9krn50fcbchu9","title":"Prompt for a password","excerpt":"This chat will wait until you type the correct password. Can you find it?","license":"CC BY 4.0","author":"Wanderer","tags":null,"slug":null,"post":null,"category":"Examples","channel":"chat"}]