[{"data":1,"prerenderedAt":83},["ShallowReactive",2],{"flow-gyfp0a3r61ka3j98iwcju4k7ic7el6wy":3},{"nodes":4,"edges":54},{"gyfp0a3r61ka3j98iwcju4k7ic7el6wy":5,"eo1704wfahm9vhjyh3xpj1o3eqdc4sgu":20,"va4c70flgy737i9v470fo1t5xb7r6vh2":28,"2uj4r6sv1haouyghhy89qwmtwz5l7q1u":34,"a46ndv6a3ztupg33foyndgw71ikkezuj":41,"ndk7v3b5iilmk5a55vax952786qbd9ku":48},{"id":6,"type":7,"x":8,"y":9,"properties":10},"gyfp0a3r61ka3j98iwcju4k7ic7el6wy","start",-1.5999755859375,2.39996337890625,{"title":11,"excerpt":12,"slug":13,"post":14,"author":15,"license":16,"channel":17,"category":18,"private":19},"Rendering data with handlebars","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.","Using-Handlebars-inside-Node-properties","## 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’s message content. In practice, you write templates like `{{text}}` and the builder replaces them with values from the node’s **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’s 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’s 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 \u002F else`\n\n```handlebars\n{{#if text}}\nYou entered: {{text}}\n{{else}}\nPlease provide a text value.\n{{\u002Fif}}\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{{\u002Fif}}\n```\n\n**Less than**\n\n```handlebars\n{{#if (lt number 10)}}\nSmall number: {{number}}\n{{else}}\nBig number: {{number}}\n{{\u002Fif}}\n```\n\n**Equal**\n\n```handlebars\n{{#if (eq text \"Cat\")}}\nMeow. 🐾\n{{else}}\nYou typed: {{text}}\n{{\u002Fif}}\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–5): {{number}}\n{{else}}\nRating must be between 1 and 5.\n{{\u002Fif}}\n```\n\n*(In this example, `true` means “inclusive”, so 1 and 5 are allowed.)*\n","Wanderer","CC BY 4.0","chat","Examples",false,{"id":21,"type":22,"x":23,"y":24,"properties":25},"eo1704wfahm9vhjyh3xpj1o3eqdc4sgu","message",-403.514,183.11401220703124,{"text":26,"repeatOnReentry":27,"repeatOnChance":27},"__Handlebars__ makes it easy to __embed data__ and information into your texts.",true,{"id":29,"type":22,"x":30,"y":31,"properties":32},"va4c70flgy737i9v470fo1t5xb7r6vh2",-407.078,434.1650244140625,{"text":33,"repeatOnReentry":27,"repeatOnChance":27},"Look at the next message. There are __numbers__ and __text__ that are used directly in the text.",{"id":35,"type":36,"x":37,"y":38,"properties":39},"2uj4r6sv1haouyghhy89qwmtwz5l7q1u","text",-10.7329267578125,519.0350244140625,{"expression":40},"Cat",{"id":42,"type":43,"x":44,"y":45,"properties":46},"a46ndv6a3ztupg33foyndgw71ikkezuj","number",-7.435926757812499,677.1229755859375,{"expression":47},"42",{"id":49,"type":22,"x":50,"y":51,"properties":52},"ndk7v3b5iilmk5a55vax952786qbd9ku",-414.79328424614016,671.9852371034794,{"text":53,"repeatOnReentry":27,"repeatOnChance":27},"Your text: {{text}}\n\nYour number: {{number}}",{"2kgpevzq249tdiahp7ta172bkecqyj4j":55,"x149hh5oa3npyq3figfjcbqwpfjn77f7":60,"7xa1gj7svljw35z2ej7cyec6auql54oo":64,"ui43j7olv4e4wbukljuh6rt092ttkxhn":68,"21bgpw7y77kpe9gmkogoksihnd9sxprw":71,"73e05xoxxhcfgrpntcn4458ss2eyr3aq":74,"btfn4pnenxs7w73luaup1eritze2st0b":80},{"id":56,"type":57,"from":6,"to":21,"properties":58},"2kgpevzq249tdiahp7ta172bkecqyj4j","may",{"priority":59},4,{"id":61,"type":57,"from":21,"to":29,"properties":62},"x149hh5oa3npyq3figfjcbqwpfjn77f7",{"priority":59,"condition":63},"arrived",{"id":65,"type":57,"from":6,"to":35,"properties":66},"7xa1gj7svljw35z2ej7cyec6auql54oo",{"priority":67},6,{"id":69,"type":57,"from":35,"to":42,"properties":70},"ui43j7olv4e4wbukljuh6rt092ttkxhn",{"priority":59},{"id":72,"type":57,"from":29,"to":49,"properties":73},"21bgpw7y77kpe9gmkogoksihnd9sxprw",{"priority":59,"condition":63},{"id":75,"type":76,"from":35,"to":49,"properties":77},"73e05xoxxhcfgrpntcn4458ss2eyr3aq","push",{"priority":59,"condition":78,"push":79,"as":36},"","value",{"id":81,"type":76,"from":42,"to":49,"properties":82},"btfn4pnenxs7w73luaup1eritze2st0b",{"priority":59,"push":79,"as":43},1775047001733]