[{"data":1,"prerenderedAt":965},["ShallowReactive",2],{"handbook-\u002Fhandbook\u002Fengineering\u002Fops\u002Fdedicated\u002F":3,"handbook-nav":195},{"id":4,"title":5,"body":6,"description":16,"extension":188,"meta":189,"navigation":190,"path":191,"seo":192,"stem":193,"__hash__":194},"handbook\u002Fhandbook\u002Fengineering\u002Fops\u002Fdedicated.md","FlowFuse Dedicated",{"type":7,"value":8,"toc":176},"minimark",[9,13,17,20,25,28,103,107,110,113,140,144,147,154,158,161,166,169,173],[10,11,5],"h1",{"id":12},"flowfuse-dedicated",[14,15,16],"p",{},"FlowFuse Dedicated is our product offering where we will host a dedicated instance\nof the platform for a customer.",[14,18,19],{},"This is a guide for the setup and delivery of a dedicated instance.",[21,22,24],"h3",{"id":23},"pre-deployment","Pre-deployment",[14,26,27],{},"In order to create the dedicated instance, some information will be required from the customer.",[29,30,31,75,85,91,97],"ul",{},[32,33,34,38,39],"li",{},[35,36,37],"strong",{},"A domain name or sub domain name to host the platform on",".\n",[29,40,41,49,60,69,72],{},[32,42,43,44,48],{},"By default, we will offer to host the platform under a domain of ",[45,46,47],"code",{},"\u003Ccustomer>.flowfuse.io",".",[32,50,51,52,55,56,59],{},"The core platform (",[45,53,54],{},"app.","), broker (",[45,57,58],{},"mqtt.",") and hosted instances will be made available under this domain.",[32,61,62,63,65,66],{},"The base domain, ",[45,64,47],{},", will redirect to ",[45,67,68],{},"app.\u003Ccustomer>.flowfuse.io",[32,70,71],{},"All traffic to the domain will be on port 443 - including the Device Agent MQTT connection",[32,73,74],{},"If the customer requests to use their own (sub-)domain, they will need to set up their DNS to point\nat the AWS Route53 end-point once it has been created.",[32,76,77,80,81,84],{},[35,78,79],{},"Choice of AWS region",". We default to ",[45,82,83],{},"eu-west-1"," but customers may want to choose one more\nlocal to them. Not all AWS regions are equal and we may need to review their choice for suitability.",[32,86,87,90],{},[35,88,89],{},"Capacity planning",". Whilst the platform will scale to meet demand, we want to sure we provision\nit at a suitable level for their intended usage. Understanding their planned usage and growth rate\nwill help us pick the right node size for the cluster.",[32,92,93,96],{},[35,94,95],{},"Team\u002FInstance types",". We will default to creating equivalent Team and Instance types as\nwe use on FFCloud. If a customer has specific needs in this area, this should be identified prior\nto deployment.",[32,98,99,102],{},[35,100,101],{},"SSO Configuration",". As with FFCloud, if the customer plans to integrate with their SSO provider,\nwe will need to capture the necessary information. This can be done after the initial deployment.",[21,104,106],{"id":105},"deployment","Deployment",[14,108,109],{},"An issue should be raised in the CloudProject repository using the Dedicated Checklist template\nand assigned to the member of the engineering\u002Fops team who will do the setup.",[14,111,112],{},"This checklist covers the follow items:",[114,115,116,119,122,125,128,131,134,137],"ol",{},[32,117,118],{},"Create a new AWS sub-account for each dedicated env.",[32,120,121],{},"Create user accounts for the ops team",[32,123,124],{},"Use Terraform to set up initial cluster",[32,126,127],{},"Setup grafana monitoring - including all the necessary alerting",[32,129,130],{},"Setup initial admin account - store details in 1Password",[32,132,133],{},"Setup initial Stacks, Instance Types and Team Types",[32,135,136],{},"Setup SSO for customer",[32,138,139],{},"Create initial account for customer admin user (if we’re giving them admin access)",[21,141,143],{"id":142},"migration","Migration",[14,145,146],{},"For existing customers of FFCloud who are choosing to move to a FFDedicated environment,\nwe need to consider how to migrate their existing account. This will need to be considered\non a case-by-case basis in discussion with the customer as there are a number of challenges\naround providing a seamless migration.",[14,148,149,150,153],{},"For example, we cannot migrate access tokens between platforms. This will require devices\nto be reprovisioned with new credentials as well as have their ",[45,151,152],{},"device.yml"," updated to point\nto the new platform URL.",[21,155,157],{"id":156},"maintenance","Maintenance",[14,159,160],{},"We will agree a maintenance policy with the customer to fit their needs. We will require\nthe code to be kept up to date - the question is how we schedule updates.",[162,163,165],"h4",{"id":164},"flowfuse-code-updates","FlowFuse Code Updates",[14,167,168],{},"We can either do CI\u002FCD as we do for FF Cloud, or apply updates following each monthly release.",[162,170,172],{"id":171},"k8s-updates","k8s Updates",[14,174,175],{},"We will coordinate maintenance windows with the customer for when we need to apply\nupdates to the underlying k8s infrastructure as this will require restarts of their\nNode-RED instances.",{"title":177,"searchDepth":178,"depth":178,"links":179},"",4,[180,182,183,184],{"id":23,"depth":181,"text":24},3,{"id":105,"depth":181,"text":106},{"id":142,"depth":181,"text":143},{"id":156,"depth":181,"text":157,"children":185},[186,187],{"id":164,"depth":178,"text":165},{"id":171,"depth":178,"text":172},"md",{},null,"\u002Fhandbook\u002Fengineering\u002Fops\u002Fdedicated",{"title":5,"description":16},"handbook\u002Fengineering\u002Fops\u002Fdedicated","FitvTQnE3Qy22cTdc6SmNrjJ1AGWmvRXMkC5_diuF7o",[196],{"title":197,"path":198,"stem":199,"children":200},"Handbook","\u002Fhandbook","handbook",[201,203,329,361,571,654,717,852,857],{"title":197,"path":198,"stem":202},"handbook\u002Findex",{"title":204,"group":204,"icon":205,"order":206,"path":207,"stem":208,"children":209},"Company","i-lucide-building-2",1,"\u002Fhandbook\u002Fcompany","handbook\u002Fcompany\u002Findex",[210,211,215,219,223,242,246,250,254,321,325],{"title":204,"path":207,"stem":208},{"title":212,"path":213,"stem":214},"Board & Investors","\u002Fhandbook\u002Fcompany\u002Fboard","handbook\u002Fcompany\u002Fboard",{"title":216,"path":217,"stem":218},"Communications","\u002Fhandbook\u002Fcompany\u002Fcommunication","handbook\u002Fcompany\u002Fcommunication",{"title":220,"path":221,"stem":222},"Decision making and project management","\u002Fhandbook\u002Fcompany\u002Fdecisions","handbook\u002Fcompany\u002Fdecisions",{"title":224,"icon":225,"path":226,"stem":227,"children":228},"Guides","i-lucide-book-open","\u002Fhandbook\u002Fcompany\u002Fguides","handbook\u002Fcompany\u002Fguides\u002Findex",[229,230,234,238],{"title":224,"path":226,"stem":227},{"title":231,"path":232,"stem":233},"Editing the Handbook","\u002Fhandbook\u002Fcompany\u002Fguides\u002Fgit","handbook\u002Fcompany\u002Fguides\u002Fgit",{"title":235,"path":236,"stem":237},"Google Workspace","\u002Fhandbook\u002Fcompany\u002Fguides\u002Fgworkspace","handbook\u002Fcompany\u002Fguides\u002Fgworkspace",{"title":239,"path":240,"stem":241},"Markdown Guide","\u002Fhandbook\u002Fcompany\u002Fguides\u002Fmarkdown","handbook\u002Fcompany\u002Fguides\u002Fmarkdown",{"title":243,"path":244,"stem":245},"Organizational Structure","\u002Fhandbook\u002Fcompany\u002Forganizational-structure","handbook\u002Fcompany\u002Forganizational-structure",{"title":247,"path":248,"stem":249},"Principles","\u002Fhandbook\u002Fcompany\u002Fprinciples","handbook\u002Fcompany\u002Fprinciples",{"title":251,"path":252,"stem":253},"Remote Work","\u002Fhandbook\u002Fcompany\u002Fremote","handbook\u002Fcompany\u002Fremote",{"title":255,"icon":256,"path":257,"stem":258,"children":259},"Security","i-lucide-shield","\u002Fhandbook\u002Fcompany\u002Fsecurity","handbook\u002Fcompany\u002Fsecurity\u002Findex",[260,261,265,269,273,277,281,285,289,293,297,301,305,309,313,317],{"title":255,"path":257,"stem":258},{"title":262,"path":263,"stem":264},"Access Control Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Faccess-control","handbook\u002Fcompany\u002Fsecurity\u002Faccess-control",{"title":266,"path":267,"stem":268},"AI Development and Customer Data Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fai-development-and-customer-data","handbook\u002Fcompany\u002Fsecurity\u002Fai-development-and-customer-data",{"title":270,"path":271,"stem":272},"Asset Management Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fasset-management","handbook\u002Fcompany\u002Fsecurity\u002Fasset-management",{"title":274,"path":275,"stem":276},"Business Continuity & Disaster Recovery Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fbusiness-continuity","handbook\u002Fcompany\u002Fsecurity\u002Fbusiness-continuity",{"title":278,"path":279,"stem":280},"Hardware Security Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fcomputer-security","handbook\u002Fcompany\u002Fsecurity\u002Fcomputer-security",{"title":282,"path":283,"stem":284},"Cryptography Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fcryptography","handbook\u002Fcompany\u002Fsecurity\u002Fcryptography",{"title":286,"path":287,"stem":288},"Data Management Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fdata-management","handbook\u002Fcompany\u002Fsecurity\u002Fdata-management",{"title":290,"path":291,"stem":292},"Human Resources Security Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fhuman-resources","handbook\u002Fcompany\u002Fsecurity\u002Fhuman-resources",{"title":294,"path":295,"stem":296},"Incident Response Plan","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fincident-response","handbook\u002Fcompany\u002Fsecurity\u002Fincident-response",{"title":298,"path":299,"stem":300},"Information Security Policy and Acceptable Use Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Finformation-security","handbook\u002Fcompany\u002Fsecurity\u002Finformation-security",{"title":302,"path":303,"stem":304},"Information Security Roles and Responsibilities","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Finformation-security-roles","handbook\u002Fcompany\u002Fsecurity\u002Finformation-security-roles",{"title":306,"path":307,"stem":308},"Operations Security Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Foperations-security","handbook\u002Fcompany\u002Fsecurity\u002Foperations-security",{"title":310,"path":311,"stem":312},"Risk Management Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Frisk-management","handbook\u002Fcompany\u002Fsecurity\u002Frisk-management",{"title":314,"path":315,"stem":316},"Secure Development Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fsecure-development","handbook\u002Fcompany\u002Fsecurity\u002Fsecure-development",{"title":318,"path":319,"stem":320},"Third-Party Risk Management Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fthird-party-risk-management","handbook\u002Fcompany\u002Fsecurity\u002Fthird-party-risk-management",{"title":322,"path":323,"stem":324},"Strategy","\u002Fhandbook\u002Fcompany\u002Fstrategy","handbook\u002Fcompany\u002Fstrategy",{"title":326,"path":327,"stem":328},"Values","\u002Fhandbook\u002Fcompany\u002Fvalues","handbook\u002Fcompany\u002Fvalues",{"title":330,"group":331,"icon":332,"order":178,"path":333,"stem":334,"children":335},"Design","Engineering & Design Practices","i-lucide-pen-tool","\u002Fhandbook\u002Fdesign","handbook\u002Fdesign\u002Findex",[336,337,341,345,349,353,357],{"title":330,"path":333,"stem":334},{"title":338,"path":339,"stem":340},"Art Requests","\u002Fhandbook\u002Fdesign\u002Fart-requests","handbook\u002Fdesign\u002Fart-requests",{"title":342,"path":343,"stem":344},"Branding","\u002Fhandbook\u002Fdesign\u002Fbranding","handbook\u002Fdesign\u002Fbranding",{"title":346,"path":347,"stem":348},"Design Thinking","\u002Fhandbook\u002Fdesign\u002Fdesign-thinking","handbook\u002Fdesign\u002Fdesign-thinking",{"title":350,"path":351,"stem":352},"Process","\u002Fhandbook\u002Fdesign\u002Fprocess","handbook\u002Fdesign\u002Fprocess",{"title":354,"path":355,"stem":356},"Tools","\u002Fhandbook\u002Fdesign\u002Ftools","handbook\u002Fdesign\u002Ftools",{"title":358,"path":359,"stem":360},"Video","\u002Fhandbook\u002Fdesign\u002Fvideos","handbook\u002Fdesign\u002Fvideos",{"title":362,"group":331,"icon":363,"order":181,"path":364,"stem":365,"children":366},"Engineering","i-lucide-code-2","\u002Fhandbook\u002Fengineering","handbook\u002Fengineering\u002Findex",[367,368,372,391,395,399,403,426,461,465,522,526,549,553,568],{"title":362,"path":364,"stem":365},{"title":369,"path":370,"stem":371},"Blueprints","\u002Fhandbook\u002Fengineering\u002Fblueprints","handbook\u002Fengineering\u002Fblueprints",{"title":373,"icon":374,"path":375,"stem":376,"children":377},"Contributing","i-lucide-git-pull-request","\u002Fhandbook\u002Fengineering\u002Fcontributing","handbook\u002Fengineering\u002Fcontributing\u002Findex",[378,379,383,387],{"title":373,"path":375,"stem":376},{"title":380,"path":381,"stem":382},"Certified Nodes","\u002Fhandbook\u002Fengineering\u002Fcontributing\u002Fcertified-nodes","handbook\u002Fengineering\u002Fcontributing\u002Fcertified-nodes",{"title":384,"path":385,"stem":386},"FF Tables","\u002Fhandbook\u002Fengineering\u002Fcontributing\u002Fff-tables","handbook\u002Fengineering\u002Fcontributing\u002Fff-tables",{"title":388,"path":389,"stem":390},"Team NPM Registry","\u002Fhandbook\u002Fengineering\u002Fcontributing\u002Fteam-npm-registry","handbook\u002Fengineering\u002Fcontributing\u002Fteam-npm-registry",{"title":392,"path":393,"stem":394},"Node-RED Dashboard","\u002Fhandbook\u002Fengineering\u002Fdashboard","handbook\u002Fengineering\u002Fdashboard",{"title":396,"path":397,"stem":398},"Dependency Updates","\u002Fhandbook\u002Fengineering\u002Fdependency-updates","handbook\u002Fengineering\u002Fdependency-updates",{"title":400,"path":401,"stem":402},"Feature Flags in PostHog","\u002Fhandbook\u002Fengineering\u002Ffeature-flags","handbook\u002Fengineering\u002Ffeature-flags",{"title":404,"icon":405,"path":406,"stem":407,"children":408},"Front End","i-lucide-layout-dashboard","\u002Fhandbook\u002Fengineering\u002Ffrontend","handbook\u002Fengineering\u002Ffrontend\u002Findex",[409,410,414,418,422],{"title":404,"path":406,"stem":407},{"title":411,"path":412,"stem":413},"Data Attributes","\u002Fhandbook\u002Fengineering\u002Ffrontend\u002Fdata-attributes","handbook\u002Fengineering\u002Ffrontend\u002Fdata-attributes",{"title":415,"path":416,"stem":417},"Front-End Layouts","\u002Fhandbook\u002Fengineering\u002Ffrontend\u002Flayouts","handbook\u002Fengineering\u002Ffrontend\u002Flayouts",{"title":419,"path":420,"stem":421},"Front-End Services","\u002Fhandbook\u002Fengineering\u002Ffrontend\u002Fservices","handbook\u002Fengineering\u002Ffrontend\u002Fservices",{"title":423,"path":424,"stem":425},"Front-End Testing","\u002Fhandbook\u002Fengineering\u002Ffrontend\u002Ftesting","handbook\u002Fengineering\u002Ffrontend\u002Ftesting",{"title":427,"icon":428,"path":429,"stem":430,"children":431},"Platform Ops","i-lucide-server","\u002Fhandbook\u002Fengineering\u002Fops","handbook\u002Fengineering\u002Fops\u002Findex",[432,433,434,437,441,445,449,453,457],{"title":427,"path":429,"stem":430},{"title":5,"path":191,"stem":193},{"title":106,"path":435,"stem":436},"\u002Fhandbook\u002Fengineering\u002Fops\u002Fdeployment","handbook\u002Fengineering\u002Fops\u002Fdeployment",{"title":438,"path":439,"stem":440},"Incident Response","\u002Fhandbook\u002Fengineering\u002Fops\u002Fincident-response","handbook\u002Fengineering\u002Fops\u002Fincident-response",{"title":442,"path":443,"stem":444},"Observability","\u002Fhandbook\u002Fengineering\u002Fops\u002Fobservability","handbook\u002Fengineering\u002Fops\u002Fobservability",{"title":446,"path":447,"stem":448},"Production Environment","\u002Fhandbook\u002Fengineering\u002Fops\u002Fproduction","handbook\u002Fengineering\u002Fops\u002Fproduction",{"title":450,"path":451,"stem":452},"Update Stacks on Production","\u002Fhandbook\u002Fengineering\u002Fops\u002Fproduction-stack-update","handbook\u002Fengineering\u002Fops\u002Fproduction-stack-update",{"title":454,"path":455,"stem":456},"Self Hosted Assistant","\u002Fhandbook\u002Fengineering\u002Fops\u002Fself-hosted-assistant","handbook\u002Fengineering\u002Fops\u002Fself-hosted-assistant",{"title":458,"path":459,"stem":460},"Staging Environment","\u002Fhandbook\u002Fengineering\u002Fops\u002Fstaging","handbook\u002Fengineering\u002Fops\u002Fstaging",{"title":462,"path":463,"stem":464},"Packaging Guidelines","\u002Fhandbook\u002Fengineering\u002Fpackaging","handbook\u002Fengineering\u002Fpackaging",{"title":466,"icon":467,"path":468,"stem":469,"children":470},"Product","i-lucide-package","\u002Fhandbook\u002Fengineering\u002Fproduct","handbook\u002Fengineering\u002Fproduct\u002Findex",[471,472,476,480,484,488,492,499,503,506,510,514,518],{"title":466,"path":468,"stem":469},{"title":473,"path":474,"stem":475},"Feature Catalog","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Ffeatures","handbook\u002Fengineering\u002Fproduct\u002Ffeatures",{"title":477,"path":478,"stem":479},"Feedback","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Ffeedback","handbook\u002Fengineering\u002Fproduct\u002Ffeedback",{"title":481,"path":482,"stem":483},"Glossary","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fglossary","handbook\u002Fengineering\u002Fproduct\u002Fglossary",{"title":485,"path":486,"stem":487},"Methodology","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fmethodology","handbook\u002Fengineering\u002Fproduct\u002Fmethodology",{"title":489,"path":490,"stem":491},"Metrics","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fmetrics","handbook\u002Fengineering\u002Fproduct\u002Fmetrics",{"title":493,"path":494,"stem":495,"children":496,"icon":498},"Personas","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fpersonas","handbook\u002Fengineering\u002Fproduct\u002Fpersonas\u002Findex",[497],{"title":493,"path":494,"stem":495},"i-lucide-user-circle",{"title":500,"path":501,"stem":502},"Pricing Principles","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fpricing","handbook\u002Fengineering\u002Fproduct\u002Fpricing",{"title":247,"path":504,"stem":505},"\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fprinciples","handbook\u002Fengineering\u002Fproduct\u002Fprinciples",{"title":507,"path":508,"stem":509},"Product Swimlanes","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fproduct-swimlanes","handbook\u002Fengineering\u002Fproduct\u002Fproduct-swimlanes",{"title":511,"path":512,"stem":513},"Product Growth","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Ftelemetry","handbook\u002Fengineering\u002Fproduct\u002Ftelemetry",{"title":515,"path":516,"stem":517},"Versioning","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fversioning","handbook\u002Fengineering\u002Fproduct\u002Fversioning",{"title":519,"path":520,"stem":521},"Market Segments","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fverticals","handbook\u002Fengineering\u002Fproduct\u002Fverticals",{"title":523,"path":524,"stem":525},"Project Management","\u002Fhandbook\u002Fengineering\u002Fproject-management","handbook\u002Fengineering\u002Fproject-management",{"title":527,"icon":528,"path":529,"stem":530,"children":531},"Releases","i-lucide-rocket","\u002Fhandbook\u002Fengineering\u002Freleases","handbook\u002Fengineering\u002Freleases\u002Findex",[532,533,537,541,545],{"title":527,"path":529,"stem":530},{"title":534,"path":535,"stem":536},"Dashboard 2.0 Releases","\u002Fhandbook\u002Fengineering\u002Freleases\u002Fdashboard-2","handbook\u002Fengineering\u002Freleases\u002Fdashboard-2",{"title":538,"path":539,"stem":540},"Release Process - Digital Ocean","\u002Fhandbook\u002Fengineering\u002Freleases\u002Fdigital-ocean","handbook\u002Fengineering\u002Freleases\u002Fdigital-ocean",{"title":542,"path":543,"stem":544},"Release Process","\u002Fhandbook\u002Fengineering\u002Freleases\u002Fprocess","handbook\u002Fengineering\u002Freleases\u002Fprocess",{"title":546,"path":547,"stem":548},"Changelog Posts","\u002Fhandbook\u002Fengineering\u002Freleases\u002Fwriting-changelog","handbook\u002Fengineering\u002Freleases\u002Fwriting-changelog",{"title":550,"path":551,"stem":552},"Security Policy","\u002Fhandbook\u002Fengineering\u002Fsecurity","handbook\u002Fengineering\u002Fsecurity",{"title":554,"path":555,"stem":556,"children":557,"icon":567},"Support","\u002Fhandbook\u002Fengineering\u002Fsupport","handbook\u002Fengineering\u002Fsupport\u002Findex",[558,559,563],{"title":554,"path":555,"stem":556},{"title":560,"path":561,"stem":562},"Triage Duty","\u002Fhandbook\u002Fengineering\u002Fsupport\u002Ftriage","handbook\u002Fengineering\u002Fsupport\u002Ftriage",{"title":564,"path":565,"stem":566},"Troubleshooting","\u002Fhandbook\u002Fengineering\u002Fsupport\u002Ftroubleshooting","handbook\u002Fengineering\u002Fsupport\u002Ftroubleshooting","i-lucide-life-buoy",{"title":354,"path":569,"stem":570},"\u002Fhandbook\u002Fengineering\u002Ftools","handbook\u002Fengineering\u002Ftools",{"title":572,"group":573,"icon":574,"order":575,"path":576,"stem":577,"children":578},"Marketing","Marketing department","i-lucide-megaphone",6,"\u002Fhandbook\u002Fmarketing","handbook\u002Fmarketing\u002Findex",[579,580,584,599,618,622,626,630,634,638,642,646,650],{"title":572,"path":576,"stem":577},{"title":581,"path":582,"stem":583},"Brand Voice","\u002Fhandbook\u002Fmarketing\u002Fbrand-voice","handbook\u002Fmarketing\u002Fbrand-voice",{"title":585,"icon":586,"path":587,"stem":588,"children":589},"Community","i-lucide-users-2","\u002Fhandbook\u002Fmarketing\u002Fcommunity","handbook\u002Fmarketing\u002Fcommunity\u002Findex",[590,591,595],{"title":585,"path":587,"stem":588},{"title":592,"path":593,"stem":594},"Community Guidelines","\u002Fhandbook\u002Fmarketing\u002Fcommunity\u002Fcommunity-guidelines","handbook\u002Fmarketing\u002Fcommunity\u002Fcommunity-guidelines",{"title":596,"path":597,"stem":598},"Forums And Support","\u002Fhandbook\u002Fmarketing\u002Fcommunity\u002Fforums-and-support","handbook\u002Fmarketing\u002Fcommunity\u002Fforums-and-support",{"title":600,"icon":601,"path":602,"stem":603,"children":604,"order":206},"Content Strategy","i-lucide-file-text","\u002Fhandbook\u002Fmarketing\u002Fcontent-strategy","handbook\u002Fmarketing\u002Fcontent-strategy\u002Findex",[605,606,610,614],{"title":600,"path":602,"stem":603,"order":206},{"title":607,"path":608,"stem":609},"Blog","\u002Fhandbook\u002Fmarketing\u002Fcontent-strategy\u002Fblog","handbook\u002Fmarketing\u002Fcontent-strategy\u002Fblog",{"title":611,"path":612,"stem":613},"Customer Stories","\u002Fhandbook\u002Fmarketing\u002Fcontent-strategy\u002Fcustomer-stories","handbook\u002Fmarketing\u002Fcontent-strategy\u002Fcustomer-stories",{"title":615,"path":616,"stem":617},"Webinars","\u002Fhandbook\u002Fmarketing\u002Fcontent-strategy\u002Fwebinars","handbook\u002Fmarketing\u002Fcontent-strategy\u002Fwebinars",{"title":619,"path":620,"stem":621},"FlowFuse for Education","\u002Fhandbook\u002Fmarketing\u002Feducation","handbook\u002Fmarketing\u002Feducation",{"title":623,"path":624,"stem":625},"Events","\u002Fhandbook\u002Fmarketing\u002Fevents","handbook\u002Fmarketing\u002Fevents",{"title":627,"path":628,"stem":629},"How we work","\u002Fhandbook\u002Fmarketing\u002Fhow-we-work","handbook\u002Fmarketing\u002Fhow-we-work",{"title":631,"path":632,"stem":633},"Lead Activation","\u002Fhandbook\u002Fmarketing\u002Flead-activation","handbook\u002Fmarketing\u002Flead-activation",{"title":635,"path":636,"stem":637},"Lead Generation","\u002Fhandbook\u002Fmarketing\u002Fleads","handbook\u002Fmarketing\u002Fleads",{"title":639,"path":640,"stem":641},"Company Messaging","\u002Fhandbook\u002Fmarketing\u002Fmessaging","handbook\u002Fmarketing\u002Fmessaging",{"title":643,"path":644,"stem":645},"Marketing Programs","\u002Fhandbook\u002Fmarketing\u002Fprograms","handbook\u002Fmarketing\u002Fprograms",{"title":647,"path":648,"stem":649},"Social Media","\u002Fhandbook\u002Fmarketing\u002Fsocial-media","handbook\u002Fmarketing\u002Fsocial-media",{"title":651,"path":652,"stem":653},"Website","\u002Fhandbook\u002Fmarketing\u002Fwebsite","handbook\u002Fmarketing\u002Fwebsite",{"title":655,"group":204,"icon":656,"order":657,"path":658,"stem":659,"children":660},"Operations","i-lucide-settings-2",2,"\u002Fhandbook\u002Foperations","handbook\u002Foperations\u002Findex",[661,662,666,670,674,697,701,705,709,713],{"title":655,"path":658,"stem":659},{"title":663,"path":664,"stem":665},"Accounting","\u002Fhandbook\u002Foperations\u002Faccounting","handbook\u002Foperations\u002Faccounting",{"title":667,"path":668,"stem":669},"Accounts","\u002Fhandbook\u002Foperations\u002Faccounts","handbook\u002Foperations\u002Faccounts",{"title":671,"path":672,"stem":673},"Billing","\u002Fhandbook\u002Foperations\u002Fbilling","handbook\u002Foperations\u002Fbilling",{"title":675,"icon":676,"path":677,"stem":678,"children":679},"CEO Ops","i-lucide-briefcase","\u002Fhandbook\u002Foperations\u002Fceo-ops","handbook\u002Foperations\u002Fceo-ops\u002Findex",[680,681,685,689,693],{"title":675,"path":677,"stem":678},{"title":682,"path":683,"stem":684},"Calendar Management","\u002Fhandbook\u002Foperations\u002Fceo-ops\u002Fcalendar-management","handbook\u002Foperations\u002Fceo-ops\u002Fcalendar-management",{"title":686,"path":687,"stem":688},"Inbox Management","\u002Fhandbook\u002Foperations\u002Fceo-ops\u002Finbox-management","handbook\u002Foperations\u002Fceo-ops\u002Finbox-management",{"title":690,"path":691,"stem":692},"Task Management","\u002Fhandbook\u002Foperations\u002Fceo-ops\u002Ftask-managment","handbook\u002Foperations\u002Fceo-ops\u002Ftask-managment",{"title":694,"path":695,"stem":696},"Travel Booking","\u002Fhandbook\u002Foperations\u002Fceo-ops\u002Ftravel-booking","handbook\u002Foperations\u002Fceo-ops\u002Ftravel-booking",{"title":698,"path":699,"stem":700},"Change Control","\u002Fhandbook\u002Foperations\u002Fchange","handbook\u002Foperations\u002Fchange",{"title":702,"path":703,"stem":704},"Commission Payment","\u002Fhandbook\u002Foperations\u002Fcommission-payment","handbook\u002Foperations\u002Fcommission-payment",{"title":706,"path":707,"stem":708},"Data at FlowFuse","\u002Fhandbook\u002Foperations\u002Fdata","handbook\u002Foperations\u002Fdata",{"title":710,"path":711,"stem":712},"Signatures","\u002Fhandbook\u002Foperations\u002Fsignatures","handbook\u002Foperations\u002Fsignatures",{"title":714,"path":715,"stem":716},"Vendors","\u002Fhandbook\u002Foperations\u002Fvendors","handbook\u002Foperations\u002Fvendors",{"title":718,"group":719,"icon":720,"order":721,"path":722,"stem":723,"children":724},"People Ops","Internal Operations","i-lucide-users",5,"\u002Fhandbook\u002Fpeopleops","handbook\u002Fpeopleops\u002Findex",[725,726,730,734,738,742,746,765,832,836,840,844,848],{"title":718,"path":722,"stem":723},{"title":727,"path":728,"stem":729},"Coaching Plans","\u002Fhandbook\u002Fpeopleops\u002Fcoaching-plans","handbook\u002Fpeopleops\u002Fcoaching-plans",{"title":731,"path":732,"stem":733},"Code of Conduct","\u002Fhandbook\u002Fpeopleops\u002Fcode-of-conduct","handbook\u002Fpeopleops\u002Fcode-of-conduct",{"title":735,"path":736,"stem":737},"Compensation","\u002Fhandbook\u002Fpeopleops\u002Fcompensation","handbook\u002Fpeopleops\u002Fcompensation",{"title":739,"path":740,"stem":741},"Compliance & Regulatory","\u002Fhandbook\u002Fpeopleops\u002Fcompliance","handbook\u002Fpeopleops\u002Fcompliance",{"title":743,"path":744,"stem":745},"Expenses","\u002Fhandbook\u002Fpeopleops\u002Fexpenses","handbook\u002Fpeopleops\u002Fexpenses",{"title":747,"path":748,"stem":749,"children":750,"icon":764},"Hiring","\u002Fhandbook\u002Fpeopleops\u002Fhiring","handbook\u002Fpeopleops\u002Fhiring\u002Findex",[751,752,756,760],{"title":747,"path":748,"stem":749},{"title":753,"path":754,"stem":755},"Working with Recruiters","\u002Fhandbook\u002Fpeopleops\u002Fhiring\u002Frecruiters","handbook\u002Fpeopleops\u002Fhiring\u002Frecruiters",{"title":757,"path":758,"stem":759},"Screening Call","\u002Fhandbook\u002Fpeopleops\u002Fhiring\u002Fscreening-call","handbook\u002Fpeopleops\u002Fhiring\u002Fscreening-call",{"title":761,"path":762,"stem":763},"STAR Questions","\u002Fhandbook\u002Fpeopleops\u002Fhiring\u002Fstar-questions","handbook\u002Fpeopleops\u002Fhiring\u002Fstar-questions","i-lucide-user-plus",{"title":766,"icon":767,"path":768,"stem":769,"children":770},"Job Descriptions","i-lucide-file-badge","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Findex",[771,772,776,780,784,788,792,796,800,804,808,812,816,820,824,828],{"title":766,"path":768,"stem":769},{"title":773,"path":774,"stem":775},"Account Executive","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Faccount-executive","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Faccount-executive",{"title":777,"path":778,"stem":779},"CEO","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fceo","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fceo",{"title":781,"path":782,"stem":783},"Chief of Staff","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fchief-of-staff","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fchief-of-staff",{"title":785,"path":786,"stem":787},"CTO","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fcto","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fcto",{"title":789,"path":790,"stem":791},"Developer Relations Advocate","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fdeveloper-relations-advocate","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fdeveloper-relations-advocate",{"title":793,"path":794,"stem":795},"Engineering Manager","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fengineering-manager","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fengineering-manager",{"title":797,"path":798,"stem":799},"Fullstack Engineer","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Ffullstack-engineer","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Ffullstack-engineer",{"title":801,"path":802,"stem":803},"Fullstack Engineer (AI-Focused)","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Ffullstack-engineer-ai","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Ffullstack-engineer-ai",{"title":805,"path":806,"stem":807},"Head of Marketing","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fhead-of-marketing","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fhead-of-marketing",{"title":809,"path":810,"stem":811},"Product Manager","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fproduct-manager","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fproduct-manager",{"title":813,"path":814,"stem":815},"Product Marketer","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fproduct-marketer","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fproduct-marketer",{"title":817,"path":818,"stem":819},"Sales Development Representative (SDR)","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fsales-development-representative","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fsales-development-representative",{"title":821,"path":822,"stem":823},"Solutions Engineer","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fsolutions-engineer","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fsolutions-engineer",{"title":825,"path":826,"stem":827},"Technical Product Manager","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Ftechnical-product-manager","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Ftechnical-product-manager",{"title":829,"path":830,"stem":831},"VP of Sales","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fvp-sales","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fvp-sales",{"title":833,"path":834,"stem":835},"Holiday & Leave","\u002Fhandbook\u002Fpeopleops\u002Fleave","handbook\u002Fpeopleops\u002Fleave",{"title":837,"path":838,"stem":839},"PeopleOps Policies","\u002Fhandbook\u002Fpeopleops\u002Forganization","handbook\u002Fpeopleops\u002Forganization",{"title":841,"path":842,"stem":843},"Performance review","\u002Fhandbook\u002Fpeopleops\u002Fperformance-review","handbook\u002Fpeopleops\u002Fperformance-review",{"title":845,"path":846,"stem":847},"Summit","\u002Fhandbook\u002Fpeopleops\u002Fsummit","handbook\u002Fpeopleops\u002Fsummit",{"title":849,"path":850,"stem":851},"Travel","\u002Fhandbook\u002Fpeopleops\u002Ftravel","handbook\u002Fpeopleops\u002Ftravel",{"title":853,"path":854,"stem":855,"group":197,"order":856},"Recent Updates","\u002Fhandbook\u002Frecent-changes","handbook\u002Frecent-changes",0,{"title":858,"group":859,"icon":860,"order":861,"path":862,"stem":863,"children":864},"Sales","Sales department","i-lucide-trending-up",7,"\u002Fhandbook\u002Fsales","handbook\u002Fsales\u002Findex",[865,866,873,877,881,885,889,893,897,901,920,924,938,942,949,953,957,961],{"title":858,"path":862,"stem":863},{"title":867,"path":868,"stem":869,"children":870,"icon":872},"Sales Compensation Plan","\u002Fhandbook\u002Fsales\u002Fcommission-plan","handbook\u002Fsales\u002Fcommission-plan\u002Findex",[871],{"title":867,"path":868,"stem":869},"i-lucide-dollar-sign",{"title":874,"path":875,"stem":876},"Customer Success","\u002Fhandbook\u002Fsales\u002Fcustomer-success","handbook\u002Fsales\u002Fcustomer-success",{"title":878,"path":879,"stem":880},"Self Hosted Dashboard v2 Multi User","\u002Fhandbook\u002Fsales\u002Fdashboard-v2","handbook\u002Fsales\u002Fdashboard-v2",{"title":882,"path":883,"stem":884},"Edge Connectivity Sales Process","\u002Fhandbook\u002Fsales\u002Fedge-connect-process","handbook\u002Fsales\u002Fedge-connect-process",{"title":886,"path":887,"stem":888},"Engagements & Pricing","\u002Fhandbook\u002Fsales\u002Fengagements","handbook\u002Fsales\u002Fengagements",{"title":890,"path":891,"stem":892},"Forecast Review","\u002Fhandbook\u002Fsales\u002Fforecast-review","handbook\u002Fsales\u002Fforecast-review",{"title":894,"path":895,"stem":896},"HubSpot","\u002Fhandbook\u002Fsales\u002Fhubspot","handbook\u002Fsales\u002Fhubspot",{"title":898,"path":899,"stem":900},"Legal","\u002Fhandbook\u002Fsales\u002Flegal","handbook\u002Fsales\u002Flegal",{"title":902,"icon":903,"path":904,"stem":905,"children":906},"Sales Meetings","i-lucide-calendar","\u002Fhandbook\u002Fsales\u002Fmeetings","handbook\u002Fsales\u002Fmeetings\u002Findex",[907,908,912,916],{"title":902,"path":904,"stem":905},{"title":909,"path":910,"stem":911},"Demo","\u002Fhandbook\u002Fsales\u002Fmeetings\u002Fdemo","handbook\u002Fsales\u002Fmeetings\u002Fdemo",{"title":913,"path":914,"stem":915},"Discovery Meeting","\u002Fhandbook\u002Fsales\u002Fmeetings\u002Fdiscovery","handbook\u002Fsales\u002Fmeetings\u002Fdiscovery",{"title":917,"path":918,"stem":919},"Proof of Concept","\u002Fhandbook\u002Fsales\u002Fmeetings\u002Fpoc","handbook\u002Fsales\u002Fmeetings\u002Fpoc",{"title":921,"path":922,"stem":923},"Sales Team Operating Principles","\u002Fhandbook\u002Fsales\u002Foperating-principles","handbook\u002Fsales\u002Foperating-principles",{"title":925,"icon":926,"path":927,"stem":928,"children":929},"Commercial Organization","i-lucide-sitemap","\u002Fhandbook\u002Fsales\u002Forg","handbook\u002Fsales\u002Forg\u002Findex",[930,931],{"title":925,"path":927,"stem":928},{"title":932,"path":933,"stem":934,"children":935,"icon":937},"Account Executives","\u002Fhandbook\u002Fsales\u002Forg\u002Faccount-executives","handbook\u002Fsales\u002Forg\u002Faccount-executives\u002Findex",[936],{"title":932,"path":933,"stem":934},"i-lucide-user-check",{"title":939,"path":940,"stem":941},"Partnerships","\u002Fhandbook\u002Fsales\u002Fpartnerships","handbook\u002Fsales\u002Fpartnerships",{"title":943,"path":944,"stem":945,"children":946,"icon":948},"Processes","\u002Fhandbook\u002Fsales\u002Fprocesses","handbook\u002Fsales\u002Fprocesses\u002Findex",[947],{"title":943,"path":944,"stem":945},"i-lucide-workflow",{"title":950,"path":951,"stem":952},"Professional Services","\u002Fhandbook\u002Fsales\u002Fprofessional-services","handbook\u002Fsales\u002Fprofessional-services",{"title":954,"path":955,"stem":956},"Sales Regions","\u002Fhandbook\u002Fsales\u002Fregions","handbook\u002Fsales\u002Fregions",{"title":958,"path":959,"stem":960},"Sales Deck","\u002Fhandbook\u002Fsales\u002Fsales-deck","handbook\u002Fsales\u002Fsales-deck",{"title":962,"path":963,"stem":964},"Subscription Agreement 1.5","\u002Fhandbook\u002Fsales\u002Fsubscription-agreement-1.5","handbook\u002Fsales\u002Fsubscription-agreement-1.5",1781885096025]