[{"data":1,"prerenderedAt":278},["ShallowReactive",2],{"navigation":3,"page-\u002Fen\u002Fcreating-datasets\u002Fcombine-datasets":130,"\u002Fen\u002Fcreating-datasets\u002Fcombine-datasets-surround":272,"comments-\u002Fen\u002Fcreating-datasets\u002Fcombine-datasets":277},[4],{"title":5,"path":6,"stem":7,"children":8,"page":129},"En","\u002Fen","en",[9,53,87],{"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",false,{"id":131,"title":132,"access":133,"body":134,"description":262,"extension":263,"interview":133,"links":133,"meta":264,"navigation":265,"passScore":133,"path":123,"quiz":133,"seo":266,"stem":124,"video":267,"__hash__":271},"docs\u002Fen\u002F3.creating-datasets\u002F8.combine-datasets.md","Combine Datasets into a Final Dataset",null,{"type":135,"value":136,"toc":254},"minimark",[137,141,150,161,166,170,181,185,192,218,221,226,236,240,243,247],[138,139,132],"h1",{"id":140},"combine-datasets-into-a-final-dataset",[142,143,144,145,149],"p",{},"You've now built the same opportunities dataset two ways, and you uploaded an external CSV earlier. Time for the move you'll make constantly on real projects: ",[146,147,148],"strong",{},"blend two datasets into one"," — Salesforce data enriched with external data — and output a final, dashboard-ready dataset.",[142,151,152,153,156,157,160],{},"This is where the \"baseline vs final dataset\" distinction pays off. Your opportunities dataset and your CSV are ",[146,154,155],{},"baseline"," building blocks. Now we combine them into a ",[146,158,159],{},"final"," dataset a dashboard actually reads.",[162,163,165],"h2",{"id":164},"set-up-the-recipe","Set up the recipe",[167,168],"lesson-steps",{":items":169},"[{\"title\":\"New recipe → Select Data\",\"description\":\"From Data Flows & Recipes → Recipes, start a new recipe. Instead of sync objects, this time select two datasets: your opportunities dataset and the external CSV amounts dataset.\"},{\"title\":\"Keep the Salesforce dataset as the base\",\"description\":\"The opportunities dataset holds the lower grain — one row per opportunity. That's your anchor, exactly like Opportunity was in the last lesson.\"},{\"title\":\"Join the external CSV onto it\",\"description\":\"Drag the external amounts dataset onto the opportunities node and join. Choose the match — a lookup (or a left join) so every opportunity keeps its row and picks up its external amount.\"}]",[171,172,174],"tip",{"icon":173},"i-lucide-recycle",[142,175,176,177,180],{},"You don't always need a brand-new recipe. If you already have a recipe producing the opportunities dataset, you can often add another node onto it instead of maintaining a separate recipe. As you scale, actively look for ways to ",[146,178,179],{},"reduce the number of recipes"," you keep alive — fewer moving parts, fewer things to schedule and debug.",[162,182,184],{"id":183},"output-the-final-dataset","Output the final dataset",[142,186,187,188,191],{},"Same rule as before: the joins do nothing until you ",[146,189,190],{},"add an output node",".",[193,194,195,208],"ul",{},[196,197,198,199,202,203,207],"li",{},"Click the plus after the join and add an ",[146,200,201],{},"Output"," node — this is the finished dataset (e.g. ",[204,205,206],"em",{},"Opportunities with External Amount",").",[196,209,210,213,214,217],{},[146,211,212],{},"Apply",", then ",[146,215,216],{},"Save and Run",". The recipe executes and materializes the combined dataset.",[142,219,220],{},"That's it. You've joined internal Salesforce data with external CSV data into one enriched dataset. From here you could layer on transformations — computed columns, aggregations, filters — but even this simple blend is enough to power a dashboard or a story.",[222,223],"lesson-cards",{":columns":224,":items":225},"2","[{\"title\":\"Baseline datasets\",\"icon\":\"i-lucide-boxes\",\"description\":\"The raw building blocks — your synced Salesforce objects joined into an opportunities dataset, and the uploaded CSV. Refreshed by sync + recipe.\"},{\"title\":\"Final dataset\",\"icon\":\"i-lucide-package-check\",\"description\":\"The combined, enriched result your dashboards and stories read from. Rebuilt by the recipe whenever its sources refresh.\"}]",[171,227,229],{"icon":228},"i-lucide-clock",[142,230,231,232,235],{},"Keep the ",[146,233,234],{},"order of operations"," in mind for scheduling: sync refreshes the base objects → the baseline recipe\u002Fdataflow rebuilds the opportunities dataset → this combining recipe rebuilds the final dataset. Schedule them in that sequence, or your \"final\" dataset will quietly serve yesterday's data.",[162,237,239],{"id":238},"what-you-can-do-now","What you can do now",[142,241,242],{},"You can create datasets three ways — CSV, Dataset Builder, and recipes — and combine them into finished, analytics-ready datasets. That's the foundation everything else in CRM Analytics stands on.",[244,245],"lesson-links",{":items":246},"[{\"label\":\"Next: rehearse the interview questions\",\"to\":\"\u002Fcreating-datasets\u002Finterview-questions\",\"icon\":\"i-lucide-messages-square\",\"description\":\"Lock in the concepts with common dataset-creation interview questions before the graded exam.\"}]",[142,248,249,250,253],{},"To go deeper, the ",[146,251,252],{},"data-prep"," material covers transformations, aggregations, and the recipe internals in detail — but you've got the core skill. Next, rehearse it, then prove it on the graded quiz.",{"title":255,"searchDepth":256,"depth":257,"links":258},"",1,2,[259,260,261],{"id":164,"depth":257,"text":165},{"id":183,"depth":257,"text":184},{"id":238,"depth":257,"text":239},"Use a recipe to join your Salesforce opportunities dataset with the external CSV amounts into one final, enriched dataset — the everyday move that blends internal and external data for dashboards and stories.","md",{},{"title":122},{"title":132,"description":262},{"id":268,"start":269,"end":270},"-0mp2mUjyVI",2292,2598,"_63SLDbumtGKZBgAL4JjcWWA95P1DG4B6DfzSf7oBDY",[273,275],{"title":118,"path":119,"stem":120,"description":274,"children":-1},"Recreate the opportunities dataset with a CRM Analytics recipe: select objects, join Account and User with the right keys, prefix and trim columns, and add an output node — the modern, flexible way to build datasets.",{"title":49,"path":126,"stem":127,"description":276,"children":-1},"Rehearse common CRM Analytics dataset interview questions — what a dataset is, grain, lookups vs joins, Dataset Builder vs recipes, the sync layer, and combining datasets.",[],1783475164317]