[{"data":1,"prerenderedAt":978},["ShallowReactive",2],{"handbook-\u002Fhandbook\u002Fengineering\u002Ffrontend\u002Fservices":3,"handbook-nav":267},{"id":4,"title":5,"body":6,"description":260,"extension":261,"meta":262,"navigation":26,"path":263,"seo":264,"stem":265,"__hash__":266},"handbook\u002Fhandbook\u002Fengineering\u002Ffrontend\u002Fservices.md","Services",{"type":7,"value":8,"toc":256},"minimark",[9,13,22,33,38,41,52,137,148,152,155,239,246,252],[10,11,5],"h1",{"id":12},"services",[14,15,16,17,21],"p",{},"The frontend contains two helper services that can be called anywhere in the UI. Each of the services control components built into the main ",[18,19,20],"code",{},"Platform.vue",".",[23,24,27,28],"video",{"width":25,"controls":26},500,true,"\n  ",[29,30],"source",{"src":31,"type":32},"https:\u002F\u002Fwebsite-data.s3.eu-west-1.amazonaws.com\u002Fui-services-demo.mp4","video\u002Fmp4",[34,35,37],"h2",{"id":36},"alerts","Alerts",[14,39,40],{},"Alerts should be used to reinforce the completion of an action, or to alert a user that something has gone wrong.",[14,42,43,44,51],{},"The important piece to note here is that alerts should be for ",[45,46,47],"em",{},[48,49,50],"strong",{},"information only",", and should not require any actions on the user's part.",[53,54,59],"pre",{"className":55,"code":56,"language":57,"meta":58,"style":58},"language-js shiki shiki-themes github-light github-dark","import Alert from '@\u002Fservices\u002Falerts'\n\n\u002F*\n * msg       - The text to be displayed in the alert.\n * type      - 'info' | 'confirmation' | 'warning'\n * countdown - (optional) If provided, the alert will disappear\n *             after this duration (ms), defaults to 3000.\n *\u002F\nAlert.emit(msg, type, countdown)\n","js","",[18,60,61,81,87,94,100,106,112,118,124],{"__ignoreMap":58},[62,63,66,70,74,77],"span",{"class":64,"line":65},"line",1,[62,67,69],{"class":68},"szBVR","import",[62,71,73],{"class":72},"sVt8B"," Alert ",[62,75,76],{"class":68},"from",[62,78,80],{"class":79},"sZZnC"," '@\u002Fservices\u002Falerts'\n",[62,82,84],{"class":64,"line":83},2,[62,85,86],{"emptyLinePlaceholder":26},"\n",[62,88,90],{"class":64,"line":89},3,[62,91,93],{"class":92},"sJ8bj","\u002F*\n",[62,95,97],{"class":64,"line":96},4,[62,98,99],{"class":92}," * msg       - The text to be displayed in the alert.\n",[62,101,103],{"class":64,"line":102},5,[62,104,105],{"class":92}," * type      - 'info' | 'confirmation' | 'warning'\n",[62,107,109],{"class":64,"line":108},6,[62,110,111],{"class":92}," * countdown - (optional) If provided, the alert will disappear\n",[62,113,115],{"class":64,"line":114},7,[62,116,117],{"class":92}," *             after this duration (ms), defaults to 3000.\n",[62,119,121],{"class":64,"line":120},8,[62,122,123],{"class":92}," *\u002F\n",[62,125,127,130,134],{"class":64,"line":126},9,[62,128,129],{"class":72},"Alert.",[62,131,133],{"class":132},"sScJk","emit",[62,135,136],{"class":72},"(msg, type, countdown)\n",[14,138,139,140,147],{},"The service is built from the ",[141,142,146],"a",{"href":143,"rel":144},"https:\u002F\u002Fflowfuse.github.io\u002Fforge-ui-components\u002F#ff-notification-toast",[145],"nofollow","ff-notification-toast"," forge-ui-component.",[34,149,151],{"id":150},"dialog","Dialog",[14,153,154],{},"The Dialog service should be used when user confirmation is required, after an action has been taken. For example, if a user attempts to delete a resource, a confirmation Dialog should be shown to ensure this was not an accidental action.",[53,156,158],{"className":55,"code":157,"language":57,"meta":58,"style":58},"import Dialog from '@\u002Fservices\u002Fdialog'\n\n\u002F*\n * msg      - {\n *               header: '\u003Cheader title>',\n *               kind: 'danger` | `primary` | `secondary` | `tertiary',  (default = 'primary') \n *               text: 'show this message in the dialog',\n *               html: 'instead of \"text\", you can provide html for more custom appearance and content',\n *               confirmLabel: '\u003Cconfirm-label>'\n *            }\n * callback - function to run when the user confirms the dialog\n *\u002F\nDialog.show(msg, callback)\n",[18,159,160,172,176,180,185,190,195,200,205,210,216,222,227],{"__ignoreMap":58},[62,161,162,164,167,169],{"class":64,"line":65},[62,163,69],{"class":68},[62,165,166],{"class":72}," Dialog ",[62,168,76],{"class":68},[62,170,171],{"class":79}," '@\u002Fservices\u002Fdialog'\n",[62,173,174],{"class":64,"line":83},[62,175,86],{"emptyLinePlaceholder":26},[62,177,178],{"class":64,"line":89},[62,179,93],{"class":92},[62,181,182],{"class":64,"line":96},[62,183,184],{"class":92}," * msg      - {\n",[62,186,187],{"class":64,"line":102},[62,188,189],{"class":92}," *               header: '\u003Cheader title>',\n",[62,191,192],{"class":64,"line":108},[62,193,194],{"class":92}," *               kind: 'danger` | `primary` | `secondary` | `tertiary',  (default = 'primary') \n",[62,196,197],{"class":64,"line":114},[62,198,199],{"class":92}," *               text: 'show this message in the dialog',\n",[62,201,202],{"class":64,"line":120},[62,203,204],{"class":92}," *               html: 'instead of \"text\", you can provide html for more custom appearance and content',\n",[62,206,207],{"class":64,"line":126},[62,208,209],{"class":92}," *               confirmLabel: '\u003Cconfirm-label>'\n",[62,211,213],{"class":64,"line":212},10,[62,214,215],{"class":92}," *            }\n",[62,217,219],{"class":64,"line":218},11,[62,220,221],{"class":92}," * callback - function to run when the user confirms the dialog\n",[62,223,225],{"class":64,"line":224},12,[62,226,123],{"class":92},[62,228,230,233,236],{"class":64,"line":229},13,[62,231,232],{"class":72},"Dialog.",[62,234,235],{"class":132},"show",[62,237,238],{"class":72},"(msg, callback)\n",[14,240,139,241,147],{},[141,242,245],{"href":243,"rel":244},"https:\u002F\u002Fflowfuse.github.io\u002Fforge-ui-components\u002F#ff-dialog",[145],"ff-dialog",[14,247,248,249,251],{},"More complex ",[18,250,245],{}," instances, where you can use the component directly, can also be used for forms.",[253,254,255],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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);}",{"title":58,"searchDepth":83,"depth":83,"links":257},[258,259],{"id":36,"depth":83,"text":37},{"id":150,"depth":83,"text":151},"The frontend contains two helper services that can be called anywhere in the UI. Each of the services control components built into the main Platform.vue.","md",{},"\u002Fhandbook\u002Fengineering\u002Ffrontend\u002Fservices",{"title":5,"description":260},"handbook\u002Fengineering\u002Ffrontend\u002Fservices","PdTE3sEJvip1_jPmWlcBESWwOv_dagR2BMSx4QyODfI",[268],{"title":269,"path":270,"stem":271,"children":272},"Handbook","\u002Fhandbook","handbook",[273,276,397,427,622,698,757,883],{"title":274,"path":270,"stem":275},"FlowFuse Handbook","handbook\u002Findex",{"title":277,"path":278,"stem":279,"children":280},"Company","\u002Fhandbook\u002Fcompany","handbook\u002Fcompany\u002Findex",[281,282,286,290,294,312,316,320,324,389,393],{"title":277,"path":278,"stem":279},{"title":283,"path":284,"stem":285},"Board meetings","\u002Fhandbook\u002Fcompany\u002Fboard","handbook\u002Fcompany\u002Fboard",{"title":287,"path":288,"stem":289},"Communication","\u002Fhandbook\u002Fcompany\u002Fcommunication","handbook\u002Fcompany\u002Fcommunication",{"title":291,"path":292,"stem":293},"How we make decisions","\u002Fhandbook\u002Fcompany\u002Fdecisions","handbook\u002Fcompany\u002Fdecisions",{"title":295,"path":296,"stem":297,"children":298},"Guides","\u002Fhandbook\u002Fcompany\u002Fguides","handbook\u002Fcompany\u002Fguides\u002Findex",[299,300,304,308],{"title":295,"path":296,"stem":297},{"title":301,"path":302,"stem":303},"How to use Git","\u002Fhandbook\u002Fcompany\u002Fguides\u002Fgit","handbook\u002Fcompany\u002Fguides\u002Fgit",{"title":305,"path":306,"stem":307},"Google Workspace","\u002Fhandbook\u002Fcompany\u002Fguides\u002Fgworkspace","handbook\u002Fcompany\u002Fguides\u002Fgworkspace",{"title":309,"path":310,"stem":311},"Markdown Guide","\u002Fhandbook\u002Fcompany\u002Fguides\u002Fmarkdown","handbook\u002Fcompany\u002Fguides\u002Fmarkdown",{"title":313,"path":314,"stem":315},"Organizational Structure","\u002Fhandbook\u002Fcompany\u002Forganizational-structure","handbook\u002Fcompany\u002Forganizational-structure",{"title":317,"path":318,"stem":319},"Principles","\u002Fhandbook\u002Fcompany\u002Fprinciples","handbook\u002Fcompany\u002Fprinciples",{"title":321,"path":322,"stem":323},"Remote Work","\u002Fhandbook\u002Fcompany\u002Fremote","handbook\u002Fcompany\u002Fremote",{"title":325,"path":326,"stem":327,"children":328},"Security","\u002Fhandbook\u002Fcompany\u002Fsecurity","handbook\u002Fcompany\u002Fsecurity\u002Findex",[329,330,334,338,342,346,350,354,358,362,366,370,374,378,381,385],{"title":325,"path":326,"stem":327},{"title":331,"path":332,"stem":333},"Access Control Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Faccess-control","handbook\u002Fcompany\u002Fsecurity\u002Faccess-control",{"title":335,"path":336,"stem":337},"AI Development and Customer Data Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fai-development-and-customer-data","handbook\u002Fcompany\u002Fsecurity\u002Fai-development-and-customer-data",{"title":339,"path":340,"stem":341},"Asset Management Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fasset-management","handbook\u002Fcompany\u002Fsecurity\u002Fasset-management",{"title":343,"path":344,"stem":345},"Business Continuity & Disaster Recovery Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fbusiness-continuity","handbook\u002Fcompany\u002Fsecurity\u002Fbusiness-continuity",{"title":347,"path":348,"stem":349},"Computer Security","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fcomputer-security","handbook\u002Fcompany\u002Fsecurity\u002Fcomputer-security",{"title":351,"path":352,"stem":353},"Cryptography Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fcryptography","handbook\u002Fcompany\u002Fsecurity\u002Fcryptography",{"title":355,"path":356,"stem":357},"Data Management Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fdata-management","handbook\u002Fcompany\u002Fsecurity\u002Fdata-management",{"title":359,"path":360,"stem":361},"Human Resources Security Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fhuman-resources","handbook\u002Fcompany\u002Fsecurity\u002Fhuman-resources",{"title":363,"path":364,"stem":365},"Incident Response Plan","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fincident-response","handbook\u002Fcompany\u002Fsecurity\u002Fincident-response",{"title":367,"path":368,"stem":369},"Information Security Policy and Acceptable Use Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Finformation-security","handbook\u002Fcompany\u002Fsecurity\u002Finformation-security",{"title":371,"path":372,"stem":373},"Information Security Roles and Responsibilities","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Finformation-security-roles","handbook\u002Fcompany\u002Fsecurity\u002Finformation-security-roles",{"title":375,"path":376,"stem":377},"Operations Security Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Foperations-security","handbook\u002Fcompany\u002Fsecurity\u002Foperations-security",{"title":355,"path":379,"stem":380},"\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Frisk-management","handbook\u002Fcompany\u002Fsecurity\u002Frisk-management",{"title":382,"path":383,"stem":384},"Secure Development Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fsecure-development","handbook\u002Fcompany\u002Fsecurity\u002Fsecure-development",{"title":386,"path":387,"stem":388},"Third-Party Risk Management Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fthird-party-risk-management","handbook\u002Fcompany\u002Fsecurity\u002Fthird-party-risk-management",{"title":390,"path":391,"stem":392},"Strategy","\u002Fhandbook\u002Fcompany\u002Fstrategy","handbook\u002Fcompany\u002Fstrategy",{"title":394,"path":395,"stem":396},"Values","\u002Fhandbook\u002Fcompany\u002Fvalues","handbook\u002Fcompany\u002Fvalues",{"title":398,"path":399,"stem":400,"children":401},"Design","\u002Fhandbook\u002Fdesign","handbook\u002Fdesign\u002Findex",[402,403,407,411,415,419,423],{"title":398,"path":399,"stem":400},{"title":404,"path":405,"stem":406},"Art Requests","\u002Fhandbook\u002Fdesign\u002Fart-requests","handbook\u002Fdesign\u002Fart-requests",{"title":408,"path":409,"stem":410},"FlowFuse Branding Guidelines","\u002Fhandbook\u002Fdesign\u002Fbranding","handbook\u002Fdesign\u002Fbranding",{"title":412,"path":413,"stem":414},"Design Thinking","\u002Fhandbook\u002Fdesign\u002Fdesign-thinking","handbook\u002Fdesign\u002Fdesign-thinking",{"title":416,"path":417,"stem":418},"Process","\u002Fhandbook\u002Fdesign\u002Fprocess","handbook\u002Fdesign\u002Fprocess",{"title":420,"path":421,"stem":422},"Tools","\u002Fhandbook\u002Fdesign\u002Ftools","handbook\u002Fdesign\u002Ftools",{"title":424,"path":425,"stem":426},"Videos","\u002Fhandbook\u002Fdesign\u002Fvideos","handbook\u002Fdesign\u002Fvideos",{"title":428,"path":429,"stem":430,"children":431},"Engineering","\u002Fhandbook\u002Fengineering","handbook\u002Fengineering\u002Findex",[432,433,451,455,474,512,516,575,579,601,605,619],{"title":428,"path":429,"stem":430},{"title":434,"path":435,"stem":436,"children":437},"Contributing","\u002Fhandbook\u002Fengineering\u002Fcontributing","handbook\u002Fengineering\u002Fcontributing\u002Findex",[438,439,443,447],{"title":434,"path":435,"stem":436},{"title":440,"path":441,"stem":442},"Certified Nodes","\u002Fhandbook\u002Fengineering\u002Fcontributing\u002Fcertified-nodes","handbook\u002Fengineering\u002Fcontributing\u002Fcertified-nodes",{"title":444,"path":445,"stem":446},"Setting up a local FF Tables test environment","\u002Fhandbook\u002Fengineering\u002Fcontributing\u002Fff-tables","handbook\u002Fengineering\u002Fcontributing\u002Fff-tables",{"title":448,"path":449,"stem":450},"FlowFuse Team NPM Registry","\u002Fhandbook\u002Fengineering\u002Fcontributing\u002Fteam-npm-registry","handbook\u002Fengineering\u002Fcontributing\u002Fteam-npm-registry",{"title":452,"path":453,"stem":454},"Dependency Updates","\u002Fhandbook\u002Fengineering\u002Fdependency-updates","handbook\u002Fengineering\u002Fdependency-updates",{"title":456,"path":457,"stem":458,"children":459},"Front-End","\u002Fhandbook\u002Fengineering\u002Ffrontend","handbook\u002Fengineering\u002Ffrontend\u002Findex",[460,461,465,469,470],{"title":456,"path":457,"stem":458},{"title":462,"path":463,"stem":464},"Data Attributes","\u002Fhandbook\u002Fengineering\u002Ffrontend\u002Fdata-attributes","handbook\u002Fengineering\u002Ffrontend\u002Fdata-attributes",{"title":466,"path":467,"stem":468},"Front-End Layouts","\u002Fhandbook\u002Fengineering\u002Ffrontend\u002Flayouts","handbook\u002Fengineering\u002Ffrontend\u002Flayouts",{"title":5,"path":263,"stem":265},{"title":471,"path":472,"stem":473},"Front-End Testing","\u002Fhandbook\u002Fengineering\u002Ffrontend\u002Ftesting","handbook\u002Fengineering\u002Ffrontend\u002Ftesting",{"title":475,"path":476,"stem":477,"children":478},"Platform Ops","\u002Fhandbook\u002Fengineering\u002Fops","handbook\u002Fengineering\u002Fops\u002Findex",[479,480,484,488,492,496,500,504,508],{"title":475,"path":476,"stem":477},{"title":481,"path":482,"stem":483},"FlowFuse Dedicated","\u002Fhandbook\u002Fengineering\u002Fops\u002Fdedicated","handbook\u002Fengineering\u002Fops\u002Fdedicated",{"title":485,"path":486,"stem":487},"Dependencies within the CI\u002FCD process","\u002Fhandbook\u002Fengineering\u002Fops\u002Fdeployment","handbook\u002Fengineering\u002Fops\u002Fdeployment",{"title":489,"path":490,"stem":491},"Incident Response","\u002Fhandbook\u002Fengineering\u002Fops\u002Fincident-response","handbook\u002Fengineering\u002Fops\u002Fincident-response",{"title":493,"path":494,"stem":495},"Observability","\u002Fhandbook\u002Fengineering\u002Fops\u002Fobservability","handbook\u002Fengineering\u002Fops\u002Fobservability",{"title":497,"path":498,"stem":499},"Production Environment","\u002Fhandbook\u002Fengineering\u002Fops\u002Fproduction","handbook\u002Fengineering\u002Fops\u002Fproduction",{"title":501,"path":502,"stem":503},"How to Update Stacks on Production","\u002Fhandbook\u002Fengineering\u002Fops\u002Fproduction-stack-update","handbook\u002Fengineering\u002Fops\u002Fproduction-stack-update",{"title":505,"path":506,"stem":507},"FlowFuse Expert","\u002Fhandbook\u002Fengineering\u002Fops\u002Fself-hosted-assistant","handbook\u002Fengineering\u002Fops\u002Fself-hosted-assistant",{"title":509,"path":510,"stem":511},"Staging Environment","\u002Fhandbook\u002Fengineering\u002Fops\u002Fstaging","handbook\u002Fengineering\u002Fops\u002Fstaging",{"title":513,"path":514,"stem":515},"Packaging Guidelines","\u002Fhandbook\u002Fengineering\u002Fpackaging","handbook\u002Fengineering\u002Fpackaging",{"title":517,"path":518,"stem":519,"children":520},"Product","\u002Fhandbook\u002Fengineering\u002Fproduct","handbook\u002Fengineering\u002Fproduct\u002Findex",[521,522,526,530,534,538,542,548,552,555,559,563,567,571],{"title":517,"path":518,"stem":519},{"title":523,"path":524,"stem":525},"Blueprints","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fblueprints","handbook\u002Fengineering\u002Fproduct\u002Fblueprints",{"title":527,"path":528,"stem":529},"Node-RED Dashboard 2.0 - Project","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fdashboard","handbook\u002Fengineering\u002Fproduct\u002Fdashboard",{"title":531,"path":532,"stem":533},"Product Feedback","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Ffeedback","handbook\u002Fengineering\u002Fproduct\u002Ffeedback",{"title":535,"path":536,"stem":537},"Glossary","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fglossary","handbook\u002Fengineering\u002Fproduct\u002Fglossary",{"title":539,"path":540,"stem":541},"Product Metrics","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fmetrics","handbook\u002Fengineering\u002Fproduct\u002Fmetrics",{"title":543,"path":544,"stem":545,"children":546},"Personas","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fpersonas","handbook\u002Fengineering\u002Fproduct\u002Fpersonas\u002Findex",[547],{"title":543,"path":544,"stem":545},{"title":549,"path":550,"stem":551},"Pricing Principles","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fpricing","handbook\u002Fengineering\u002Fproduct\u002Fpricing",{"title":317,"path":553,"stem":554},"\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fprinciples","handbook\u002Fengineering\u002Fproduct\u002Fprinciples",{"title":556,"path":557,"stem":558},"Product Strategy","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fstrategy","handbook\u002Fengineering\u002Fproduct\u002Fstrategy",{"title":560,"path":561,"stem":562},"Product Growth","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Ftelemetry","handbook\u002Fengineering\u002Fproduct\u002Ftelemetry",{"title":564,"path":565,"stem":566},"Versioning","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fversioning","handbook\u002Fengineering\u002Fproduct\u002Fversioning",{"title":568,"path":569,"stem":570},"Market Segments","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fverticals","handbook\u002Fengineering\u002Fproduct\u002Fverticals",{"title":572,"path":573,"stem":574},"Vision","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fvision","handbook\u002Fengineering\u002Fproduct\u002Fvision",{"title":576,"path":577,"stem":578},"Project Management","\u002Fhandbook\u002Fengineering\u002Fproject-management","handbook\u002Fengineering\u002Fproject-management",{"title":580,"path":581,"stem":582,"children":583},"Releases","\u002Fhandbook\u002Fengineering\u002Freleases","handbook\u002Fengineering\u002Freleases\u002Findex",[584,585,589,593,597],{"title":580,"path":581,"stem":582},{"title":586,"path":587,"stem":588},"Dashboard 2.0 Release Process","\u002Fhandbook\u002Fengineering\u002Freleases\u002Fdashboard-2","handbook\u002Fengineering\u002Freleases\u002Fdashboard-2",{"title":590,"path":591,"stem":592},"Digital Ocean Release Process","\u002Fhandbook\u002Fengineering\u002Freleases\u002Fdigital-ocean","handbook\u002Fengineering\u002Freleases\u002Fdigital-ocean",{"title":594,"path":595,"stem":596},"Release Process","\u002Fhandbook\u002Fengineering\u002Freleases\u002Fprocess","handbook\u002Fengineering\u002Freleases\u002Fprocess",{"title":598,"path":599,"stem":600},"Writing Changelog Posts","\u002Fhandbook\u002Fengineering\u002Freleases\u002Fwriting-changelog","handbook\u002Fengineering\u002Freleases\u002Fwriting-changelog",{"title":602,"path":603,"stem":604},"Security Reporting Policy","\u002Fhandbook\u002Fengineering\u002Fsecurity","handbook\u002Fengineering\u002Fsecurity",{"title":606,"path":607,"stem":608,"children":609},"Support","\u002Fhandbook\u002Fengineering\u002Fsupport","handbook\u002Fengineering\u002Fsupport\u002Findex",[610,611,615],{"title":606,"path":607,"stem":608},{"title":612,"path":613,"stem":614},"Support Triage Duty","\u002Fhandbook\u002Fengineering\u002Fsupport\u002Ftriage","handbook\u002Fengineering\u002Fsupport\u002Ftriage",{"title":616,"path":617,"stem":618},"Troubleshooting","\u002Fhandbook\u002Fengineering\u002Fsupport\u002Ftroubleshooting","handbook\u002Fengineering\u002Fsupport\u002Ftroubleshooting",{"title":420,"path":620,"stem":621},"\u002Fhandbook\u002Fengineering\u002Ftools","handbook\u002Fengineering\u002Ftools",{"title":623,"path":624,"stem":625,"children":626},"Marketing department","\u002Fhandbook\u002Fmarketing","handbook\u002Fmarketing\u002Findex",[627,628,632,636,650,654,658,662,666,670,674,678,682,686,690,694],{"title":623,"path":624,"stem":625},{"title":629,"path":630,"stem":631},"Blog","\u002Fhandbook\u002Fmarketing\u002Fblog","handbook\u002Fmarketing\u002Fblog",{"title":633,"path":634,"stem":635},"Brand Personality, Tone of Voice & Character","\u002Fhandbook\u002Fmarketing\u002Fbrand-voice","handbook\u002Fmarketing\u002Fbrand-voice",{"title":637,"path":638,"stem":639,"children":640},"Community","\u002Fhandbook\u002Fmarketing\u002Fcommunity","handbook\u002Fmarketing\u002Fcommunity\u002Findex",[641,642,646],{"title":637,"path":638,"stem":639},{"title":643,"path":644,"stem":645},"Community Guidelines","\u002Fhandbook\u002Fmarketing\u002Fcommunity\u002Fcommunity-guidelines","handbook\u002Fmarketing\u002Fcommunity\u002Fcommunity-guidelines",{"title":647,"path":648,"stem":649},"Forums And Support","\u002Fhandbook\u002Fmarketing\u002Fcommunity\u002Fforums-and-support","handbook\u002Fmarketing\u002Fcommunity\u002Fforums-and-support",{"title":651,"path":652,"stem":653},"Customer Stories","\u002Fhandbook\u002Fmarketing\u002Fcustomer-stories","handbook\u002Fmarketing\u002Fcustomer-stories",{"title":655,"path":656,"stem":657},"FlowFuse for Education","\u002Fhandbook\u002Fmarketing\u002Feducation","handbook\u002Fmarketing\u002Feducation",{"title":659,"path":660,"stem":661},"Marketing Email","\u002Fhandbook\u002Fmarketing\u002Femail","handbook\u002Fmarketing\u002Femail",{"title":663,"path":664,"stem":665},"Events","\u002Fhandbook\u002Fmarketing\u002Fevents","handbook\u002Fmarketing\u002Fevents",{"title":667,"path":668,"stem":669},"How the marketing team works at FlowFuse","\u002Fhandbook\u002Fmarketing\u002Fhow-we-work","handbook\u002Fmarketing\u002Fhow-we-work",{"title":671,"path":672,"stem":673},"Lead Activation","\u002Fhandbook\u002Fmarketing\u002Flead-activation","handbook\u002Fmarketing\u002Flead-activation",{"title":675,"path":676,"stem":677},"Lead Generation","\u002Fhandbook\u002Fmarketing\u002Fleads","handbook\u002Fmarketing\u002Fleads",{"title":679,"path":680,"stem":681},"Messaging","\u002Fhandbook\u002Fmarketing\u002Fmessaging","handbook\u002Fmarketing\u002Fmessaging",{"title":683,"path":684,"stem":685},"Marketing Programs","\u002Fhandbook\u002Fmarketing\u002Fprograms","handbook\u002Fmarketing\u002Fprograms",{"title":687,"path":688,"stem":689},"Social Media Channels","\u002Fhandbook\u002Fmarketing\u002Fsocial-media","handbook\u002Fmarketing\u002Fsocial-media",{"title":691,"path":692,"stem":693},"FlowFuse Webinars","\u002Fhandbook\u002Fmarketing\u002Fwebinars","handbook\u002Fmarketing\u002Fwebinars",{"title":695,"path":696,"stem":697},"Marketing Website","\u002Fhandbook\u002Fmarketing\u002Fwebsite","handbook\u002Fmarketing\u002Fwebsite",{"title":699,"path":700,"stem":701,"children":702},"Operations","\u002Fhandbook\u002Foperations","handbook\u002Foperations\u002Findex",[703,704,708,712,716,737,741,745,749,753],{"title":699,"path":700,"stem":701},{"title":705,"path":706,"stem":707},"Tax & Compliance","\u002Fhandbook\u002Foperations\u002Faccounting","handbook\u002Foperations\u002Faccounting",{"title":709,"path":710,"stem":711},"Accounts","\u002Fhandbook\u002Foperations\u002Faccounts","handbook\u002Foperations\u002Faccounts",{"title":713,"path":714,"stem":715},"Billing","\u002Fhandbook\u002Foperations\u002Fbilling","handbook\u002Foperations\u002Fbilling",{"title":58,"path":717,"stem":718,"children":719},"\u002Fhandbook\u002Foperations\u002Fceo-ops","handbook\u002Foperations\u002Fceo-ops\u002Findex",[720,721,725,729,733],{"title":58,"path":717,"stem":718},{"title":722,"path":723,"stem":724},"Calendar Management","\u002Fhandbook\u002Foperations\u002Fceo-ops\u002Fcalendar-management","handbook\u002Foperations\u002Fceo-ops\u002Fcalendar-management",{"title":726,"path":727,"stem":728},"Inbox Management","\u002Fhandbook\u002Foperations\u002Fceo-ops\u002Finbox-management","handbook\u002Foperations\u002Fceo-ops\u002Finbox-management",{"title":730,"path":731,"stem":732},"Task Managment","\u002Fhandbook\u002Foperations\u002Fceo-ops\u002Ftask-managment","handbook\u002Foperations\u002Fceo-ops\u002Ftask-managment",{"title":734,"path":735,"stem":736},"Travel Booking","\u002Fhandbook\u002Foperations\u002Fceo-ops\u002Ftravel-booking","handbook\u002Foperations\u002Fceo-ops\u002Ftravel-booking",{"title":738,"path":739,"stem":740},"Change","\u002Fhandbook\u002Foperations\u002Fchange","handbook\u002Foperations\u002Fchange",{"title":742,"path":743,"stem":744},"Commission Payment","\u002Fhandbook\u002Foperations\u002Fcommission-payment","handbook\u002Foperations\u002Fcommission-payment",{"title":746,"path":747,"stem":748},"Data at FlowFuse","\u002Fhandbook\u002Foperations\u002Fdata","handbook\u002Foperations\u002Fdata",{"title":750,"path":751,"stem":752},"Signatures","\u002Fhandbook\u002Foperations\u002Fsignatures","handbook\u002Foperations\u002Fsignatures",{"title":754,"path":755,"stem":756},"Vendors","\u002Fhandbook\u002Foperations\u002Fvendors","handbook\u002Foperations\u002Fvendors",{"title":758,"path":759,"stem":760,"children":761},"People Operations","\u002Fhandbook\u002Fpeopleops","handbook\u002Fpeopleops\u002Findex",[762,763,767,771,775,779,783,801,863,867,871,875,879],{"title":758,"path":759,"stem":760},{"title":764,"path":765,"stem":766},"Coaching Plans","\u002Fhandbook\u002Fpeopleops\u002Fcoaching-plans","handbook\u002Fpeopleops\u002Fcoaching-plans",{"title":768,"path":769,"stem":770},"Code of Conduct","\u002Fhandbook\u002Fpeopleops\u002Fcode-of-conduct","handbook\u002Fpeopleops\u002Fcode-of-conduct",{"title":772,"path":773,"stem":774},"Compensation","\u002Fhandbook\u002Fpeopleops\u002Fcompensation","handbook\u002Fpeopleops\u002Fcompensation",{"title":776,"path":777,"stem":778},"Compliance & Training (Mineral)","\u002Fhandbook\u002Fpeopleops\u002Fcompliance","handbook\u002Fpeopleops\u002Fcompliance",{"title":780,"path":781,"stem":782},"Expenses","\u002Fhandbook\u002Fpeopleops\u002Fexpenses","handbook\u002Fpeopleops\u002Fexpenses",{"title":784,"path":785,"stem":786,"children":787},"Hiring","\u002Fhandbook\u002Fpeopleops\u002Fhiring","handbook\u002Fpeopleops\u002Fhiring\u002Findex",[788,789,793,797],{"title":784,"path":785,"stem":786},{"title":790,"path":791,"stem":792},"Working with Recruiters","\u002Fhandbook\u002Fpeopleops\u002Fhiring\u002Frecruiters","handbook\u002Fpeopleops\u002Fhiring\u002Frecruiters",{"title":794,"path":795,"stem":796},"Screening Call","\u002Fhandbook\u002Fpeopleops\u002Fhiring\u002Fscreening-call","handbook\u002Fpeopleops\u002Fhiring\u002Fscreening-call",{"title":798,"path":799,"stem":800},"Star Questions","\u002Fhandbook\u002Fpeopleops\u002Fhiring\u002Fstar-questions","handbook\u002Fpeopleops\u002Fhiring\u002Fstar-questions",{"title":802,"path":803,"stem":804,"children":805},"Job Descriptions","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Findex",[806,807,811,815,819,823,827,831,835,839,843,847,851,855,859],{"title":802,"path":803,"stem":804},{"title":808,"path":809,"stem":810},"Account Executive","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Faccount-executive","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Faccount-executive",{"title":812,"path":813,"stem":814},"CEO","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fceo","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fceo",{"title":816,"path":817,"stem":818},"Chief of Staff","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fchief-of-staff","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fchief-of-staff",{"title":820,"path":821,"stem":822},"CTO","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fcto","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fcto",{"title":824,"path":825,"stem":826},"Developer Relations Advocate","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fdeveloper-relations-advocate","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fdeveloper-relations-advocate",{"title":828,"path":829,"stem":830},"Engineering Manager","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fengineering-manager","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fengineering-manager",{"title":832,"path":833,"stem":834},"Fullstack Engineer","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Ffullstack-engineer","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Ffullstack-engineer",{"title":836,"path":837,"stem":838},"Fullstack Engineer (AI-Focused)","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Ffullstack-engineer-ai","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Ffullstack-engineer-ai",{"title":840,"path":841,"stem":842},"Head of Marketing","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fhead-of-marketing","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fhead-of-marketing",{"title":844,"path":845,"stem":846},"Product Manager","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fproduct-manager","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fproduct-manager",{"title":848,"path":849,"stem":850},"Product Marketer","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fproduct-marketer","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fproduct-marketer",{"title":852,"path":853,"stem":854},"Solutions Engineer","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fsolutions-engineer","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fsolutions-engineer",{"title":856,"path":857,"stem":858},"Technical Product Manager","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Ftechnical-product-manager","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Ftechnical-product-manager",{"title":860,"path":861,"stem":862},"VP of Sales","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fvp-sales","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fvp-sales",{"title":864,"path":865,"stem":866},"Holiday and Leave","\u002Fhandbook\u002Fpeopleops\u002Fleave","handbook\u002Fpeopleops\u002Fleave",{"title":868,"path":869,"stem":870},"PeopleOps policies","\u002Fhandbook\u002Fpeopleops\u002Forganization","handbook\u002Fpeopleops\u002Forganization",{"title":872,"path":873,"stem":874},"Performance Review","\u002Fhandbook\u002Fpeopleops\u002Fperformance-review","handbook\u002Fpeopleops\u002Fperformance-review",{"title":876,"path":877,"stem":878},"Summit","\u002Fhandbook\u002Fpeopleops\u002Fsummit","handbook\u002Fpeopleops\u002Fsummit",{"title":880,"path":881,"stem":882},"Travel","\u002Fhandbook\u002Fpeopleops\u002Ftravel","handbook\u002Fpeopleops\u002Ftravel",{"title":884,"path":885,"stem":886,"children":887},"Sales department","\u002Fhandbook\u002Fsales","handbook\u002Fsales\u002Findex",[888,889,895,899,903,907,911,915,919,923,940,944,956,960,966,970,974],{"title":884,"path":885,"stem":886},{"title":890,"path":891,"stem":892,"children":893},"FY 2026 SALES COMPENSATION PLAN","\u002Fhandbook\u002Fsales\u002Fcommission-plan","handbook\u002Fsales\u002Fcommission-plan\u002Findex",[894],{"title":890,"path":891,"stem":892},{"title":896,"path":897,"stem":898},"Customer Success","\u002Fhandbook\u002Fsales\u002Fcustomer-success","handbook\u002Fsales\u002Fcustomer-success",{"title":900,"path":901,"stem":902},"Self Hosted Dashboard v2 Multi User Plugin","\u002Fhandbook\u002Fsales\u002Fdashboard-v2","handbook\u002Fsales\u002Fdashboard-v2",{"title":904,"path":905,"stem":906},"Edge Connectivity Sales Process","\u002Fhandbook\u002Fsales\u002Fedge-connect-process","handbook\u002Fsales\u002Fedge-connect-process",{"title":908,"path":909,"stem":910},"Engagements","\u002Fhandbook\u002Fsales\u002Fengagements","handbook\u002Fsales\u002Fengagements",{"title":912,"path":913,"stem":914},"Forecast Review","\u002Fhandbook\u002Fsales\u002Fforecast-review","handbook\u002Fsales\u002Fforecast-review",{"title":916,"path":917,"stem":918},"Hubspot","\u002Fhandbook\u002Fsales\u002Fhubspot","handbook\u002Fsales\u002Fhubspot",{"title":920,"path":921,"stem":922},"Legal","\u002Fhandbook\u002Fsales\u002Flegal","handbook\u002Fsales\u002Flegal",{"title":58,"path":924,"stem":925,"children":926},"\u002Fhandbook\u002Fsales\u002Fmeetings","handbook\u002Fsales\u002Fmeetings\u002Findex",[927,928,932,936],{"title":58,"path":924,"stem":925},{"title":929,"path":930,"stem":931},"Demo","\u002Fhandbook\u002Fsales\u002Fmeetings\u002Fdemo","handbook\u002Fsales\u002Fmeetings\u002Fdemo",{"title":933,"path":934,"stem":935},"Discovery","\u002Fhandbook\u002Fsales\u002Fmeetings\u002Fdiscovery","handbook\u002Fsales\u002Fmeetings\u002Fdiscovery",{"title":937,"path":938,"stem":939},"Poc","\u002Fhandbook\u002Fsales\u002Fmeetings\u002Fpoc","handbook\u002Fsales\u002Fmeetings\u002Fpoc",{"title":941,"path":942,"stem":943},"Sales Team Operating Principles","\u002Fhandbook\u002Fsales\u002Foperating-principles","handbook\u002Fsales\u002Foperating-principles",{"title":945,"path":946,"stem":947,"children":948},"Commercial Organization","\u002Fhandbook\u002Fsales\u002Forg","handbook\u002Fsales\u002Forg\u002Findex",[949,950],{"title":945,"path":946,"stem":947},{"title":951,"path":952,"stem":953,"children":954},"Account Executives","\u002Fhandbook\u002Fsales\u002Forg\u002Faccount-executives","handbook\u002Fsales\u002Forg\u002Faccount-executives\u002Findex",[955],{"title":951,"path":952,"stem":953},{"title":957,"path":958,"stem":959},"Partnerships","\u002Fhandbook\u002Fsales\u002Fpartnerships","handbook\u002Fsales\u002Fpartnerships",{"title":961,"path":962,"stem":963,"children":964},"Processes","\u002Fhandbook\u002Fsales\u002Fprocesses","handbook\u002Fsales\u002Fprocesses\u002Findex",[965],{"title":961,"path":962,"stem":963},{"title":967,"path":968,"stem":969},"Professional Services","\u002Fhandbook\u002Fsales\u002Fprofessional-services","handbook\u002Fsales\u002Fprofessional-services",{"title":971,"path":972,"stem":973},"Regions","\u002Fhandbook\u002Fsales\u002Fregions","handbook\u002Fsales\u002Fregions",{"title":975,"path":976,"stem":977},"Sales Deck","\u002Fhandbook\u002Fsales\u002Fsales-deck","handbook\u002Fsales\u002Fsales-deck",1780070544369]