PageSourceSearch

https://subtle-speculoos-98daca.netlify.app/assets/js/24e0d427.8490a8ca.js

js subtle-speculoos-98daca.netlify.app collected 2026-10-03 11:28:12 UTC 11,240 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkdwa_node_documentation=self.webpackChunkdwa_node_documentation||[]).push([[2979],{4963:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>d,toc:()=>r});var a=n(4848),i=n(8453);const s={title:"Basics",sidebar_position:1},o=void 0,d={id:"node-documentation/basics",title:"Basics",description:"Variables",source:"@site/docs/9-node-documentation/0-basics.md",sourceDirName:"9-node-documentation",slug:"/node-documentation/basics",permalink:"/node-documentation/basics",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Basics",sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Node Documentation",permalink:"/category/node-documentation"},next:{title:"Action Nodes",permalink:"/category/action-nodes"}},c={},r=[{value:"Variables",id:"variables",level:2},{value:"Default Variables",id:"default-variables",level:3},{value:"Input/Output Types",id:"inputoutput-types",level:2},{value:"Drifts",id:"drifts",level:2},{value:"Nodes",id:"nodes",level:2},{value:"Node Connection Points (Diagram 7)",id:"node-connection-points-diagram-7",level:2},{value:"Trigger Commands",id:"trigger-commands",level:2},{value:"Data Table",id:"data-table",level:2}];function l(e){const t={a:"a",br:"br",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",...(0,i.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"variables",children:"Variables"}),"\n",(0,a.jsx)(t.p,{children:'Variables in this case is the same as variables in other basic programming languages. It is a reference to a value. e.g. If I name my cat as Tabby, I wouldn\'t call it "Here \'cat\' come here". Rather I 
1would say "Here \'Tabby\' come here". It is known that Tabby is a cat, and that cat is Tabby. Sticking with the same example, If I have a table with Column Name "CAT", the rows below it can contain cat names such as "Tabby". (Diagram 1)'}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"Diagram 1",src:n(551).A+"",title:" =290.5x180.5",width:"581",height:"361"})}),"\n",(0,a.jsx)(t.p,{children:"The naming convention for variables is as follows:"}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.code,{children:"<NodeName>.<NodeVariableName>"})}),"\n",(0,a.jsx)(t.p,{children:'e.g. Following the previous example, if I were to have a table with the Column Name "CAT", and I place a Read Node to read that table, my variable would be named: \\'}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{src:n(8484).A+"",title:" =581x251",width:"1162",height:"502"})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"Diagram 2",src:n(7424).A+"",title:" =283x96.5",width:"566",height:"193"})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.code,{children:"Read cat name.CAT"})}),"\n",(0,a.jsxs)(t.p,{children:["The node name becomes ",(0,a.jsx)(t.code,{children:"Read cat name"})," since I have already renamed my Node to that"]}),"\n",(0,a.jsxs)(t.p,{children:['If used, it will output "Tabby" if the Output Options is set to ',(0,a.jsx)(t.em,{children:"First Row (Diagram 2)"}),", and an array [Tabby, Choco, Lotus]"]}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{src:n(699).A+"",title:" =155x213",width:"310",height:"426"})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{src:n(2499).A+"",title:" =668.5x229",width:"1337",height:"458"})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"Diagram 3",src:n(8977).A+"",title:" =228.5x128",width:"457",height:"256"})}),"\n",(0,a.jsxs)(t.p,{children:["if Output Options is set to ",(0,a.jsx)(t.em,{children:"Multiple Row (Diagram 3)"}),"."]}),"\n",(0,a.jsx)(t.p,{children:"Variables are only accessible to a node if it is created above the node."}),"\n",(0,a.jsx)(t.h3,{id:"default-variables",children:"Default Variables"}),"\n",(0,a.jsx)(t.p,{children:"These variables are accessible to any node, anywhere."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{src:n(8033).A+"",title:" =261x269",width:"522",height:"538"})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{src:n(3942).A+"",title:" =158.5x123.5",width:"317",height:"247"})}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"Diagram 4",src:n(9554).A+"",title:" =283x99",width:"566",height:"198"})}),"\n",(0,a.jsxs)(t.ol,{children:["\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsx)(t.p,{children:"Sender ID"}),"\n",(0,a.jsxs)(t.ol,{children:["\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsx)(t.p,{children:"The ID of the user that is triggering the workflow. In most cases, the ID is the user's phone number. (Diagram 4)"}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.br,{}),"\n",(0,a.jsx)(t.br,{}),"\n",(0,a.jsx)(t.br,{}),"\n",(0,a.jsx)(t.img,{alt:"Diagram 5",src:n(4435).A+"",title:" =476.5x210.5",width:"953",height:"421"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsx)(t.p,{children:"Latest Message"}),"\n",(0,a.jsxs)(t.ol,{children:["\n",(0,a.jsx)(t.li,{children:"The latest message that was sent by the user. (Diagram 5)"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.br,{}),"\n",(0,a.jsx)(t.img,{alt:"Diagram 6",src:n(9659).A+"",title:" =263.5x268",width:"527",height:"536"})]}),"\n",(0,a.jsxs)(t.ol,{children:["\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsx)(t.p,{children:"Current Date"}),"\n",(0,a.jsxs)(t.ol,{children:["\n",(0,a.jsx)(t.li,{children:"The current Date (Diagram 6)"}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsx)(t.p,{children:"Current Time"}),"\n",(0,a.jsxs)(t.ol,{children:["\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsx)(t.p,{children:"The current Time (Diagram 6)"}),"\n",(0,a.jsx)(t.p,{children:"\\"}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"inputoutput-types",children:"Input/Output Types"}),"\n",(0,a.jsx)(t.p,{children:"Below outlines the Input and Output types that are accepted in the DWA chatbot. These Input/Output types can be set within some nodes like the Message Node, to strictly allow that specific type to be accepted. If a user gives something other than the determined data type, the bot will re-prompt them for the correct data type."}),"\n",(0,a.jsxs)(t.ol,{children:["\n",(0,a.jsx)(t.li,{children:"integer"}),"\n",(0,a.jsx)(t.li,{children:"string"}),"\n",(0,a.jsx)(t.li,{children:"url"}),"\n",(0,a.jsx)(t.li,{children:"email"}
1),"\n",(0,a.jsx)(t.li,{children:"long_string"}),"\n",(0,a.jsx)(t.li,{children:"image_path"}),"\n",(0,a.jsx)(t.li,{children:"boolean"}),"\n",(0,a.jsx)(t.li,{children:"date"}),"\n",(0,a.jsx)(t.li,{children:"duration"}),"\n",(0,a.jsx)(t.li,{children:"float"}),"\n",(0,a.jsx)(t.li,{children:"file"}),"\n",(0,a.jsx)(t.li,{children:"pdf"}),"\n",(0,a.jsx)(t.li,{children:"object"}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"drifts",children:"Drifts"}),"\n",(0,a.jsxs)(t.p,{children:["Drifts are essentially workflows that influences the chatbot's behavior. It comprises of ",(0,a.jsx)(t.a,{href:"/doc/nodes-136Z8t7LlI",children:"Nodes"})," that are connected to each other to determine what the chatbot will do once the workflow has been triggered."]}),"\n",(0,a.jsx)(t.h2,{id:"nodes",children:"Nodes"}),"\n",(0,a.jsx)(t.p,{children:"Nodes are the building blocks of Drifts. They are individual actions that can connect and communicate to other nodes to eventually build a Drift."}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.br,{}),"\n",(0,a.jsx)(t.img,{alt:"Diagram 7",src:n(4212).A+"",title:" =143x166.5",width:"286",height:"333"})]}),"\n",(0,a.jsx)(t.h2,{id:"node-connection-points-diagram-7",children:"Node Connection Points (Diagram 7)"}),"\n",(0,a.jsx)(t.p,{children:"Each node has 2 connection points, with the exception of Path Node and Button Node. The connection point above the node, are called Receiver Points, while the ones at the bottom of the node are called Contributor Points. Receivers can only connect to contributors and contributors can only connect to receivers. They also cannot connect to themselves."}),"\n",(0,a.jsx)(t.p,{children:"The receiver can receive variables from the contributing node, which then allows variables to be passed from one end of the drift to the other end, as long as they are all connected. Meaning, Node 1 may contain the user's name and Node 12 may need to use the name, hence by connecting the nodes, Contributor to Receivers, from Node 1 to 12, it will be possible for Node 12 to use the name variable, as well as all the other variables in the nodes between 1 till 12."}),"\n",(0,a.jsx)(t.h2,{id:"trigger-commands",children:"Trigger Commands"}),"\n",(0,a.jsx)(t.p,{children:'Commands are keywords that triggers a drift. It marks the start of the chatbot executing the drift/workflow, based on the nodes that are in the drift. Each drift will be connected to one command only and commands always begin with "/", to signify that it is a command. Some special drifts, however, does not need a command, such as Entry Point Drifts, and Event Drifts.'}),"\n",(0,a.jsx)(t.h2,{id:"data-table",children:"Data Table"}),"\n",(0,a.jsx)(t.p,{children:"DWA has built in Data Table within its system to allow CRUD operations within the chatbot. The table closely resemble Excel Sheet or Airtable."})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},2499:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/0aaee208-a44b-41a8-a0a0-52ff7794b483-31a29e2e42ef1424132f74426bb19cda.png"}
1,4212:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/25b9e0ae-7828-446b-8973-c08a1fdd4c82-aeb4ba97db8c051188540fcf0bf52b1e.png"},7424:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/27df04e2-11a2-46cd-a590-7e7d98cda419-2acdd9be6db503642f2efa8ec3bebcf5.png"},551:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/2beebb55-6d32-437a-ac99-d29b8d4322c1-447ff1807ebac0546fdb4086b21c53ab.png"},8033:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/8b2c3a02-cc3b-434e-96a7-4d6db5f85ba2-e6ea5a62d213da4f17264e9e9d2cf043.png"},699:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/987cc429-f449-48f5-95ce-915c3970a827-4f9ec58810ebd1a35ed7baf54c508377.png"},8484:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/9fda76ab-635e-4b72-b64f-991fdd9bc381-2a7be3de3b76fd367b08863287aa076b.png"},4435:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/ac9785ef-26ae-4ef0-9c60-69d1e93777ab-8f7646ae087c3367abfd9997550e5652.png"},3942:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/bb6a8921-288e-4987-802f-9390c50ad5c7-8ec139249474c79e92ebe56ac722d8e4.png"},9554:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/c12d3086-d641-43ca-b5f3-602967b5ee43-d26224e9e1768dfbe4eed9d5ba4b5f0a.png"},8977:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/db12a0ca-cbb0-4b38-8bad-43113be94ddc-aa5f7287533a1b6efea2d0e40d9e0846.png"},9659:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/e3696c42-aac0-4687-a668-02ed4324ddc2-22f4b1712f1c37341dd041b8470b9acf.png"},8453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>d});var a=n(6540);const i={},s=a.createContext(i);function o(e){const t=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),a.createElement(s.Provider,{value:t},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.