[{"data":1,"prerenderedAt":3961},["ShallowReactive",2],{"navigation_docs":3,"-docs-products-integration-studio-expression-syntax-":984},[4,8,44,50,86,583,625,918],{"title":5,"path":6,"stem":7},"Home","\u002Fdocs","docs\u002Findex",{"title":9,"path":10,"stem":11,"children":12},"API usage","\u002Fdocs\u002Fapi-usage","docs\u002Fapi-usage\u002Findex",[13,14,20,26,32,38],{"title":9,"path":10,"stem":11},{"title":15,"path":16,"stem":17,"children":18},"Errors","\u002Fdocs\u002Fapi-usage\u002Ferrors","docs\u002Fapi-usage\u002Ferrors\u002Findex",[19],{"title":15,"path":16,"stem":17},{"title":21,"path":22,"stem":23,"children":24},"Retries & idempotency","\u002Fdocs\u002Fapi-usage\u002Fidempotency","docs\u002Fapi-usage\u002Fidempotency\u002Findex",[25],{"title":21,"path":22,"stem":23},{"title":27,"path":28,"stem":29,"children":30},"Pagination & filtering","\u002Fdocs\u002Fapi-usage\u002Fpagination","docs\u002Fapi-usage\u002Fpagination\u002Findex",[31],{"title":27,"path":28,"stem":29},{"title":33,"path":34,"stem":35,"children":36},"Rate limits","\u002Fdocs\u002Fapi-usage\u002Frate-limits","docs\u002Fapi-usage\u002Frate-limits\u002Findex",[37],{"title":33,"path":34,"stem":35},{"title":39,"path":40,"stem":41,"children":42},"Versioning & stability","\u002Fdocs\u002Fapi-usage\u002Fversioning","docs\u002Fapi-usage\u002Fversioning\u002Findex",[43],{"title":39,"path":40,"stem":41},{"title":45,"path":46,"stem":47,"children":48},"What's new","\u002Fdocs\u002Fchangelog","docs\u002Fchangelog\u002Findex",[49],{"title":45,"path":46,"stem":47},{"title":51,"path":52,"stem":53,"children":54},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started\u002Findex",[55,56,62,68,74,80],{"title":51,"path":52,"stem":53},{"title":57,"path":58,"stem":59,"children":60},"Architecture Overview","\u002Fdocs\u002Fgetting-started\u002Farchitecture","docs\u002Fgetting-started\u002Farchitecture\u002Findex",[61],{"title":57,"path":58,"stem":59},{"title":63,"path":64,"stem":65,"children":66},"Glossary","\u002Fdocs\u002Fgetting-started\u002Fglossary","docs\u002Fgetting-started\u002Fglossary\u002Findex",[67],{"title":63,"path":64,"stem":65},{"title":69,"path":70,"stem":71,"children":72},"Platform Overview","\u002Fdocs\u002Fgetting-started\u002Fplatform-overview","docs\u002Fgetting-started\u002Fplatform-overview\u002Findex",[73],{"title":69,"path":70,"stem":71},{"title":75,"path":76,"stem":77,"children":78},"Prerequisites","\u002Fdocs\u002Fgetting-started\u002Fprerequisites","docs\u002Fgetting-started\u002Fprerequisites\u002Findex",[79],{"title":75,"path":76,"stem":77},{"title":81,"path":82,"stem":83,"children":84},"Your First App in 15 Minutes","\u002Fdocs\u002Fgetting-started\u002Fquick-start","docs\u002Fgetting-started\u002Fquick-start\u002Findex",[85],{"title":81,"path":82,"stem":83},{"title":87,"path":88,"stem":89,"children":90},"Products","\u002Fdocs\u002Fproducts","docs\u002Fproducts\u002Findex",[91,92,98,170,200,218,254,320,517,565],{"title":87,"path":88,"stem":89},{"title":93,"path":94,"stem":95,"children":96},"AI Studio","\u002Fdocs\u002Fproducts\u002Fai","docs\u002Fproducts\u002Fai\u002Findex",[97],{"title":93,"path":94,"stem":95},{"title":99,"path":100,"stem":101,"children":102},"App Studio","\u002Fdocs\u002Fproducts\u002Fapps","docs\u002Fproducts\u002Fapps\u002Findex",[103,104,110,116,122,128,134,140,146,152,158,164],{"title":99,"path":100,"stem":101},{"title":105,"path":106,"stem":107,"children":108},"App Model","\u002Fdocs\u002Fproducts\u002Fapps\u002Fapp-model","docs\u002Fproducts\u002Fapps\u002Fapp-model\u002Findex",[109],{"title":105,"path":106,"stem":107},{"title":111,"path":112,"stem":113,"children":114},"Auto-generated data APIs","\u002Fdocs\u002Fproducts\u002Fapps\u002Fauto-generated-data-apis","docs\u002Fproducts\u002Fapps\u002Fauto-generated-data-apis\u002Findex",[115],{"title":111,"path":112,"stem":113},{"title":117,"path":118,"stem":119,"children":120},"Billing & Events","\u002Fdocs\u002Fproducts\u002Fapps\u002Fbilling-events","docs\u002Fproducts\u002Fapps\u002Fbilling-events\u002Findex",[121],{"title":117,"path":118,"stem":119},{"title":123,"path":124,"stem":125,"children":126},"Cockpit Integration","\u002Fdocs\u002Fproducts\u002Fapps\u002Fcockpit-integration","docs\u002Fproducts\u002Fapps\u002Fcockpit-integration\u002Findex",[127],{"title":123,"path":124,"stem":125},{"title":129,"path":130,"stem":131,"children":132},"App Model Concept","\u002Fdocs\u002Fproducts\u002Fapps\u002Fconcept","docs\u002Fproducts\u002Fapps\u002Fconcept\u002Findex",[133],{"title":129,"path":130,"stem":131},{"title":135,"path":136,"stem":137,"children":138},"App Lifecycle","\u002Fdocs\u002Fproducts\u002Fapps\u002Flifecycle","docs\u002Fproducts\u002Fapps\u002Flifecycle\u002Findex",[139],{"title":135,"path":136,"stem":137},{"title":141,"path":142,"stem":143,"children":144},"Manifest Reference","\u002Fdocs\u002Fproducts\u002Fapps\u002Fmanifest-reference","docs\u002Fproducts\u002Fapps\u002Fmanifest-reference\u002Findex",[145],{"title":141,"path":142,"stem":143},{"title":147,"path":148,"stem":149,"children":150},"Market Concept","\u002Fdocs\u002Fproducts\u002Fapps\u002Fmarket-concept","docs\u002Fproducts\u002Fapps\u002Fmarket-concept\u002Findex",[151],{"title":147,"path":148,"stem":149},{"title":153,"path":154,"stem":155,"children":156},"Policies","\u002Fdocs\u002Fproducts\u002Fapps\u002Fpolicies","docs\u002Fproducts\u002Fapps\u002Fpolicies\u002Findex",[157],{"title":153,"path":154,"stem":155},{"title":159,"path":160,"stem":161,"children":162},"Schema migrations","\u002Fdocs\u002Fproducts\u002Fapps\u002Fschema-migrator","docs\u002Fproducts\u002Fapps\u002Fschema-migrator\u002Findex",[163],{"title":159,"path":160,"stem":161},{"title":165,"path":166,"stem":167,"children":168},"Schema Reference","\u002Fdocs\u002Fproducts\u002Fapps\u002Fschema-reference","docs\u002Fproducts\u002Fapps\u002Fschema-reference\u002Findex",[169],{"title":165,"path":166,"stem":167},{"title":171,"path":172,"stem":173,"children":174},"Authentication","\u002Fdocs\u002Fproducts\u002Fauth","docs\u002Fproducts\u002Fauth\u002Findex",[175,176,182,188,194],{"title":171,"path":172,"stem":173},{"title":177,"path":178,"stem":179,"children":180},"API keys","\u002Fdocs\u002Fproducts\u002Fauth\u002Fapi-keys","docs\u002Fproducts\u002Fauth\u002Fapi-keys\u002Findex",[181],{"title":177,"path":178,"stem":179},{"title":183,"path":184,"stem":185,"children":186},"Multi-factor authentication","\u002Fdocs\u002Fproducts\u002Fauth\u002Fmfa","docs\u002Fproducts\u002Fauth\u002Fmfa\u002Findex",[187],{"title":183,"path":184,"stem":185},{"title":189,"path":190,"stem":191,"children":192},"Social sign-in","\u002Fdocs\u002Fproducts\u002Fauth\u002Foauth2","docs\u002Fproducts\u002Fauth\u002Foauth2\u002Findex",[193],{"title":189,"path":190,"stem":191},{"title":195,"path":196,"stem":197,"children":198},"Sessions","\u002Fdocs\u002Fproducts\u002Fauth\u002Fsessions","docs\u002Fproducts\u002Fauth\u002Fsessions\u002Findex",[199],{"title":195,"path":196,"stem":197},{"title":201,"path":202,"stem":203,"children":204},"Events","\u002Fdocs\u002Fproducts\u002Fevents","docs\u002Fproducts\u002Fevents\u002Findex",[205,206,212],{"title":201,"path":202,"stem":203},{"title":207,"path":208,"stem":209,"children":210},"Consuming events","\u002Fdocs\u002Fproducts\u002Fevents\u002Fconsuming-events","docs\u002Fproducts\u002Fevents\u002Fconsuming-events\u002Findex",[211],{"title":207,"path":208,"stem":209},{"title":213,"path":214,"stem":215,"children":216},"Event types","\u002Fdocs\u002Fproducts\u002Fevents\u002Fevent-types","docs\u002Fproducts\u002Fevents\u002Fevent-types\u002Findex",[217],{"title":213,"path":214,"stem":215},{"title":219,"path":220,"stem":221,"children":222},"Integration Studio","\u002Fdocs\u002Fproducts\u002Fintegration-studio","docs\u002Fproducts\u002Fintegration-studio\u002Findex",[223,224,230,236,242,248],{"title":219,"path":220,"stem":221},{"title":225,"path":226,"stem":227,"children":228},"Expression Syntax","\u002Fdocs\u002Fproducts\u002Fintegration-studio\u002Fexpression-syntax","docs\u002Fproducts\u002Fintegration-studio\u002Fexpression-syntax\u002Findex",[229],{"title":225,"path":226,"stem":227},{"title":231,"path":232,"stem":233,"children":234},"Node Types","\u002Fdocs\u002Fproducts\u002Fintegration-studio\u002Fnode-types","docs\u002Fproducts\u002Fintegration-studio\u002Fnode-types\u002Findex",[235],{"title":231,"path":232,"stem":233},{"title":237,"path":238,"stem":239,"children":240},"Dual-engine architecture","\u002Fdocs\u002Fproducts\u002Fintegration-studio\u002Foverview","docs\u002Fproducts\u002Fintegration-studio\u002Foverview\u002Findex",[241],{"title":237,"path":238,"stem":239},{"title":243,"path":244,"stem":245,"children":246},"Triggers","\u002Fdocs\u002Fproducts\u002Fintegration-studio\u002Ftriggers","docs\u002Fproducts\u002Fintegration-studio\u002Ftriggers\u002Findex",[247],{"title":243,"path":244,"stem":245},{"title":249,"path":250,"stem":251,"children":252},"Workflow Builder","\u002Fdocs\u002Fproducts\u002Fintegration-studio\u002Fworkflow-builder","docs\u002Fproducts\u002Fintegration-studio\u002Fworkflow-builder\u002Findex",[253],{"title":249,"path":250,"stem":251},{"title":255,"path":256,"stem":257,"children":258},"Network","\u002Fdocs\u002Fproducts\u002Fnetwork","docs\u002Fproducts\u002Fnetwork\u002Findex",[259,260,266,272,278,284,290,296,302,308,314],{"title":255,"path":256,"stem":257},{"title":261,"path":262,"stem":263,"children":264},"Caching","\u002Fdocs\u002Fproducts\u002Fnetwork\u002Fcaching","docs\u002Fproducts\u002Fnetwork\u002Fcaching\u002Findex",[265],{"title":261,"path":262,"stem":263},{"title":267,"path":268,"stem":269,"children":270},"Content delivery (CDN)","\u002Fdocs\u002Fproducts\u002Fnetwork\u002Fcdn","docs\u002Fproducts\u002Fnetwork\u002Fcdn\u002Findex",[271],{"title":267,"path":268,"stem":269},{"title":273,"path":274,"stem":275,"children":276},"Compression","\u002Fdocs\u002Fproducts\u002Fnetwork\u002Fcompression","docs\u002Fproducts\u002Fnetwork\u002Fcompression\u002Findex",[277],{"title":273,"path":274,"stem":275},{"title":279,"path":280,"stem":281,"children":282},"DDoS mitigation","\u002Fdocs\u002Fproducts\u002Fnetwork\u002Fddos","docs\u002Fproducts\u002Fnetwork\u002Fddos\u002Findex",[283],{"title":279,"path":280,"stem":281},{"title":285,"path":286,"stem":287,"children":288},"revenexx DNS service","\u002Fdocs\u002Fproducts\u002Fnetwork\u002Fdns","docs\u002Fproducts\u002Fnetwork\u002Fdns\u002Findex",[289],{"title":285,"path":286,"stem":287},{"title":291,"path":292,"stem":293,"children":294},"Edges","\u002Fdocs\u002Fproducts\u002Fnetwork\u002Fedges","docs\u002Fproducts\u002Fnetwork\u002Fedges\u002Findex",[295],{"title":291,"path":292,"stem":293},{"title":297,"path":298,"stem":299,"children":300},"Endpoints","\u002Fdocs\u002Fproducts\u002Fnetwork\u002Fendpoints","docs\u002Fproducts\u002Fnetwork\u002Fendpoints\u002Findex",[301],{"title":297,"path":298,"stem":299},{"title":303,"path":304,"stem":305,"children":306},"Regions","\u002Fdocs\u002Fproducts\u002Fnetwork\u002Fregions","docs\u002Fproducts\u002Fnetwork\u002Fregions\u002Findex",[307],{"title":303,"path":304,"stem":305},{"title":309,"path":310,"stem":311,"children":312},"Transport Layer Security (TLS)","\u002Fdocs\u002Fproducts\u002Fnetwork\u002Ftls","docs\u002Fproducts\u002Fnetwork\u002Ftls\u002Findex",[313],{"title":309,"path":310,"stem":311},{"title":315,"path":316,"stem":317,"children":318},"Web application firewall (WAF)","\u002Fdocs\u002Fproducts\u002Fnetwork\u002Fwaf","docs\u002Fproducts\u002Fnetwork\u002Fwaf\u002Findex",[319],{"title":315,"path":316,"stem":317},{"title":321,"path":322,"stem":323,"children":324},"Experience Studio","\u002Fdocs\u002Fproducts\u002Fsites","docs\u002Fproducts\u002Fsites\u002Findex",[325,326,332,337,343,349,355,361,367,373,379,385,391,397,403,409,487,505,511],{"title":321,"path":322,"stem":323},{"title":327,"path":328,"stem":329,"children":330},"Storefront Architecture","\u002Fdocs\u002Fproducts\u002Fsites\u002Farchitecture","docs\u002Fproducts\u002Fsites\u002Farchitecture\u002Findex",[331],{"title":327,"path":328,"stem":329},{"title":171,"path":333,"stem":334,"children":335},"\u002Fdocs\u002Fproducts\u002Fsites\u002Fauthentication","docs\u002Fproducts\u002Fsites\u002Fauthentication\u002Findex",[336],{"title":171,"path":333,"stem":334},{"title":338,"path":339,"stem":340,"children":341},"Blökkli Blocks","\u002Fdocs\u002Fproducts\u002Fsites\u002Fblokki-blocks","docs\u002Fproducts\u002Fsites\u002Fblokki-blocks\u002Findex",[342],{"title":338,"path":339,"stem":340},{"title":344,"path":345,"stem":346,"children":347},"Checkout","\u002Fdocs\u002Fproducts\u002Fsites\u002Fcheckout","docs\u002Fproducts\u002Fsites\u002Fcheckout\u002Findex",[348],{"title":344,"path":345,"stem":346},{"title":350,"path":351,"stem":352,"children":353},"Deploy from CLI","\u002Fdocs\u002Fproducts\u002Fsites\u002Fdeploy-from-cli","docs\u002Fproducts\u002Fsites\u002Fdeploy-from-cli\u002Findex",[354],{"title":350,"path":351,"stem":352},{"title":356,"path":357,"stem":358,"children":359},"Deploy from Git","\u002Fdocs\u002Fproducts\u002Fsites\u002Fdeploy-from-git","docs\u002Fproducts\u002Fsites\u002Fdeploy-from-git\u002Findex",[360],{"title":356,"path":357,"stem":358},{"title":362,"path":363,"stem":364,"children":365},"Deploy manually","\u002Fdocs\u002Fproducts\u002Fsites\u002Fdeploy-manually","docs\u002Fproducts\u002Fsites\u002Fdeploy-manually\u002Findex",[366],{"title":362,"path":363,"stem":364},{"title":368,"path":369,"stem":370,"children":371},"Deployments","\u002Fdocs\u002Fproducts\u002Fsites\u002Fdeployments","docs\u002Fproducts\u002Fsites\u002Fdeployments\u002Findex",[372],{"title":368,"path":369,"stem":370},{"title":374,"path":375,"stem":376,"children":377},"Develop revenexx Storefronts","\u002Fdocs\u002Fproducts\u002Fsites\u002Fdevelop","docs\u002Fproducts\u002Fsites\u002Fdevelop\u002Findex",[378],{"title":374,"path":375,"stem":376},{"title":380,"path":381,"stem":382,"children":383},"Domains","\u002Fdocs\u002Fproducts\u002Fsites\u002Fdomains","docs\u002Fproducts\u002Fsites\u002Fdomains\u002Findex",[384],{"title":380,"path":381,"stem":382},{"title":386,"path":387,"stem":388,"children":389},"Frameworks","\u002Fdocs\u002Fproducts\u002Fsites\u002Fframeworks","docs\u002Fproducts\u002Fsites\u002Fframeworks\u002Findex",[390],{"title":386,"path":387,"stem":388},{"title":392,"path":393,"stem":394,"children":395},"Instant rollbacks","\u002Fdocs\u002Fproducts\u002Fsites\u002Finstant-rollbacks","docs\u002Fproducts\u002Fsites\u002Finstant-rollbacks\u002Findex",[396],{"title":392,"path":393,"stem":394},{"title":398,"path":399,"stem":400,"children":401},"Logs","\u002Fdocs\u002Fproducts\u002Fsites\u002Flogs","docs\u002Fproducts\u002Fsites\u002Flogs\u002Findex",[402],{"title":398,"path":399,"stem":400},{"title":404,"path":405,"stem":406,"children":407},"Previews","\u002Fdocs\u002Fproducts\u002Fsites\u002Fpreviews","docs\u002Fproducts\u002Fsites\u002Fpreviews\u002Findex",[408],{"title":404,"path":405,"stem":406},{"title":410,"path":411,"stem":412,"children":413},"Start with Sites","\u002Fdocs\u002Fproducts\u002Fsites\u002Fquick-start","docs\u002Fproducts\u002Fsites\u002Fquick-start\u002Findex",[414,415,421,427,433,439,445,451,457,463,469,475,481],{"title":410,"path":411,"stem":412},{"title":416,"path":417,"stem":418,"children":419},"Deploy an Angular app to revenexx Storefronts","\u002Fdocs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fangular","docs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fangular\u002Findex",[420],{"title":416,"path":417,"stem":418},{"title":422,"path":423,"stem":424,"children":425},"Deploy a Astro app to revenexx Storefronts","\u002Fdocs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fastro","docs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fastro\u002Findex",[426],{"title":422,"path":423,"stem":424},{"title":428,"path":429,"stem":430,"children":431},"Deploy a Flutter Web app to revenexx Storefronts","\u002Fdocs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fflutter","docs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fflutter\u002Findex",[432],{"title":428,"path":429,"stem":430},{"title":434,"path":435,"stem":436,"children":437},"Deploy a Next.js app to revenexx Storefronts","\u002Fdocs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fnextjs","docs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fnextjs\u002Findex",[438],{"title":434,"path":435,"stem":436},{"title":440,"path":441,"stem":442,"children":443},"Deploy a Nuxt app to revenexx Storefronts","\u002Fdocs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fnuxt","docs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fnuxt\u002Findex",[444],{"title":440,"path":441,"stem":442},{"title":446,"path":447,"stem":448,"children":449},"Deploy a React Native app to revenexx Storefronts","\u002Fdocs\u002Fproducts\u002Fsites\u002Fquick-start\u002Freact-native","docs\u002Fproducts\u002Fsites\u002Fquick-start\u002Freact-native\u002Findex",[450],{"title":446,"path":447,"stem":448},{"title":452,"path":453,"stem":454,"children":455},"Deploy a React app to revenexx Storefronts","\u002Fdocs\u002Fproducts\u002Fsites\u002Fquick-start\u002Freact","docs\u002Fproducts\u002Fsites\u002Fquick-start\u002Freact\u002Findex",[456],{"title":452,"path":453,"stem":454},{"title":458,"path":459,"stem":460,"children":461},"Deploy a Remix app to revenexx Storefronts","\u002Fdocs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fremix","docs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fremix\u002Findex",[462],{"title":458,"path":459,"stem":460},{"title":464,"path":465,"stem":466,"children":467},"Deploy a SvelteKit app to revenexx Storefronts","\u002Fdocs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fsveltekit","docs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fsveltekit\u002Findex",[468],{"title":464,"path":465,"stem":466},{"title":470,"path":471,"stem":472,"children":473},"Deploy a TanStack Start app to revenexx Storefronts","\u002Fdocs\u002Fproducts\u002Fsites\u002Fquick-start\u002Ftanstack-start","docs\u002Fproducts\u002Fsites\u002Fquick-start\u002Ftanstack-start\u002Findex",[474],{"title":470,"path":471,"stem":472},{"title":476,"path":477,"stem":478,"children":479},"Deploy a Vanilla JS app to revenexx Storefronts","\u002Fdocs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fvanilla","docs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fvanilla\u002Findex",[480],{"title":476,"path":477,"stem":478},{"title":482,"path":483,"stem":484,"children":485},"Deploy a Vue.js app to revenexx Storefronts","\u002Fdocs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fvue","docs\u002Fproducts\u002Fsites\u002Fquick-start\u002Fvue\u002Findex",[486],{"title":482,"path":483,"stem":484},{"title":488,"path":489,"stem":490,"children":491},"Rendering","\u002Fdocs\u002Fproducts\u002Fsites\u002Frendering","docs\u002Fproducts\u002Fsites\u002Frendering\u002Findex",[492,493,499],{"title":488,"path":489,"stem":490},{"title":494,"path":495,"stem":496,"children":497},"Server Side Rendering","\u002Fdocs\u002Fproducts\u002Fsites\u002Frendering\u002Fssr","docs\u002Fproducts\u002Fsites\u002Frendering\u002Fssr\u002Findex",[498],{"title":494,"path":495,"stem":496},{"title":500,"path":501,"stem":502,"children":503},"Static","\u002Fdocs\u002Fproducts\u002Fsites\u002Frendering\u002Fstatic","docs\u002Fproducts\u002Fsites\u002Frendering\u002Fstatic\u002Findex",[504],{"title":500,"path":501,"stem":502},{"title":506,"path":507,"stem":508,"children":509},"Templates","\u002Fdocs\u002Fproducts\u002Fsites\u002Ftemplates","docs\u002Fproducts\u002Fsites\u002Ftemplates\u002Findex",[510],{"title":506,"path":507,"stem":508},{"title":512,"path":513,"stem":514,"children":515},"Theming","\u002Fdocs\u002Fproducts\u002Fsites\u002Ftheming","docs\u002Fproducts\u002Fsites\u002Ftheming\u002Findex",[516],{"title":512,"path":513,"stem":514},{"title":518,"path":519,"stem":520,"children":521},"Storage","\u002Fdocs\u002Fproducts\u002Fstorage","docs\u002Fproducts\u002Fstorage\u002Findex",[522,523,529,535,541,547,553,559],{"title":518,"path":519,"stem":520},{"title":524,"path":525,"stem":526,"children":527},"Folders","\u002Fdocs\u002Fproducts\u002Fstorage\u002Fbuckets","docs\u002Fproducts\u002Fstorage\u002Fbuckets\u002Findex",[528],{"title":524,"path":525,"stem":526},{"title":530,"path":531,"stem":532,"children":533},"Signed URLs and access","\u002Fdocs\u002Fproducts\u002Fstorage\u002Ffile-tokens","docs\u002Fproducts\u002Fstorage\u002Ffile-tokens\u002Findex",[534],{"title":530,"path":531,"stem":532},{"title":536,"path":537,"stem":538,"children":539},"Serve and transform images","\u002Fdocs\u002Fproducts\u002Fstorage\u002Fimages","docs\u002Fproducts\u002Fstorage\u002Fimages\u002Findex",[540],{"title":536,"path":537,"stem":538},{"title":542,"path":543,"stem":544,"children":545},"3D assets","\u002Fdocs\u002Fproducts\u002Fstorage\u002Fmodel-viewer","docs\u002Fproducts\u002Fstorage\u002Fmodel-viewer\u002Findex",[546],{"title":542,"path":543,"stem":544},{"title":548,"path":549,"stem":550,"children":551},"Access control and visibility","\u002Fdocs\u002Fproducts\u002Fstorage\u002Fpermissions","docs\u002Fproducts\u002Fstorage\u002Fpermissions\u002Findex",[552],{"title":548,"path":549,"stem":550},{"title":554,"path":555,"stem":556,"children":557},"Quick start","\u002Fdocs\u002Fproducts\u002Fstorage\u002Fquick-start","docs\u002Fproducts\u002Fstorage\u002Fquick-start\u002Findex",[558],{"title":554,"path":555,"stem":556},{"title":560,"path":561,"stem":562,"children":563},"Upload and manage files","\u002Fdocs\u002Fproducts\u002Fstorage\u002Fupload-download","docs\u002Fproducts\u002Fstorage\u002Fupload-download\u002Findex",[564],{"title":560,"path":561,"stem":562},{"title":566,"path":567,"stem":568,"children":569},"Webhooks","\u002Fdocs\u002Fproducts\u002Fwebhooks","docs\u002Fproducts\u002Fwebhooks\u002Findex",[570,571,577],{"title":566,"path":567,"stem":568},{"title":572,"path":573,"stem":574,"children":575},"Delivery","\u002Fdocs\u002Fproducts\u002Fwebhooks\u002Fdelivery","docs\u002Fproducts\u002Fwebhooks\u002Fdelivery\u002Findex",[576],{"title":572,"path":573,"stem":574},{"title":578,"path":579,"stem":580,"children":581},"Security","\u002Fdocs\u002Fproducts\u002Fwebhooks\u002Fsecurity","docs\u002Fproducts\u002Fwebhooks\u002Fsecurity\u002Findex",[582],{"title":578,"path":579,"stem":580},{"title":584,"path":585,"stem":586,"children":587},"SDKs","\u002Fdocs\u002Fsdks","docs\u002Fsdks\u002Findex",[588,589,595,601,607,613,619],{"title":584,"path":585,"stem":586},{"title":590,"path":591,"stem":592,"children":593},"App SDK","\u002Fdocs\u002Fsdks\u002Fapp-sdk","docs\u002Fsdks\u002Fapp-sdk\u002Findex",[594],{"title":590,"path":591,"stem":592},{"title":596,"path":597,"stem":598,"children":599},"CLI","\u002Fdocs\u002Fsdks\u002Fcli","docs\u002Fsdks\u002Fcli\u002Findex",[600],{"title":596,"path":597,"stem":598},{"title":602,"path":603,"stem":604,"children":605},"Integration Node SDK","\u002Fdocs\u002Fsdks\u002Fintegration-nodes","docs\u002Fsdks\u002Fintegration-nodes\u002Findex",[606],{"title":602,"path":603,"stem":604},{"title":608,"path":609,"stem":610,"children":611},"Node SDK","\u002Fdocs\u002Fsdks\u002Fnode","docs\u002Fsdks\u002Fnode\u002Findex",[612],{"title":608,"path":609,"stem":610},{"title":614,"path":615,"stem":616,"children":617},"PHP SDK","\u002Fdocs\u002Fsdks\u002Fphp","docs\u002Fsdks\u002Fphp\u002Findex",[618],{"title":614,"path":615,"stem":616},{"title":620,"path":621,"stem":622,"children":623},"Web \u002F JavaScript SDK","\u002Fdocs\u002Fsdks\u002Fweb","docs\u002Fsdks\u002Fweb\u002Findex",[624],{"title":620,"path":621,"stem":622},{"title":626,"path":627,"stem":628,"children":629},"Tooling","\u002Fdocs\u002Ftooling","docs\u002Ftooling\u002Findex",[630,631,637,864],{"title":626,"path":627,"stem":628},{"title":632,"path":633,"stem":634,"children":635},"Command Center","\u002Fdocs\u002Ftooling\u002Fcommand-center","docs\u002Ftooling\u002Fcommand-center\u002Findex",[636],{"title":632,"path":633,"stem":634},{"title":638,"path":639,"stem":640,"children":641},"Command line","\u002Fdocs\u002Ftooling\u002Fcommand-line","docs\u002Ftooling\u002Fcommand-line\u002Findex",[642,643,649,654,660,666,672,678,684,828,834,840,846,852,858],{"title":638,"path":639,"stem":640},{"title":644,"path":645,"stem":646,"children":647},"Aliases","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Faliases","docs\u002Ftooling\u002Fcommand-line\u002Faliases\u002Findex",[648],{"title":644,"path":645,"stem":646},{"title":171,"path":650,"stem":651,"children":652},"\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Fauthentication","docs\u002Ftooling\u002Fcommand-line\u002Fauthentication\u002Findex",[653],{"title":171,"path":650,"stem":651},{"title":655,"path":656,"stem":657,"children":658},"Commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Fcommands","docs\u002Ftooling\u002Fcommand-line\u002Fcommands\u002Findex",[659],{"title":655,"path":656,"stem":657},{"title":661,"path":662,"stem":663,"children":664},"Installation","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Finstallation","docs\u002Ftooling\u002Fcommand-line\u002Finstallation\u002Findex",[665],{"title":661,"path":662,"stem":663},{"title":667,"path":668,"stem":669,"children":670},"Interactive use","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Finteractive","docs\u002Ftooling\u002Fcommand-line\u002Finteractive\u002Findex",[671],{"title":667,"path":668,"stem":669},{"title":673,"path":674,"stem":675,"children":676},"Non-interactive use","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Fnon-interactive","docs\u002Ftooling\u002Fcommand-line\u002Fnon-interactive\u002Findex",[677],{"title":673,"path":674,"stem":675},{"title":679,"path":680,"stem":681,"children":682},"Project configuration","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Fproject-configuration","docs\u002Ftooling\u002Fcommand-line\u002Fproject-configuration\u002Findex",[683],{"title":679,"path":680,"stem":681},{"title":685,"path":686,"stem":687,"children":688},"Command reference","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Findex",[689,690,696,702,708,714,720,726,732,738,744,750,756,762,768,774,780,786,792,798,804,810,816,822],{"title":685,"path":686,"stem":687},{"title":691,"path":692,"stem":693,"children":694},"About commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fabout","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fabout\u002Findex",[695],{"title":691,"path":692,"stem":693},{"title":697,"path":698,"stem":699,"children":700},"Apps commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fapps","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fapps\u002Findex",[701],{"title":697,"path":698,"stem":699},{"title":703,"path":704,"stem":705,"children":706},"Carts commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fcarts","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fcarts\u002Findex",[707],{"title":703,"path":704,"stem":705},{"title":709,"path":710,"stem":711,"children":712},"Channels commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fchannels","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fchannels\u002Findex",[713],{"title":709,"path":710,"stem":711},{"title":715,"path":716,"stem":717,"children":718},"Create commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fcreate","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fcreate\u002Findex",[719],{"title":715,"path":716,"stem":717},{"title":721,"path":722,"stem":723,"children":724},"Customers commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fcustomers","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fcustomers\u002Findex",[725],{"title":721,"path":722,"stem":723},{"title":727,"path":728,"stem":729,"children":730},"Deploy commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fdeploy","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fdeploy\u002Findex",[731],{"title":727,"path":728,"stem":729},{"title":733,"path":734,"stem":735,"children":736},"Forms commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fforms","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fforms\u002Findex",[737],{"title":733,"path":734,"stem":735},{"title":739,"path":740,"stem":741,"children":742},"Inventories commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Finventories","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Finventories\u002Findex",[743],{"title":739,"path":740,"stem":741},{"title":745,"path":746,"stem":747,"children":748},"Markets commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fmarkets","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fmarkets\u002Findex",[749],{"title":745,"path":746,"stem":747},{"title":751,"path":752,"stem":753,"children":754},"Order lists commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Forderlists","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Forderlists\u002Findex",[755],{"title":751,"path":752,"stem":753},{"title":757,"path":758,"stem":759,"children":760},"Orders commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Forders","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Forders\u002Findex",[761],{"title":757,"path":758,"stem":759},{"title":763,"path":764,"stem":765,"children":766},"Pages commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fpages","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fpages\u002Findex",[767],{"title":763,"path":764,"stem":765},{"title":769,"path":770,"stem":771,"children":772},"Payments commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fpayments","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fpayments\u002Findex",[773],{"title":769,"path":770,"stem":771},{"title":775,"path":776,"stem":777,"children":778},"Prices commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fprices","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fprices\u002Findex",[779],{"title":775,"path":776,"stem":777},{"title":781,"path":782,"stem":783,"children":784},"Products commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fproducts","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fproducts\u002Findex",[785],{"title":781,"path":782,"stem":783},{"title":787,"path":788,"stem":789,"children":790},"Search commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fsearch","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fsearch\u002Findex",[791],{"title":787,"path":788,"stem":789},{"title":793,"path":794,"stem":795,"children":796},"Settings commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fsettings","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fsettings\u002Findex",[797],{"title":793,"path":794,"stem":795},{"title":799,"path":800,"stem":801,"children":802},"Shipping commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fshipping","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fshipping\u002Findex",[803],{"title":799,"path":800,"stem":801},{"title":805,"path":806,"stem":807,"children":808},"Sites commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fsites","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fsites\u002Findex",[809],{"title":805,"path":806,"stem":807},{"title":811,"path":812,"stem":813,"children":814},"Skills commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fskills","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fskills\u002Findex",[815],{"title":811,"path":812,"stem":813},{"title":817,"path":818,"stem":819,"children":820},"Storage commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fstorage","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Fstorage\u002Findex",[821],{"title":817,"path":818,"stem":819},{"title":823,"path":824,"stem":825,"children":826},"Tokens commands","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Freference\u002Ftokens","docs\u002Ftooling\u002Fcommand-line\u002Freference\u002Ftokens\u002Findex",[827],{"title":823,"path":824,"stem":825},{"title":829,"path":830,"stem":831,"children":832},"Interactive shell (REPL)","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Frepl","docs\u002Ftooling\u002Fcommand-line\u002Frepl\u002Findex",[833],{"title":829,"path":830,"stem":831},{"title":835,"path":836,"stem":837,"children":838},"Scaffolding","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Fscaffolding","docs\u002Ftooling\u002Fcommand-line\u002Fscaffolding\u002Findex",[839],{"title":835,"path":836,"stem":837},{"title":841,"path":842,"stem":843,"children":844},"Scripting & output","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Fscripting","docs\u002Ftooling\u002Fcommand-line\u002Fscripting\u002Findex",[845],{"title":841,"path":842,"stem":843},{"title":847,"path":848,"stem":849,"children":850},"Skills","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Fskills","docs\u002Ftooling\u002Fcommand-line\u002Fskills\u002Findex",[851],{"title":847,"path":848,"stem":849},{"title":853,"path":854,"stem":855,"children":856},"Full-screen app (TUI)","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Ftui","docs\u002Ftooling\u002Fcommand-line\u002Ftui\u002Findex",[857],{"title":853,"path":854,"stem":855},{"title":859,"path":860,"stem":861,"children":862},"Type generation","\u002Fdocs\u002Ftooling\u002Fcommand-line\u002Ftype-generation","docs\u002Ftooling\u002Fcommand-line\u002Ftype-generation\u002Findex",[863],{"title":859,"path":860,"stem":861},{"title":865,"path":866,"stem":867,"children":868},"Model Context Protocol","\u002Fdocs\u002Ftooling\u002Fmcp","docs\u002Ftooling\u002Fmcp\u002Findex",[869,870,876,882,888,894,900,906,912],{"title":865,"path":866,"stem":867},{"title":871,"path":872,"stem":873,"children":874},"revenexx docs MCP in Google Antigravity","\u002Fdocs\u002Ftooling\u002Fmcp\u002Fantigravity","docs\u002Ftooling\u002Fmcp\u002Fantigravity\u002Findex",[875],{"title":871,"path":872,"stem":873},{"title":877,"path":878,"stem":879,"children":880},"revenexx docs MCP in Claude Code","\u002Fdocs\u002Ftooling\u002Fmcp\u002Fclaude-code","docs\u002Ftooling\u002Fmcp\u002Fclaude-code\u002Findex",[881],{"title":877,"path":878,"stem":879},{"title":883,"path":884,"stem":885,"children":886},"revenexx docs MCP in Claude Desktop","\u002Fdocs\u002Ftooling\u002Fmcp\u002Fclaude-desktop","docs\u002Ftooling\u002Fmcp\u002Fclaude-desktop\u002Findex",[887],{"title":883,"path":884,"stem":885},{"title":889,"path":890,"stem":891,"children":892},"revenexx docs MCP in Cursor","\u002Fdocs\u002Ftooling\u002Fmcp\u002Fcursor","docs\u002Ftooling\u002Fmcp\u002Fcursor\u002Findex",[893],{"title":889,"path":890,"stem":891},{"title":895,"path":896,"stem":897,"children":898},"revenexx docs MCP in OpenCode","\u002Fdocs\u002Ftooling\u002Fmcp\u002Fopencode","docs\u002Ftooling\u002Fmcp\u002Fopencode\u002Findex",[899],{"title":895,"path":896,"stem":897},{"title":901,"path":902,"stem":903,"children":904},"revenexx docs MCP in VS Code","\u002Fdocs\u002Ftooling\u002Fmcp\u002Fvscode","docs\u002Ftooling\u002Fmcp\u002Fvscode\u002Findex",[905],{"title":901,"path":902,"stem":903},{"title":907,"path":908,"stem":909,"children":910},"revenexx docs MCP in Windsurf","\u002Fdocs\u002Ftooling\u002Fmcp\u002Fwindsurf","docs\u002Ftooling\u002Fmcp\u002Fwindsurf\u002Findex",[911],{"title":907,"path":908,"stem":909},{"title":913,"path":914,"stem":915,"children":916},"revenexx docs MCP in Zenflow","\u002Fdocs\u002Ftooling\u002Fmcp\u002Fzenflow","docs\u002Ftooling\u002Fmcp\u002Fzenflow\u002Findex",[917],{"title":913,"path":914,"stem":915},{"title":919,"path":920,"stem":921,"children":922},"Tutorials","\u002Fdocs\u002Ftutorials","docs\u002Ftutorials\u002Findex",[923,924,948,954],{"title":919,"path":920,"stem":921},{"title":925,"path":926,"stem":927,"children":928},"Build a revenexx App","\u002Fdocs\u002Ftutorials\u002Fapps","docs\u002Ftutorials\u002Fapps\u002Findex",[929,930,936,942],{"title":925,"path":926,"stem":927},{"title":931,"path":932,"stem":933,"children":934},"Add a data model","\u002Fdocs\u002Ftutorials\u002Fapps\u002Fadd-a-data-model","docs\u002Ftutorials\u002Fapps\u002Fadd-a-data-model\u002Findex",[935],{"title":931,"path":932,"stem":933},{"title":937,"path":938,"stem":939,"children":940},"Build your first app","\u002Fdocs\u002Ftutorials\u002Fapps\u002Fbuild-your-first-app","docs\u002Ftutorials\u002Fapps\u002Fbuild-your-first-app\u002Findex",[941],{"title":937,"path":938,"stem":939},{"title":943,"path":944,"stem":945,"children":946},"Deploy with the CLI","\u002Fdocs\u002Ftutorials\u002Fapps\u002Fdeploy-with-the-cli","docs\u002Ftutorials\u002Fapps\u002Fdeploy-with-the-cli\u002Findex",[947],{"title":943,"path":944,"stem":945},{"title":949,"path":950,"stem":951,"children":952},"Examples","\u002Fdocs\u002Ftutorials\u002Fexamples","docs\u002Ftutorials\u002Fexamples\u002Findex",[953],{"title":949,"path":950,"stem":951},{"title":955,"path":956,"stem":957,"children":958},"Build a storefront Theme","\u002Fdocs\u002Ftutorials\u002Fthemes","docs\u002Ftutorials\u002Fthemes\u002Findex",[959,960,966,972,978],{"title":955,"path":956,"stem":957},{"title":961,"path":962,"stem":963,"children":964},"Build your first Theme","\u002Fdocs\u002Ftutorials\u002Fthemes\u002Fbuild-your-first-theme","docs\u002Ftutorials\u002Fthemes\u002Fbuild-your-first-theme\u002Findex",[965],{"title":961,"path":962,"stem":963},{"title":967,"path":968,"stem":969,"children":970},"Customize blocks","\u002Fdocs\u002Ftutorials\u002Fthemes\u002Fcustomize-blocks","docs\u002Ftutorials\u002Fthemes\u002Fcustomize-blocks\u002Findex",[971],{"title":967,"path":968,"stem":969},{"title":973,"path":974,"stem":975,"children":976},"Deploy your storefront","\u002Fdocs\u002Ftutorials\u002Fthemes\u002Fdeploy-your-storefront","docs\u002Ftutorials\u002Fthemes\u002Fdeploy-your-storefront\u002Findex",[977],{"title":973,"path":974,"stem":975},{"title":979,"path":980,"stem":981,"children":982},"Theme tokens and styling","\u002Fdocs\u002Ftutorials\u002Fthemes\u002Ftheme-tokens-and-styling","docs\u002Ftutorials\u002Fthemes\u002Ftheme-tokens-and-styling\u002Findex",[983],{"title":979,"path":980,"stem":981},{"id":985,"title":225,"body":986,"description":3952,"extension":3953,"landing":3954,"links":3954,"meta":3955,"navigation":3957,"path":226,"seo":3958,"sitemap":3959,"stem":227,"__hash__":3960},"docs\u002Fdocs\u002Fproducts\u002Fintegration-studio\u002Fexpression-syntax\u002Findex.md",{"type":987,"value":988,"toc":3926},"minimark",[989,1002,1014,1029,1034,1037,1214,1218,1230,1238,1246,1275,1278,1326,1333,1336,1386,1389,1440,1447,1450,1481,1512,1515,1546,1549,1580,1583,1590,1593,1659,1677,1684,1687,1737,1771,1775,1778,1823,1838,1842,1845,1849,1860,2399,2403,2406,2813,2817,2824,3184,3194,3198,3211,3410,3420,3424,3427,3434,3465,3472,3502,3512,3522,3552,3559,3609,3613,3616,3626,3656,3670,3735,3741,3771,3785,3835,3839,3854,3857,3888,3891,3895,3922],[990,991,992,993,997,998,1001],"p",{},"This is the reference for ",[994,995,996],"strong",{},"integration engineers"," configuring workflow nodes. Every value you can configure on a node — a URL, a header, a body field, a mapping rule — can either be a static literal or an ",[994,999,1000],{},"expression"," that pulls data from somewhere else (a previous step's output, a secret, an environment variable, the workflow's input).",[990,1003,1004,1005,1009,1010,1013],{},"Expressions are how data flows from one step to the next without you writing glue code. They look like this: ",[1006,1007,1008],"code",{},"{{secrets.API_KEY}}"," or ",[1006,1011,1012],{},"{{steps.1.outputs.body}}",". Everywhere this page talks about an expression, the syntax is double curly braces around a path.",[1015,1016,1017,1020,1021,1024,1025,1028],"warning",{},[994,1018,1019],{},"Format under review."," The DX-29 source ticket specifies a slightly different expression syntax: ",[1006,1022,1023],{},"${{ vars.X }}"," and ",[1006,1026,1027],{},"${{ nodes.id.outputs.port }}"," (referencing nodes by ID instead of by index). The current implementation uses the simpler index-based form documented here. The ID-based form is more robust against node reordering, and the platform team is evaluating switching to it. If you're building a workflow that will live for a long time, expect a migration path.",[1030,1031,1033],"h2",{"id":1032},"expression-syntax-in-one-example","Expression syntax, in one example",[990,1035,1036],{},"Expressions appear anywhere in a node's configuration:",[1038,1039,1044],"pre",{"className":1040,"code":1041,"language":1042,"meta":1043,"style":1043},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"connector\": \"http-request\",\n  \"config\": {\n    \"url\": \"https:\u002F\u002Fapi.example.com\u002Forders\u002F{{order_id}}\",\n    \"headers\": {\n      \"Authorization\": \"Bearer {{secrets.API_KEY}}\"\n    },\n    \"body\": {\n      \"items\": \"{{steps.2.outputs}}\"\n    }\n  }\n}\n","json","",[1006,1045,1046,1055,1083,1098,1121,1135,1157,1163,1177,1196,1202,1208],{"__ignoreMap":1043},[1047,1048,1051],"span",{"class":1049,"line":1050},"line",1,[1047,1052,1054],{"class":1053},"sMK4o","{\n",[1047,1056,1058,1061,1065,1068,1071,1074,1078,1080],{"class":1049,"line":1057},2,[1047,1059,1060],{"class":1053},"  \"",[1047,1062,1064],{"class":1063},"spNyl","connector",[1047,1066,1067],{"class":1053},"\"",[1047,1069,1070],{"class":1053},":",[1047,1072,1073],{"class":1053}," \"",[1047,1075,1077],{"class":1076},"sfazB","http-request",[1047,1079,1067],{"class":1053},[1047,1081,1082],{"class":1053},",\n",[1047,1084,1086,1088,1091,1093,1095],{"class":1049,"line":1085},3,[1047,1087,1060],{"class":1053},[1047,1089,1090],{"class":1063},"config",[1047,1092,1067],{"class":1053},[1047,1094,1070],{"class":1053},[1047,1096,1097],{"class":1053}," {\n",[1047,1099,1101,1104,1108,1110,1112,1114,1117,1119],{"class":1049,"line":1100},4,[1047,1102,1103],{"class":1053},"    \"",[1047,1105,1107],{"class":1106},"sBMFI","url",[1047,1109,1067],{"class":1053},[1047,1111,1070],{"class":1053},[1047,1113,1073],{"class":1053},[1047,1115,1116],{"class":1076},"https:\u002F\u002Fapi.example.com\u002Forders\u002F{{order_id}}",[1047,1118,1067],{"class":1053},[1047,1120,1082],{"class":1053},[1047,1122,1124,1126,1129,1131,1133],{"class":1049,"line":1123},5,[1047,1125,1103],{"class":1053},[1047,1127,1128],{"class":1106},"headers",[1047,1130,1067],{"class":1053},[1047,1132,1070],{"class":1053},[1047,1134,1097],{"class":1053},[1047,1136,1138,1141,1145,1147,1149,1151,1154],{"class":1049,"line":1137},6,[1047,1139,1140],{"class":1053},"      \"",[1047,1142,1144],{"class":1143},"sbssI","Authorization",[1047,1146,1067],{"class":1053},[1047,1148,1070],{"class":1053},[1047,1150,1073],{"class":1053},[1047,1152,1153],{"class":1076},"Bearer {{secrets.API_KEY}}",[1047,1155,1156],{"class":1053},"\"\n",[1047,1158,1160],{"class":1049,"line":1159},7,[1047,1161,1162],{"class":1053},"    },\n",[1047,1164,1166,1168,1171,1173,1175],{"class":1049,"line":1165},8,[1047,1167,1103],{"class":1053},[1047,1169,1170],{"class":1106},"body",[1047,1172,1067],{"class":1053},[1047,1174,1070],{"class":1053},[1047,1176,1097],{"class":1053},[1047,1178,1180,1182,1185,1187,1189,1191,1194],{"class":1049,"line":1179},9,[1047,1181,1140],{"class":1053},[1047,1183,1184],{"class":1143},"items",[1047,1186,1067],{"class":1053},[1047,1188,1070],{"class":1053},[1047,1190,1073],{"class":1053},[1047,1192,1193],{"class":1076},"{{steps.2.outputs}}",[1047,1195,1156],{"class":1053},[1047,1197,1199],{"class":1049,"line":1198},10,[1047,1200,1201],{"class":1053},"    }\n",[1047,1203,1205],{"class":1049,"line":1204},11,[1047,1206,1207],{"class":1053},"  }\n",[1047,1209,1211],{"class":1049,"line":1210},12,[1047,1212,1213],{"class":1053},"}\n",[1030,1215,1217],{"id":1216},"available-variables","Available Variables",[990,1219,1220,1221,1225,1226,1229],{},"Everything an expression can reach falls into one of a handful of namespaces, each with its own prefix. There's the workflow's input, the output of earlier steps, your secrets, and your environment variables. The rest of this section takes them one at a time; the short version is that the prefix tells you ",[1222,1223,1224],"em",{},"where"," a value comes from, and the path after it tells you ",[1222,1227,1228],{},"which"," value.",[1231,1232,1234,1235],"h3",{"id":1233},"input-data","Input Data: ",[1006,1236,1237],{},"{{$}}",[990,1239,1240,1242,1243,1245],{},[1006,1241,1237],{}," is the data the workflow started with — whatever the trigger produced. A bare ",[1006,1244,1237],{}," hands the entire input through untouched, which is handy when you just want to forward a webhook's payload to another system:",[1038,1247,1249],{"className":1040,"code":1248,"language":1042,"meta":1043,"style":1043},"{\n  \"body\": \"{{$}}\"\n}\n",[1006,1250,1251,1255,1271],{"__ignoreMap":1043},[1047,1252,1253],{"class":1049,"line":1050},[1047,1254,1054],{"class":1053},[1047,1256,1257,1259,1261,1263,1265,1267,1269],{"class":1049,"line":1057},[1047,1258,1060],{"class":1053},[1047,1260,1170],{"class":1063},[1047,1262,1067],{"class":1053},[1047,1264,1070],{"class":1053},[1047,1266,1073],{"class":1053},[1047,1268,1237],{"class":1076},[1047,1270,1156],{"class":1053},[1047,1272,1273],{"class":1049,"line":1085},[1047,1274,1213],{"class":1053},[990,1276,1277],{},"For a webhook trigger the input carries more than the body, so you can pull the headers separately when you need them — for example to inspect an authorization or signature header:",[1038,1279,1281],{"className":1040,"code":1280,"language":1042,"meta":1043,"style":1043},"{\n  \"body\": \"{{$}}\",\n  \"headers\": \"{{$.headers}}\"\n}\n",[1006,1282,1283,1287,1305,1322],{"__ignoreMap":1043},[1047,1284,1285],{"class":1049,"line":1050},[1047,1286,1054],{"class":1053},[1047,1288,1289,1291,1293,1295,1297,1299,1301,1303],{"class":1049,"line":1057},[1047,1290,1060],{"class":1053},[1047,1292,1170],{"class":1063},[1047,1294,1067],{"class":1053},[1047,1296,1070],{"class":1053},[1047,1298,1073],{"class":1053},[1047,1300,1237],{"class":1076},[1047,1302,1067],{"class":1053},[1047,1304,1082],{"class":1053},[1047,1306,1307,1309,1311,1313,1315,1317,1320],{"class":1049,"line":1085},[1047,1308,1060],{"class":1053},[1047,1310,1128],{"class":1063},[1047,1312,1067],{"class":1053},[1047,1314,1070],{"class":1053},[1047,1316,1073],{"class":1053},[1047,1318,1319],{"class":1076},"{{$.headers}}",[1047,1321,1156],{"class":1053},[1047,1323,1324],{"class":1049,"line":1100},[1047,1325,1213],{"class":1053},[1231,1327,1329,1330],{"id":1328},"field-access-field","Field Access: ",[1006,1331,1332],{},"{{$.field}}",[990,1334,1335],{},"More often you want one value out of the input rather than the whole thing. A dot path drills in:",[1038,1337,1339],{"className":1040,"code":1338,"language":1042,"meta":1043,"style":1043},"{\n  \"url\": \"https:\u002F\u002Fapi.example.com\u002Fcustomers\u002F{{$.customer_id}}\",\n  \"email\": \"{{$.contact_email}}\"\n}\n",[1006,1340,1341,1345,1364,1382],{"__ignoreMap":1043},[1047,1342,1343],{"class":1049,"line":1050},[1047,1344,1054],{"class":1053},[1047,1346,1347,1349,1351,1353,1355,1357,1360,1362],{"class":1049,"line":1057},[1047,1348,1060],{"class":1053},[1047,1350,1107],{"class":1063},[1047,1352,1067],{"class":1053},[1047,1354,1070],{"class":1053},[1047,1356,1073],{"class":1053},[1047,1358,1359],{"class":1076},"https:\u002F\u002Fapi.example.com\u002Fcustomers\u002F{{$.customer_id}}",[1047,1361,1067],{"class":1053},[1047,1363,1082],{"class":1053},[1047,1365,1366,1368,1371,1373,1375,1377,1380],{"class":1049,"line":1085},[1047,1367,1060],{"class":1053},[1047,1369,1370],{"class":1063},"email",[1047,1372,1067],{"class":1053},[1047,1374,1070],{"class":1053},[1047,1376,1073],{"class":1053},[1047,1378,1379],{"class":1076},"{{$.contact_email}}",[1047,1381,1156],{"class":1053},[1047,1383,1384],{"class":1049,"line":1100},[1047,1385,1213],{"class":1053},[990,1387,1388],{},"The same dotted notation keeps going for nested objects, so a shipping address buried a level deep is still a single expression:",[1038,1390,1392],{"className":1040,"code":1391,"language":1042,"meta":1043,"style":1043},"{\n  \"country\": \"{{$.shipping.country}}\",\n  \"postal_code\": \"{{$.shipping.postal_code}}\"\n}\n",[1006,1393,1394,1398,1418,1436],{"__ignoreMap":1043},[1047,1395,1396],{"class":1049,"line":1050},[1047,1397,1054],{"class":1053},[1047,1399,1400,1402,1405,1407,1409,1411,1414,1416],{"class":1049,"line":1057},[1047,1401,1060],{"class":1053},[1047,1403,1404],{"class":1063},"country",[1047,1406,1067],{"class":1053},[1047,1408,1070],{"class":1053},[1047,1410,1073],{"class":1053},[1047,1412,1413],{"class":1076},"{{$.shipping.country}}",[1047,1415,1067],{"class":1053},[1047,1417,1082],{"class":1053},[1047,1419,1420,1422,1425,1427,1429,1431,1434],{"class":1049,"line":1085},[1047,1421,1060],{"class":1053},[1047,1423,1424],{"class":1063},"postal_code",[1047,1426,1067],{"class":1053},[1047,1428,1070],{"class":1053},[1047,1430,1073],{"class":1053},[1047,1432,1433],{"class":1076},"{{$.shipping.postal_code}}",[1047,1435,1156],{"class":1053},[1047,1437,1438],{"class":1049,"line":1100},[1047,1439,1213],{"class":1053},[1231,1441,1443,1444],{"id":1442},"step-outputs-stepsnoutputs","Step Outputs: ",[1006,1445,1446],{},"{{steps.N.outputs}}",[990,1448,1449],{},"This is the one that makes multi-step workflows work: any step can read what an earlier step produced, addressed by its index. Indexing is zero-based, so the trigger is step 0, the first node after it is step 1, and so on. Pull a single field when that's all you need —",[1038,1451,1453],{"className":1040,"code":1452,"language":1042,"meta":1043,"style":1043},"{\n  \"status\": \"{{steps.0.outputs.status}}\"\n}\n",[1006,1454,1455,1459,1477],{"__ignoreMap":1043},[1047,1456,1457],{"class":1049,"line":1050},[1047,1458,1054],{"class":1053},[1047,1460,1461,1463,1466,1468,1470,1472,1475],{"class":1049,"line":1057},[1047,1462,1060],{"class":1053},[1047,1464,1465],{"class":1063},"status",[1047,1467,1067],{"class":1053},[1047,1469,1070],{"class":1053},[1047,1471,1073],{"class":1053},[1047,1473,1474],{"class":1076},"{{steps.0.outputs.status}}",[1047,1476,1156],{"class":1053},[1047,1478,1479],{"class":1049,"line":1085},[1047,1480,1213],{"class":1053},[1038,1482,1484],{"className":1040,"code":1483,"language":1042,"meta":1043,"style":1043},"{\n  \"total\": \"{{steps.1.outputs.total}}\"\n}\n",[1006,1485,1486,1490,1508],{"__ignoreMap":1043},[1047,1487,1488],{"class":1049,"line":1050},[1047,1489,1054],{"class":1053},[1047,1491,1492,1494,1497,1499,1501,1503,1506],{"class":1049,"line":1057},[1047,1493,1060],{"class":1053},[1047,1495,1496],{"class":1063},"total",[1047,1498,1067],{"class":1053},[1047,1500,1070],{"class":1053},[1047,1502,1073],{"class":1053},[1047,1504,1505],{"class":1076},"{{steps.1.outputs.total}}",[1047,1507,1156],{"class":1053},[1047,1509,1510],{"class":1049,"line":1085},[1047,1511,1213],{"class":1053},[990,1513,1514],{},"— or take a step's entire output to pass along wholesale:",[1038,1516,1518],{"className":1040,"code":1517,"language":1042,"meta":1043,"style":1043},"{\n  \"data\": \"{{steps.0.outputs}}\"\n}\n",[1006,1519,1520,1524,1542],{"__ignoreMap":1043},[1047,1521,1522],{"class":1049,"line":1050},[1047,1523,1054],{"class":1053},[1047,1525,1526,1528,1531,1533,1535,1537,1540],{"class":1049,"line":1057},[1047,1527,1060],{"class":1053},[1047,1529,1530],{"class":1063},"data",[1047,1532,1067],{"class":1053},[1047,1534,1070],{"class":1053},[1047,1536,1073],{"class":1053},[1047,1538,1539],{"class":1076},"{{steps.0.outputs}}",[1047,1541,1156],{"class":1053},[1047,1543,1544],{"class":1049,"line":1085},[1047,1545,1213],{"class":1053},[990,1547,1548],{},"When a step returns an array, bracket notation reaches into it by position:",[1038,1550,1552],{"className":1040,"code":1551,"language":1042,"meta":1043,"style":1043},"{\n  \"first_item\": \"{{steps.0.outputs[0]}}\"\n}\n",[1006,1553,1554,1558,1576],{"__ignoreMap":1043},[1047,1555,1556],{"class":1049,"line":1050},[1047,1557,1054],{"class":1053},[1047,1559,1560,1562,1565,1567,1569,1571,1574],{"class":1049,"line":1057},[1047,1561,1060],{"class":1053},[1047,1563,1564],{"class":1063},"first_item",[1047,1566,1067],{"class":1053},[1047,1568,1070],{"class":1053},[1047,1570,1073],{"class":1053},[1047,1572,1573],{"class":1076},"{{steps.0.outputs[0]}}",[1047,1575,1156],{"class":1053},[1047,1577,1578],{"class":1049,"line":1085},[1047,1579,1213],{"class":1053},[990,1581,1582],{},"Because steps are addressed by number, reordering nodes can change which output a given index refers to — one of the reasons the platform is weighing the ID-based syntax flagged in the warning above.",[1231,1584,1586,1587],{"id":1585},"secrets-secretskey","Secrets: ",[1006,1588,1589],{},"{{secrets.KEY}}",[990,1591,1592],{},"Credentials never belong in a workflow definition, where they'd end up in version control and audit logs. Instead you store them as secrets and reference them by name; the real value is substituted only at runtime:",[1038,1594,1596],{"className":1040,"code":1595,"language":1042,"meta":1043,"style":1043},"{\n  \"headers\": {\n    \"Authorization\": \"Bearer {{secrets.ERP_API_KEY}}\",\n    \"X-API-Secret\": \"{{secrets.INTERNAL_SECRET}}\"\n  }\n}\n",[1006,1597,1598,1602,1614,1633,1651,1655],{"__ignoreMap":1043},[1047,1599,1600],{"class":1049,"line":1050},[1047,1601,1054],{"class":1053},[1047,1603,1604,1606,1608,1610,1612],{"class":1049,"line":1057},[1047,1605,1060],{"class":1053},[1047,1607,1128],{"class":1063},[1047,1609,1067],{"class":1053},[1047,1611,1070],{"class":1053},[1047,1613,1097],{"class":1053},[1047,1615,1616,1618,1620,1622,1624,1626,1629,1631],{"class":1049,"line":1085},[1047,1617,1103],{"class":1053},[1047,1619,1144],{"class":1106},[1047,1621,1067],{"class":1053},[1047,1623,1070],{"class":1053},[1047,1625,1073],{"class":1053},[1047,1627,1628],{"class":1076},"Bearer {{secrets.ERP_API_KEY}}",[1047,1630,1067],{"class":1053},[1047,1632,1082],{"class":1053},[1047,1634,1635,1637,1640,1642,1644,1646,1649],{"class":1049,"line":1100},[1047,1636,1103],{"class":1053},[1047,1638,1639],{"class":1106},"X-API-Secret",[1047,1641,1067],{"class":1053},[1047,1643,1070],{"class":1053},[1047,1645,1073],{"class":1053},[1047,1647,1648],{"class":1076},"{{secrets.INTERNAL_SECRET}}",[1047,1650,1156],{"class":1053},[1047,1652,1653],{"class":1049,"line":1123},[1047,1654,1207],{"class":1053},[1047,1656,1657],{"class":1049,"line":1137},[1047,1658,1213],{"class":1053},[990,1660,1661,1662,1668,1669,1672,1673,1676],{},"This indirection is what keeps credentials safe: secrets are encrypted at rest in the database, are never written to logs or audit trails, and exist in plaintext only for the instant they're resolved during a run. You manage them per workflow in Cockpit — open ",[994,1663,1664,1665],{},"Integration Studio → Workflows → ",[1047,1666,1667],{},"Workflow",", switch to the ",[994,1670,1671],{},"Secrets"," tab, add your key-value pairs, and from then on reference each one as ",[1006,1674,1675],{},"{{secrets.KEY_NAME}}",".",[1231,1678,1680,1681],{"id":1679},"environment-variables-envvar","Environment Variables: ",[1006,1682,1683],{},"{{env.VAR}}",[990,1685,1686],{},"Environment variables cover the values that change between deployments rather than between runs — which environment you're in, which region, which tenant. They're fixed when the workflow is deployed and read at the start of each run:",[1038,1688,1690],{"className":1040,"code":1689,"language":1042,"meta":1043,"style":1043},"{\n  \"url\": \"https:\u002F\u002F{{env.ENVIRONMENT}}.api.example.com\u002Forders\",\n  \"timeout\": \"{{env.DEFAULT_TIMEOUT_MS}}\"\n}\n",[1006,1691,1692,1696,1715,1733],{"__ignoreMap":1043},[1047,1693,1694],{"class":1049,"line":1050},[1047,1695,1054],{"class":1053},[1047,1697,1698,1700,1702,1704,1706,1708,1711,1713],{"class":1049,"line":1057},[1047,1699,1060],{"class":1053},[1047,1701,1107],{"class":1063},[1047,1703,1067],{"class":1053},[1047,1705,1070],{"class":1053},[1047,1707,1073],{"class":1053},[1047,1709,1710],{"class":1076},"https:\u002F\u002F{{env.ENVIRONMENT}}.api.example.com\u002Forders",[1047,1712,1067],{"class":1053},[1047,1714,1082],{"class":1053},[1047,1716,1717,1719,1722,1724,1726,1728,1731],{"class":1049,"line":1085},[1047,1718,1060],{"class":1053},[1047,1720,1721],{"class":1063},"timeout",[1047,1723,1067],{"class":1053},[1047,1725,1070],{"class":1053},[1047,1727,1073],{"class":1053},[1047,1729,1730],{"class":1076},"{{env.DEFAULT_TIMEOUT_MS}}",[1047,1732,1156],{"class":1053},[1047,1734,1735],{"class":1049,"line":1100},[1047,1736,1213],{"class":1053},[990,1738,1739,1740,1743,1744,1747,1748,1751,1752,1755,1756,1759,1760,1763,1764,1747,1767,1770],{},"A handful are always available: ",[1006,1741,1742],{},"env.ENVIRONMENT"," (",[1006,1745,1746],{},"dev",", ",[1006,1749,1750],{},"staging",", or ",[1006,1753,1754],{},"production","), ",[1006,1757,1758],{},"env.TENANT_ID"," for the current tenant, and ",[1006,1761,1762],{},"env.REGION"," for the deployment region (",[1006,1765,1766],{},"eu-west",[1006,1768,1769],{},"us-east",", and so on). They're ideal for building environment-aware URLs so the same definition runs unchanged from dev through production.",[1030,1772,1774],{"id":1773},"resolution-order","Resolution Order",[990,1776,1777],{},"Most of the time a prefix makes a reference unambiguous. But a bare name without a prefix has to be looked up somewhere, and the engine checks the namespaces in a fixed order, taking the first match it finds:",[1779,1780,1781,1792,1799,1807,1815],"ol",{},[1782,1783,1784,1787,1788,1791],"li",{},[994,1785,1786],{},"Local (step) context",": ",[1006,1789,1790],{},"item"," (in Iterator nodes)",[1782,1793,1794,1787,1796],{},[994,1795,1671],{},[1006,1797,1798],{},"secrets.*",[1782,1800,1801,1787,1804],{},[994,1802,1803],{},"Step outputs",[1006,1805,1806],{},"steps.N.outputs",[1782,1808,1809,1787,1812],{},[994,1810,1811],{},"Input data",[1006,1813,1814],{},"$.*",[1782,1816,1817,1787,1820],{},[994,1818,1819],{},"Environment",[1006,1821,1822],{},"env.*",[990,1824,1825,1826,1829,1830,1833,1834,1837],{},"The practical consequence is that more specific, run-local sources win over broader ones. If both a step output and an input field are called ",[1006,1827,1828],{},"customer_id",", the step output is the one you get. When two sources might collide, the safest move is to keep the prefix — ",[1006,1831,1832],{},"{{steps.0.outputs.customer_id}}"," rather than a bare ",[1006,1835,1836],{},"{{customer_id}}"," — so the reference says exactly what you mean.",[1030,1839,1841],{"id":1840},"expression-examples","Expression Examples",[990,1843,1844],{},"Seeing expressions in isolation only gets you so far; the next few examples show them doing real work across a whole workflow.",[1231,1846,1848],{"id":1847},"example-1-fetch-order-details","Example 1: Fetch Order Details",[990,1850,1851,1852,1855,1856,1859],{},"The first is the bread-and-butter pattern — receive an event, enrich it from another system, and write the result somewhere. A webhook delivers an order ID, an HTTP step fetches the full order from the ERP using that ID, and a final step posts a record assembled from both the original input and the ERP's response. Watch how ",[1006,1853,1854],{},"{{$.order_id}}"," (from the trigger) and ",[1006,1857,1858],{},"{{steps.1.outputs.*}}"," (from the ERP call) are combined in the last step's body:",[1038,1861,1863],{"className":1040,"code":1862,"language":1042,"meta":1043,"style":1043},"{\n  \"step_0\": {\n    \"connector\": \"webhook-trigger\",\n    \"config\": { \"path\": \"\u002Forders\u002Freceived\" }\n  },\n  \"step_1\": {\n    \"connector\": \"http-request\",\n    \"config\": {\n      \"method\": \"GET\",\n      \"url\": \"https:\u002F\u002Ferp.example.com\u002Fapi\u002Fv2\u002Forders\u002F{{$.order_id}}\",\n      \"headers\": {\n        \"Authorization\": \"Bearer {{secrets.ERP_API_KEY}}\",\n        \"X-Tenant\": \"{{env.TENANT_ID}}\"\n      },\n      \"timeoutMs\": 30000\n    }\n  },\n  \"step_2\": {\n    \"connector\": \"http-request\",\n    \"config\": {\n      \"method\": \"POST\",\n      \"url\": \"{{env.INTERNAL_API}}\u002Forders\",\n      \"headers\": {\n        \"Authorization\": \"Bearer {{secrets.INTERNAL_API_TOKEN}}\",\n        \"Content-Type\": \"application\u002Fjson\"\n      },\n      \"body\": {\n        \"id\": \"{{$.order_id}}\",\n        \"customer_id\": \"{{$.customer_id}}\",\n        \"erp_order_id\": \"{{steps.1.outputs.id}}\",\n        \"total\": \"{{steps.1.outputs.total}}\",\n        \"currency\": \"{{steps.1.outputs.currency}}\",\n        \"fetched_at\": \"{{steps.1.outputs.timestamp}}\"\n      }\n    }\n  }\n}\n",[1006,1864,1865,1869,1882,1901,1933,1938,1951,1969,1981,2001,2020,2032,2052,2071,2077,2092,2097,2102,2116,2135,2148,2168,2188,2201,2221,2240,2245,2258,2278,2298,2319,2338,2359,2378,2384,2389,2394],{"__ignoreMap":1043},[1047,1866,1867],{"class":1049,"line":1050},[1047,1868,1054],{"class":1053},[1047,1870,1871,1873,1876,1878,1880],{"class":1049,"line":1057},[1047,1872,1060],{"class":1053},[1047,1874,1875],{"class":1063},"step_0",[1047,1877,1067],{"class":1053},[1047,1879,1070],{"class":1053},[1047,1881,1097],{"class":1053},[1047,1883,1884,1886,1888,1890,1892,1894,1897,1899],{"class":1049,"line":1085},[1047,1885,1103],{"class":1053},[1047,1887,1064],{"class":1106},[1047,1889,1067],{"class":1053},[1047,1891,1070],{"class":1053},[1047,1893,1073],{"class":1053},[1047,1895,1896],{"class":1076},"webhook-trigger",[1047,1898,1067],{"class":1053},[1047,1900,1082],{"class":1053},[1047,1902,1903,1905,1907,1909,1911,1914,1916,1919,1921,1923,1925,1928,1930],{"class":1049,"line":1100},[1047,1904,1103],{"class":1053},[1047,1906,1090],{"class":1106},[1047,1908,1067],{"class":1053},[1047,1910,1070],{"class":1053},[1047,1912,1913],{"class":1053}," {",[1047,1915,1073],{"class":1053},[1047,1917,1918],{"class":1143},"path",[1047,1920,1067],{"class":1053},[1047,1922,1070],{"class":1053},[1047,1924,1073],{"class":1053},[1047,1926,1927],{"class":1076},"\u002Forders\u002Freceived",[1047,1929,1067],{"class":1053},[1047,1931,1932],{"class":1053}," }\n",[1047,1934,1935],{"class":1049,"line":1123},[1047,1936,1937],{"class":1053},"  },\n",[1047,1939,1940,1942,1945,1947,1949],{"class":1049,"line":1137},[1047,1941,1060],{"class":1053},[1047,1943,1944],{"class":1063},"step_1",[1047,1946,1067],{"class":1053},[1047,1948,1070],{"class":1053},[1047,1950,1097],{"class":1053},[1047,1952,1953,1955,1957,1959,1961,1963,1965,1967],{"class":1049,"line":1159},[1047,1954,1103],{"class":1053},[1047,1956,1064],{"class":1106},[1047,1958,1067],{"class":1053},[1047,1960,1070],{"class":1053},[1047,1962,1073],{"class":1053},[1047,1964,1077],{"class":1076},[1047,1966,1067],{"class":1053},[1047,1968,1082],{"class":1053},[1047,1970,1971,1973,1975,1977,1979],{"class":1049,"line":1165},[1047,1972,1103],{"class":1053},[1047,1974,1090],{"class":1106},[1047,1976,1067],{"class":1053},[1047,1978,1070],{"class":1053},[1047,1980,1097],{"class":1053},[1047,1982,1983,1985,1988,1990,1992,1994,1997,1999],{"class":1049,"line":1179},[1047,1984,1140],{"class":1053},[1047,1986,1987],{"class":1143},"method",[1047,1989,1067],{"class":1053},[1047,1991,1070],{"class":1053},[1047,1993,1073],{"class":1053},[1047,1995,1996],{"class":1076},"GET",[1047,1998,1067],{"class":1053},[1047,2000,1082],{"class":1053},[1047,2002,2003,2005,2007,2009,2011,2013,2016,2018],{"class":1049,"line":1198},[1047,2004,1140],{"class":1053},[1047,2006,1107],{"class":1143},[1047,2008,1067],{"class":1053},[1047,2010,1070],{"class":1053},[1047,2012,1073],{"class":1053},[1047,2014,2015],{"class":1076},"https:\u002F\u002Ferp.example.com\u002Fapi\u002Fv2\u002Forders\u002F{{$.order_id}}",[1047,2017,1067],{"class":1053},[1047,2019,1082],{"class":1053},[1047,2021,2022,2024,2026,2028,2030],{"class":1049,"line":1204},[1047,2023,1140],{"class":1053},[1047,2025,1128],{"class":1143},[1047,2027,1067],{"class":1053},[1047,2029,1070],{"class":1053},[1047,2031,1097],{"class":1053},[1047,2033,2034,2037,2040,2042,2044,2046,2048,2050],{"class":1049,"line":1210},[1047,2035,2036],{"class":1053},"        \"",[1047,2038,1144],{"class":2039},"swJcz",[1047,2041,1067],{"class":1053},[1047,2043,1070],{"class":1053},[1047,2045,1073],{"class":1053},[1047,2047,1628],{"class":1076},[1047,2049,1067],{"class":1053},[1047,2051,1082],{"class":1053},[1047,2053,2055,2057,2060,2062,2064,2066,2069],{"class":1049,"line":2054},13,[1047,2056,2036],{"class":1053},[1047,2058,2059],{"class":2039},"X-Tenant",[1047,2061,1067],{"class":1053},[1047,2063,1070],{"class":1053},[1047,2065,1073],{"class":1053},[1047,2067,2068],{"class":1076},"{{env.TENANT_ID}}",[1047,2070,1156],{"class":1053},[1047,2072,2074],{"class":1049,"line":2073},14,[1047,2075,2076],{"class":1053},"      },\n",[1047,2078,2080,2082,2085,2087,2089],{"class":1049,"line":2079},15,[1047,2081,1140],{"class":1053},[1047,2083,2084],{"class":1143},"timeoutMs",[1047,2086,1067],{"class":1053},[1047,2088,1070],{"class":1053},[1047,2090,2091],{"class":1143}," 30000\n",[1047,2093,2095],{"class":1049,"line":2094},16,[1047,2096,1201],{"class":1053},[1047,2098,2100],{"class":1049,"line":2099},17,[1047,2101,1937],{"class":1053},[1047,2103,2105,2107,2110,2112,2114],{"class":1049,"line":2104},18,[1047,2106,1060],{"class":1053},[1047,2108,2109],{"class":1063},"step_2",[1047,2111,1067],{"class":1053},[1047,2113,1070],{"class":1053},[1047,2115,1097],{"class":1053},[1047,2117,2119,2121,2123,2125,2127,2129,2131,2133],{"class":1049,"line":2118},19,[1047,2120,1103],{"class":1053},[1047,2122,1064],{"class":1106},[1047,2124,1067],{"class":1053},[1047,2126,1070],{"class":1053},[1047,2128,1073],{"class":1053},[1047,2130,1077],{"class":1076},[1047,2132,1067],{"class":1053},[1047,2134,1082],{"class":1053},[1047,2136,2138,2140,2142,2144,2146],{"class":1049,"line":2137},20,[1047,2139,1103],{"class":1053},[1047,2141,1090],{"class":1106},[1047,2143,1067],{"class":1053},[1047,2145,1070],{"class":1053},[1047,2147,1097],{"class":1053},[1047,2149,2151,2153,2155,2157,2159,2161,2164,2166],{"class":1049,"line":2150},21,[1047,2152,1140],{"class":1053},[1047,2154,1987],{"class":1143},[1047,2156,1067],{"class":1053},[1047,2158,1070],{"class":1053},[1047,2160,1073],{"class":1053},[1047,2162,2163],{"class":1076},"POST",[1047,2165,1067],{"class":1053},[1047,2167,1082],{"class":1053},[1047,2169,2171,2173,2175,2177,2179,2181,2184,2186],{"class":1049,"line":2170},22,[1047,2172,1140],{"class":1053},[1047,2174,1107],{"class":1143},[1047,2176,1067],{"class":1053},[1047,2178,1070],{"class":1053},[1047,2180,1073],{"class":1053},[1047,2182,2183],{"class":1076},"{{env.INTERNAL_API}}\u002Forders",[1047,2185,1067],{"class":1053},[1047,2187,1082],{"class":1053},[1047,2189,2191,2193,2195,2197,2199],{"class":1049,"line":2190},23,[1047,2192,1140],{"class":1053},[1047,2194,1128],{"class":1143},[1047,2196,1067],{"class":1053},[1047,2198,1070],{"class":1053},[1047,2200,1097],{"class":1053},[1047,2202,2204,2206,2208,2210,2212,2214,2217,2219],{"class":1049,"line":2203},24,[1047,2205,2036],{"class":1053},[1047,2207,1144],{"class":2039},[1047,2209,1067],{"class":1053},[1047,2211,1070],{"class":1053},[1047,2213,1073],{"class":1053},[1047,2215,2216],{"class":1076},"Bearer {{secrets.INTERNAL_API_TOKEN}}",[1047,2218,1067],{"class":1053},[1047,2220,1082],{"class":1053},[1047,2222,2224,2226,2229,2231,2233,2235,2238],{"class":1049,"line":2223},25,[1047,2225,2036],{"class":1053},[1047,2227,2228],{"class":2039},"Content-Type",[1047,2230,1067],{"class":1053},[1047,2232,1070],{"class":1053},[1047,2234,1073],{"class":1053},[1047,2236,2237],{"class":1076},"application\u002Fjson",[1047,2239,1156],{"class":1053},[1047,2241,2243],{"class":1049,"line":2242},26,[1047,2244,2076],{"class":1053},[1047,2246,2248,2250,2252,2254,2256],{"class":1049,"line":2247},27,[1047,2249,1140],{"class":1053},[1047,2251,1170],{"class":1143},[1047,2253,1067],{"class":1053},[1047,2255,1070],{"class":1053},[1047,2257,1097],{"class":1053},[1047,2259,2261,2263,2266,2268,2270,2272,2274,2276],{"class":1049,"line":2260},28,[1047,2262,2036],{"class":1053},[1047,2264,2265],{"class":2039},"id",[1047,2267,1067],{"class":1053},[1047,2269,1070],{"class":1053},[1047,2271,1073],{"class":1053},[1047,2273,1854],{"class":1076},[1047,2275,1067],{"class":1053},[1047,2277,1082],{"class":1053},[1047,2279,2281,2283,2285,2287,2289,2291,2294,2296],{"class":1049,"line":2280},29,[1047,2282,2036],{"class":1053},[1047,2284,1828],{"class":2039},[1047,2286,1067],{"class":1053},[1047,2288,1070],{"class":1053},[1047,2290,1073],{"class":1053},[1047,2292,2293],{"class":1076},"{{$.customer_id}}",[1047,2295,1067],{"class":1053},[1047,2297,1082],{"class":1053},[1047,2299,2301,2303,2306,2308,2310,2312,2315,2317],{"class":1049,"line":2300},30,[1047,2302,2036],{"class":1053},[1047,2304,2305],{"class":2039},"erp_order_id",[1047,2307,1067],{"class":1053},[1047,2309,1070],{"class":1053},[1047,2311,1073],{"class":1053},[1047,2313,2314],{"class":1076},"{{steps.1.outputs.id}}",[1047,2316,1067],{"class":1053},[1047,2318,1082],{"class":1053},[1047,2320,2322,2324,2326,2328,2330,2332,2334,2336],{"class":1049,"line":2321},31,[1047,2323,2036],{"class":1053},[1047,2325,1496],{"class":2039},[1047,2327,1067],{"class":1053},[1047,2329,1070],{"class":1053},[1047,2331,1073],{"class":1053},[1047,2333,1505],{"class":1076},[1047,2335,1067],{"class":1053},[1047,2337,1082],{"class":1053},[1047,2339,2341,2343,2346,2348,2350,2352,2355,2357],{"class":1049,"line":2340},32,[1047,2342,2036],{"class":1053},[1047,2344,2345],{"class":2039},"currency",[1047,2347,1067],{"class":1053},[1047,2349,1070],{"class":1053},[1047,2351,1073],{"class":1053},[1047,2353,2354],{"class":1076},"{{steps.1.outputs.currency}}",[1047,2356,1067],{"class":1053},[1047,2358,1082],{"class":1053},[1047,2360,2362,2364,2367,2369,2371,2373,2376],{"class":1049,"line":2361},33,[1047,2363,2036],{"class":1053},[1047,2365,2366],{"class":2039},"fetched_at",[1047,2368,1067],{"class":1053},[1047,2370,1070],{"class":1053},[1047,2372,1073],{"class":1053},[1047,2374,2375],{"class":1076},"{{steps.1.outputs.timestamp}}",[1047,2377,1156],{"class":1053},[1047,2379,2381],{"class":1049,"line":2380},34,[1047,2382,2383],{"class":1053},"      }\n",[1047,2385,2387],{"class":1049,"line":2386},35,[1047,2388,1201],{"class":1053},[1047,2390,2392],{"class":1049,"line":2391},36,[1047,2393,1207],{"class":1053},[1047,2395,2397],{"class":1049,"line":2396},37,[1047,2398,1213],{"class":1053},[1231,2400,2402],{"id":2401},"example-2-conditional-transform","Example 2: Conditional Transform",[990,2404,2405],{},"Expressions also feed the conditions that control-flow nodes evaluate. Here a Switch inspects the incoming order's status and routes it down one of three paths — paid orders to processing, pending orders to a hold, everything else to rejection. The condition strings are just expressions that resolve to booleans:",[1038,2407,2409],{"className":1040,"code":2408,"language":1042,"meta":1043,"style":1043},"{\n  \"step_0\": {\n    \"connector\": \"webhook-trigger\"\n  },\n  \"step_1\": {\n    \"connector\": \"switch\",\n    \"config\": {\n      \"cases\": [\n        {\n          \"condition\": \"{{$.status == 'paid'}}\",\n          \"output\": \"process_payment\"\n        },\n        {\n          \"condition\": \"{{$.status == 'pending'}}\",\n          \"output\": \"hold_and_notify\"\n        },\n        {\n          \"default\": true,\n          \"output\": \"reject_order\"\n        }\n      ]\n    }\n  },\n  \"step_2\": {\n    \"connector\": \"http-request\",\n    \"config\": {\n      \"url\": \"https:\u002F\u002Fapi.example.com\u002Fprocess\",\n      \"method\": \"POST\",\n      \"body\": {\n        \"order_id\": \"{{$.order_id}}\",\n        \"status\": \"{{steps.1.outputs}}\",\n        \"amount\": \"{{$.total}}\"\n      }\n    }\n  }\n}\n",[1006,2410,2411,2415,2427,2443,2447,2459,2478,2490,2504,2509,2530,2548,2553,2557,2576,2593,2597,2601,2615,2632,2637,2642,2646,2650,2662,2680,2692,2711,2729,2741,2760,2779,2797,2801,2805,2809],{"__ignoreMap":1043},[1047,2412,2413],{"class":1049,"line":1050},[1047,2414,1054],{"class":1053},[1047,2416,2417,2419,2421,2423,2425],{"class":1049,"line":1057},[1047,2418,1060],{"class":1053},[1047,2420,1875],{"class":1063},[1047,2422,1067],{"class":1053},[1047,2424,1070],{"class":1053},[1047,2426,1097],{"class":1053},[1047,2428,2429,2431,2433,2435,2437,2439,2441],{"class":1049,"line":1085},[1047,2430,1103],{"class":1053},[1047,2432,1064],{"class":1106},[1047,2434,1067],{"class":1053},[1047,2436,1070],{"class":1053},[1047,2438,1073],{"class":1053},[1047,2440,1896],{"class":1076},[1047,2442,1156],{"class":1053},[1047,2444,2445],{"class":1049,"line":1100},[1047,2446,1937],{"class":1053},[1047,2448,2449,2451,2453,2455,2457],{"class":1049,"line":1123},[1047,2450,1060],{"class":1053},[1047,2452,1944],{"class":1063},[1047,2454,1067],{"class":1053},[1047,2456,1070],{"class":1053},[1047,2458,1097],{"class":1053},[1047,2460,2461,2463,2465,2467,2469,2471,2474,2476],{"class":1049,"line":1137},[1047,2462,1103],{"class":1053},[1047,2464,1064],{"class":1106},[1047,2466,1067],{"class":1053},[1047,2468,1070],{"class":1053},[1047,2470,1073],{"class":1053},[1047,2472,2473],{"class":1076},"switch",[1047,2475,1067],{"class":1053},[1047,2477,1082],{"class":1053},[1047,2479,2480,2482,2484,2486,2488],{"class":1049,"line":1159},[1047,2481,1103],{"class":1053},[1047,2483,1090],{"class":1106},[1047,2485,1067],{"class":1053},[1047,2487,1070],{"class":1053},[1047,2489,1097],{"class":1053},[1047,2491,2492,2494,2497,2499,2501],{"class":1049,"line":1165},[1047,2493,1140],{"class":1053},[1047,2495,2496],{"class":1143},"cases",[1047,2498,1067],{"class":1053},[1047,2500,1070],{"class":1053},[1047,2502,2503],{"class":1053}," [\n",[1047,2505,2506],{"class":1049,"line":1179},[1047,2507,2508],{"class":1053},"        {\n",[1047,2510,2511,2514,2517,2519,2521,2523,2526,2528],{"class":1049,"line":1198},[1047,2512,2513],{"class":1053},"          \"",[1047,2515,2516],{"class":2039},"condition",[1047,2518,1067],{"class":1053},[1047,2520,1070],{"class":1053},[1047,2522,1073],{"class":1053},[1047,2524,2525],{"class":1076},"{{$.status == 'paid'}}",[1047,2527,1067],{"class":1053},[1047,2529,1082],{"class":1053},[1047,2531,2532,2534,2537,2539,2541,2543,2546],{"class":1049,"line":1204},[1047,2533,2513],{"class":1053},[1047,2535,2536],{"class":2039},"output",[1047,2538,1067],{"class":1053},[1047,2540,1070],{"class":1053},[1047,2542,1073],{"class":1053},[1047,2544,2545],{"class":1076},"process_payment",[1047,2547,1156],{"class":1053},[1047,2549,2550],{"class":1049,"line":1210},[1047,2551,2552],{"class":1053},"        },\n",[1047,2554,2555],{"class":1049,"line":2054},[1047,2556,2508],{"class":1053},[1047,2558,2559,2561,2563,2565,2567,2569,2572,2574],{"class":1049,"line":2073},[1047,2560,2513],{"class":1053},[1047,2562,2516],{"class":2039},[1047,2564,1067],{"class":1053},[1047,2566,1070],{"class":1053},[1047,2568,1073],{"class":1053},[1047,2570,2571],{"class":1076},"{{$.status == 'pending'}}",[1047,2573,1067],{"class":1053},[1047,2575,1082],{"class":1053},[1047,2577,2578,2580,2582,2584,2586,2588,2591],{"class":1049,"line":2079},[1047,2579,2513],{"class":1053},[1047,2581,2536],{"class":2039},[1047,2583,1067],{"class":1053},[1047,2585,1070],{"class":1053},[1047,2587,1073],{"class":1053},[1047,2589,2590],{"class":1076},"hold_and_notify",[1047,2592,1156],{"class":1053},[1047,2594,2595],{"class":1049,"line":2094},[1047,2596,2552],{"class":1053},[1047,2598,2599],{"class":1049,"line":2099},[1047,2600,2508],{"class":1053},[1047,2602,2603,2605,2608,2610,2612],{"class":1049,"line":2104},[1047,2604,2513],{"class":1053},[1047,2606,2607],{"class":2039},"default",[1047,2609,1067],{"class":1053},[1047,2611,1070],{"class":1053},[1047,2613,2614],{"class":1053}," true,\n",[1047,2616,2617,2619,2621,2623,2625,2627,2630],{"class":1049,"line":2118},[1047,2618,2513],{"class":1053},[1047,2620,2536],{"class":2039},[1047,2622,1067],{"class":1053},[1047,2624,1070],{"class":1053},[1047,2626,1073],{"class":1053},[1047,2628,2629],{"class":1076},"reject_order",[1047,2631,1156],{"class":1053},[1047,2633,2634],{"class":1049,"line":2137},[1047,2635,2636],{"class":1053},"        }\n",[1047,2638,2639],{"class":1049,"line":2150},[1047,2640,2641],{"class":1053},"      ]\n",[1047,2643,2644],{"class":1049,"line":2170},[1047,2645,1201],{"class":1053},[1047,2647,2648],{"class":1049,"line":2190},[1047,2649,1937],{"class":1053},[1047,2651,2652,2654,2656,2658,2660],{"class":1049,"line":2203},[1047,2653,1060],{"class":1053},[1047,2655,2109],{"class":1063},[1047,2657,1067],{"class":1053},[1047,2659,1070],{"class":1053},[1047,2661,1097],{"class":1053},[1047,2663,2664,2666,2668,2670,2672,2674,2676,2678],{"class":1049,"line":2223},[1047,2665,1103],{"class":1053},[1047,2667,1064],{"class":1106},[1047,2669,1067],{"class":1053},[1047,2671,1070],{"class":1053},[1047,2673,1073],{"class":1053},[1047,2675,1077],{"class":1076},[1047,2677,1067],{"class":1053},[1047,2679,1082],{"class":1053},[1047,2681,2682,2684,2686,2688,2690],{"class":1049,"line":2242},[1047,2683,1103],{"class":1053},[1047,2685,1090],{"class":1106},[1047,2687,1067],{"class":1053},[1047,2689,1070],{"class":1053},[1047,2691,1097],{"class":1053},[1047,2693,2694,2696,2698,2700,2702,2704,2707,2709],{"class":1049,"line":2247},[1047,2695,1140],{"class":1053},[1047,2697,1107],{"class":1143},[1047,2699,1067],{"class":1053},[1047,2701,1070],{"class":1053},[1047,2703,1073],{"class":1053},[1047,2705,2706],{"class":1076},"https:\u002F\u002Fapi.example.com\u002Fprocess",[1047,2708,1067],{"class":1053},[1047,2710,1082],{"class":1053},[1047,2712,2713,2715,2717,2719,2721,2723,2725,2727],{"class":1049,"line":2260},[1047,2714,1140],{"class":1053},[1047,2716,1987],{"class":1143},[1047,2718,1067],{"class":1053},[1047,2720,1070],{"class":1053},[1047,2722,1073],{"class":1053},[1047,2724,2163],{"class":1076},[1047,2726,1067],{"class":1053},[1047,2728,1082],{"class":1053},[1047,2730,2731,2733,2735,2737,2739],{"class":1049,"line":2280},[1047,2732,1140],{"class":1053},[1047,2734,1170],{"class":1143},[1047,2736,1067],{"class":1053},[1047,2738,1070],{"class":1053},[1047,2740,1097],{"class":1053},[1047,2742,2743,2745,2748,2750,2752,2754,2756,2758],{"class":1049,"line":2300},[1047,2744,2036],{"class":1053},[1047,2746,2747],{"class":2039},"order_id",[1047,2749,1067],{"class":1053},[1047,2751,1070],{"class":1053},[1047,2753,1073],{"class":1053},[1047,2755,1854],{"class":1076},[1047,2757,1067],{"class":1053},[1047,2759,1082],{"class":1053},[1047,2761,2762,2764,2766,2768,2770,2772,2775,2777],{"class":1049,"line":2321},[1047,2763,2036],{"class":1053},[1047,2765,1465],{"class":2039},[1047,2767,1067],{"class":1053},[1047,2769,1070],{"class":1053},[1047,2771,1073],{"class":1053},[1047,2773,2774],{"class":1076},"{{steps.1.outputs}}",[1047,2776,1067],{"class":1053},[1047,2778,1082],{"class":1053},[1047,2780,2781,2783,2786,2788,2790,2792,2795],{"class":1049,"line":2340},[1047,2782,2036],{"class":1053},[1047,2784,2785],{"class":2039},"amount",[1047,2787,1067],{"class":1053},[1047,2789,1070],{"class":1053},[1047,2791,1073],{"class":1053},[1047,2793,2794],{"class":1076},"{{$.total}}",[1047,2796,1156],{"class":1053},[1047,2798,2799],{"class":1049,"line":2361},[1047,2800,2383],{"class":1053},[1047,2802,2803],{"class":1049,"line":2380},[1047,2804,1201],{"class":1053},[1047,2806,2807],{"class":1049,"line":2386},[1047,2808,1207],{"class":1053},[1047,2810,2811],{"class":1049,"line":2391},[1047,2812,1213],{"class":1053},[1231,2814,2816],{"id":2815},"example-3-loop-and-email","Example 3: Loop and Email",[990,2818,2819,2820,2823],{},"Inside an Iterator, a different variable comes into play. The workflow below runs on a schedule, fetches the day's invoices as an array, then loops over them — and within the loop ",[1006,2821,2822],{},"{{item}}"," refers to whichever invoice is currently being processed, so each email is addressed and filled from that one record:",[1038,2825,2827],{"className":1040,"code":2826,"language":1042,"meta":1043,"style":1043},"{\n  \"step_0\": {\n    \"connector\": \"schedule-trigger\",\n    \"config\": {\n      \"schedule\": \"0 18 * * MON-FRI\"\n    }\n  },\n  \"step_1\": {\n    \"connector\": \"http-request\",\n    \"config\": {\n      \"url\": \"https:\u002F\u002Fapi.example.com\u002Fdaily-invoices\",\n      \"headers\": {\n        \"Authorization\": \"Bearer {{secrets.API_KEY}}\"\n      }\n    }\n  },\n  \"step_2\": {\n    \"connector\": \"iterator\",\n    \"config\": {\n      \"items\": \"{{steps.1.outputs.invoices}}\"\n    }\n  },\n  \"step_3\": {\n    \"connector\": \"send-email\",\n    \"config\": {\n      \"to\": \"{{item.customer_email}}\",\n      \"subject\": \"Invoice {{item.invoice_id}} Ready\",\n      \"body\": \"\u003Cp>Amount: {{item.total}}\u003C\u002Fp>\u003Cp>\u003Ca href='{{item.download_url}}'>Download\u003C\u002Fa>\u003C\u002Fp>\"\n    }\n  }\n}\n",[1006,2828,2829,2833,2845,2864,2876,2894,2898,2902,2914,2932,2944,2963,2975,2991,2995,2999,3003,3015,3034,3046,3063,3067,3071,3084,3103,3115,3135,3155,3172,3176,3180],{"__ignoreMap":1043},[1047,2830,2831],{"class":1049,"line":1050},[1047,2832,1054],{"class":1053},[1047,2834,2835,2837,2839,2841,2843],{"class":1049,"line":1057},[1047,2836,1060],{"class":1053},[1047,2838,1875],{"class":1063},[1047,2840,1067],{"class":1053},[1047,2842,1070],{"class":1053},[1047,2844,1097],{"class":1053},[1047,2846,2847,2849,2851,2853,2855,2857,2860,2862],{"class":1049,"line":1085},[1047,2848,1103],{"class":1053},[1047,2850,1064],{"class":1106},[1047,2852,1067],{"class":1053},[1047,2854,1070],{"class":1053},[1047,2856,1073],{"class":1053},[1047,2858,2859],{"class":1076},"schedule-trigger",[1047,2861,1067],{"class":1053},[1047,2863,1082],{"class":1053},[1047,2865,2866,2868,2870,2872,2874],{"class":1049,"line":1100},[1047,2867,1103],{"class":1053},[1047,2869,1090],{"class":1106},[1047,2871,1067],{"class":1053},[1047,2873,1070],{"class":1053},[1047,2875,1097],{"class":1053},[1047,2877,2878,2880,2883,2885,2887,2889,2892],{"class":1049,"line":1123},[1047,2879,1140],{"class":1053},[1047,2881,2882],{"class":1143},"schedule",[1047,2884,1067],{"class":1053},[1047,2886,1070],{"class":1053},[1047,2888,1073],{"class":1053},[1047,2890,2891],{"class":1076},"0 18 * * MON-FRI",[1047,2893,1156],{"class":1053},[1047,2895,2896],{"class":1049,"line":1137},[1047,2897,1201],{"class":1053},[1047,2899,2900],{"class":1049,"line":1159},[1047,2901,1937],{"class":1053},[1047,2903,2904,2906,2908,2910,2912],{"class":1049,"line":1165},[1047,2905,1060],{"class":1053},[1047,2907,1944],{"class":1063},[1047,2909,1067],{"class":1053},[1047,2911,1070],{"class":1053},[1047,2913,1097],{"class":1053},[1047,2915,2916,2918,2920,2922,2924,2926,2928,2930],{"class":1049,"line":1179},[1047,2917,1103],{"class":1053},[1047,2919,1064],{"class":1106},[1047,2921,1067],{"class":1053},[1047,2923,1070],{"class":1053},[1047,2925,1073],{"class":1053},[1047,2927,1077],{"class":1076},[1047,2929,1067],{"class":1053},[1047,2931,1082],{"class":1053},[1047,2933,2934,2936,2938,2940,2942],{"class":1049,"line":1198},[1047,2935,1103],{"class":1053},[1047,2937,1090],{"class":1106},[1047,2939,1067],{"class":1053},[1047,2941,1070],{"class":1053},[1047,2943,1097],{"class":1053},[1047,2945,2946,2948,2950,2952,2954,2956,2959,2961],{"class":1049,"line":1204},[1047,2947,1140],{"class":1053},[1047,2949,1107],{"class":1143},[1047,2951,1067],{"class":1053},[1047,2953,1070],{"class":1053},[1047,2955,1073],{"class":1053},[1047,2957,2958],{"class":1076},"https:\u002F\u002Fapi.example.com\u002Fdaily-invoices",[1047,2960,1067],{"class":1053},[1047,2962,1082],{"class":1053},[1047,2964,2965,2967,2969,2971,2973],{"class":1049,"line":1210},[1047,2966,1140],{"class":1053},[1047,2968,1128],{"class":1143},[1047,2970,1067],{"class":1053},[1047,2972,1070],{"class":1053},[1047,2974,1097],{"class":1053},[1047,2976,2977,2979,2981,2983,2985,2987,2989],{"class":1049,"line":2054},[1047,2978,2036],{"class":1053},[1047,2980,1144],{"class":2039},[1047,2982,1067],{"class":1053},[1047,2984,1070],{"class":1053},[1047,2986,1073],{"class":1053},[1047,2988,1153],{"class":1076},[1047,2990,1156],{"class":1053},[1047,2992,2993],{"class":1049,"line":2073},[1047,2994,2383],{"class":1053},[1047,2996,2997],{"class":1049,"line":2079},[1047,2998,1201],{"class":1053},[1047,3000,3001],{"class":1049,"line":2094},[1047,3002,1937],{"class":1053},[1047,3004,3005,3007,3009,3011,3013],{"class":1049,"line":2099},[1047,3006,1060],{"class":1053},[1047,3008,2109],{"class":1063},[1047,3010,1067],{"class":1053},[1047,3012,1070],{"class":1053},[1047,3014,1097],{"class":1053},[1047,3016,3017,3019,3021,3023,3025,3027,3030,3032],{"class":1049,"line":2104},[1047,3018,1103],{"class":1053},[1047,3020,1064],{"class":1106},[1047,3022,1067],{"class":1053},[1047,3024,1070],{"class":1053},[1047,3026,1073],{"class":1053},[1047,3028,3029],{"class":1076},"iterator",[1047,3031,1067],{"class":1053},[1047,3033,1082],{"class":1053},[1047,3035,3036,3038,3040,3042,3044],{"class":1049,"line":2118},[1047,3037,1103],{"class":1053},[1047,3039,1090],{"class":1106},[1047,3041,1067],{"class":1053},[1047,3043,1070],{"class":1053},[1047,3045,1097],{"class":1053},[1047,3047,3048,3050,3052,3054,3056,3058,3061],{"class":1049,"line":2137},[1047,3049,1140],{"class":1053},[1047,3051,1184],{"class":1143},[1047,3053,1067],{"class":1053},[1047,3055,1070],{"class":1053},[1047,3057,1073],{"class":1053},[1047,3059,3060],{"class":1076},"{{steps.1.outputs.invoices}}",[1047,3062,1156],{"class":1053},[1047,3064,3065],{"class":1049,"line":2150},[1047,3066,1201],{"class":1053},[1047,3068,3069],{"class":1049,"line":2170},[1047,3070,1937],{"class":1053},[1047,3072,3073,3075,3078,3080,3082],{"class":1049,"line":2190},[1047,3074,1060],{"class":1053},[1047,3076,3077],{"class":1063},"step_3",[1047,3079,1067],{"class":1053},[1047,3081,1070],{"class":1053},[1047,3083,1097],{"class":1053},[1047,3085,3086,3088,3090,3092,3094,3096,3099,3101],{"class":1049,"line":2203},[1047,3087,1103],{"class":1053},[1047,3089,1064],{"class":1106},[1047,3091,1067],{"class":1053},[1047,3093,1070],{"class":1053},[1047,3095,1073],{"class":1053},[1047,3097,3098],{"class":1076},"send-email",[1047,3100,1067],{"class":1053},[1047,3102,1082],{"class":1053},[1047,3104,3105,3107,3109,3111,3113],{"class":1049,"line":2223},[1047,3106,1103],{"class":1053},[1047,3108,1090],{"class":1106},[1047,3110,1067],{"class":1053},[1047,3112,1070],{"class":1053},[1047,3114,1097],{"class":1053},[1047,3116,3117,3119,3122,3124,3126,3128,3131,3133],{"class":1049,"line":2242},[1047,3118,1140],{"class":1053},[1047,3120,3121],{"class":1143},"to",[1047,3123,1067],{"class":1053},[1047,3125,1070],{"class":1053},[1047,3127,1073],{"class":1053},[1047,3129,3130],{"class":1076},"{{item.customer_email}}",[1047,3132,1067],{"class":1053},[1047,3134,1082],{"class":1053},[1047,3136,3137,3139,3142,3144,3146,3148,3151,3153],{"class":1049,"line":2247},[1047,3138,1140],{"class":1053},[1047,3140,3141],{"class":1143},"subject",[1047,3143,1067],{"class":1053},[1047,3145,1070],{"class":1053},[1047,3147,1073],{"class":1053},[1047,3149,3150],{"class":1076},"Invoice {{item.invoice_id}} Ready",[1047,3152,1067],{"class":1053},[1047,3154,1082],{"class":1053},[1047,3156,3157,3159,3161,3163,3165,3167,3170],{"class":1049,"line":2260},[1047,3158,1140],{"class":1053},[1047,3160,1170],{"class":1143},[1047,3162,1067],{"class":1053},[1047,3164,1070],{"class":1053},[1047,3166,1073],{"class":1053},[1047,3168,3169],{"class":1076},"\u003Cp>Amount: {{item.total}}\u003C\u002Fp>\u003Cp>\u003Ca href='{{item.download_url}}'>Download\u003C\u002Fa>\u003C\u002Fp>",[1047,3171,1156],{"class":1053},[1047,3173,3174],{"class":1049,"line":2280},[1047,3175,1201],{"class":1053},[1047,3177,3178],{"class":1049,"line":2300},[1047,3179,1207],{"class":1053},[1047,3181,3182],{"class":1049,"line":2321},[1047,3183,1213],{"class":1053},[990,3185,3186,3187,3189,3190,3193],{},"Inside the iterator (step 3), ",[1006,3188,2822],{}," refers to the current invoice from the ",[1006,3191,3192],{},"invoices"," array.",[1231,3195,3197],{"id":3196},"example-4-environment-specific-api-keys","Example 4: Environment-Specific API Keys",[990,3199,3200,3201,1024,3204,3207,3208,3210],{},"The last example combines ",[1006,3202,3203],{},"env",[1006,3205,3206],{},"secrets"," to keep one definition working across environments. The same workflow can resolve a different credential per environment by composing the secret name from an environment variable — so ",[1006,3209,1754],{}," reaches for the production key without any change to the definition itself:",[1038,3212,3214],{"className":1040,"code":3213,"language":1042,"meta":1043,"style":1043},"{\n  \"step_0\": {\n    \"connector\": \"webhook-trigger\"\n  },\n  \"step_1\": {\n    \"connector\": \"http-request\",\n    \"config\": {\n      \"url\": \"https:\u002F\u002Fapi.example.com\u002Fprocess\",\n      \"method\": \"POST\",\n      \"headers\": {\n        \"Authorization\": \"Bearer {{secrets.API_KEY}}\",\n        \"X-Environment\": \"{{env.ENVIRONMENT}}\"\n      },\n      \"body\": \"{{steps.0.outputs}}\"\n    }\n  }\n}\n",[1006,3215,3216,3220,3232,3248,3252,3264,3282,3294,3312,3330,3342,3360,3378,3382,3398,3402,3406],{"__ignoreMap":1043},[1047,3217,3218],{"class":1049,"line":1050},[1047,3219,1054],{"class":1053},[1047,3221,3222,3224,3226,3228,3230],{"class":1049,"line":1057},[1047,3223,1060],{"class":1053},[1047,3225,1875],{"class":1063},[1047,3227,1067],{"class":1053},[1047,3229,1070],{"class":1053},[1047,3231,1097],{"class":1053},[1047,3233,3234,3236,3238,3240,3242,3244,3246],{"class":1049,"line":1085},[1047,3235,1103],{"class":1053},[1047,3237,1064],{"class":1106},[1047,3239,1067],{"class":1053},[1047,3241,1070],{"class":1053},[1047,3243,1073],{"class":1053},[1047,3245,1896],{"class":1076},[1047,3247,1156],{"class":1053},[1047,3249,3250],{"class":1049,"line":1100},[1047,3251,1937],{"class":1053},[1047,3253,3254,3256,3258,3260,3262],{"class":1049,"line":1123},[1047,3255,1060],{"class":1053},[1047,3257,1944],{"class":1063},[1047,3259,1067],{"class":1053},[1047,3261,1070],{"class":1053},[1047,3263,1097],{"class":1053},[1047,3265,3266,3268,3270,3272,3274,3276,3278,3280],{"class":1049,"line":1137},[1047,3267,1103],{"class":1053},[1047,3269,1064],{"class":1106},[1047,3271,1067],{"class":1053},[1047,3273,1070],{"class":1053},[1047,3275,1073],{"class":1053},[1047,3277,1077],{"class":1076},[1047,3279,1067],{"class":1053},[1047,3281,1082],{"class":1053},[1047,3283,3284,3286,3288,3290,3292],{"class":1049,"line":1159},[1047,3285,1103],{"class":1053},[1047,3287,1090],{"class":1106},[1047,3289,1067],{"class":1053},[1047,3291,1070],{"class":1053},[1047,3293,1097],{"class":1053},[1047,3295,3296,3298,3300,3302,3304,3306,3308,3310],{"class":1049,"line":1165},[1047,3297,1140],{"class":1053},[1047,3299,1107],{"class":1143},[1047,3301,1067],{"class":1053},[1047,3303,1070],{"class":1053},[1047,3305,1073],{"class":1053},[1047,3307,2706],{"class":1076},[1047,3309,1067],{"class":1053},[1047,3311,1082],{"class":1053},[1047,3313,3314,3316,3318,3320,3322,3324,3326,3328],{"class":1049,"line":1179},[1047,3315,1140],{"class":1053},[1047,3317,1987],{"class":1143},[1047,3319,1067],{"class":1053},[1047,3321,1070],{"class":1053},[1047,3323,1073],{"class":1053},[1047,3325,2163],{"class":1076},[1047,3327,1067],{"class":1053},[1047,3329,1082],{"class":1053},[1047,3331,3332,3334,3336,3338,3340],{"class":1049,"line":1198},[1047,3333,1140],{"class":1053},[1047,3335,1128],{"class":1143},[1047,3337,1067],{"class":1053},[1047,3339,1070],{"class":1053},[1047,3341,1097],{"class":1053},[1047,3343,3344,3346,3348,3350,3352,3354,3356,3358],{"class":1049,"line":1204},[1047,3345,2036],{"class":1053},[1047,3347,1144],{"class":2039},[1047,3349,1067],{"class":1053},[1047,3351,1070],{"class":1053},[1047,3353,1073],{"class":1053},[1047,3355,1153],{"class":1076},[1047,3357,1067],{"class":1053},[1047,3359,1082],{"class":1053},[1047,3361,3362,3364,3367,3369,3371,3373,3376],{"class":1049,"line":1210},[1047,3363,2036],{"class":1053},[1047,3365,3366],{"class":2039},"X-Environment",[1047,3368,1067],{"class":1053},[1047,3370,1070],{"class":1053},[1047,3372,1073],{"class":1053},[1047,3374,3375],{"class":1076},"{{env.ENVIRONMENT}}",[1047,3377,1156],{"class":1053},[1047,3379,3380],{"class":1049,"line":2054},[1047,3381,2076],{"class":1053},[1047,3383,3384,3386,3388,3390,3392,3394,3396],{"class":1049,"line":2073},[1047,3385,1140],{"class":1053},[1047,3387,1170],{"class":1143},[1047,3389,1067],{"class":1053},[1047,3391,1070],{"class":1053},[1047,3393,1073],{"class":1053},[1047,3395,1539],{"class":1076},[1047,3397,1156],{"class":1053},[1047,3399,3400],{"class":1049,"line":2079},[1047,3401,1201],{"class":1053},[1047,3403,3404],{"class":1049,"line":2094},[1047,3405,1207],{"class":1053},[1047,3407,3408],{"class":1049,"line":2099},[1047,3409,1213],{"class":1053},[990,3411,3412,3413,3416,3417,1676],{},"If ",[1006,3414,3415],{},"env.ENVIRONMENT = 'production'",", it looks up ",[1006,3418,3419],{},"secrets.production_API_KEY",[1030,3421,3423],{"id":3422},"data-types","Data Types",[990,3425,3426],{},"An expression resolves to whatever type the underlying value has, and that type carries through to wherever you place it. A few cases are worth calling out because they trip people up.",[990,3428,3429,3430,3433],{},"When you embed an expression in surrounding text, the result is a ",[994,3431,3432],{},"string"," — this is how you build composite values like a full name from two fields:",[1038,3435,3437],{"className":1040,"code":3436,"language":1042,"meta":1043,"style":1043},"{\n  \"name\": \"{{$.first_name}} {{$.last_name}}\"\n}\n",[1006,3438,3439,3443,3461],{"__ignoreMap":1043},[1047,3440,3441],{"class":1049,"line":1050},[1047,3442,1054],{"class":1053},[1047,3444,3445,3447,3450,3452,3454,3456,3459],{"class":1049,"line":1057},[1047,3446,1060],{"class":1053},[1047,3448,3449],{"class":1063},"name",[1047,3451,1067],{"class":1053},[1047,3453,1070],{"class":1053},[1047,3455,1073],{"class":1053},[1047,3457,3458],{"class":1076},"{{$.first_name}} {{$.last_name}}",[1047,3460,1156],{"class":1053},[1047,3462,3463],{"class":1049,"line":1085},[1047,3464,1213],{"class":1053},[990,3466,3467,3468,3471],{},"A standalone expression keeps its ",[994,3469,3470],{},"numeric"," type, so a price stays a number rather than becoming a quoted string:",[1038,3473,3475],{"className":1040,"code":3474,"language":1042,"meta":1043,"style":1043},"{\n  \"amount\": \"{{$.price}}\"\n}\n",[1006,3476,3477,3481,3498],{"__ignoreMap":1043},[1047,3478,3479],{"class":1049,"line":1050},[1047,3480,1054],{"class":1053},[1047,3482,3483,3485,3487,3489,3491,3493,3496],{"class":1049,"line":1057},[1047,3484,1060],{"class":1053},[1047,3486,2785],{"class":1063},[1047,3488,1067],{"class":1053},[1047,3490,1070],{"class":1053},[1047,3492,1073],{"class":1053},[1047,3494,3495],{"class":1076},"{{$.price}}",[1047,3497,1156],{"class":1053},[1047,3499,3500],{"class":1049,"line":1085},[1047,3501,1213],{"class":1053},[3503,3504,3505,3506,3511],"note",{},"For calculations (e.g., adding VAT, computing totals), use a ",[3507,3508,3510],"a",{"href":3509},"\u002Fdocs\u002Fproducts\u002Fintegration-studio\u002Fnode-types#json-transform","JSON Transform node"," with a mapping rule. Expressions resolve to values; they don't evaluate arithmetic.",[990,3513,3514,3517,3518,1070],{},[994,3515,3516],{},"Boolean"," results are produced by comparison operators, but they're only meaningful where a node expects a condition — in practice, the control-flow nodes like ",[3507,3519,3521],{"href":3520},"\u002Fdocs\u002Fproducts\u002Fintegration-studio\u002Fnode-types#switch","Switch",[1038,3523,3525],{"className":1040,"code":3524,"language":1042,"meta":1043,"style":1043},"{\n  \"condition\": \"{{$.lifetime_value > 10000}}\"\n}\n",[1006,3526,3527,3531,3548],{"__ignoreMap":1043},[1047,3528,3529],{"class":1049,"line":1050},[1047,3530,1054],{"class":1053},[1047,3532,3533,3535,3537,3539,3541,3543,3546],{"class":1049,"line":1057},[1047,3534,1060],{"class":1053},[1047,3536,2516],{"class":1063},[1047,3538,1067],{"class":1053},[1047,3540,1070],{"class":1053},[1047,3542,1073],{"class":1053},[1047,3544,3545],{"class":1076},"{{$.lifetime_value > 10000}}",[1047,3547,1156],{"class":1053},[1047,3549,3550],{"class":1049,"line":1085},[1047,3551,1213],{"class":1053},[990,3553,3554,3555,3558],{},"And expressions can resolve to whole ",[994,3556,3557],{},"arrays or objects",", which is what lets you pass a collection or a nested structure straight from one step to the next:",[1038,3560,3562],{"className":1040,"code":3561,"language":1042,"meta":1043,"style":1043},"{\n  \"items\": \"{{steps.0.outputs.items}}\",\n  \"metadata\": \"{{$.metadata}}\"\n}\n",[1006,3563,3564,3568,3587,3605],{"__ignoreMap":1043},[1047,3565,3566],{"class":1049,"line":1050},[1047,3567,1054],{"class":1053},[1047,3569,3570,3572,3574,3576,3578,3580,3583,3585],{"class":1049,"line":1057},[1047,3571,1060],{"class":1053},[1047,3573,1184],{"class":1063},[1047,3575,1067],{"class":1053},[1047,3577,1070],{"class":1053},[1047,3579,1073],{"class":1053},[1047,3581,3582],{"class":1076},"{{steps.0.outputs.items}}",[1047,3584,1067],{"class":1053},[1047,3586,1082],{"class":1053},[1047,3588,3589,3591,3594,3596,3598,3600,3603],{"class":1049,"line":1085},[1047,3590,1060],{"class":1053},[1047,3592,3593],{"class":1063},"metadata",[1047,3595,1067],{"class":1053},[1047,3597,1070],{"class":1053},[1047,3599,1073],{"class":1053},[1047,3601,3602],{"class":1076},"{{$.metadata}}",[1047,3604,1156],{"class":1053},[1047,3606,3607],{"class":1049,"line":1100},[1047,3608,1213],{"class":1053},[1030,3610,3612],{"id":3611},"common-patterns","Common Patterns",[990,3614,3615],{},"A few recurring shapes are worth knowing by name, since they come up in almost every non-trivial workflow.",[990,3617,3618,3619,3622,3623,3625],{},"When a field might be missing, give it a ",[994,3620,3621],{},"fallback"," so the workflow doesn't break on an empty value — the ",[1006,3624,2607],{}," filter supplies one:",[1038,3627,3629],{"className":1040,"code":3628,"language":1042,"meta":1043,"style":1043},"{\n  \"email\": \"{{$.email | default('noreply@example.com')}}\"\n}\n",[1006,3630,3631,3635,3652],{"__ignoreMap":1043},[1047,3632,3633],{"class":1049,"line":1050},[1047,3634,1054],{"class":1053},[1047,3636,3637,3639,3641,3643,3645,3647,3650],{"class":1049,"line":1057},[1047,3638,1060],{"class":1053},[1047,3640,1370],{"class":1063},[1047,3642,1067],{"class":1053},[1047,3644,1070],{"class":1053},[1047,3646,1073],{"class":1053},[1047,3648,3649],{"class":1076},"{{$.email | default('noreply@example.com')}}",[1047,3651,1156],{"class":1053},[1047,3653,3654],{"class":1049,"line":1085},[1047,3655,1213],{"class":1053},[990,3657,3658,3659,3662,3663,3667,3668,1070],{},"To ",[994,3660,3661],{},"narrow an array",", don't try to express the logic inline — expressions don't run arbitrary code. Use the dedicated ",[3507,3664,3666],{"href":3665},"\u002Fdocs\u002Fproducts\u002Fintegration-studio\u002Fnode-types#filter","Filter node",", which evaluates its condition against each ",[1006,3669,1790],{},[1038,3671,3673],{"className":1040,"code":3672,"language":1042,"meta":1043,"style":1043},"{\n  \"connector\": \"filter\",\n  \"config\": {\n    \"expression\": \"{{item.price > 100}}\"\n  }\n}\n",[1006,3674,3675,3679,3698,3710,3727,3731],{"__ignoreMap":1043},[1047,3676,3677],{"class":1049,"line":1050},[1047,3678,1054],{"class":1053},[1047,3680,3681,3683,3685,3687,3689,3691,3694,3696],{"class":1049,"line":1057},[1047,3682,1060],{"class":1053},[1047,3684,1064],{"class":1063},[1047,3686,1067],{"class":1053},[1047,3688,1070],{"class":1053},[1047,3690,1073],{"class":1053},[1047,3692,3693],{"class":1076},"filter",[1047,3695,1067],{"class":1053},[1047,3697,1082],{"class":1053},[1047,3699,3700,3702,3704,3706,3708],{"class":1049,"line":1085},[1047,3701,1060],{"class":1053},[1047,3703,1090],{"class":1063},[1047,3705,1067],{"class":1053},[1047,3707,1070],{"class":1053},[1047,3709,1097],{"class":1053},[1047,3711,3712,3714,3716,3718,3720,3722,3725],{"class":1049,"line":1100},[1047,3713,1103],{"class":1053},[1047,3715,1000],{"class":1106},[1047,3717,1067],{"class":1053},[1047,3719,1070],{"class":1053},[1047,3721,1073],{"class":1053},[1047,3723,3724],{"class":1076},"{{item.price > 100}}",[1047,3726,1156],{"class":1053},[1047,3728,3729],{"class":1049,"line":1123},[1047,3730,1207],{"class":1053},[1047,3732,3733],{"class":1049,"line":1137},[1047,3734,1213],{"class":1053},[990,3736,3658,3737,3740],{},[994,3738,3739],{},"build a string"," like a versioned URL, drop expressions inline and the surrounding literal text is preserved around them:",[1038,3742,3744],{"className":1040,"code":3743,"language":1042,"meta":1043,"style":1043},"{\n  \"url\": \"https:\u002F\u002Fapi.example.com\u002Fv{{$.api_version}}\u002Forders\"\n}\n",[1006,3745,3746,3750,3767],{"__ignoreMap":1043},[1047,3747,3748],{"class":1049,"line":1050},[1047,3749,1054],{"class":1053},[1047,3751,3752,3754,3756,3758,3760,3762,3765],{"class":1049,"line":1057},[1047,3753,1060],{"class":1053},[1047,3755,1107],{"class":1063},[1047,3757,1067],{"class":1053},[1047,3759,1070],{"class":1053},[1047,3761,1073],{"class":1053},[1047,3763,3764],{"class":1076},"https:\u002F\u002Fapi.example.com\u002Fv{{$.api_version}}\u002Forders",[1047,3766,1156],{"class":1053},[1047,3768,3769],{"class":1049,"line":1085},[1047,3770,1213],{"class":1053},[990,3772,3773,3774,3777,3778,1024,3781,3784],{},"And for ",[994,3775,3776],{},"timestamps",", use the built-in helpers ",[1006,3779,3780],{},"{{$now}}",[1006,3782,3783],{},"{{$today}}"," rather than reaching for date arithmetic — they resolve to the current moment at run time:",[1038,3786,3788],{"className":1040,"code":3787,"language":1042,"meta":1043,"style":1043},"{\n  \"processed_at\": \"{{$now}}\",\n  \"order_date\": \"{{steps.0.outputs.created_at}}\"\n}\n",[1006,3789,3790,3794,3813,3831],{"__ignoreMap":1043},[1047,3791,3792],{"class":1049,"line":1050},[1047,3793,1054],{"class":1053},[1047,3795,3796,3798,3801,3803,3805,3807,3809,3811],{"class":1049,"line":1057},[1047,3797,1060],{"class":1053},[1047,3799,3800],{"class":1063},"processed_at",[1047,3802,1067],{"class":1053},[1047,3804,1070],{"class":1053},[1047,3806,1073],{"class":1053},[1047,3808,3780],{"class":1076},[1047,3810,1067],{"class":1053},[1047,3812,1082],{"class":1053},[1047,3814,3815,3817,3820,3822,3824,3826,3829],{"class":1049,"line":1085},[1047,3816,1060],{"class":1053},[1047,3818,3819],{"class":1063},"order_date",[1047,3821,1067],{"class":1053},[1047,3823,1070],{"class":1053},[1047,3825,1073],{"class":1053},[1047,3827,3828],{"class":1076},"{{steps.0.outputs.created_at}}",[1047,3830,1156],{"class":1053},[1047,3832,3833],{"class":1049,"line":1100},[1047,3834,1213],{"class":1053},[1030,3836,3838],{"id":3837},"error-handling","Error Handling",[990,3840,3841,3842,3845,3846,3849,3850,3853],{},"An expression can fail to resolve — most often because it points at a field that isn't there or a step index that doesn't exist. What happens next depends on the engine, and it mirrors the difference everywhere else in Integration Studio. On an ",[994,3843,3844],{},"async"," workflow the step fails and the engine retries it with backoff, so a transient cause may clear on its own. On a ",[994,3847,3848],{},"sync"," workflow there's no retry; the request comes back as a ",[1006,3851,3852],{},"400"," with the error spelled out, for the caller to handle.",[990,3855,3856],{},"The error message names the step and the offending reference, which usually points straight at the problem:",[1038,3858,3860],{"className":1040,"code":3859,"language":1042,"meta":1043,"style":1043},"{\n  \"error\": \"Expression error in step_1: steps.2.outputs is undefined (step index out of range)\"\n}\n",[1006,3861,3862,3866,3884],{"__ignoreMap":1043},[1047,3863,3864],{"class":1049,"line":1050},[1047,3865,1054],{"class":1053},[1047,3867,3868,3870,3873,3875,3877,3879,3882],{"class":1049,"line":1057},[1047,3869,1060],{"class":1053},[1047,3871,3872],{"class":1063},"error",[1047,3874,1067],{"class":1053},[1047,3876,1070],{"class":1053},[1047,3878,1073],{"class":1053},[1047,3880,3881],{"class":1076},"Expression error in step_1: steps.2.outputs is undefined (step index out of range)",[1047,3883,1156],{"class":1053},[1047,3885,3886],{"class":1049,"line":1085},[1047,3887,1213],{"class":1053},[990,3889,3890],{},"The reliable way to avoid these is to test a workflow with representative sample data before deploying it — the canvas's Test run resolves every expression against real values and surfaces a bad reference long before production traffic does.",[1030,3892,3894],{"id":3893},"next-steps","Next Steps",[3896,3897,3898,3906,3914],"ul",{},[1782,3899,3900,3905],{},[994,3901,3902],{},[3507,3903,231],{"href":3904},"\u002Fdocs\u002Fproducts\u002Fintegration-studio\u002Fnode-types\u002F"," — All available nodes and their inputs\u002Foutputs",[1782,3907,3908,3913],{},[994,3909,3910],{},[3507,3911,243],{"href":3912},"\u002Fdocs\u002Fproducts\u002Fintegration-studio\u002Ftriggers\u002F"," — How workflows start",[1782,3915,3916,3921],{},[994,3917,3918],{},[3507,3919,249],{"href":3920},"\u002Fdocs\u002Fproducts\u002Fintegration-studio\u002Fworkflow-builder\u002F"," — Building and testing workflows visually",[3923,3924,3925],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":1043,"searchDepth":1057,"depth":1057,"links":3927},[3928,3929,3941,3942,3948,3949,3950,3951],{"id":1032,"depth":1057,"text":1033},{"id":1216,"depth":1057,"text":1217,"children":3930},[3931,3933,3935,3937,3939],{"id":1233,"depth":1085,"text":3932},"Input Data: {{$}}",{"id":1328,"depth":1085,"text":3934},"Field Access: {{$.field}}",{"id":1442,"depth":1085,"text":3936},"Step Outputs: {{steps.N.outputs}}",{"id":1585,"depth":1085,"text":3938},"Secrets: {{secrets.KEY}}",{"id":1679,"depth":1085,"text":3940},"Environment Variables: {{env.VAR}}",{"id":1773,"depth":1057,"text":1774},{"id":1840,"depth":1057,"text":1841,"children":3943},[3944,3945,3946,3947],{"id":1847,"depth":1085,"text":1848},{"id":2401,"depth":1085,"text":2402},{"id":2815,"depth":1085,"text":2816},{"id":3196,"depth":1085,"text":3197},{"id":3422,"depth":1057,"text":3423},{"id":3611,"depth":1057,"text":3612},{"id":3837,"depth":1057,"text":3838},{"id":3893,"depth":1057,"text":3894},"Dynamic parameters and data flow in workflows","md",null,{"status":3956},"published",true,{"title":225,"description":3952},{"loc":226},"dEDY5423LBc1bFN1oCUnO1xViH1wH1uRbTPkdhZ_ffY",1785229262188]