[{"data":1,"prerenderedAt":245},["ShallowReactive",2],{"/en/workflows/trustworthy-branch-signals-playbook":3},{"id":4,"slug":5,"locale":6,"translationGroupId":7,"localeSwitchApproved":8,"title":9,"description":10,"documentationMarkdown":11,"workflowJson":12,"category":228,"tags":229,"integrations":231,"difficulty":233,"author":232,"verified":34,"featured":34,"date":234,"modified":234,"icon":7,"imageSrc":7,"path":235,"alternates":236,"seo":237},"6d5853bd-8e5d-4ee7-b4f1-0257ff385aa1","trustworthy-branch-signals-playbook","en",null,true,"Trustworthy Branch Signals Playbook","A decision-first coaching flow that helps teams tell reliable branch signals from polished noise, spot dirty data early, and route edge cases to a human when judgment beats automation.","## How it works\nThis workflow turns “we have numbers” into “we have decision-grade evidence.” It starts by letting Calypso answer common signal-design questions from your knowledge base, then offers a practical menu of decision-shaped checklists—built for the moment right before a confident meeting goes off the rails.\n\nOperators use it to quickly coach branch leaders and analysts on what to trust, what to challenge, and what usually fails first (definitions, incentives, sampling, and attribution). When the situation needs context or an exception, the flow routes the conversation to a human team.\n\n## Key features\n- Knowledge-base-first responses for fast answers on signal design and decision systems\n- A button-driven menu focused on concrete decision moments (trust, dirty signals, automation vs judgment, comparisons)\n- “Reality check” guidance that favors operational instincts over academic framing\n- Loop-back navigation so users can run multiple checks in one conversation\n- Optional human handoff to an Insights Support queue for nuanced cases\n\n## Step-by-step\n1. **Trigger:** The workflow starts when an inbound message enters this flow.\n2. **Knowledge base assist:** Calypso attempts to answer using your knowledge base (and continues to routing if needed).\n3. **Show the decision menu:** The user chooses what they’re trying to decide (e.g., whether branch numbers are trustworthy).\n4. **Route by selection:** The workflow evaluates the clicked button and sends the matching guidance:\n   1. **Which branch numbers deserve trust?** A quick trust checklist (definitions, timing, incentives, coverage).\n   2. **How to spot dirty signal early:** Red flags that look “clean” until they burn you in a meeting.\n   3. **Automation vs human judgment:** When to trust rules and when to slow down for context.\n   4. **Messy evidence → usable insight:** How to simplify without sanding off the truth.\n   5. **Comparing branches & attribution:** Common misreads and how to avoid false comparisons.\n   6. **Build a signal culture:** Habits that produce decisions, not just slides.\n   7. **Talk to a human:** Hands off to **Insights Support**.\n5. **Explore more:** After each guidance message (except handoff), the workflow returns to the menu so the user can run another check.\n\n## Setup requirements\n- **Calypso Knowledge Base:** Enable and maintain articles on branch metrics definitions, attribution caveats, and data-quality red flags.\n- **Calypso Routing:** Create/confirm a routing destination named **Insights Support** (used by the handoff step).\n- **Credentials:** No external credentials are required for this workflow.",{"id":13,"teamId":14,"name":9,"version":15,"workflowVersion":16,"nodes":17,"connections":189,"routingEnabled":8,"active":34},"wf_trustworthy_branch_signals_playbook","calypso-public-library","1.0.0",1,[18,35,41,53,86,95,104,110,117,123,130,135,142,148,154,160,166,172,183],{"id":19,"name":20,"type":21,"typeVersion":16,"position":22,"parameters":24,"category":33,"deletable":34,"connectable":34},"cfg_meta","Workflow settings","flow-configs",[23,23],0,{"name":9,"description":25,"tags":26,"triggerType":32},"Knowledge-base-first coaching + routing menu to help teams trust the right branch signals, spot dirty data, and know when human judgment beats automation.",[27,28,29,30,31],"signal-quality","branch-metrics","decision-making","data-hygiene","automation-governance","input","policy",false,{"id":36,"name":37,"type":32,"typeVersion":16,"position":38,"parameters":40,"category":32,"deletable":34,"connectable":8},"input_inbound","Inbound message",[23,39],160,{},{"id":42,"name":43,"type":44,"typeVersion":16,"position":45,"parameters":47,"category":52,"deletable":8,"connectable":8},"kb_policy","Knowledge base assist","knowledge-base-policy",[46,39],220,{"enabled":8,"fallbackToRouting":8,"sticky":34,"stickyMode":48,"activationOpener":49,"personalization":51},"default",{"enabled":34,"instruction":50},"",{"useContactName":8},"response",{"id":54,"name":55,"type":56,"typeVersion":16,"position":57,"parameters":59,"category":52,"deletable":8,"connectable":8},"menu_topics","Pick a decision check","interactive-message",[58,39],460,{"messageType":60,"headerText":61,"bodyText":62,"footerText":63,"sectionTitle":50,"buttons":64,"ctaDisplayText":50,"ctaUrl":50},"button","Signal coach: choose","Bad data is rarely loud. It usually shows up well-formatted, on time, and totally wrong.\n\nPick a quick check and we’ll pressure-test the signal before it becomes a confident mistake.","High stakes? Run more than one check.",[65,68,71,74,77,80,83],{"id":66,"title":67},"trust_numbers","Trust numbers",{"id":69,"title":70},"dirty_signal","Dirty signal",{"id":72,"title":73},"automation_vs_humans","Auto vs judgment",{"id":75,"title":76},"messy_to_insight","Messy → insight",{"id":78,"title":79},"comparison_misreads","Branch compare",{"id":81,"title":82},"signal_culture","Signal culture",{"id":84,"title":85},"handoff","Talk to support",{"id":87,"name":88,"type":89,"typeVersion":16,"position":90,"parameters":92,"category":94,"deletable":8,"connectable":8},"if_trust_numbers","If: trust numbers","if",[91,39],700,{"buttonId":66,"operator":93},"equals","routing",{"id":96,"name":97,"type":98,"typeVersion":16,"position":99,"parameters":102,"category":52,"deletable":8,"connectable":8},"txt_trust_numbers","Trust checklist","text-message",[100,101],940,80,{"text":103},"Use this before you trust a branch number:\n\n1) **Definition lock:** Is “a sale/lead/visit” defined the same way in every branch? (If the definition lives in someone’s head, it’s not a metric—it’s a vibe.)\n2) **Coverage:** What % of real activity is actually captured? Missingness that’s *consistent* can be modeled; missingness that varies by branch creates fake winners.\n3) **Timing:** Are you comparing the same window? End-of-month and promo periods create “performance” that’s really calendar.\n4) **Incentives:** If branches are rewarded on the metric, assume it will be gamed—usually in ways that still look legitimate.\n5) **Stability:** Does it swing wildly with small volume? If yes, treat it like a weather report, not a verdict.\n\nIf you can’t answer 1–3 quickly, the number is not decision-grade yet.",{"id":105,"name":106,"type":89,"typeVersion":16,"position":107,"parameters":109,"category":94,"deletable":8,"connectable":8},"if_dirty_signal","If: dirty signal",[91,108],260,{"buttonId":69,"operator":93},{"id":111,"name":112,"type":98,"typeVersion":16,"position":113,"parameters":115,"category":52,"deletable":8,"connectable":8},"txt_dirty_signal","Dirty signal red flags",[100,114],200,{"text":116},"Dirty signal usually looks *clean*—until the meeting. Watch for:\n\n- **Too-smooth charts:** A metric that suddenly gets “less noisy” often means the logging changed, not reality.\n- **Step-changes on a date:** If the jump aligns with a rollout, policy change, or incentive change, treat it as measurement drift first.\n- **One-branch miracles:** A single branch improves dramatically while inputs (traffic, staffing, inventory) don’t move.\n- **Zeros and spikes:** Clusters of 0s, repeated round numbers, or bursts at shift-end are classic “batching” or backfilling.\n- **Attribution déjà vu:** Multiple systems all claiming credit for the same outcome.\n\nPractical move: ask “What would we expect to move *with* this metric if it’s real?” If nothing corroborates it, don’t bet on it.",{"id":118,"name":119,"type":89,"typeVersion":16,"position":120,"parameters":122,"category":94,"deletable":8,"connectable":8},"if_automation","If: automation vs humans",[91,121],360,{"buttonId":72,"operator":93},{"id":124,"name":125,"type":98,"typeVersion":16,"position":126,"parameters":128,"category":52,"deletable":8,"connectable":8},"txt_automation","When to automate vs pause",[100,127],320,{"text":129},"Trust automation when:\n- The **definition is stable** and audited.\n- The decision is **reversible** (you can undo it cheaply).\n- Errors are **bounded** (worst-case is tolerable).\n- You have a **sanity check metric** that should move with it.\n\nRequire human judgment when:\n- The metric is **new, newly incentivized, or recently instrumented**.\n- The decision is **one-way** (closing, reallocating headcount, cutting service).\n- Context matters (weather, staffing shocks, local events).\n\nRule of thumb: automate the *boring 80%* with guardrails; keep humans for the weird 20%—that’s where most expensive mistakes hide.",{"id":131,"name":132,"type":89,"typeVersion":16,"position":133,"parameters":134,"category":94,"deletable":8,"connectable":8},"if_messy","If: messy to insight",[91,58],{"buttonId":75,"operator":93},{"id":136,"name":137,"type":98,"typeVersion":16,"position":138,"parameters":140,"category":52,"deletable":8,"connectable":8},"txt_messy","Messy evidence → usable insight",[100,139],440,{"text":141},"Don’t “clean” away the truth. Do this instead:\n\n1) **Separate errors from variation:** Keep raw reality (real spikes) and remove only mechanical noise (duplicates, impossible timestamps).\n2) **Tag uncertainty, don’t hide it:** Use labels like “estimated,” “partial coverage,” “policy-changed on date.”\n3) **Keep the outliers—explain them:** Outliers are often the whole story (fraud, process breaks, training gaps).\n4) **Summarize with intent:** Choose a summary that matches the decision (median for typical branch, weighted rate for network, tail metrics for risk).\n\nGood insight is compressing evidence without lying about it.",{"id":143,"name":144,"type":89,"typeVersion":16,"position":145,"parameters":147,"category":94,"deletable":8,"connectable":8},"if_compare","If: comparisons misreads",[91,146],560,{"buttonId":78,"operator":93},{"id":149,"name":150,"type":98,"typeVersion":16,"position":151,"parameters":152,"category":52,"deletable":8,"connectable":8},"txt_compare","Comparing branches & attribution pitfalls",[100,146],{"text":153},"What teams repeatedly misread when comparing branches:\n\n- **Different denominators:** Per-visit vs per-customer vs per-hour. Same “rate,” different meaning.\n- **Mix shift:** A branch that gets easier demand looks “better” unless you control for customer mix or product mix.\n- **Capacity constraints:** A capped branch can’t convert more even if demand rises—so conversion looks flat while true performance improved.\n- **Attribution double-counting:** If two channels claim the same sale, the scoreboard becomes a popularity contest.\n\nFix: compare branches on a **decision-aligned rate** + a **volume/context companion metric** (so you know whether the rate is real or capacity/mix).",{"id":155,"name":156,"type":89,"typeVersion":16,"position":157,"parameters":159,"category":94,"deletable":8,"connectable":8},"if_culture","If: signal culture",[91,158],660,{"buttonId":81,"operator":93},{"id":161,"name":162,"type":98,"typeVersion":16,"position":163,"parameters":164,"category":52,"deletable":8,"connectable":8},"txt_culture","Build a signal culture",[100,91],{"text":165},"A useful signal culture makes decisions happen—not decks.\n\nDo more of:\n- **One owner per metric definition** (with a change log).\n- **Pre-meeting “trust notes”**: coverage, known breaks, what changed since last week.\n- **Disagreement-friendly norms**: reward the person who finds the flaw *before* rollout.\n- **Guardrails over perfection**: “Good enough to decide, with explicit uncertainty.”\n\nDo less of:\n- “Single metric leaderboards” (they breed gaming).\n- Quiet definition changes (the #1 source of confident wrong conclusions).",{"id":167,"name":168,"type":89,"typeVersion":16,"position":169,"parameters":171,"category":94,"deletable":8,"connectable":8},"if_handoff","If: handoff",[91,170],760,{"buttonId":84,"operator":93},{"id":173,"name":174,"type":175,"typeVersion":16,"position":176,"parameters":178,"category":182,"deletable":8,"connectable":8},"handoff_insights","Handoff to Insights Support","fallback",[100,177],820,{"handoffMessage":179,"departmentId":180,"departmentName":181},"Got it—this sounds like a judgment call. I’m routing you to Insights Support so someone can look at the context with you.","dept_insights_support","Insights Support","terminal",{"id":184,"name":185,"type":98,"typeVersion":16,"position":186,"parameters":187,"category":52,"deletable":8,"connectable":8},"txt_retry","Retry",[100,170],{"text":188},"I didn’t catch a menu selection. Please tap one of the buttons so I can route you to the right check.",[190,194,196,198,201,204,206,208,210,212,214,216,218,220,222,224,226],{"id":191,"source":36,"target":42,"sourceHandle":192,"targetHandle":193,"type":48},"c_in_kb","out","in",{"id":195,"source":42,"target":54,"sourceHandle":192,"targetHandle":193,"type":48},"c_kb_menu",{"id":197,"source":54,"target":87,"sourceHandle":192,"targetHandle":193,"type":48},"c_menu_if1",{"id":199,"source":87,"target":96,"sourceHandle":200,"targetHandle":193,"type":48},"c_if1_true_txt","true",{"id":202,"source":87,"target":105,"sourceHandle":203,"targetHandle":193,"type":48},"c_if1_false_if2","false",{"id":205,"source":105,"target":111,"sourceHandle":200,"targetHandle":193,"type":48},"c_if2_true_txt",{"id":207,"source":105,"target":118,"sourceHandle":203,"targetHandle":193,"type":48},"c_if2_false_if3",{"id":209,"source":118,"target":124,"sourceHandle":200,"targetHandle":193,"type":48},"c_if3_true_txt",{"id":211,"source":118,"target":131,"sourceHandle":203,"targetHandle":193,"type":48},"c_if3_false_if4",{"id":213,"source":131,"target":136,"sourceHandle":200,"targetHandle":193,"type":48},"c_if4_true_txt",{"id":215,"source":131,"target":143,"sourceHandle":203,"targetHandle":193,"type":48},"c_if4_false_if5",{"id":217,"source":143,"target":149,"sourceHandle":200,"targetHandle":193,"type":48},"c_if5_true_txt",{"id":219,"source":143,"target":155,"sourceHandle":203,"targetHandle":193,"type":48},"c_if5_false_if6",{"id":221,"source":155,"target":161,"sourceHandle":200,"targetHandle":193,"type":48},"c_if6_true_txt",{"id":223,"source":155,"target":167,"sourceHandle":203,"targetHandle":193,"type":48},"c_if6_false_if7",{"id":225,"source":167,"target":173,"sourceHandle":200,"targetHandle":193,"type":48},"c_if7_true_handoff",{"id":227,"source":167,"target":184,"sourceHandle":203,"targetHandle":193,"type":48},"c_if7_false_retry","automation",[27,28,29,30,31,230],"attribution",[232],"Calypso","intermediate","2026-07-27T11:04:48.975Z","/en/workflows/trustworthy-branch-signals-playbook",{"en":235},{"title":9,"description":238,"ogDescription":239,"twitterDescription":240,"canonicalPath":235,"robots":241,"schemaType":242,"alternates":243},"Coach teams to trust the right branch signals, catch dirty data early, and route judgment calls to a human—without academic fluff.","A practical decision first flow: separate trustworthy branch numbers from polished noise, spot dirty signals early, and hand off edge cases to Insights Support.","Turn messy signals into decision grade insight: trust checks, dirty data red flags, automation vs judgment, and a clean human handoff for edge cases.","index,follow","HowTo",[244],{"hreflang":6,"href":235},1785947666244]