[{"data":1,"prerenderedAt":940},["ShallowReactive",2],{"handbook-\u002Fhandbook\u002Fengineering\u002Fdependency-updates":3,"handbook-nav":229},{"id":4,"title":5,"body":6,"description":221,"extension":222,"meta":223,"navigation":224,"path":225,"seo":226,"stem":227,"__hash__":228},"handbook\u002Fhandbook\u002Fengineering\u002Fdependency-updates.md","Dependency Updates",{"type":7,"value":8,"toc":210},"minimark",[9,13,25,30,33,37,40,44,47,88,92,95,106,109,113,125,141,144,148,151,160,179,182,203,207],[10,11,5],"h1",{"id":12},"dependency-updates",[14,15,16,17,24],"p",{},"This page covers how we triage ",[18,19,23],"a",{"href":20,"rel":21},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcode-security\u002Fconcepts\u002Fsupply-chain-security\u002Fabout-dependabot-pull-requests",[22],"nofollow","Dependabot"," pull requests across our repositories so the backlog stays under control.",[26,27,29],"h2",{"id":28},"why-we-triage-weekly","Why we triage weekly",[14,31,32],{},"Dependabot opens pull requests as soon as new versions ship. Left alone, those PRs pile up, conflict with each other, and become risky to merge in bulk. A short, regular triage slot keeps each batch small enough to review carefully and stops the backlog from reforming.",[26,34,36],{"id":35},"ownership","Ownership",[14,38,39],{},"The triage rotation is owned by the engineering team. One engineer takes the slot each week, works through the open Dependabot PRs across our repositories, and hands off at the end of the week. Budget around 30 minutes — anything that does not fit in that slot gets escalated rather than rushed.",[26,41,43],{"id":42},"weekly-process","Weekly process",[14,45,46],{},"Work through Dependabot PRs in this order:",[48,49,50,58,64,70,76,82],"ol",{},[51,52,53,57],"li",{},[54,55,56],"strong",{},"Wait at least 12 hours after a version is published before merging."," Compromised or broken releases are usually flagged within that window. Merging immediately after publish removes that safety margin.",[51,59,60,63],{},[54,61,62],{},"Check for an active npm advisory or breach report on the package."," Look at the package's npm page and the GitHub advisory database before approving. If anything is open against that version, hold the PR until it clears.",[51,65,66,69],{},[54,67,68],{},"Read the release notes for each bump."," Confirm there are no breaking changes that affect how we use the package. Patch and minor bumps still occasionally ship behavior changes worth knowing about.",[51,71,72,75],{},[54,73,74],{},"Merge the safe, small bumps first."," Patch and minor updates with a contained diff and clean release notes go in early. Leave anything with an unusually large diff for closer review.",[51,77,78,81],{},[54,79,80],{},"CI must pass before merging — no exceptions."," A red build on a dependency PR is the signal that something needs investigation, not a bypass.",[51,83,84,87],{},[54,85,86],{},"Check all repositories."," - Dependabot is active in all our repositiories.",[26,89,91],{"id":90},"major-version-bumps","Major version bumps",[14,93,94],{},"Major version bumps do not fit in the weekly slot. When one appears:",[48,96,97,100,103],{},[51,98,99],{},"Pull the PR out of the weekly batch.",[51,101,102],{},"Assign an owner who knows the affected code.",[51,104,105],{},"Schedule it into a milestone alongside time to read the migration guide, update our usage, and verify the change end-to-end.",[14,107,108],{},"Treat the major bump as its own piece of work, not as routine maintenance.",[26,110,112],{"id":111},"mutually-exclusive-bumps","Mutually exclusive bumps",[14,114,115,116,120,121,124],{},"Two open PRs sometimes touch the same ",[117,118,119],"code",{},"package.json"," or ",[117,122,123],{},"package-lock.json"," entries and cannot both merge cleanly. Flag these as soon as you spot them:",[126,127,128,131,138],"ul",{},[51,129,130],{},"Pick the bump you want to land first and merge it.",[51,132,133,134,137],{},"Comment on the second PR with ",[117,135,136],{},"@dependabot recreate"," so Dependabot rebuilds it against the updated lockfile.",[51,139,140],{},"If the second bump becomes redundant after the first lands, close it and let Dependabot reopen the PR on the next scan.",[14,142,143],{},"Catching these early avoids wasted CI runs and reviewer time.",[26,145,147],{"id":146},"stale-or-conflicted-prs","Stale or conflicted PRs",[14,149,150],{},"Dependabot rebases its PRs automatically when conflicts appear, but stops doing so once a PR has been open for 30 days without merging. Triaging weekly keeps PRs inside that window.",[14,152,153,154,159],{},"Dependabot exposes a ",[18,155,158],{"href":156,"rel":157},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcode-security\u002Freference\u002Fsupply-chain-security\u002Fdependabot-pull-request-comment-commands",[22],"list of commands"," in the collapsed comment at the bottom of every PR. Use these to refresh stuck branches:",[126,161,162,168,173],{},[51,163,164,167],{},[117,165,166],{},"@dependabot rebase"," — rebase the branch on the latest target. This is the right call for ordinary lockfile conflicts.",[51,169,170,172],{},[117,171,136],{}," — rebuild the PR from scratch, overwriting any edits made to the branch. Use this when the PR has been hand-edited and you want Dependabot to take it back over, or when rebase has not produced a clean branch.",[51,174,175,178],{},[117,176,177],{},"@dependabot merge"," — auto-merge once CI passes. Safe to comment preemptively as long as the checks above have been done.",[14,180,181],{},"If Dependabot replies that it cannot rebase, the branch has usually been hand-edited and Dependabot will not force-push over your commits. In that case:",[48,183,184,194,197,200],{},[51,185,186,187,120,190,193],{},"If you want Dependabot to keep managing the branch, mark your hand-edited commits with ",[117,188,189],{},"[dependabot skip]",[117,191,192],{},"[skip dependabot]"," in the commit message. Dependabot will then rebase and force-push over them as needed.",[51,195,196],{},"Otherwise, treat the PR as a normal branch — pull it down locally, resolve the conflict by hand, and push the fix back up.",[51,198,199],{},"If the hand-edited changes are no longer needed, close the PR and let Dependabot open a fresh one.",[51,201,202],{},"Do not delete commits from the Dependabot branch without recording why in the PR — the next person triaging needs to understand what changed.",[26,204,206],{"id":205},"when-in-doubt","When in doubt",[14,208,209],{},"Hold the PR and raise it in the engineering channel. A dependency that waits a week to merge is fine; a bad dependency that ships to production is not.",{"title":211,"searchDepth":212,"depth":212,"links":213},"",2,[214,215,216,217,218,219,220],{"id":28,"depth":212,"text":29},{"id":35,"depth":212,"text":36},{"id":42,"depth":212,"text":43},{"id":90,"depth":212,"text":91},{"id":111,"depth":212,"text":112},{"id":146,"depth":212,"text":147},{"id":205,"depth":212,"text":206},"This page covers how we triage Dependabot pull requests across our repositories so the backlog stays under control.","md",{"navTitle":5},true,"\u002Fhandbook\u002Fengineering\u002Fdependency-updates",{"title":5,"description":221},"handbook\u002Fengineering\u002Fdependency-updates","AkDWcsxeb-nsKBVl9rnC3RNFXkQFzmsGX3z2jhA_C2Q",[230],{"title":231,"path":232,"stem":233,"children":234},"Handbook","\u002Fhandbook","handbook",[235,238,359,389,584,660,719,845],{"title":236,"path":232,"stem":237},"FlowFuse Handbook","handbook\u002Findex",{"title":239,"path":240,"stem":241,"children":242},"Company","\u002Fhandbook\u002Fcompany","handbook\u002Fcompany\u002Findex",[243,244,248,252,256,274,278,282,286,351,355],{"title":239,"path":240,"stem":241},{"title":245,"path":246,"stem":247},"Board meetings","\u002Fhandbook\u002Fcompany\u002Fboard","handbook\u002Fcompany\u002Fboard",{"title":249,"path":250,"stem":251},"Communication","\u002Fhandbook\u002Fcompany\u002Fcommunication","handbook\u002Fcompany\u002Fcommunication",{"title":253,"path":254,"stem":255},"How we make decisions","\u002Fhandbook\u002Fcompany\u002Fdecisions","handbook\u002Fcompany\u002Fdecisions",{"title":257,"path":258,"stem":259,"children":260},"Guides","\u002Fhandbook\u002Fcompany\u002Fguides","handbook\u002Fcompany\u002Fguides\u002Findex",[261,262,266,270],{"title":257,"path":258,"stem":259},{"title":263,"path":264,"stem":265},"How to use Git","\u002Fhandbook\u002Fcompany\u002Fguides\u002Fgit","handbook\u002Fcompany\u002Fguides\u002Fgit",{"title":267,"path":268,"stem":269},"Google Workspace","\u002Fhandbook\u002Fcompany\u002Fguides\u002Fgworkspace","handbook\u002Fcompany\u002Fguides\u002Fgworkspace",{"title":271,"path":272,"stem":273},"Markdown Guide","\u002Fhandbook\u002Fcompany\u002Fguides\u002Fmarkdown","handbook\u002Fcompany\u002Fguides\u002Fmarkdown",{"title":275,"path":276,"stem":277},"Organizational Structure","\u002Fhandbook\u002Fcompany\u002Forganizational-structure","handbook\u002Fcompany\u002Forganizational-structure",{"title":279,"path":280,"stem":281},"Principles","\u002Fhandbook\u002Fcompany\u002Fprinciples","handbook\u002Fcompany\u002Fprinciples",{"title":283,"path":284,"stem":285},"Remote Work","\u002Fhandbook\u002Fcompany\u002Fremote","handbook\u002Fcompany\u002Fremote",{"title":287,"path":288,"stem":289,"children":290},"Security","\u002Fhandbook\u002Fcompany\u002Fsecurity","handbook\u002Fcompany\u002Fsecurity\u002Findex",[291,292,296,300,304,308,312,316,320,324,328,332,336,340,343,347],{"title":287,"path":288,"stem":289},{"title":293,"path":294,"stem":295},"Access Control Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Faccess-control","handbook\u002Fcompany\u002Fsecurity\u002Faccess-control",{"title":297,"path":298,"stem":299},"AI Development and Customer Data Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fai-development-and-customer-data","handbook\u002Fcompany\u002Fsecurity\u002Fai-development-and-customer-data",{"title":301,"path":302,"stem":303},"Asset Management Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fasset-management","handbook\u002Fcompany\u002Fsecurity\u002Fasset-management",{"title":305,"path":306,"stem":307},"Business Continuity & Disaster Recovery Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fbusiness-continuity","handbook\u002Fcompany\u002Fsecurity\u002Fbusiness-continuity",{"title":309,"path":310,"stem":311},"Computer Security","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fcomputer-security","handbook\u002Fcompany\u002Fsecurity\u002Fcomputer-security",{"title":313,"path":314,"stem":315},"Cryptography Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fcryptography","handbook\u002Fcompany\u002Fsecurity\u002Fcryptography",{"title":317,"path":318,"stem":319},"Data Management Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fdata-management","handbook\u002Fcompany\u002Fsecurity\u002Fdata-management",{"title":321,"path":322,"stem":323},"Human Resources Security Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fhuman-resources","handbook\u002Fcompany\u002Fsecurity\u002Fhuman-resources",{"title":325,"path":326,"stem":327},"Incident Response Plan","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fincident-response","handbook\u002Fcompany\u002Fsecurity\u002Fincident-response",{"title":329,"path":330,"stem":331},"Information Security Policy and Acceptable Use Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Finformation-security","handbook\u002Fcompany\u002Fsecurity\u002Finformation-security",{"title":333,"path":334,"stem":335},"Information Security Roles and Responsibilities","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Finformation-security-roles","handbook\u002Fcompany\u002Fsecurity\u002Finformation-security-roles",{"title":337,"path":338,"stem":339},"Operations Security Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Foperations-security","handbook\u002Fcompany\u002Fsecurity\u002Foperations-security",{"title":317,"path":341,"stem":342},"\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Frisk-management","handbook\u002Fcompany\u002Fsecurity\u002Frisk-management",{"title":344,"path":345,"stem":346},"Secure Development Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fsecure-development","handbook\u002Fcompany\u002Fsecurity\u002Fsecure-development",{"title":348,"path":349,"stem":350},"Third-Party Risk Management Policy","\u002Fhandbook\u002Fcompany\u002Fsecurity\u002Fthird-party-risk-management","handbook\u002Fcompany\u002Fsecurity\u002Fthird-party-risk-management",{"title":352,"path":353,"stem":354},"Strategy","\u002Fhandbook\u002Fcompany\u002Fstrategy","handbook\u002Fcompany\u002Fstrategy",{"title":356,"path":357,"stem":358},"Values","\u002Fhandbook\u002Fcompany\u002Fvalues","handbook\u002Fcompany\u002Fvalues",{"title":360,"path":361,"stem":362,"children":363},"Design","\u002Fhandbook\u002Fdesign","handbook\u002Fdesign\u002Findex",[364,365,369,373,377,381,385],{"title":360,"path":361,"stem":362},{"title":366,"path":367,"stem":368},"Art Requests","\u002Fhandbook\u002Fdesign\u002Fart-requests","handbook\u002Fdesign\u002Fart-requests",{"title":370,"path":371,"stem":372},"FlowFuse Branding Guidelines","\u002Fhandbook\u002Fdesign\u002Fbranding","handbook\u002Fdesign\u002Fbranding",{"title":374,"path":375,"stem":376},"Design Thinking","\u002Fhandbook\u002Fdesign\u002Fdesign-thinking","handbook\u002Fdesign\u002Fdesign-thinking",{"title":378,"path":379,"stem":380},"Process","\u002Fhandbook\u002Fdesign\u002Fprocess","handbook\u002Fdesign\u002Fprocess",{"title":382,"path":383,"stem":384},"Tools","\u002Fhandbook\u002Fdesign\u002Ftools","handbook\u002Fdesign\u002Ftools",{"title":386,"path":387,"stem":388},"Videos","\u002Fhandbook\u002Fdesign\u002Fvideos","handbook\u002Fdesign\u002Fvideos",{"title":390,"path":391,"stem":392,"children":393},"Engineering","\u002Fhandbook\u002Fengineering","handbook\u002Fengineering\u002Findex",[394,395,413,414,436,474,478,537,541,563,567,581],{"title":390,"path":391,"stem":392},{"title":396,"path":397,"stem":398,"children":399},"Contributing","\u002Fhandbook\u002Fengineering\u002Fcontributing","handbook\u002Fengineering\u002Fcontributing\u002Findex",[400,401,405,409],{"title":396,"path":397,"stem":398},{"title":402,"path":403,"stem":404},"Certified Nodes","\u002Fhandbook\u002Fengineering\u002Fcontributing\u002Fcertified-nodes","handbook\u002Fengineering\u002Fcontributing\u002Fcertified-nodes",{"title":406,"path":407,"stem":408},"Setting up a local FF Tables test environment","\u002Fhandbook\u002Fengineering\u002Fcontributing\u002Fff-tables","handbook\u002Fengineering\u002Fcontributing\u002Fff-tables",{"title":410,"path":411,"stem":412},"FlowFuse Team NPM Registry","\u002Fhandbook\u002Fengineering\u002Fcontributing\u002Fteam-npm-registry","handbook\u002Fengineering\u002Fcontributing\u002Fteam-npm-registry",{"title":5,"path":225,"stem":227},{"title":415,"path":416,"stem":417,"children":418},"Front-End","\u002Fhandbook\u002Fengineering\u002Ffrontend","handbook\u002Fengineering\u002Ffrontend\u002Findex",[419,420,424,428,432],{"title":415,"path":416,"stem":417},{"title":421,"path":422,"stem":423},"Data Attributes","\u002Fhandbook\u002Fengineering\u002Ffrontend\u002Fdata-attributes","handbook\u002Fengineering\u002Ffrontend\u002Fdata-attributes",{"title":425,"path":426,"stem":427},"Front-End Layouts","\u002Fhandbook\u002Fengineering\u002Ffrontend\u002Flayouts","handbook\u002Fengineering\u002Ffrontend\u002Flayouts",{"title":429,"path":430,"stem":431},"Services","\u002Fhandbook\u002Fengineering\u002Ffrontend\u002Fservices","handbook\u002Fengineering\u002Ffrontend\u002Fservices",{"title":433,"path":434,"stem":435},"Front-End Testing","\u002Fhandbook\u002Fengineering\u002Ffrontend\u002Ftesting","handbook\u002Fengineering\u002Ffrontend\u002Ftesting",{"title":437,"path":438,"stem":439,"children":440},"Platform Ops","\u002Fhandbook\u002Fengineering\u002Fops","handbook\u002Fengineering\u002Fops\u002Findex",[441,442,446,450,454,458,462,466,470],{"title":437,"path":438,"stem":439},{"title":443,"path":444,"stem":445},"FlowFuse Dedicated","\u002Fhandbook\u002Fengineering\u002Fops\u002Fdedicated","handbook\u002Fengineering\u002Fops\u002Fdedicated",{"title":447,"path":448,"stem":449},"Dependencies within the CI\u002FCD process","\u002Fhandbook\u002Fengineering\u002Fops\u002Fdeployment","handbook\u002Fengineering\u002Fops\u002Fdeployment",{"title":451,"path":452,"stem":453},"Incident Response","\u002Fhandbook\u002Fengineering\u002Fops\u002Fincident-response","handbook\u002Fengineering\u002Fops\u002Fincident-response",{"title":455,"path":456,"stem":457},"Observability","\u002Fhandbook\u002Fengineering\u002Fops\u002Fobservability","handbook\u002Fengineering\u002Fops\u002Fobservability",{"title":459,"path":460,"stem":461},"Production Environment","\u002Fhandbook\u002Fengineering\u002Fops\u002Fproduction","handbook\u002Fengineering\u002Fops\u002Fproduction",{"title":463,"path":464,"stem":465},"How to Update Stacks on Production","\u002Fhandbook\u002Fengineering\u002Fops\u002Fproduction-stack-update","handbook\u002Fengineering\u002Fops\u002Fproduction-stack-update",{"title":467,"path":468,"stem":469},"FlowFuse Expert","\u002Fhandbook\u002Fengineering\u002Fops\u002Fself-hosted-assistant","handbook\u002Fengineering\u002Fops\u002Fself-hosted-assistant",{"title":471,"path":472,"stem":473},"Staging Environment","\u002Fhandbook\u002Fengineering\u002Fops\u002Fstaging","handbook\u002Fengineering\u002Fops\u002Fstaging",{"title":475,"path":476,"stem":477},"Packaging Guidelines","\u002Fhandbook\u002Fengineering\u002Fpackaging","handbook\u002Fengineering\u002Fpackaging",{"title":479,"path":480,"stem":481,"children":482},"Product","\u002Fhandbook\u002Fengineering\u002Fproduct","handbook\u002Fengineering\u002Fproduct\u002Findex",[483,484,488,492,496,500,504,510,514,517,521,525,529,533],{"title":479,"path":480,"stem":481},{"title":485,"path":486,"stem":487},"Blueprints","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fblueprints","handbook\u002Fengineering\u002Fproduct\u002Fblueprints",{"title":489,"path":490,"stem":491},"Node-RED Dashboard 2.0 - Project","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fdashboard","handbook\u002Fengineering\u002Fproduct\u002Fdashboard",{"title":493,"path":494,"stem":495},"Product Feedback","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Ffeedback","handbook\u002Fengineering\u002Fproduct\u002Ffeedback",{"title":497,"path":498,"stem":499},"Glossary","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fglossary","handbook\u002Fengineering\u002Fproduct\u002Fglossary",{"title":501,"path":502,"stem":503},"Product Metrics","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fmetrics","handbook\u002Fengineering\u002Fproduct\u002Fmetrics",{"title":505,"path":506,"stem":507,"children":508},"Personas","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fpersonas","handbook\u002Fengineering\u002Fproduct\u002Fpersonas\u002Findex",[509],{"title":505,"path":506,"stem":507},{"title":511,"path":512,"stem":513},"Pricing Principles","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fpricing","handbook\u002Fengineering\u002Fproduct\u002Fpricing",{"title":279,"path":515,"stem":516},"\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fprinciples","handbook\u002Fengineering\u002Fproduct\u002Fprinciples",{"title":518,"path":519,"stem":520},"Product Strategy","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fstrategy","handbook\u002Fengineering\u002Fproduct\u002Fstrategy",{"title":522,"path":523,"stem":524},"Product Growth","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Ftelemetry","handbook\u002Fengineering\u002Fproduct\u002Ftelemetry",{"title":526,"path":527,"stem":528},"Versioning","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fversioning","handbook\u002Fengineering\u002Fproduct\u002Fversioning",{"title":530,"path":531,"stem":532},"Market Segments","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fverticals","handbook\u002Fengineering\u002Fproduct\u002Fverticals",{"title":534,"path":535,"stem":536},"Vision","\u002Fhandbook\u002Fengineering\u002Fproduct\u002Fvision","handbook\u002Fengineering\u002Fproduct\u002Fvision",{"title":538,"path":539,"stem":540},"Project Management","\u002Fhandbook\u002Fengineering\u002Fproject-management","handbook\u002Fengineering\u002Fproject-management",{"title":542,"path":543,"stem":544,"children":545},"Releases","\u002Fhandbook\u002Fengineering\u002Freleases","handbook\u002Fengineering\u002Freleases\u002Findex",[546,547,551,555,559],{"title":542,"path":543,"stem":544},{"title":548,"path":549,"stem":550},"Dashboard 2.0 Release Process","\u002Fhandbook\u002Fengineering\u002Freleases\u002Fdashboard-2","handbook\u002Fengineering\u002Freleases\u002Fdashboard-2",{"title":552,"path":553,"stem":554},"Digital Ocean Release Process","\u002Fhandbook\u002Fengineering\u002Freleases\u002Fdigital-ocean","handbook\u002Fengineering\u002Freleases\u002Fdigital-ocean",{"title":556,"path":557,"stem":558},"Release Process","\u002Fhandbook\u002Fengineering\u002Freleases\u002Fprocess","handbook\u002Fengineering\u002Freleases\u002Fprocess",{"title":560,"path":561,"stem":562},"Writing Changelog Posts","\u002Fhandbook\u002Fengineering\u002Freleases\u002Fwriting-changelog","handbook\u002Fengineering\u002Freleases\u002Fwriting-changelog",{"title":564,"path":565,"stem":566},"Security Reporting Policy","\u002Fhandbook\u002Fengineering\u002Fsecurity","handbook\u002Fengineering\u002Fsecurity",{"title":568,"path":569,"stem":570,"children":571},"Support","\u002Fhandbook\u002Fengineering\u002Fsupport","handbook\u002Fengineering\u002Fsupport\u002Findex",[572,573,577],{"title":568,"path":569,"stem":570},{"title":574,"path":575,"stem":576},"Support Triage Duty","\u002Fhandbook\u002Fengineering\u002Fsupport\u002Ftriage","handbook\u002Fengineering\u002Fsupport\u002Ftriage",{"title":578,"path":579,"stem":580},"Troubleshooting","\u002Fhandbook\u002Fengineering\u002Fsupport\u002Ftroubleshooting","handbook\u002Fengineering\u002Fsupport\u002Ftroubleshooting",{"title":382,"path":582,"stem":583},"\u002Fhandbook\u002Fengineering\u002Ftools","handbook\u002Fengineering\u002Ftools",{"title":585,"path":586,"stem":587,"children":588},"Marketing department","\u002Fhandbook\u002Fmarketing","handbook\u002Fmarketing\u002Findex",[589,590,594,598,612,616,620,624,628,632,636,640,644,648,652,656],{"title":585,"path":586,"stem":587},{"title":591,"path":592,"stem":593},"Blog","\u002Fhandbook\u002Fmarketing\u002Fblog","handbook\u002Fmarketing\u002Fblog",{"title":595,"path":596,"stem":597},"Brand Personality, Tone of Voice & Character","\u002Fhandbook\u002Fmarketing\u002Fbrand-voice","handbook\u002Fmarketing\u002Fbrand-voice",{"title":599,"path":600,"stem":601,"children":602},"Community","\u002Fhandbook\u002Fmarketing\u002Fcommunity","handbook\u002Fmarketing\u002Fcommunity\u002Findex",[603,604,608],{"title":599,"path":600,"stem":601},{"title":605,"path":606,"stem":607},"Community Guidelines","\u002Fhandbook\u002Fmarketing\u002Fcommunity\u002Fcommunity-guidelines","handbook\u002Fmarketing\u002Fcommunity\u002Fcommunity-guidelines",{"title":609,"path":610,"stem":611},"Forums And Support","\u002Fhandbook\u002Fmarketing\u002Fcommunity\u002Fforums-and-support","handbook\u002Fmarketing\u002Fcommunity\u002Fforums-and-support",{"title":613,"path":614,"stem":615},"Customer Stories","\u002Fhandbook\u002Fmarketing\u002Fcustomer-stories","handbook\u002Fmarketing\u002Fcustomer-stories",{"title":617,"path":618,"stem":619},"FlowFuse for Education","\u002Fhandbook\u002Fmarketing\u002Feducation","handbook\u002Fmarketing\u002Feducation",{"title":621,"path":622,"stem":623},"Marketing Email","\u002Fhandbook\u002Fmarketing\u002Femail","handbook\u002Fmarketing\u002Femail",{"title":625,"path":626,"stem":627},"Events","\u002Fhandbook\u002Fmarketing\u002Fevents","handbook\u002Fmarketing\u002Fevents",{"title":629,"path":630,"stem":631},"How the marketing team works at FlowFuse","\u002Fhandbook\u002Fmarketing\u002Fhow-we-work","handbook\u002Fmarketing\u002Fhow-we-work",{"title":633,"path":634,"stem":635},"Lead Activation","\u002Fhandbook\u002Fmarketing\u002Flead-activation","handbook\u002Fmarketing\u002Flead-activation",{"title":637,"path":638,"stem":639},"Lead Generation","\u002Fhandbook\u002Fmarketing\u002Fleads","handbook\u002Fmarketing\u002Fleads",{"title":641,"path":642,"stem":643},"Messaging","\u002Fhandbook\u002Fmarketing\u002Fmessaging","handbook\u002Fmarketing\u002Fmessaging",{"title":645,"path":646,"stem":647},"Marketing Programs","\u002Fhandbook\u002Fmarketing\u002Fprograms","handbook\u002Fmarketing\u002Fprograms",{"title":649,"path":650,"stem":651},"Social Media Channels","\u002Fhandbook\u002Fmarketing\u002Fsocial-media","handbook\u002Fmarketing\u002Fsocial-media",{"title":653,"path":654,"stem":655},"FlowFuse Webinars","\u002Fhandbook\u002Fmarketing\u002Fwebinars","handbook\u002Fmarketing\u002Fwebinars",{"title":657,"path":658,"stem":659},"Marketing Website","\u002Fhandbook\u002Fmarketing\u002Fwebsite","handbook\u002Fmarketing\u002Fwebsite",{"title":661,"path":662,"stem":663,"children":664},"Operations","\u002Fhandbook\u002Foperations","handbook\u002Foperations\u002Findex",[665,666,670,674,678,699,703,707,711,715],{"title":661,"path":662,"stem":663},{"title":667,"path":668,"stem":669},"Tax & Compliance","\u002Fhandbook\u002Foperations\u002Faccounting","handbook\u002Foperations\u002Faccounting",{"title":671,"path":672,"stem":673},"Accounts","\u002Fhandbook\u002Foperations\u002Faccounts","handbook\u002Foperations\u002Faccounts",{"title":675,"path":676,"stem":677},"Billing","\u002Fhandbook\u002Foperations\u002Fbilling","handbook\u002Foperations\u002Fbilling",{"title":211,"path":679,"stem":680,"children":681},"\u002Fhandbook\u002Foperations\u002Fceo-ops","handbook\u002Foperations\u002Fceo-ops\u002Findex",[682,683,687,691,695],{"title":211,"path":679,"stem":680},{"title":684,"path":685,"stem":686},"Calendar Management","\u002Fhandbook\u002Foperations\u002Fceo-ops\u002Fcalendar-management","handbook\u002Foperations\u002Fceo-ops\u002Fcalendar-management",{"title":688,"path":689,"stem":690},"Inbox Management","\u002Fhandbook\u002Foperations\u002Fceo-ops\u002Finbox-management","handbook\u002Foperations\u002Fceo-ops\u002Finbox-management",{"title":692,"path":693,"stem":694},"Task Managment","\u002Fhandbook\u002Foperations\u002Fceo-ops\u002Ftask-managment","handbook\u002Foperations\u002Fceo-ops\u002Ftask-managment",{"title":696,"path":697,"stem":698},"Travel Booking","\u002Fhandbook\u002Foperations\u002Fceo-ops\u002Ftravel-booking","handbook\u002Foperations\u002Fceo-ops\u002Ftravel-booking",{"title":700,"path":701,"stem":702},"Change","\u002Fhandbook\u002Foperations\u002Fchange","handbook\u002Foperations\u002Fchange",{"title":704,"path":705,"stem":706},"Commission Payment","\u002Fhandbook\u002Foperations\u002Fcommission-payment","handbook\u002Foperations\u002Fcommission-payment",{"title":708,"path":709,"stem":710},"Data at FlowFuse","\u002Fhandbook\u002Foperations\u002Fdata","handbook\u002Foperations\u002Fdata",{"title":712,"path":713,"stem":714},"Signatures","\u002Fhandbook\u002Foperations\u002Fsignatures","handbook\u002Foperations\u002Fsignatures",{"title":716,"path":717,"stem":718},"Vendors","\u002Fhandbook\u002Foperations\u002Fvendors","handbook\u002Foperations\u002Fvendors",{"title":720,"path":721,"stem":722,"children":723},"People Operations","\u002Fhandbook\u002Fpeopleops","handbook\u002Fpeopleops\u002Findex",[724,725,729,733,737,741,745,763,825,829,833,837,841],{"title":720,"path":721,"stem":722},{"title":726,"path":727,"stem":728},"Coaching Plans","\u002Fhandbook\u002Fpeopleops\u002Fcoaching-plans","handbook\u002Fpeopleops\u002Fcoaching-plans",{"title":730,"path":731,"stem":732},"Code of Conduct","\u002Fhandbook\u002Fpeopleops\u002Fcode-of-conduct","handbook\u002Fpeopleops\u002Fcode-of-conduct",{"title":734,"path":735,"stem":736},"Compensation","\u002Fhandbook\u002Fpeopleops\u002Fcompensation","handbook\u002Fpeopleops\u002Fcompensation",{"title":738,"path":739,"stem":740},"Compliance & Training (Mineral)","\u002Fhandbook\u002Fpeopleops\u002Fcompliance","handbook\u002Fpeopleops\u002Fcompliance",{"title":742,"path":743,"stem":744},"Expenses","\u002Fhandbook\u002Fpeopleops\u002Fexpenses","handbook\u002Fpeopleops\u002Fexpenses",{"title":746,"path":747,"stem":748,"children":749},"Hiring","\u002Fhandbook\u002Fpeopleops\u002Fhiring","handbook\u002Fpeopleops\u002Fhiring\u002Findex",[750,751,755,759],{"title":746,"path":747,"stem":748},{"title":752,"path":753,"stem":754},"Working with Recruiters","\u002Fhandbook\u002Fpeopleops\u002Fhiring\u002Frecruiters","handbook\u002Fpeopleops\u002Fhiring\u002Frecruiters",{"title":756,"path":757,"stem":758},"Screening Call","\u002Fhandbook\u002Fpeopleops\u002Fhiring\u002Fscreening-call","handbook\u002Fpeopleops\u002Fhiring\u002Fscreening-call",{"title":760,"path":761,"stem":762},"Star Questions","\u002Fhandbook\u002Fpeopleops\u002Fhiring\u002Fstar-questions","handbook\u002Fpeopleops\u002Fhiring\u002Fstar-questions",{"title":764,"path":765,"stem":766,"children":767},"Job Descriptions","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Findex",[768,769,773,777,781,785,789,793,797,801,805,809,813,817,821],{"title":764,"path":765,"stem":766},{"title":770,"path":771,"stem":772},"Account Executive","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Faccount-executive","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Faccount-executive",{"title":774,"path":775,"stem":776},"CEO","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fceo","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fceo",{"title":778,"path":779,"stem":780},"Chief of Staff","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fchief-of-staff","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fchief-of-staff",{"title":782,"path":783,"stem":784},"CTO","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fcto","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fcto",{"title":786,"path":787,"stem":788},"Developer Relations Advocate","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fdeveloper-relations-advocate","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fdeveloper-relations-advocate",{"title":790,"path":791,"stem":792},"Engineering Manager","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fengineering-manager","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fengineering-manager",{"title":794,"path":795,"stem":796},"Fullstack Engineer","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Ffullstack-engineer","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Ffullstack-engineer",{"title":798,"path":799,"stem":800},"Fullstack Engineer (AI-Focused)","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Ffullstack-engineer-ai","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Ffullstack-engineer-ai",{"title":802,"path":803,"stem":804},"Head of Marketing","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fhead-of-marketing","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fhead-of-marketing",{"title":806,"path":807,"stem":808},"Product Manager","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fproduct-manager","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fproduct-manager",{"title":810,"path":811,"stem":812},"Product Marketer","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fproduct-marketer","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fproduct-marketer",{"title":814,"path":815,"stem":816},"Solutions Engineer","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fsolutions-engineer","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fsolutions-engineer",{"title":818,"path":819,"stem":820},"Technical Product Manager","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Ftechnical-product-manager","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Ftechnical-product-manager",{"title":822,"path":823,"stem":824},"VP of Sales","\u002Fhandbook\u002Fpeopleops\u002Fjob-descriptions\u002Fvp-sales","handbook\u002Fpeopleops\u002Fjob-descriptions\u002Fvp-sales",{"title":826,"path":827,"stem":828},"Holiday and Leave","\u002Fhandbook\u002Fpeopleops\u002Fleave","handbook\u002Fpeopleops\u002Fleave",{"title":830,"path":831,"stem":832},"PeopleOps policies","\u002Fhandbook\u002Fpeopleops\u002Forganization","handbook\u002Fpeopleops\u002Forganization",{"title":834,"path":835,"stem":836},"Performance Review","\u002Fhandbook\u002Fpeopleops\u002Fperformance-review","handbook\u002Fpeopleops\u002Fperformance-review",{"title":838,"path":839,"stem":840},"Summit","\u002Fhandbook\u002Fpeopleops\u002Fsummit","handbook\u002Fpeopleops\u002Fsummit",{"title":842,"path":843,"stem":844},"Travel","\u002Fhandbook\u002Fpeopleops\u002Ftravel","handbook\u002Fpeopleops\u002Ftravel",{"title":846,"path":847,"stem":848,"children":849},"Sales department","\u002Fhandbook\u002Fsales","handbook\u002Fsales\u002Findex",[850,851,857,861,865,869,873,877,881,885,902,906,918,922,928,932,936],{"title":846,"path":847,"stem":848},{"title":852,"path":853,"stem":854,"children":855},"FY 2026 SALES COMPENSATION PLAN","\u002Fhandbook\u002Fsales\u002Fcommission-plan","handbook\u002Fsales\u002Fcommission-plan\u002Findex",[856],{"title":852,"path":853,"stem":854},{"title":858,"path":859,"stem":860},"Customer Success","\u002Fhandbook\u002Fsales\u002Fcustomer-success","handbook\u002Fsales\u002Fcustomer-success",{"title":862,"path":863,"stem":864},"Self Hosted Dashboard v2 Multi User Plugin","\u002Fhandbook\u002Fsales\u002Fdashboard-v2","handbook\u002Fsales\u002Fdashboard-v2",{"title":866,"path":867,"stem":868},"Edge Connectivity Sales Process","\u002Fhandbook\u002Fsales\u002Fedge-connect-process","handbook\u002Fsales\u002Fedge-connect-process",{"title":870,"path":871,"stem":872},"Engagements","\u002Fhandbook\u002Fsales\u002Fengagements","handbook\u002Fsales\u002Fengagements",{"title":874,"path":875,"stem":876},"Forecast Review","\u002Fhandbook\u002Fsales\u002Fforecast-review","handbook\u002Fsales\u002Fforecast-review",{"title":878,"path":879,"stem":880},"Hubspot","\u002Fhandbook\u002Fsales\u002Fhubspot","handbook\u002Fsales\u002Fhubspot",{"title":882,"path":883,"stem":884},"Legal","\u002Fhandbook\u002Fsales\u002Flegal","handbook\u002Fsales\u002Flegal",{"title":211,"path":886,"stem":887,"children":888},"\u002Fhandbook\u002Fsales\u002Fmeetings","handbook\u002Fsales\u002Fmeetings\u002Findex",[889,890,894,898],{"title":211,"path":886,"stem":887},{"title":891,"path":892,"stem":893},"Demo","\u002Fhandbook\u002Fsales\u002Fmeetings\u002Fdemo","handbook\u002Fsales\u002Fmeetings\u002Fdemo",{"title":895,"path":896,"stem":897},"Discovery","\u002Fhandbook\u002Fsales\u002Fmeetings\u002Fdiscovery","handbook\u002Fsales\u002Fmeetings\u002Fdiscovery",{"title":899,"path":900,"stem":901},"Poc","\u002Fhandbook\u002Fsales\u002Fmeetings\u002Fpoc","handbook\u002Fsales\u002Fmeetings\u002Fpoc",{"title":903,"path":904,"stem":905},"Sales Team Operating Principles","\u002Fhandbook\u002Fsales\u002Foperating-principles","handbook\u002Fsales\u002Foperating-principles",{"title":907,"path":908,"stem":909,"children":910},"Commercial Organization","\u002Fhandbook\u002Fsales\u002Forg","handbook\u002Fsales\u002Forg\u002Findex",[911,912],{"title":907,"path":908,"stem":909},{"title":913,"path":914,"stem":915,"children":916},"Account Executives","\u002Fhandbook\u002Fsales\u002Forg\u002Faccount-executives","handbook\u002Fsales\u002Forg\u002Faccount-executives\u002Findex",[917],{"title":913,"path":914,"stem":915},{"title":919,"path":920,"stem":921},"Partnerships","\u002Fhandbook\u002Fsales\u002Fpartnerships","handbook\u002Fsales\u002Fpartnerships",{"title":923,"path":924,"stem":925,"children":926},"Processes","\u002Fhandbook\u002Fsales\u002Fprocesses","handbook\u002Fsales\u002Fprocesses\u002Findex",[927],{"title":923,"path":924,"stem":925},{"title":929,"path":930,"stem":931},"Professional Services","\u002Fhandbook\u002Fsales\u002Fprofessional-services","handbook\u002Fsales\u002Fprofessional-services",{"title":933,"path":934,"stem":935},"Regions","\u002Fhandbook\u002Fsales\u002Fregions","handbook\u002Fsales\u002Fregions",{"title":937,"path":938,"stem":939},"Sales Deck","\u002Fhandbook\u002Fsales\u002Fsales-deck","handbook\u002Fsales\u002Fsales-deck",1780070544183]