[{"data":1,"prerenderedAt":462},["ShallowReactive",2],{"/en/workflows/signal-guardrails-for-branch-decisions":3},{"id":4,"slug":5,"locale":6,"translationGroupId":7,"localeSwitchApproved":8,"title":9,"description":10,"documentationMarkdown":11,"workflowJson":12,"category":441,"tags":442,"integrations":446,"difficulty":449,"author":450,"verified":32,"featured":32,"date":451,"modified":451,"icon":7,"imageSrc":7,"path":452,"alternates":453,"seo":454},"7ba9ecd2-6ba9-40fa-84d0-1931de34645d","signal-guardrails-for-branch-decisions","en",null,true,"Signal Guardrails for Branch Decisions","A guided decision coach that helps branch leaders and ops teams pressure-test numbers, spot dirty signals early, and choose when automation is safe—before a confident meeting turns into a confident mistake.","## How it works\nThis workflow turns “messy but persuasive” branch signals into decision-ready checks. It starts by letting the Knowledge Base answer any quick definition/process questions, then routes the operator into a menu of practical, decision-shaped diagnostics (trusting branch numbers, spotting dirty signal, automation vs. judgment, attribution comparisons, and building a signal culture).\n\nIt’s designed for the moment right before teams commit: when the spreadsheet looks clean, the story sounds coherent, and the risk is that the signal is quietly wrong. The workflow pushes for a few high-leverage validations that catch the usual failure modes early—without forcing you to over-clean the evidence into something politely misleading.\n\n## Key features\n- Knowledge Base–first behavior for fast answers, then a structured decision menu for consistent triage.\n- Button-driven routing to focused guidance: trust checks, dirty-signal detection, automation boundaries, and comparison pitfalls.\n- A repeatable “one more check” loop so operators can run multiple diagnostics in one session.\n- Optional handoff to a human team (via routing) when the situation is ambiguous or high-stakes.\n\n## Step-by-step\n1. **Trigger:** The workflow starts when a conversation enters the flow.\n2. **Knowledge Base assist:** The workflow applies a Knowledge Base policy to answer straightforward questions (and then continues into guided triage).\n3. **Choose a diagnostic:** The user picks a menu option (e.g., “Which branch numbers deserve trust?”).\n4. **Run the selected check:** The workflow sends a concise, practical checklist tailored to that choice.\n5. **Continue or escalate:** The user chooses either **Back to menu** (to run another check) or **Talk to a person** (to hand off).\n6. **Fallback handoff (optional):** If selected, the workflow routes the conversation to the configured department with a clear context message.\n\n## Setup requirements\n- **Calypso Knowledge Base:** Enabled and populated with your definitions (metrics glossary), branch reporting rules, and data ownership notes.\n- **Calypso routing:** A department available to receive escalations (configured in this workflow as **Analytics Ops**).\n- **Credentials:** None required.",{"id":13,"teamId":14,"name":9,"version":15,"workflowVersion":16,"nodes":17,"connections":329,"routingEnabled":8,"active":32},"wf_signal_guardrails_branch_decisions","calypso-public-library","1.0.0",1,[18,33,39,51,86,95,101,107,113,119,125,131,139,145,151,157,163,169,186,193,212,218,223,229,235,241,247,253,259,265,271,277,283,289,295,302,308,313,319],{"id":19,"name":20,"type":21,"typeVersion":16,"position":22,"parameters":24,"category":31,"deletable":32,"connectable":32},"node_flow_cfg","Workflow settings","flow-configs",[23,23],60,{"name":9,"description":25,"tags":26,"triggerType":30},"Menu-based decision coach to validate branch signals, spot dirty data, and set automation boundaries.",[27,28,29],"branch-analytics","signal-hygiene","decision-guardrails","input","policy",false,{"id":34,"name":35,"type":30,"typeVersion":16,"position":36,"parameters":38,"category":30,"deletable":32,"connectable":8},"node_input","Start",[23,37],200,{},{"id":40,"name":41,"type":42,"typeVersion":16,"position":43,"parameters":45,"category":50,"deletable":8,"connectable":8},"node_kb_policy","Knowledge Base assist","knowledge-base-policy",[44,37],280,{"enabled":8,"fallbackToRouting":8,"sticky":8,"stickyMode":46,"activationOpener":47,"personalization":49},"ai_sticky_release",{"enabled":8,"instruction":48},"Use the Knowledge Base to answer any straightforward questions. If the user is deciding between actions or comparing branch performance, guide them to the decision menu and apply practical signal-checks. Keep it plainspoken and decision-oriented; avoid academic framing.",{"useContactName":32},"response",{"id":52,"name":53,"type":54,"typeVersion":16,"position":55,"parameters":57,"category":50,"deletable":8,"connectable":8},"node_main_menu","Decision menu","interactive-message",[56,37],520,{"messageType":58,"headerText":59,"bodyText":60,"footerText":61,"sectionTitle":62,"buttons":63,"ctaDisplayText":85,"ctaUrl":85},"list","Decision signal coach","Pick what you’re trying to decide. I’ll give you a fast trust-check that catches the usual “looks fine until it isn’t” problems.","Tip: For high-stakes calls, run Trust + Dirty.","Choose a check",[64,67,70,73,76,79,82],{"id":65,"title":66},"trust_branch_numbers","Trust branch numbers",{"id":68,"title":69},"spot_dirty_signal","Spot dirty signal",{"id":71,"title":72},"automation_vs_judgment","Automation vs humans",{"id":74,"title":75},"messy_evidence","Messy to insight",{"id":77,"title":78},"compare_branches_attribution","Compare & attribution",{"id":80,"title":81},"build_signal_culture","Signal culture",{"id":83,"title":84},"talk_to_person","Talk to a person","",{"id":87,"name":88,"type":89,"typeVersion":16,"position":90,"parameters":92,"category":94,"deletable":8,"connectable":8},"node_if_trust","If: trust branch numbers","if",[91,37],760,{"buttonId":65,"operator":93},"equals","routing",{"id":96,"name":97,"type":89,"typeVersion":16,"position":98,"parameters":100,"category":94,"deletable":8,"connectable":8},"node_if_dirty","If: spot dirty signal",[91,99],310,{"buttonId":68,"operator":93},{"id":102,"name":103,"type":89,"typeVersion":16,"position":104,"parameters":106,"category":94,"deletable":8,"connectable":8},"node_if_auto","If: automation vs judgment",[91,105],420,{"buttonId":71,"operator":93},{"id":108,"name":109,"type":89,"typeVersion":16,"position":110,"parameters":112,"category":94,"deletable":8,"connectable":8},"node_if_messy","If: messy evidence to insight",[91,111],530,{"buttonId":74,"operator":93},{"id":114,"name":115,"type":89,"typeVersion":16,"position":116,"parameters":118,"category":94,"deletable":8,"connectable":8},"node_if_compare","If: comparisons & attribution",[91,117],640,{"buttonId":77,"operator":93},{"id":120,"name":121,"type":89,"typeVersion":16,"position":122,"parameters":124,"category":94,"deletable":8,"connectable":8},"node_if_culture","If: build signal culture",[91,123],750,{"buttonId":80,"operator":93},{"id":126,"name":127,"type":89,"typeVersion":16,"position":128,"parameters":130,"category":94,"deletable":8,"connectable":8},"node_if_handoff_main","If: talk to a person",[91,129],860,{"buttonId":83,"operator":93},{"id":132,"name":133,"type":134,"typeVersion":16,"position":135,"parameters":137,"category":50,"deletable":8,"connectable":8},"node_text_trust","Trust check: branch numbers","text-message",[136,37],1040,{"text":138},"Here’s how to tell if a branch number deserves trust or is just polished noise:\n\n1) **Lineage check (who touched it?)**: Can you name the source table/system and the last transformation? If not, treat it as a headline, not evidence.\n2) **Denominator reality**: Ask “out of what?” (traffic, eligible customers, staffed hours). The cleanest-looking chart often hides a changing denominator.\n3) **Stability vs. sensitivity**: A trustworthy metric is stable to irrelevant changes (e.g., reporting lag) and sensitive to relevant ones (e.g., staffing, inventory). If it flips when nothing operational changed, it’s fragile.\n4) **Lag + revision behavior**: Do prior weeks get revised? If yes, decide using a *freeze window* (e.g., only act on weeks older than X days).\n5) **Cross-check with a ‘dumb’ signal**: Call volume, cancellations, out-of-stocks, refunds. If the smart metric improves while two dumb ones worsen, assume measurement error first.\n\nPractical rule: if you can’t explain the number in one breath *and* defend it against one dumb cross-check, don’t let it steer a decision alone.",{"id":140,"name":141,"type":134,"typeVersion":16,"position":142,"parameters":143,"category":50,"deletable":8,"connectable":8},"node_text_dirty","Dirty signal check",[136,99],{"text":144},"Dirty signal usually shows up as **consistency that’s too perfect** or **movement with no plausible mechanism**. Quick checks before the meeting goes off the rails:\n\n- **The “midnight spike” test**: Do events cluster at odd times (batch jobs) instead of when humans act?\n- **Duplicate/echo events**: Same customer/action recorded twice (retries, syncs). Look for identical timestamps, IDs, or suspiciously round counts.\n- **Definition drift**: The label stayed the same, the rule changed. Ask: “Did anything change in tracking, routing, staffing, promos, or forms?”\n- **Sampling surprises**: New channel/branch started reporting; old one dropped. Your ‘trend’ might be coverage, not performance.\n- **Missingness with a pattern**: If missing data correlates with busy periods or specific branches, it’s not random—and it biases conclusions.\n\nWitty but true: bad data rarely looks like garbage. It looks like a promotion-ready success story. Make it pass one ugly reality check before you celebrate.",{"id":146,"name":147,"type":134,"typeVersion":16,"position":148,"parameters":149,"category":50,"deletable":8,"connectable":8},"node_text_auto","Automation vs human judgment",[136,105],{"text":150},"When to trust automation (and when to keep a human in the loop):\n\n**Automation is safe-ish when:**\n- The decision is **reversible** (you can undo within a week).\n- The outcome is **measurable quickly** with a trusted metric.\n- The system has **guardrails** (caps, anomaly detection, “do no harm” rules).\n- You’re operating in a **known regime** (same offer, same channel mix, no major policy change).\n\n**Require human judgment when:**\n- The cost of being wrong is high (compliance, safety, reputational damage).\n- The environment just changed (new campaign, routing rules, staffing model, pricing).\n- The signal is **thin** (small samples, noisy attribution) or **gameable**.\n- The decision needs context (local events, branch constraints, customer sentiment).\n\nBest practice: automate the *boring, frequent, reversible* moves. Escalate the rare, irreversible, high-stakes ones—especially when the data looks unusually clean.",{"id":152,"name":153,"type":134,"typeVersion":16,"position":154,"parameters":155,"category":50,"deletable":8,"connectable":8},"node_text_messy","Messy evidence to insight",[136,111],{"text":156},"Turning messy evidence into usable insight—without cleaning away the truth:\n\n1) **Keep the mess, label it**: Don’t delete outliers; tag them (promo, outage, staffing gap, weather). Outliers are often the real story.\n2) **Separate ‘signal’ from ‘plumbing’**: Split what changed in the world vs. what changed in tracking/logging.\n3) **Use ‘good enough’ buckets**: Instead of perfect categories, use 3–5 bins that match decisions (e.g., low/medium/high; on-time/late).\n4) **Triangulate**: One metric + one operational log + one human narrative (frontline notes). If all three agree, you can act.\n5) **Write the decision question first**: “Should we add staffing to Branch 12 on weekends?” filters noise better than any dashboard.\n\nRule of thumb: cleaning should remove *impossibilities* (duplicates, malformed events), not remove *inconveniences* (weird but real behavior).",{"id":158,"name":159,"type":134,"typeVersion":16,"position":160,"parameters":161,"category":50,"deletable":8,"connectable":8},"node_text_compare","Comparisons & attribution pitfalls",[136,117],{"text":162},"What teams repeatedly misread when comparing branches, conversations, and attribution:\n\n- **Mix effects**: Branch A ‘wins’ because it gets easier customers, different channels, or different hours. Compare like-for-like segments.\n- **Capacity constraints**: A branch can’t convert what it can’t staff. If demand > capacity, conversion is not a pure performance metric.\n- **Lead routing bias**: If routing rules differ (or changed), branch comparisons become a routing audit, not a branch evaluation.\n- **Attribution fantasy**: Last-touch looks decisive but often rewards whoever shows up late. If a change improves *one* touchpoint metric but hurts retention/refunds, be skeptical.\n- **Conversation volume vs. quality**: More conversations can mean better acquisition—or worse product clarity. Pair volume with resolution/deflection/refund signals.\n\nA clean comparison needs one sentence of fairness: “These branches had similar demand, capacity, channel mix, and measurement rules.” If you can’t say it, don’t rank them—diagnose them.",{"id":164,"name":165,"type":134,"typeVersion":16,"position":166,"parameters":167,"category":50,"deletable":8,"connectable":8},"node_text_culture","Signal culture playbook",[136,123],{"text":168},"How to build a signal culture that helps decisions happen (not just slides):\n\n- **Name an owner per metric**: Not a ‘dashboard owner’—a person accountable for definition, drift, and known caveats.\n- **Create a ‘decision log’**: What we decided, what we believed, what signal we trusted, and when we’ll check back. It reduces hindsight theater.\n- **Make pre-mortems normal**: “If this is wrong, what’s the first thing that will have lied to us?” (Spoiler: tracking changes, routing, denominators.)\n- **Reward uncertainty done well**: People should get credit for saying “we don’t know yet” *with a plan to know.*\n- **Default to small reversible tests**: Culture improves when decisions become experiments, not identity statements.\n\nWit you can reuse: the goal isn’t to be data-driven. It’s to be *mistake-resistant*.",{"id":170,"name":171,"type":54,"typeVersion":16,"position":172,"parameters":174,"category":50,"deletable":8,"connectable":8},"node_followup","One more check?",[173,56],1280,{"messageType":175,"headerText":176,"bodyText":177,"footerText":85,"sectionTitle":85,"buttons":178,"ctaDisplayText":85,"ctaUrl":85},"button","Want one more check?","If you’re making a high-stakes call, it’s worth running one more diagnostic. Otherwise, you can finish or hand off to a person.",[179,182,183],{"id":180,"title":181},"another_check","Another check",{"id":83,"title":84},{"id":184,"title":185},"done","Done",{"id":187,"name":188,"type":89,"typeVersion":16,"position":189,"parameters":192,"category":94,"deletable":8,"connectable":8},"node_if_another","If: another check",[190,191],1520,480,{"buttonId":180,"operator":93},{"id":194,"name":195,"type":54,"typeVersion":16,"position":196,"parameters":198,"category":50,"deletable":8,"connectable":8},"node_second_menu","Second check menu",[197,105],1760,{"messageType":58,"headerText":199,"bodyText":200,"footerText":201,"sectionTitle":62,"buttons":202,"ctaDisplayText":85,"ctaUrl":85},"Second check","Pick one more diagnostic to sanity-check the decision from another angle.","One more, then we’ll wrap.",[203,204,205,206,207,208,209,210],{"id":65,"title":66},{"id":68,"title":69},{"id":71,"title":72},{"id":74,"title":75},{"id":77,"title":78},{"id":80,"title":81},{"id":83,"title":84},{"id":184,"title":211},"Finish",{"id":213,"name":214,"type":89,"typeVersion":16,"position":215,"parameters":217,"category":94,"deletable":8,"connectable":8},"node_if2_trust","If (2): trust branch numbers",[216,105],2000,{"buttonId":65,"operator":93},{"id":219,"name":220,"type":89,"typeVersion":16,"position":221,"parameters":222,"category":94,"deletable":8,"connectable":8},"node_if2_dirty","If (2): spot dirty signal",[216,56],{"buttonId":68,"operator":93},{"id":224,"name":225,"type":89,"typeVersion":16,"position":226,"parameters":228,"category":94,"deletable":8,"connectable":8},"node_if2_auto","If (2): automation vs judgment",[216,227],620,{"buttonId":71,"operator":93},{"id":230,"name":231,"type":89,"typeVersion":16,"position":232,"parameters":234,"category":94,"deletable":8,"connectable":8},"node_if2_messy","If (2): messy evidence to insight",[216,233],720,{"buttonId":74,"operator":93},{"id":236,"name":237,"type":89,"typeVersion":16,"position":238,"parameters":240,"category":94,"deletable":8,"connectable":8},"node_if2_compare","If (2): comparisons & attribution",[216,239],820,{"buttonId":77,"operator":93},{"id":242,"name":243,"type":89,"typeVersion":16,"position":244,"parameters":246,"category":94,"deletable":8,"connectable":8},"node_if2_culture","If (2): build signal culture",[216,245],920,{"buttonId":80,"operator":93},{"id":248,"name":249,"type":89,"typeVersion":16,"position":250,"parameters":252,"category":94,"deletable":8,"connectable":8},"node_if2_handoff","If (2): talk to a person",[216,251],1020,{"buttonId":83,"operator":93},{"id":254,"name":255,"type":89,"typeVersion":16,"position":256,"parameters":258,"category":94,"deletable":8,"connectable":8},"node_if2_done","If (2): finish",[216,257],1120,{"buttonId":184,"operator":93},{"id":260,"name":261,"type":134,"typeVersion":16,"position":262,"parameters":264,"category":50,"deletable":8,"connectable":8},"node_text_trust_2","Trust check (2): branch numbers",[263,105],2280,{"text":138},{"id":266,"name":267,"type":134,"typeVersion":16,"position":268,"parameters":269,"category":50,"deletable":8,"connectable":8},"node_text_dirty_2","Dirty signal check (2)",[263,56],{"text":270},"Dirty signal usually shows up as **consistency that’s too perfect** or **movement with no plausible mechanism**. Quick checks before the meeting goes off the rails:\n\n- **The “midnight spike” test**: Do events cluster at odd times (batch jobs) instead of when humans act?\n- **Duplicate/echo events**: Same customer/action recorded twice (retries, syncs). Look for identical timestamps, IDs, or suspiciously round counts.\n- **Definition drift**: The label stayed the same, the rule changed. Ask: “Did anything change in tracking, routing, staffing, promos, or forms?”\n- **Sampling surprises**: New channel/branch started reporting; old one dropped. Your ‘trend’ might be coverage, not performance.\n- **Missingness with a pattern**: If missing data correlates with busy periods or specific branches, it’s not random—and it biases conclusions.\n\nBad data rarely looks like garbage. It looks like a success story. Make it pass one ugly reality check before you celebrate.",{"id":272,"name":273,"type":134,"typeVersion":16,"position":274,"parameters":275,"category":50,"deletable":8,"connectable":8},"node_text_auto_2","Automation vs judgment (2)",[263,227],{"text":276},"When to trust automation (and when to keep a human in the loop):\n\n**Automation is safe-ish when:**\n- The decision is **reversible**.\n- The outcome is **measurable quickly** with a trusted metric.\n- There are **guardrails** (caps, anomaly checks, “do no harm” rules).\n- You’re in a **known regime** (no major routing/tracking/policy changes).\n\n**Require human judgment when:**\n- The cost of being wrong is high.\n- The environment just changed.\n- The signal is **thin** or **gameable**.\n- The decision needs local context.\n\nDefault: automate the boring, frequent, reversible moves. Escalate rare, irreversible, high-stakes calls—especially when the data looks unusually clean.",{"id":278,"name":279,"type":134,"typeVersion":16,"position":280,"parameters":281,"category":50,"deletable":8,"connectable":8},"node_text_messy_2","Messy evidence to insight (2)",[263,233],{"text":282},"Turning messy evidence into usable insight—without cleaning away the truth:\n\n1) **Keep the mess, label it** (don’t delete outliers).\n2) **Separate ‘signal’ from ‘plumbing’** (world changes vs tracking changes).\n3) **Use decision-shaped buckets** (3–5 bins beats 30 perfect categories).\n4) **Triangulate**: one metric + one operational log + one human narrative.\n5) **Write the decision question first** (it filters noise better than a dashboard).\n\nCleaning should remove *impossibilities*, not remove *inconveniences*.",{"id":284,"name":285,"type":134,"typeVersion":16,"position":286,"parameters":287,"category":50,"deletable":8,"connectable":8},"node_text_compare_2","Comparisons & attribution (2)",[263,239],{"text":288},"Common comparison/attribution traps:\n\n- **Mix effects** (different customers/channels/hours).\n- **Capacity constraints** (conversion isn’t performance when demand > staffing).\n- **Routing bias** (you’re ranking routing rules, not branches).\n- **Last-touch fantasy** (late touchpoints get credit; reality is messier).\n- **Volume ≠ quality** (pair conversation volume with resolution/refunds).\n\nIf you can’t say, “these branches had similar demand, capacity, channel mix, and measurement rules,” don’t rank them—diagnose them.",{"id":290,"name":291,"type":134,"typeVersion":16,"position":292,"parameters":293,"category":50,"deletable":8,"connectable":8},"node_text_culture_2","Signal culture (2)",[263,245],{"text":294},"Signal culture that helps decisions happen:\n\n- One **owner per metric** (definition + drift + caveats).\n- A simple **decision log** (belief → action → check-back date).\n- Routine **pre-mortems** (“what lied to us first?”).\n- Reward “**we don’t know yet**—and here’s how we’ll know.”\n- Default to **small, reversible tests**.\n\nGoal: not “data-driven.” Goal: *mistake-resistant*.",{"id":296,"name":297,"type":134,"typeVersion":16,"position":298,"parameters":300,"category":50,"deletable":8,"connectable":8},"node_text_choose_button","Prompt: choose an option",[136,299],880,{"text":301},"Please choose one of the options above so I can route you to the right check.",{"id":303,"name":304,"type":89,"typeVersion":16,"position":305,"parameters":307,"category":94,"deletable":8,"connectable":8},"node_if_handoff_follow","If: talk to a person (followup)",[190,306],600,{"buttonId":83,"operator":93},{"id":309,"name":310,"type":89,"typeVersion":16,"position":311,"parameters":312,"category":94,"deletable":8,"connectable":8},"node_if_done","If: done",[190,233],{"buttonId":184,"operator":93},{"id":314,"name":315,"type":134,"typeVersion":16,"position":316,"parameters":317,"category":50,"deletable":8,"connectable":8},"node_text_done","Wrap up",[197,91],{"text":318},"All set. If the decision is high-stakes and the signal still feels “too clean,” escalate to a person before you commit.",{"id":320,"name":321,"type":322,"typeVersion":16,"position":323,"parameters":324,"category":328,"deletable":8,"connectable":8},"node_fallback","Handoff to Analytics Ops","fallback",[197,245],{"handoffMessage":325,"departmentId":326,"departmentName":327},"Handing off to Analytics Ops. Please share: (1) the decision you’re about to make, (2) the branch(es) affected, (3) the metric(s) you’re relying on, and (4) what changed recently (routing/tracking/staffing/campaigns).","analytics-ops","Analytics Ops","terminal",[330,335,337,339,342,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,377,379,381,383,385,387,389,391,393,395,397,399,401,403,405,407,409,411,413,415,417,419,421,423,425,427,429,431,433,435,437,439],{"id":331,"source":34,"target":40,"sourceHandle":332,"targetHandle":333,"type":334},"conn_input_to_kb","out","in","default",{"id":336,"source":40,"target":52,"sourceHandle":332,"targetHandle":333,"type":334},"conn_kb_to_menu",{"id":338,"source":52,"target":87,"sourceHandle":332,"targetHandle":333,"type":334},"conn_menu_to_if_trust",{"id":340,"source":87,"target":132,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if_trust_true","true",{"id":343,"source":87,"target":96,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if_trust_false","false",{"id":346,"source":96,"target":140,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if_dirty_true",{"id":348,"source":96,"target":102,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if_dirty_false",{"id":350,"source":102,"target":146,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if_auto_true",{"id":352,"source":102,"target":108,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if_auto_false",{"id":354,"source":108,"target":152,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if_messy_true",{"id":356,"source":108,"target":114,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if_messy_false",{"id":358,"source":114,"target":158,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if_compare_true",{"id":360,"source":114,"target":120,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if_compare_false",{"id":362,"source":120,"target":164,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if_culture_true",{"id":364,"source":120,"target":126,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if_culture_false",{"id":366,"source":126,"target":320,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if_handoff_main_true",{"id":368,"source":126,"target":296,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if_handoff_main_false",{"id":370,"source":132,"target":170,"sourceHandle":332,"targetHandle":333,"type":334},"conn_text_trust_to_followup",{"id":372,"source":140,"target":170,"sourceHandle":332,"targetHandle":333,"type":334},"conn_text_dirty_to_followup",{"id":374,"source":146,"target":170,"sourceHandle":332,"targetHandle":333,"type":334},"conn_text_auto_to_followup",{"id":376,"source":152,"target":170,"sourceHandle":332,"targetHandle":333,"type":334},"conn_text_messy_to_followup",{"id":378,"source":158,"target":170,"sourceHandle":332,"targetHandle":333,"type":334},"conn_text_compare_to_followup",{"id":380,"source":164,"target":170,"sourceHandle":332,"targetHandle":333,"type":334},"conn_text_culture_to_followup",{"id":382,"source":170,"target":187,"sourceHandle":332,"targetHandle":333,"type":334},"conn_followup_to_if_another",{"id":384,"source":187,"target":194,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if_another_true_to_second_menu",{"id":386,"source":187,"target":303,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if_another_false_to_if_handoff_follow",{"id":388,"source":303,"target":320,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if_handoff_follow_true_to_fallback",{"id":390,"source":303,"target":309,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if_handoff_follow_false_to_if_done",{"id":392,"source":309,"target":314,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if_done_true_to_wrap",{"id":394,"source":309,"target":296,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if_done_false_to_prompt",{"id":396,"source":194,"target":213,"sourceHandle":332,"targetHandle":333,"type":334},"conn_second_menu_to_if2_trust",{"id":398,"source":213,"target":260,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if2_trust_true_to_text_trust_2",{"id":400,"source":213,"target":219,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if2_trust_false_to_if2_dirty",{"id":402,"source":219,"target":266,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if2_dirty_true_to_text_dirty_2",{"id":404,"source":219,"target":224,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if2_dirty_false_to_if2_auto",{"id":406,"source":224,"target":272,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if2_auto_true_to_text_auto_2",{"id":408,"source":224,"target":230,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if2_auto_false_to_if2_messy",{"id":410,"source":230,"target":278,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if2_messy_true_to_text_messy_2",{"id":412,"source":230,"target":236,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if2_messy_false_to_if2_compare",{"id":414,"source":236,"target":284,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if2_compare_true_to_text_compare_2",{"id":416,"source":236,"target":242,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if2_compare_false_to_if2_culture",{"id":418,"source":242,"target":290,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if2_culture_true_to_text_culture_2",{"id":420,"source":242,"target":248,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if2_culture_false_to_if2_handoff",{"id":422,"source":248,"target":320,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if2_handoff_true_to_fallback",{"id":424,"source":248,"target":254,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if2_handoff_false_to_if2_done",{"id":426,"source":254,"target":314,"sourceHandle":341,"targetHandle":333,"type":334},"conn_if2_done_true_to_wrap",{"id":428,"source":254,"target":296,"sourceHandle":344,"targetHandle":333,"type":334},"conn_if2_done_false_to_prompt",{"id":430,"source":260,"target":314,"sourceHandle":332,"targetHandle":333,"type":334},"conn_text_trust_2_to_wrap",{"id":432,"source":266,"target":314,"sourceHandle":332,"targetHandle":333,"type":334},"conn_text_dirty_2_to_wrap",{"id":434,"source":272,"target":314,"sourceHandle":332,"targetHandle":333,"type":334},"conn_text_auto_2_to_wrap",{"id":436,"source":278,"target":314,"sourceHandle":332,"targetHandle":333,"type":334},"conn_text_messy_2_to_wrap",{"id":438,"source":284,"target":314,"sourceHandle":332,"targetHandle":333,"type":334},"conn_text_compare_2_to_wrap",{"id":440,"source":290,"target":314,"sourceHandle":332,"targetHandle":333,"type":334},"conn_text_culture_2_to_wrap","automation",[27,28,29,443,444,445],"automation-judgment","attribution","research-notes",[447,448],"Calypso Knowledge Base","Calypso Inbox","intermediate","Calypso","2026-06-10T11:05:28.725Z","/en/workflows/signal-guardrails-for-branch-decisions",{"en":452},{"title":9,"description":455,"ogDescription":456,"twitterDescription":457,"canonicalPath":452,"robots":458,"schemaType":459,"alternates":460},"Guide teams to trust the right branch signals, spot dirty data early, and choose when automation is safe—using a menu based decision coach.","A practical decision coach for branch teams: pressure test metrics, detect dirty signal, avoid attribution traps, and know when humans must override automation.","Stop confident wrong decisions. Use a guided menu to validate branch numbers, detect dirty signals, and set boundaries for automation vs. judgment.","index,follow","HowTo",[461],{"hreflang":6,"href":452},1785947669235]