[{"data":1,"prerenderedAt":483},["ShallowReactive",2],{"navigation":3,"page-\u002Fdesigning-dashboards\u002Fdate-toggles-and-faceting":250,"\u002Fdesigning-dashboards\u002Fdate-toggles-and-faceting-surround":477,"comments-\u002Fdesigning-dashboards\u002Fdate-toggles-and-faceting":482},[4],{"title":5,"path":6,"stem":7,"children":8,"page":249},"En","\u002Fen","en",[9,53,87,129,163,200,242],{"title":10,"path":11,"stem":12,"children":13,"icon":52},"CRM Analytics Foundations","\u002Fen\u002Ffoundations","en\u002F1.foundations\u002F1.index",[14,16,20,24,28,32,36,40,44,48],{"title":15,"path":11,"stem":12},"Welcome & Dev Org",{"title":17,"path":18,"stem":19},"Graded Quiz","\u002Fen\u002Ffoundations\u002Fquiz","en\u002F1.foundations\u002F10.quiz",{"title":21,"path":22,"stem":23},"What Is CRM Analytics?","\u002Fen\u002Ffoundations\u002Fwhat-is-crm-analytics","en\u002F1.foundations\u002F2.what-is-crm-analytics",{"title":25,"path":26,"stem":27},"Architecture","\u002Fen\u002Ffoundations\u002Farchitecture-and-data-flow","en\u002F1.foundations\u002F3.architecture-and-data-flow",{"title":29,"path":30,"stem":31},"The Data Layer","\u002Fen\u002Ffoundations\u002Fthe-data-layer","en\u002F1.foundations\u002F4.the-data-layer",{"title":33,"path":34,"stem":35},"The Design Layer","\u002Fen\u002Ffoundations\u002Fthe-design-layer","en\u002F1.foundations\u002F5.the-design-layer",{"title":37,"path":38,"stem":39},"The Intelligence Layer","\u002Fen\u002Ffoundations\u002Fthe-intelligence-layer","en\u002F1.foundations\u002F6.the-intelligence-layer",{"title":41,"path":42,"stem":43},"Hands-On Tour","\u002Fen\u002Ffoundations\u002Fhands-on-tour","en\u002F1.foundations\u002F7.hands-on-tour",{"title":45,"path":46,"stem":47},"Six Adoption Steps","\u002Fen\u002Ffoundations\u002Fsix-steps-and-interview-prep","en\u002F1.foundations\u002F8.six-steps-and-interview-prep",{"title":49,"path":50,"stem":51},"Interview Questions","\u002Fen\u002Ffoundations\u002Finterview-questions","en\u002F1.foundations\u002F9.interview-questions","i-lucide-compass",{"title":54,"path":55,"stem":56,"children":57,"icon":86},"Setup & User Provisioning","\u002Fen\u002Fsetup","en\u002F2.setup\u002F1.index",[58,60,64,68,72,76,80,83],{"title":59,"path":55,"stem":56},"Provisioning Users",{"title":61,"path":62,"stem":63},"Licenses & Permissions","\u002Fen\u002Fsetup\u002Flicenses-and-permission-sets","en\u002F2.setup\u002F2.licenses-and-permission-sets",{"title":65,"path":66,"stem":67},"Integration User","\u002Fen\u002Fsetup\u002Fthe-integration-user","en\u002F2.setup\u002F3.the-integration-user",{"title":69,"path":70,"stem":71},"Security User","\u002Fen\u002Fsetup\u002Fthe-security-user","en\u002F2.setup\u002F4.the-security-user",{"title":73,"path":74,"stem":75},"Analytics Settings","\u002Fen\u002Fsetup\u002Fanalytics-settings","en\u002F2.setup\u002F5.analytics-settings",{"title":77,"path":78,"stem":79},"Hands-On Access","\u002Fen\u002Fsetup\u002Fhands-on-assigning-access","en\u002F2.setup\u002F6.hands-on-assigning-access",{"title":17,"path":81,"stem":82},"\u002Fen\u002Fsetup\u002Fquiz","en\u002F2.setup\u002F7.quiz",{"title":49,"path":84,"stem":85},"\u002Fen\u002Fsetup\u002Finterview-questions","en\u002F2.setup\u002F8.interview-questions","i-lucide-settings-2",{"title":88,"path":89,"stem":90,"children":91,"icon":128},"Creating Datasets","\u002Fen\u002Fcreating-datasets","en\u002F3.creating-datasets\u002F1.index",[92,94,97,101,105,109,113,117,121,125],{"title":93,"path":89,"stem":90},"What Is a Dataset?",{"title":17,"path":95,"stem":96},"\u002Fen\u002Fcreating-datasets\u002Fquiz","en\u002F3.creating-datasets\u002F10.quiz",{"title":98,"path":99,"stem":100},"The Data Landscape","\u002Fen\u002Fcreating-datasets\u002Fthe-data-landscape","en\u002F3.creating-datasets\u002F2.the-data-landscape",{"title":102,"path":103,"stem":104},"Upload a CSV","\u002Fen\u002Fcreating-datasets\u002Fload-data-from-csv","en\u002F3.creating-datasets\u002F3.load-data-from-csv",{"title":106,"path":107,"stem":108},"Grain, Lookups & Joins","\u002Fen\u002Fcreating-datasets\u002Fgrain-lookups-and-joins","en\u002F3.creating-datasets\u002F4.grain-lookups-and-joins",{"title":110,"path":111,"stem":112},"Dataset Builder","\u002Fen\u002Fcreating-datasets\u002Fbuild-with-dataset-builder","en\u002F3.creating-datasets\u002F5.build-with-dataset-builder",{"title":114,"path":115,"stem":116},"Run the Dataflow","\u002Fen\u002Fcreating-datasets\u002Frun-and-troubleshoot-the-dataflow","en\u002F3.creating-datasets\u002F6.run-and-troubleshoot-the-dataflow",{"title":118,"path":119,"stem":120},"Build with a Recipe","\u002Fen\u002Fcreating-datasets\u002Fbuild-the-same-dataset-with-a-recipe","en\u002F3.creating-datasets\u002F7.build-the-same-dataset-with-a-recipe",{"title":122,"path":123,"stem":124},"Combine Datasets","\u002Fen\u002Fcreating-datasets\u002Fcombine-datasets","en\u002F3.creating-datasets\u002F8.combine-datasets",{"title":49,"path":126,"stem":127},"\u002Fen\u002Fcreating-datasets\u002Finterview-questions","en\u002F3.creating-datasets\u002F9.interview-questions","i-lucide-database",{"title":130,"path":131,"stem":132,"children":133,"icon":162},"Lenses & Explorations","\u002Fen\u002Flenses-and-explorations","en\u002F4.lenses-and-explorations\u002F1.index",[134,136,140,144,148,152,156,159],{"title":135,"path":131,"stem":132},"What Is a Lens?",{"title":137,"path":138,"stem":139},"Analytics Tab & Apps","\u002Fen\u002Flenses-and-explorations\u002Fthe-analytics-tab-and-apps","en\u002F4.lenses-and-explorations\u002F2.the-analytics-tab-and-apps",{"title":141,"path":142,"stem":143},"Explorer Mode Basics","\u002Fen\u002Flenses-and-explorations\u002Fexplorer-mode-basics","en\u002F4.lenses-and-explorations\u002F3.explorer-mode-basics",{"title":145,"path":146,"stem":147},"Chart, Table & SAQL","\u002Fen\u002Flenses-and-explorations\u002Fchart-table-and-saql-modes","en\u002F4.lenses-and-explorations\u002F4.chart-table-and-saql-modes",{"title":149,"path":150,"stem":151},"Editing Fields","\u002Fen\u002Flenses-and-explorations\u002Fediting-fields-and-metadata","en\u002F4.lenses-and-explorations\u002F5.editing-fields-and-metadata",{"title":153,"path":154,"stem":155},"Conversational Analytics","\u002Fen\u002Flenses-and-explorations\u002Fconversational-analytics","en\u002F4.lenses-and-explorations\u002F6.conversational-analytics",{"title":17,"path":157,"stem":158},"\u002Fen\u002Flenses-and-explorations\u002Fquiz","en\u002F4.lenses-and-explorations\u002F7.quiz",{"title":49,"path":160,"stem":161},"\u002Fen\u002Flenses-and-explorations\u002Finterview-questions","en\u002F4.lenses-and-explorations\u002F8.interview-questions","i-lucide-search",{"title":164,"path":165,"stem":166,"children":167,"icon":199},"Designing Dashboards","\u002Fen\u002Fdesigning-dashboards","en\u002F5.designing-dashboards\u002F1.index",[168,169,173,177,181,185,189,193,196],{"title":164,"path":165,"stem":166},{"title":170,"path":171,"stem":172},"Conditional Formatting","\u002Fen\u002Fdesigning-dashboards\u002Fconditional-formatting","en\u002F5.designing-dashboards\u002F2.conditional-formatting",{"title":174,"path":175,"stem":176},"Date Toggles & Faceting","\u002Fen\u002Fdesigning-dashboards\u002Fdate-toggles-and-faceting","en\u002F5.designing-dashboards\u002F3.date-toggles-and-faceting",{"title":178,"path":179,"stem":180},"Tables, Images & Themes","\u002Fen\u002Fdesigning-dashboards\u002Ftables-images-and-themes","en\u002F5.designing-dashboards\u002F4.tables-images-and-themes",{"title":182,"path":183,"stem":184},"Tooltips & Chart Markers","\u002Fen\u002Fdesigning-dashboards\u002Ftooltips-and-chart-markers","en\u002F5.designing-dashboards\u002F5.tooltips-and-chart-markers",{"title":186,"path":187,"stem":188},"KPI Micro Charts","\u002Fen\u002Fdesigning-dashboards\u002Fkpi-micro-charts","en\u002F5.designing-dashboards\u002F6.kpi-micro-charts",{"title":190,"path":191,"stem":192},"Linking Dashboards","\u002Fen\u002Fdesigning-dashboards\u002Flinking-dashboards","en\u002F5.designing-dashboards\u002F7.linking-dashboards",{"title":17,"path":194,"stem":195},"\u002Fen\u002Fdesigning-dashboards\u002Fquiz","en\u002F5.designing-dashboards\u002F8.quiz",{"title":49,"path":197,"stem":198},"\u002Fen\u002Fdesigning-dashboards\u002Finterview-questions","en\u002F5.designing-dashboards\u002F9.interview-questions","i-lucide-layout-dashboard",{"title":201,"path":202,"stem":203,"children":204,"icon":241},"Collaboration","\u002Fen\u002Fcollaboration","en\u002F6.collaboration\u002F1.index",[205,207,210,214,218,222,226,230,234,238],{"title":206,"path":202,"stem":203},"Why Collaboration Matters",{"title":49,"path":208,"stem":209},"\u002Fen\u002Fcollaboration\u002Finterview-questions","en\u002F6.collaboration\u002F10.interview-questions",{"title":211,"path":212,"stem":213},"Sharing a Dashboard","\u002Fen\u002Fcollaboration\u002Fsharing-a-dashboard","en\u002F6.collaboration\u002F2.sharing-a-dashboard",{"title":215,"path":216,"stem":217},"Notifications & Annotations","\u002Fen\u002Fcollaboration\u002Fnotifications-and-annotations","en\u002F6.collaboration\u002F3.notifications-and-annotations",{"title":219,"path":220,"stem":221},"Downloading Data","\u002Fen\u002Fcollaboration\u002Fdownloading-data","en\u002F6.collaboration\u002F4.downloading-data",{"title":223,"path":224,"stem":225},"Self-Service Explore","\u002Fen\u002Fcollaboration\u002Fself-service-exploration","en\u002F6.collaboration\u002F5.self-service-exploration",{"title":227,"path":228,"stem":229},"Views","\u002Fen\u002Fcollaboration\u002Fviews","en\u002F6.collaboration\u002F6.views",{"title":231,"path":232,"stem":233},"Subscriptions & Watchlists","\u002Fen\u002Fcollaboration\u002Fsubscriptions-and-watchlists","en\u002F6.collaboration\u002F7.subscriptions-and-watchlists",{"title":235,"path":236,"stem":237},"Onboarding & Learn","\u002Fen\u002Fcollaboration\u002Fonboarding-and-learn","en\u002F6.collaboration\u002F8.onboarding-and-learn",{"title":17,"path":239,"stem":240},"\u002Fen\u002Fcollaboration\u002Fquiz","en\u002F6.collaboration\u002F9.quiz","i-lucide-users",{"title":243,"path":244,"stem":245,"children":246,"icon":248},"This is Section","\u002Fen\u002Fthis-is-section","en\u002F7.this-is-section\u002F1.index",[247],{"title":243,"path":244,"stem":245},"i-lucide-book-open",false,{"id":251,"title":252,"access":253,"body":254,"description":467,"extension":468,"interview":253,"links":253,"meta":469,"navigation":470,"passScore":253,"path":175,"quiz":253,"seo":471,"stem":176,"video":472,"__hash__":476},"docs\u002Fen\u002F5.designing-dashboards\u002F3.date-toggles-and-faceting.md","Date Toggles and Controlling Faceting",null,{"type":255,"value":256,"toc":456},"minimark",[257,261,275,282,287,298,301,305,309,316,327,338,342,345,352,356,367,374,393,397,404,411,422,428,433,436,440,447,450],[258,259,252],"h1",{"id":260},"date-toggles-and-controlling-faceting",[262,263,264,265,269,270,274],"p",{},"A date filter in the standard filter panel works, but it makes the user do work: open the panel, find the field, pick a range, apply. A ",[266,267,268],"strong",{},"toggle"," row across the top of the dashboard does the same job in one click — ",[271,272,273],"em",{},"2024 | 2025 | 2026"," sitting there, obvious, always visible.",[262,276,277,278,281],{},"This lesson builds that row, and along the way covers the single most misunderstood setting in dashboard design: ",[266,279,280],{},"apply filters from faceting",".",[283,284,286],"h2",{"id":285},"every-filter-widget-needs-a-step","Every filter widget needs a step",[262,288,289,290,293,294,297],{},"Here's the rule that trips up nearly everyone the first time: a toggle, a list, or a date widget ",[266,291,292],{},"doesn't invent its own values",". It reads them from a ",[266,295,296],{},"step"," — a saved query. If no step returns the field you want to filter on, the widget has nothing to display.",[262,299,300],{},"So the order of operations is always the same: build the step first, then drag the widget and bind it.",[302,303],"lesson-steps",{":items":304},"[{\"title\":\"Create a new step\",\"description\":\"In the dashboard editor, create a step against your dataset. This is the query that will feed the toggle.\"},{\"title\":\"Group by your date bucket\",\"description\":\"Group by the field that holds the values you want as buttons — a fiscal year or quarter bucket field, not the raw timestamp.\"},{\"title\":\"Filter the step\",\"description\":\"Restrict the step so it only returns the values you actually want shown. Nobody needs a toggle button for 1997.\"},{\"title\":\"Drag on a toggle widget\",\"description\":\"From the widget tray, drop a Toggle onto the canvas where you want the filter row.\"},{\"title\":\"Bind the step to the widget\",\"description\":\"Select the toggle, then choose your new step as its source. The buttons appear immediately.\"}]",[283,306,308],{"id":307},"group-by-a-date-bucket-not-a-raw-date","Group by a date bucket, not a raw date",[262,310,311,312,315],{},"You can't toggle on a raw date field — it has thousands of distinct values, and you'd get thousands of buttons. What you want is a ",[266,313,314],{},"date part",": the year, the quarter, the month name.",[262,317,318,319,322,323,326],{},"CRM Analytics date fields automatically expose their component parts, and in a well-built dataset you'll often also have a custom bucket field (something like ",[271,320,321],{},"Fiscal Period"," or ",[271,324,325],{},"Close Year",") created in the recipe precisely for this purpose. Group the step by that field and you get a handful of clean values — exactly one button each.",[328,329,331],"tip",{"icon":330},"i-lucide-lightbulb",[262,332,333,334,337],{},"If you find yourself fighting the date parts in the dashboard, the fix usually belongs ",[266,335,336],{},"upstream in the recipe",". A dedicated bucket field with the exact labels you want (\"FY25 Q1\") is cheaper to maintain than a pile of dashboard-level workarounds, and every dashboard on the dataset gets it for free.",[283,339,341],{"id":340},"filter-the-step-so-only-relevant-values-show","Filter the step so only relevant values show",[262,343,344],{},"Your dataset probably contains dates going back further than anyone cares about, plus a few stragglers from bad data entry. Left alone, your toggle row renders every one of them and wraps onto three lines.",[262,346,347,348,351],{},"Add a ",[266,349,350],{},"filter on the step itself"," — restrict to the last three years, or to a specific list of periods. The toggle only ever shows what the step returns, so filtering the step is how you curate the buttons. This is a query-level decision, not a display one, which is why it belongs on the step.",[283,353,355],{"id":354},"cloning-a-step-to-make-the-second-one","Cloning a step to make the second one",[262,357,358,359,362,363,366],{},"Once you've got your ",[266,360,361],{},"year"," toggle working, you almost always want a ",[266,364,365],{},"quarter"," toggle beside it. Building it from scratch means repeating every setting.",[262,368,369,370,373],{},"Instead, ",[266,371,372],{},"clone the step",". Find it in the step list, choose clone, and you get an exact copy including the filters and grouping — then change just the grouping field to quarter, rename it something meaningful, and bind it to a second toggle widget. Thirty seconds instead of five minutes, and the two steps stay structurally identical, which makes them easier to maintain later.",[328,375,377],{"icon":376},"i-lucide-info",[262,378,379,380,384,385,388,389,392],{},"Rename cloned steps immediately. A dashboard with ",[381,382,383],"code",{},"Step_1",", ",[381,386,387],{},"Step_1_copy",", and ",[381,390,391],{},"Step_1_copy_copy"," is a maintenance nightmare six months on — and you will be the one maintaining it.",[283,394,396],{"id":395},"the-faceting-gotcha","The faceting gotcha",[262,398,399,400,403],{},"Now the important part. Drop your two toggles on, click ",[266,401,402],{},"2025"," on the year toggle, and watch the quarter toggle lose most of its options. Click a quarter and the year toggle may collapse to a single value. It feels broken.",[262,405,406,407,410],{},"It isn't. It's ",[266,408,409],{},"faceting"," doing exactly what faceting does.",[262,412,413,414,417,418,421],{},"Faceting means widgets on a dashboard automatically filter each other. Select a value in one, and every other step re-queries with that selection applied. For charts this is wonderful — that's the whole interactive-dashboard experience. For ",[271,415,416],{},"filter widgets"," it's often wrong, because a filter widget should show you ",[266,419,420],{},"all the choices available",", not just the ones that survive your current selection.",[262,423,424,425,427],{},"The fix is a checkbox on the widget: ",[266,426,280],{},". Uncheck it, and that widget's step stops listening to selections made elsewhere. Its buttons stay put no matter what the user clicks.",[429,430],"lesson-cards",{":columns":431,":items":432},"2","[{\"title\":\"Leave faceting ON\",\"icon\":\"i-lucide-link\",\"description\":\"For charts and tables. You want them to respond to every selection — that's the interactivity your users came for.\"},{\"title\":\"Turn faceting OFF\",\"icon\":\"i-lucide-unlink\",\"description\":\"For filter widgets like toggles and lists. The full set of choices should stay visible so users can always change their mind.\"}]",[262,434,435],{},"Do this for both toggles. Now the year row and the quarter row hold their shape, the user combines them freely, and the charts below respond to both. That's the behaviour people expect from a filter bar.",[283,437,439],{"id":438},"tidying-the-spacing","Tidying the spacing",[262,441,442,443,446],{},"Two toggle widgets side by side usually leave an awkward gap, because the dashboard grid puts space between cells by default. In the dashboard's layout properties you'll find ",[266,444,445],{},"cell spacing"," — drop it toward zero and the widgets sit flush against each other, reading as one continuous control strip rather than two separate boxes.",[262,448,449],{},"It's a small setting with a disproportionate effect on how \"finished\" a dashboard looks. Worth checking on every dashboard you build, alongside the surrounding page margins.",[262,451,452,453,281],{},"With filtering under control, the next thing to sharpen is how raw records get displayed. Next up: ",[266,454,455],{},"tables, images, and widget themes",{"title":457,"searchDepth":458,"depth":459,"links":460},"",1,2,[461,462,463,464,465,466],{"id":285,"depth":459,"text":286},{"id":307,"depth":459,"text":308},{"id":340,"depth":459,"text":341},{"id":354,"depth":459,"text":355},{"id":395,"depth":459,"text":396},{"id":438,"depth":459,"text":439},"Build clean toggle filters for year and quarter in CRM Analytics — create the step first, group by a date bucket, filter the step's values, bind a toggle widget, clone the step, and switch off apply filters from faceting so options stop disappearing.","md",{},{"title":174},{"title":252,"description":467},{"id":473,"start":474,"end":475},"947dd51bXE4",105,375,"P1zsRpkqH7hxNVl_mgqWt0icm91pO1Wm5YAvwtKnbf8",[478,480],{"title":170,"path":171,"stem":172,"description":479,"children":-1},"Colour a CRM Analytics measure by threshold. Define bins, set the cut-off values, assign red\u002Fyellow\u002Fgreen, rename the labels to Low\u002FMedium\u002FHigh, and choose between discrete bins and a continuous gradient.",{"title":178,"path":179,"stem":180,"description":481,"children":-1},"Get the most out of the CRM Analytics values table — default columns from the dataset Fields panel, adding fields, fit data to widget, dark widget themes, and the show data as image property for rendering URL fields as pictures.",[],1786788923098]