[{"data":1,"prerenderedAt":1286},["ShallowReactive",2],{"\u002Fdocs\u002Freference\u002Fnode-types":3,"docs-navigation":1211,"docs-surround:\u002Fdocs\u002Freference\u002Fnode-types":1283},{"id":4,"title":5,"body":6,"description":1202,"extension":1203,"meta":1204,"navigation":1205,"path":1206,"seo":1207,"stem":1209,"__hash__":1210},"docs\u002Fdocs\u002F4.reference\u002F2.node-types.md","Node Types",{"type":7,"value":8,"toc":1192},"minimark",[9,28,33,36,155,160,164,167,172,175,282,289,295,299,302,365,368,528,543,547,550,553,701,707,711,714,717,874,877,906,912,916,919,922,932,1185,1188],[10,11,12,13,17,18,17,21,23,24,27],"p",{},"Gondo workflows use four node types: ",[14,15,16],"code",{},"trigger",", ",[14,19,20],{},"task",[14,22,14],{},", and ",[14,25,26],{},"human",".",[29,30,32],"h2",{"id":31},"shared-node-fields","Shared node fields",[10,34,35],{},"Most nodes share this shape:",[37,38,43],"pre",{"className":39,"code":40,"language":41,"meta":42,"style":42},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","id: example_node\ntype: task\ntitle: Example node\ngoal: One short sentence for people reading the graph.\nintegrations:\n  - finance_gmail\nconfig: {}\nui:\n  x: 0\n  y: 0\n","yaml","",[14,44,45,62,73,84,95,104,113,124,132,144],{"__ignoreMap":42},[46,47,50,54,58],"span",{"class":48,"line":49},"line",1,[46,51,53],{"class":52},"swJcz","id",[46,55,57],{"class":56},"sMK4o",":",[46,59,61],{"class":60},"sfazB"," example_node\n",[46,63,65,68,70],{"class":48,"line":64},2,[46,66,67],{"class":52},"type",[46,69,57],{"class":56},[46,71,72],{"class":60}," task\n",[46,74,76,79,81],{"class":48,"line":75},3,[46,77,78],{"class":52},"title",[46,80,57],{"class":56},[46,82,83],{"class":60}," Example node\n",[46,85,87,90,92],{"class":48,"line":86},4,[46,88,89],{"class":52},"goal",[46,91,57],{"class":56},[46,93,94],{"class":60}," One short sentence for people reading the graph.\n",[46,96,98,101],{"class":48,"line":97},5,[46,99,100],{"class":52},"integrations",[46,102,103],{"class":56},":\n",[46,105,107,110],{"class":48,"line":106},6,[46,108,109],{"class":56},"  -",[46,111,112],{"class":60}," finance_gmail\n",[46,114,116,119,121],{"class":48,"line":115},7,[46,117,118],{"class":52},"config",[46,120,57],{"class":56},[46,122,123],{"class":56}," {}\n",[46,125,127,130],{"class":48,"line":126},8,[46,128,129],{"class":52},"ui",[46,131,103],{"class":56},[46,133,135,138,140],{"class":48,"line":134},9,[46,136,137],{"class":52},"  x",[46,139,57],{"class":56},[46,141,143],{"class":142},"sbssI"," 0\n",[46,145,147,151,153],{"class":48,"line":146},10,[46,148,150],{"class":149},"sfNiH","  y",[46,152,57],{"class":56},[46,154,143],{"class":142},[10,156,157,159],{},[14,158,100],{}," lists the integration reference IDs the node is allowed to use.",[29,161,163],{"id":162},"trigger-nodes","Trigger nodes",[10,165,166],{},"Triggers start workflows.",[168,169,171],"h3",{"id":170},"command-trigger","Command trigger",[10,173,174],{},"Use a command trigger when the workflow starts from chat, a manual run, or a command-style invocation.",[37,176,178],{"className":39,"code":177,"language":41,"meta":42,"style":42},"type: trigger\ntitle: Run\nconfig:\n  kind: command\n  name: review-invoices\n  dataSchema:\n    type: object\n    properties:\n      folderId:\n        type: string\n    required: [folderId]\n",[14,179,180,189,198,204,214,224,231,241,248,255,265],{"__ignoreMap":42},[46,181,182,184,186],{"class":48,"line":49},[46,183,67],{"class":52},[46,185,57],{"class":56},[46,187,188],{"class":60}," trigger\n",[46,190,191,193,195],{"class":48,"line":64},[46,192,78],{"class":52},[46,194,57],{"class":56},[46,196,197],{"class":60}," Run\n",[46,199,200,202],{"class":48,"line":75},[46,201,118],{"class":52},[46,203,103],{"class":56},[46,205,206,209,211],{"class":48,"line":86},[46,207,208],{"class":52},"  kind",[46,210,57],{"class":56},[46,212,213],{"class":60}," command\n",[46,215,216,219,221],{"class":48,"line":97},[46,217,218],{"class":52},"  name",[46,220,57],{"class":56},[46,222,223],{"class":60}," review-invoices\n",[46,225,226,229],{"class":48,"line":106},[46,227,228],{"class":52},"  dataSchema",[46,230,103],{"class":56},[46,232,233,236,238],{"class":48,"line":115},[46,234,235],{"class":52},"    type",[46,237,57],{"class":56},[46,239,240],{"class":60}," object\n",[46,242,243,246],{"class":48,"line":126},[46,244,245],{"class":52},"    properties",[46,247,103],{"class":56},[46,249,250,253],{"class":48,"line":134},[46,251,252],{"class":52},"      folderId",[46,254,103],{"class":56},[46,256,257,260,262],{"class":48,"line":146},[46,258,259],{"class":52},"        type",[46,261,57],{"class":56},[46,263,264],{"class":60}," string\n",[46,266,268,271,273,276,279],{"class":48,"line":267},11,[46,269,270],{"class":52},"    required",[46,272,57],{"class":56},[46,274,275],{"class":56}," [",[46,277,278],{"class":60},"folderId",[46,280,281],{"class":56},"]\n",[10,283,284,285,288],{},"The ",[14,286,287],{},"config.name"," field above names the command trigger, not the workflow itself.",[10,290,291,292,27],{},"The trigger output is available downstream as ",[14,293,294],{},"ctx.data.\u003CtriggerNodeId>",[168,296,298],{"id":297},"auto-trigger","Auto trigger",[10,300,301],{},"Use an auto trigger when the workflow should run on a schedule.",[37,303,305],{"className":39,"code":304,"language":41,"meta":42,"style":42},"type: trigger\ntitle: Weekday check\nconfig:\n  kind: auto\n  cron: '0 9 * * 1-5'\n  timezone: Europe\u002FLondon\n",[14,306,307,315,324,330,339,355],{"__ignoreMap":42},[46,308,309,311,313],{"class":48,"line":49},[46,310,67],{"class":52},[46,312,57],{"class":56},[46,314,188],{"class":60},[46,316,317,319,321],{"class":48,"line":64},[46,318,78],{"class":52},[46,320,57],{"class":56},[46,322,323],{"class":60}," Weekday check\n",[46,325,326,328],{"class":48,"line":75},[46,327,118],{"class":52},[46,329,103],{"class":56},[46,331,332,334,336],{"class":48,"line":86},[46,333,208],{"class":52},[46,335,57],{"class":56},[46,337,338],{"class":60}," auto\n",[46,340,341,344,346,349,352],{"class":48,"line":97},[46,342,343],{"class":52},"  cron",[46,345,57],{"class":56},[46,347,348],{"class":56}," '",[46,350,351],{"class":60},"0 9 * * 1-5",[46,353,354],{"class":56},"'\n",[46,356,357,360,362],{"class":48,"line":106},[46,358,359],{"class":52},"  timezone",[46,361,57],{"class":56},[46,363,364],{"class":60}," Europe\u002FLondon\n",[10,366,367],{},"An auto trigger can also run code before starting workflow runs.",[37,369,371],{"className":39,"code":370,"language":41,"meta":42,"style":42},"type: trigger\ntitle: New Gmail messages\nintegrations:\n  - finance_gmail\nconfig:\n  kind: auto\n  cron: '*\u002F15 * * * *'\n  code: |\n    const gmail = getIntegration('finance_gmail')\n    const messages = await (await gmail.get('\u002Fmessages?q=invoice')).json()\n\n    for (const message of messages.messages ?? []) {\n      await triggerWorkflow({ messageId: message.id })\n    }\n  dataSchema:\n    type: object\n    required: [messageId]\n    properties:\n      messageId:\n        type: string\n",[14,372,373,381,390,396,402,408,416,429,440,445,450,456,462,468,474,481,490,504,511,519],{"__ignoreMap":42},[46,374,375,377,379],{"class":48,"line":49},[46,376,67],{"class":52},[46,378,57],{"class":56},[46,380,188],{"class":60},[46,382,383,385,387],{"class":48,"line":64},[46,384,78],{"class":52},[46,386,57],{"class":56},[46,388,389],{"class":60}," New Gmail messages\n",[46,391,392,394],{"class":48,"line":75},[46,393,100],{"class":52},[46,395,103],{"class":56},[46,397,398,400],{"class":48,"line":86},[46,399,109],{"class":56},[46,401,112],{"class":60},[46,403,404,406],{"class":48,"line":97},[46,405,118],{"class":52},[46,407,103],{"class":56},[46,409,410,412,414],{"class":48,"line":106},[46,411,208],{"class":52},[46,413,57],{"class":56},[46,415,338],{"class":60},[46,417,418,420,422,424,427],{"class":48,"line":115},[46,419,343],{"class":52},[46,421,57],{"class":56},[46,423,348],{"class":56},[46,425,426],{"class":60},"*\u002F15 * * * *",[46,428,354],{"class":56},[46,430,431,434,436],{"class":48,"line":126},[46,432,433],{"class":52},"  code",[46,435,57],{"class":56},[46,437,439],{"class":438},"s7zQu"," |\n",[46,441,442],{"class":48,"line":134},[46,443,444],{"class":60},"    const gmail = getIntegration('finance_gmail')\n",[46,446,447],{"class":48,"line":146},[46,448,449],{"class":60},"    const messages = await (await gmail.get('\u002Fmessages?q=invoice')).json()\n",[46,451,452],{"class":48,"line":267},[46,453,455],{"emptyLinePlaceholder":454},true,"\n",[46,457,459],{"class":48,"line":458},12,[46,460,461],{"class":60},"    for (const message of messages.messages ?? []) {\n",[46,463,465],{"class":48,"line":464},13,[46,466,467],{"class":60},"      await triggerWorkflow({ messageId: message.id })\n",[46,469,471],{"class":48,"line":470},14,[46,472,473],{"class":60},"    }\n",[46,475,477,479],{"class":48,"line":476},15,[46,478,228],{"class":52},[46,480,103],{"class":56},[46,482,484,486,488],{"class":48,"line":483},16,[46,485,235],{"class":52},[46,487,57],{"class":56},[46,489,240],{"class":60},[46,491,493,495,497,499,502],{"class":48,"line":492},17,[46,494,270],{"class":52},[46,496,57],{"class":56},[46,498,275],{"class":56},[46,500,501],{"class":60},"messageId",[46,503,281],{"class":56},[46,505,507,509],{"class":48,"line":506},18,[46,508,245],{"class":52},[46,510,103],{"class":56},[46,512,514,517],{"class":48,"line":513},19,[46,515,516],{"class":52},"      messageId",[46,518,103],{"class":56},[46,520,522,524,526],{"class":48,"line":521},20,[46,523,259],{"class":52},[46,525,57],{"class":56},[46,527,264],{"class":60},[10,529,530,531,17,534,17,537,23,540,27],{},"Auto trigger code can use ",[14,532,533],{},"store.get",[14,535,536],{},"store.set",[14,538,539],{},"store.delete",[14,541,542],{},"triggerWorkflow(data)",[29,544,546],{"id":545},"task-nodes","Task nodes",[10,548,549],{},"A task node is an AI reasoning step.",[10,551,552],{},"Use it when the workflow needs judgement, classification, drafting, document reading, messy data handling, or adaptable browser work.",[37,554,556],{"className":39,"code":555,"language":41,"meta":42,"style":42},"type: task\ntitle: Classify invoice\ngoal: Decide whether the invoice needs review.\nintegrations:\n  - finance_gmail\nconfig:\n  instruction: |-\n    Read the invoice email identified by ctx.data.new_email.messageId.\n    Return whether it needs human review.\n    If the amount is missing, set needsReview to true and explain why.\n  dataSchema:\n    type: object\n    required: [needsReview, reason]\n    properties:\n      needsReview:\n        type: boolean\n      reason:\n        type: string\n",[14,557,558,566,575,584,590,596,602,616,621,626,631,637,645,664,670,677,686,693],{"__ignoreMap":42},[46,559,560,562,564],{"class":48,"line":49},[46,561,67],{"class":52},[46,563,57],{"class":56},[46,565,72],{"class":60},[46,567,568,570,572],{"class":48,"line":64},[46,569,78],{"class":52},[46,571,57],{"class":56},[46,573,574],{"class":60}," Classify invoice\n",[46,576,577,579,581],{"class":48,"line":75},[46,578,89],{"class":52},[46,580,57],{"class":56},[46,582,583],{"class":60}," Decide whether the invoice needs review.\n",[46,585,586,588],{"class":48,"line":86},[46,587,100],{"class":52},[46,589,103],{"class":56},[46,591,592,594],{"class":48,"line":97},[46,593,109],{"class":56},[46,595,112],{"class":60},[46,597,598,600],{"class":48,"line":106},[46,599,118],{"class":52},[46,601,103],{"class":56},[46,603,604,607,609,612],{"class":48,"line":115},[46,605,606],{"class":52},"  instruction",[46,608,57],{"class":56},[46,610,611],{"class":438}," |",[46,613,615],{"class":614},"spNyl","-\n",[46,617,618],{"class":48,"line":126},[46,619,620],{"class":60},"    Read the invoice email identified by ctx.data.new_email.messageId.\n",[46,622,623],{"class":48,"line":134},[46,624,625],{"class":60},"    Return whether it needs human review.\n",[46,627,628],{"class":48,"line":146},[46,629,630],{"class":60},"    If the amount is missing, set needsReview to true and explain why.\n",[46,632,633,635],{"class":48,"line":267},[46,634,228],{"class":52},[46,636,103],{"class":56},[46,638,639,641,643],{"class":48,"line":458},[46,640,235],{"class":52},[46,642,57],{"class":56},[46,644,240],{"class":60},[46,646,647,649,651,653,656,659,662],{"class":48,"line":464},[46,648,270],{"class":52},[46,650,57],{"class":56},[46,652,275],{"class":56},[46,654,655],{"class":60},"needsReview",[46,657,658],{"class":56},",",[46,660,661],{"class":60}," reason",[46,663,281],{"class":56},[46,665,666,668],{"class":48,"line":470},[46,667,245],{"class":52},[46,669,103],{"class":56},[46,671,672,675],{"class":48,"line":476},[46,673,674],{"class":52},"      needsReview",[46,676,103],{"class":56},[46,678,679,681,683],{"class":48,"line":483},[46,680,259],{"class":52},[46,682,57],{"class":56},[46,684,685],{"class":60}," boolean\n",[46,687,688,691],{"class":48,"line":492},[46,689,690],{"class":52},"      reason",[46,692,103],{"class":56},[46,694,695,697,699],{"class":48,"line":506},[46,696,259],{"class":52},[46,698,57],{"class":56},[46,700,264],{"class":60},[10,702,703,704,27],{},"The task node returns structured data matching ",[14,705,706],{},"dataSchema",[29,708,710],{"id":709},"code-nodes","Code nodes",[10,712,713],{},"A code node runs deterministic JavaScript.",[10,715,716],{},"Use it for API calls, structured writes, file movement in the workflow workspace, or transformations where the input shape is already clear.",[37,718,720],{"className":39,"code":719,"language":41,"meta":42,"style":42},"type: code\ntitle: Add row to sheet\ngoal: Write approved invoice data to the finance sheet.\nintegrations:\n  - finance_sheets\nconfig:\n  code: |\n    const sheets = getIntegration('finance_sheets')\n    const invoice = ctx.data.classify_invoice\n    const response = await sheets.post('\u002Fvalues\u002FA1:append', {\n      values: [[invoice.supplierName, invoice.amount]]\n    })\n    const result = await response.json()\n    return { updatedRange: result.updates?.updatedRange ?? null }\n  dataSchema:\n    type: object\n    required: [updatedRange]\n    properties:\n      updatedRange:\n        type: [string, 'null']\n",[14,721,722,731,740,749,755,762,768,776,781,786,791,796,801,806,811,817,825,838,844,851],{"__ignoreMap":42},[46,723,724,726,728],{"class":48,"line":49},[46,725,67],{"class":52},[46,727,57],{"class":56},[46,729,730],{"class":60}," code\n",[46,732,733,735,737],{"class":48,"line":64},[46,734,78],{"class":52},[46,736,57],{"class":56},[46,738,739],{"class":60}," Add row to sheet\n",[46,741,742,744,746],{"class":48,"line":75},[46,743,89],{"class":52},[46,745,57],{"class":56},[46,747,748],{"class":60}," Write approved invoice data to the finance sheet.\n",[46,750,751,753],{"class":48,"line":86},[46,752,100],{"class":52},[46,754,103],{"class":56},[46,756,757,759],{"class":48,"line":97},[46,758,109],{"class":56},[46,760,761],{"class":60}," finance_sheets\n",[46,763,764,766],{"class":48,"line":106},[46,765,118],{"class":52},[46,767,103],{"class":56},[46,769,770,772,774],{"class":48,"line":115},[46,771,433],{"class":52},[46,773,57],{"class":56},[46,775,439],{"class":438},[46,777,778],{"class":48,"line":126},[46,779,780],{"class":60},"    const sheets = getIntegration('finance_sheets')\n",[46,782,783],{"class":48,"line":134},[46,784,785],{"class":60},"    const invoice = ctx.data.classify_invoice\n",[46,787,788],{"class":48,"line":146},[46,789,790],{"class":60},"    const response = await sheets.post('\u002Fvalues\u002FA1:append', {\n",[46,792,793],{"class":48,"line":267},[46,794,795],{"class":60},"      values: [[invoice.supplierName, invoice.amount]]\n",[46,797,798],{"class":48,"line":458},[46,799,800],{"class":60},"    })\n",[46,802,803],{"class":48,"line":464},[46,804,805],{"class":60},"    const result = await response.json()\n",[46,807,808],{"class":48,"line":470},[46,809,810],{"class":60},"    return { updatedRange: result.updates?.updatedRange ?? null }\n",[46,812,813,815],{"class":48,"line":476},[46,814,228],{"class":52},[46,816,103],{"class":56},[46,818,819,821,823],{"class":48,"line":483},[46,820,235],{"class":52},[46,822,57],{"class":56},[46,824,240],{"class":60},[46,826,827,829,831,833,836],{"class":48,"line":492},[46,828,270],{"class":52},[46,830,57],{"class":56},[46,832,275],{"class":56},[46,834,835],{"class":60},"updatedRange",[46,837,281],{"class":56},[46,839,840,842],{"class":48,"line":506},[46,841,245],{"class":52},[46,843,103],{"class":56},[46,845,846,849],{"class":48,"line":513},[46,847,848],{"class":52},"      updatedRange",[46,850,103],{"class":56},[46,852,853,855,857,859,862,864,866,869,872],{"class":48,"line":521},[46,854,259],{"class":52},[46,856,57],{"class":56},[46,858,275],{"class":56},[46,860,861],{"class":60},"string",[46,863,658],{"class":56},[46,865,348],{"class":56},[46,867,868],{"class":60},"null",[46,870,871],{"class":56},"'",[46,873,281],{"class":56},[10,875,876],{},"Code nodes can use:",[878,879,880,886,891,896,901],"ul",{},[881,882,883],"li",{},[14,884,885],{},"ctx.data",[881,887,888],{},[14,889,890],{},"ctx.run",[881,892,893],{},[14,894,895],{},"ctx.vars",[881,897,898],{},[14,899,900],{},"getIntegration('\u003CreferenceId>')",[881,902,903],{},[14,904,905],{},"log(...)",[10,907,908,909,27],{},"External provider calls must go through ",[14,910,911],{},"getIntegration()",[29,913,915],{"id":914},"human-nodes","Human nodes",[10,917,918],{},"A human node pauses the workflow.",[10,920,921],{},"Use it when a person should review, approve, edit, or provide information.",[10,923,924,925,928,929,27],{},"Human node UI is stored as a Vue single-file component in ",[14,926,927],{},"config.component",". When completed, its final state becomes ",[14,930,931],{},"ctx.data.\u003CnodeId>",[37,933,935],{"className":39,"code":934,"language":41,"meta":42,"style":42},"type: human\ntitle: Approve invoice\ngoal: Ask finance to approve or reject the invoice.\nconfig:\n  dataSchema:\n    type: object\n    required: [decision, notes]\n    properties:\n      decision:\n        type: string\n        enum: [approved, rejected]\n      notes:\n        type: string\n  component: |\n    \u003Ctemplate>\n      \u003Csection>\n        \u003Cp>Approve this invoice?\u003C\u002Fp>\n        \u003Cbutton type=\"button\" @click=\"approve\">Approve\u003C\u002Fbutton>\n      \u003C\u002Fsection>\n    \u003C\u002Ftemplate>\n\n    \u003Cscript setup>\n    const { submitAction } = defineProps({\n      submitAction: { type: Function, required: true }\n    })\n\n    function approve() {\n      submitAction('approve', { notes: '' })\n    }\n    \u003C\u002Fscript>\n\n    \u003Cscript backend>\n    export async function approve(state, inputs) {\n      return { ...state, decision: 'approved', notes: inputs.notes, done: true }\n    }\n    \u003C\u002Fscript>\n",[14,936,937,946,955,964,970,976,984,1002,1008,1015,1023,1042,1049,1057,1066,1071,1076,1081,1086,1091,1096,1101,1107,1113,1119,1124,1129,1135,1141,1146,1152,1157,1163,1169,1175,1180],{"__ignoreMap":42},[46,938,939,941,943],{"class":48,"line":49},[46,940,67],{"class":52},[46,942,57],{"class":56},[46,944,945],{"class":60}," human\n",[46,947,948,950,952],{"class":48,"line":64},[46,949,78],{"class":52},[46,951,57],{"class":56},[46,953,954],{"class":60}," Approve invoice\n",[46,956,957,959,961],{"class":48,"line":75},[46,958,89],{"class":52},[46,960,57],{"class":56},[46,962,963],{"class":60}," Ask finance to approve or reject the invoice.\n",[46,965,966,968],{"class":48,"line":86},[46,967,118],{"class":52},[46,969,103],{"class":56},[46,971,972,974],{"class":48,"line":97},[46,973,228],{"class":52},[46,975,103],{"class":56},[46,977,978,980,982],{"class":48,"line":106},[46,979,235],{"class":52},[46,981,57],{"class":56},[46,983,240],{"class":60},[46,985,986,988,990,992,995,997,1000],{"class":48,"line":115},[46,987,270],{"class":52},[46,989,57],{"class":56},[46,991,275],{"class":56},[46,993,994],{"class":60},"decision",[46,996,658],{"class":56},[46,998,999],{"class":60}," notes",[46,1001,281],{"class":56},[46,1003,1004,1006],{"class":48,"line":126},[46,1005,245],{"class":52},[46,1007,103],{"class":56},[46,1009,1010,1013],{"class":48,"line":134},[46,1011,1012],{"class":52},"      decision",[46,1014,103],{"class":56},[46,1016,1017,1019,1021],{"class":48,"line":146},[46,1018,259],{"class":52},[46,1020,57],{"class":56},[46,1022,264],{"class":60},[46,1024,1025,1028,1030,1032,1035,1037,1040],{"class":48,"line":267},[46,1026,1027],{"class":52},"        enum",[46,1029,57],{"class":56},[46,1031,275],{"class":56},[46,1033,1034],{"class":60},"approved",[46,1036,658],{"class":56},[46,1038,1039],{"class":60}," rejected",[46,1041,281],{"class":56},[46,1043,1044,1047],{"class":48,"line":458},[46,1045,1046],{"class":52},"      notes",[46,1048,103],{"class":56},[46,1050,1051,1053,1055],{"class":48,"line":464},[46,1052,259],{"class":52},[46,1054,57],{"class":56},[46,1056,264],{"class":60},[46,1058,1059,1062,1064],{"class":48,"line":470},[46,1060,1061],{"class":52},"  component",[46,1063,57],{"class":56},[46,1065,439],{"class":438},[46,1067,1068],{"class":48,"line":476},[46,1069,1070],{"class":60},"    \u003Ctemplate>\n",[46,1072,1073],{"class":48,"line":483},[46,1074,1075],{"class":60},"      \u003Csection>\n",[46,1077,1078],{"class":48,"line":492},[46,1079,1080],{"class":60},"        \u003Cp>Approve this invoice?\u003C\u002Fp>\n",[46,1082,1083],{"class":48,"line":506},[46,1084,1085],{"class":60},"        \u003Cbutton type=\"button\" @click=\"approve\">Approve\u003C\u002Fbutton>\n",[46,1087,1088],{"class":48,"line":513},[46,1089,1090],{"class":60},"      \u003C\u002Fsection>\n",[46,1092,1093],{"class":48,"line":521},[46,1094,1095],{"class":60},"    \u003C\u002Ftemplate>\n",[46,1097,1099],{"class":48,"line":1098},21,[46,1100,455],{"emptyLinePlaceholder":454},[46,1102,1104],{"class":48,"line":1103},22,[46,1105,1106],{"class":60},"    \u003Cscript setup>\n",[46,1108,1110],{"class":48,"line":1109},23,[46,1111,1112],{"class":60},"    const { submitAction } = defineProps({\n",[46,1114,1116],{"class":48,"line":1115},24,[46,1117,1118],{"class":60},"      submitAction: { type: Function, required: true }\n",[46,1120,1122],{"class":48,"line":1121},25,[46,1123,800],{"class":60},[46,1125,1127],{"class":48,"line":1126},26,[46,1128,455],{"emptyLinePlaceholder":454},[46,1130,1132],{"class":48,"line":1131},27,[46,1133,1134],{"class":60},"    function approve() {\n",[46,1136,1138],{"class":48,"line":1137},28,[46,1139,1140],{"class":60},"      submitAction('approve', { notes: '' })\n",[46,1142,1144],{"class":48,"line":1143},29,[46,1145,473],{"class":60},[46,1147,1149],{"class":48,"line":1148},30,[46,1150,1151],{"class":60},"    \u003C\u002Fscript>\n",[46,1153,1155],{"class":48,"line":1154},31,[46,1156,455],{"emptyLinePlaceholder":454},[46,1158,1160],{"class":48,"line":1159},32,[46,1161,1162],{"class":60},"    \u003Cscript backend>\n",[46,1164,1166],{"class":48,"line":1165},33,[46,1167,1168],{"class":60},"    export async function approve(state, inputs) {\n",[46,1170,1172],{"class":48,"line":1171},34,[46,1173,1174],{"class":60},"      return { ...state, decision: 'approved', notes: inputs.notes, done: true }\n",[46,1176,1178],{"class":48,"line":1177},35,[46,1179,473],{"class":60},[46,1181,1183],{"class":48,"line":1182},36,[46,1184,1151],{"class":60},[10,1186,1187],{},"Human nodes should render both an active input state and a completed recap state.",[1189,1190,1191],"style",{},"html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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 .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":42,"searchDepth":64,"depth":64,"links":1193},[1194,1195,1199,1200,1201],{"id":31,"depth":64,"text":32},{"id":162,"depth":64,"text":163,"children":1196},[1197,1198],{"id":170,"depth":75,"text":171},{"id":297,"depth":75,"text":298},{"id":545,"depth":64,"text":546},{"id":709,"depth":64,"text":710},{"id":914,"depth":64,"text":915},"Reference for trigger, task, code, and human nodes, including configs and runtime context.","md",{},"[object Object]","\u002Fdocs\u002Freference\u002Fnode-types",{"title":1208,"description":1202},"Gondo Node Types","docs\u002F4.reference\u002F2.node-types","z_oyNnDOY7LUNRGdMJiDwPcgkvKCWHHQClUZuaySuAw",[1212],{"title":1213,"path":1214,"stem":1215,"children":1216},"Docs","\u002Fdocs","docs",[1217,1221,1226,1247,1262,1278],{"title":1218,"path":1214,"stem":1219,"description":1220},"Gondo Docs","docs\u002Findex","Learn the basic ideas behind Gondo, from integrations and workflows to runs, approvals, and workflow YAML.",{"title":1222,"path":1223,"stem":1224,"description":1225},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started","Connect an integration, ask Gondo for help, build a workflow, and watch it run.",{"title":1227,"path":1228,"stem":1229,"children":1230,"page":1246},"Concepts","\u002Fdocs\u002Fconcepts","docs\u002F2.concepts",[1231,1236,1241],{"title":1232,"path":1233,"stem":1234,"description":1235},"Integrations","\u002Fdocs\u002Fconcepts\u002Fintegrations","docs\u002F2.concepts\u002F1.integrations","Integrations are the connected apps, accounts, websites, and systems Gondo can use.",{"title":1237,"path":1238,"stem":1239,"description":1240},"Workflows","\u002Fdocs\u002Fconcepts\u002Fworkflows","docs\u002F2.concepts\u002F2.workflows","Workflows are repeatable processes made from triggers, AI tasks, code, human review, and edges.",{"title":1242,"path":1243,"stem":1244,"description":1245},"Runs and Activity","\u002Fdocs\u002Fconcepts\u002Fruns-and-activity","docs\u002F2.concepts\u002F3.runs-and-activity","Learn what happens when a workflow runs and how to read statuses, approvals, failures, and reauth pauses.",false,{"title":1248,"path":1249,"stem":1250,"children":1251,"page":1246},"Guides","\u002Fdocs\u002Fguides","docs\u002F3.guides",[1252,1257],{"title":1253,"path":1254,"stem":1255,"description":1256},"Connect an Integration","\u002Fdocs\u002Fguides\u002Fconnect-an-integration","docs\u002F3.guides\u002F1.connect-an-integration","Add a connected app or system so Gondo can use it in chats and workflows.",{"title":1258,"path":1259,"stem":1260,"description":1261},"Build Your First Workflow","\u002Fdocs\u002Fguides\u002Fbuild-your-first-workflow","docs\u002F3.guides\u002F2.build-your-first-workflow","A practical walkthrough for turning a plain-English process into a small Gondo workflow.",{"title":1263,"path":1264,"stem":1265,"children":1266,"page":1246},"Reference","\u002Fdocs\u002Freference","docs\u002F4.reference",[1267,1272,1273],{"title":1268,"path":1269,"stem":1270,"description":1271},"Workflow YAML","\u002Fdocs\u002Freference\u002Fworkflow-yaml","docs\u002F4.reference\u002F1.workflow-yaml","The technical shape of Gondo workflow definitions, including version, run display, variables, nodes, edges, and schema rules.",{"title":5,"path":1206,"stem":1209,"description":1202},{"title":1274,"path":1275,"stem":1276,"description":1277},"Integration Tools","\u002Fdocs\u002Freference\u002Fintegration-tools","docs\u002F4.reference\u002F3.integration-tools","How integration tools, toolsets, scopes, disabled tools, and custom tools fit together.",{"title":1279,"path":1280,"stem":1281,"description":1282},"Troubleshooting","\u002Fdocs\u002Ftroubleshooting","docs\u002F5.troubleshooting","Fix common problems with integrations, workflow runs, human input, browser sessions, and YAML.",[1284,1285],{"title":1268,"path":1269,"stem":1270,"children":-1},{"title":1274,"path":1275,"stem":1276,"children":-1},1782191065142]