[{"data":1,"prerenderedAt":2214},["ShallowReactive",2],{"tutorial-bruin-cloud":3,"content-query-p9LCmdvEBR":42,"content-query-iBmccdMtEt":52,"content-query-Pf8qTD0iRK":53},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"category":11,"module":12,"isModuleIndex":13,"tier":14,"relatedTag":8,"relatedTagDescription":15,"prerequisites":16,"resources":19,"author":26,"body":30,"_type":36,"_id":37,"_source":38,"_file":39,"_stem":40,"_extension":41},"/tutorials/bruin-cloud","tutorials",false,"","Bruin Cloud","Short, focused tutorials for Bruin Cloud - pipelines, dashboards, MCP, and the Slack AI analyst.","2026-04-29","Module","bruin-cloud",true,"cloud","Each tutorial stands on its own - pick whatever you need.",[17,18],"A \u003Ca href=\"https://cloud.getbruin.com\">Bruin Cloud\u003C/a> account","A Git repo with a Bruin project synced to Bruin Cloud",[20,23],{"label":21,"url":22},"Bruin Cloud documentation","https://getbruin.com/docs/bruin/cloud/overview.html",{"label":24,"url":25},"Bruin Cloud sign in","https://cloud.getbruin.com",{"name":27,"role":28,"image":29},"Bruin Team","Bruin Data","/bruin-logo-2025.svg",{"type":31,"children":32,"toc":33},"root",[],{"title":7,"searchDepth":34,"depth":34,"links":35},2,[],"markdown","content:tutorials:bruin-cloud:index.md","content","tutorials/bruin-cloud/index.md","tutorials/bruin-cloud/index","md",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"category":11,"module":12,"isModuleIndex":13,"tier":14,"relatedTag":8,"relatedTagDescription":15,"prerequisites":43,"resources":44,"author":47,"body":48,"_type":36,"_id":37,"_source":38,"_file":39,"_stem":40,"_extension":41},[17,18],[45,46],{"label":21,"url":22},{"label":24,"url":25},{"name":27,"role":28,"image":29},{"type":31,"children":49,"toc":50},[],{"title":7,"searchDepth":34,"depth":34,"links":51},[],[],[54,299,702,720,968,1355,1813],{"_path":55,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":56,"description":57,"coverImage":58,"date":10,"readingTime":59,"category":60,"tags":61,"difficulty":62,"journeys":63,"videoUrl":66,"learnMore":67,"author":72,"body":73,"_type":36,"_id":296,"_source":38,"_file":297,"_stem":298,"_extension":41},"/tutorials/bruin-cloud-enable-pipelines","Enable a Pipeline","Enable a pipeline in Bruin Cloud, add any missing connections, and trigger the first run.","https://img.youtube.com/vi/L-Jxb8iZGT4/maxresdefault.jpg",4,"Tutorial",[8],"Beginner",[64,65],"Data Engineer","Data Analyst","https://youtu.be/L-Jxb8iZGT4",[68,71],{"label":69,"url":70},"Bruin Cloud connections","https://getbruin.com/docs/bruin/cloud/connections.html",{"label":21,"url":22},{"name":27,"role":28,"image":29},{"type":31,"children":74,"toc":283},[75,84,94,100,106,112,119,132,138,149,155,160,211,216,222,233,239,244,264,270],{"type":76,"tag":77,"props":78,"children":80},"element","h2",{"id":79},"video-walkthrough",[81],{"type":82,"value":83},"text","Video walkthrough",{"type":76,"tag":85,"props":86,"children":93},"iframe",{"width":87,"height":88,"src":89,"title":90,"frameBorder":91,"allow":92,"allowFullScreen":13},"100%",400,"https://www.youtube.com/embed/L-Jxb8iZGT4","Bruin Cloud - Enable a Pipeline","0","accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",[],{"type":76,"tag":77,"props":95,"children":97},{"id":96},"what-this-does",[98],{"type":82,"value":99},"What this does",{"type":76,"tag":101,"props":102,"children":103},"p",{},[104],{"type":82,"value":105},"Pipelines synced from a repo start disabled. Enabling one tells Bruin Cloud to run it on schedule. If connections are missing, you'll be prompted to add them inline.",{"type":76,"tag":77,"props":107,"children":109},{"id":108},"steps",[110],{"type":82,"value":111},"Steps",{"type":76,"tag":113,"props":114,"children":116},"h3",{"id":115},"_1-open-your-pipelines",[117],{"type":82,"value":118},"1) Open your pipelines",{"type":76,"tag":101,"props":120,"children":121},{},[122,124,130],{"type":82,"value":123},"From the homepage, go to ",{"type":76,"tag":125,"props":126,"children":127},"strong",{},[128],{"type":82,"value":129},"Catalog → Pipelines",{"type":82,"value":131},".",{"type":76,"tag":113,"props":133,"children":135},{"id":134},"_2-select-and-enable",[136],{"type":82,"value":137},"2) Select and enable",{"type":76,"tag":101,"props":139,"children":140},{},[141,143,148],{"type":82,"value":142},"Pick a pipeline and click ",{"type":76,"tag":125,"props":144,"children":145},{},[146],{"type":82,"value":147},"Enable selected pipelines",{"type":82,"value":131},{"type":76,"tag":113,"props":150,"children":152},{"id":151},"_3-add-missing-connections",[153],{"type":82,"value":154},"3) Add missing connections",{"type":76,"tag":101,"props":156,"children":157},{},[158],{"type":82,"value":159},"If the pipeline references connections you haven't configured, Bruin Cloud lists them. For each one:",{"type":76,"tag":161,"props":162,"children":163},"ol",{},[164,170,188,193],{"type":76,"tag":165,"props":166,"children":167},"li",{},[168],{"type":82,"value":169},"Click the missing connection - the name is filled in for you.",{"type":76,"tag":165,"props":171,"children":172},{},[173,175,180,182,187],{"type":82,"value":174},"Pick the ",{"type":76,"tag":125,"props":176,"children":177},{},[178],{"type":82,"value":179},"connection type",{"type":82,"value":181}," - a built-in (BigQuery, Postgres, Snowflake, etc.) or a ",{"type":76,"tag":125,"props":183,"children":184},{},[185],{"type":82,"value":186},"generic secret",{"type":82,"value":131},{"type":76,"tag":165,"props":189,"children":190},{},[191],{"type":82,"value":192},"Enter the credentials.",{"type":76,"tag":165,"props":194,"children":195},{},[196,198,203,205,210],{"type":82,"value":197},"Click ",{"type":76,"tag":125,"props":199,"children":200},{},[201],{"type":82,"value":202},"Create",{"type":82,"value":204},". Bruin Cloud validates the connection. To skip validation, click ",{"type":76,"tag":125,"props":206,"children":207},{},[208],{"type":82,"value":209},"Create without validation",{"type":82,"value":131},{"type":76,"tag":101,"props":212,"children":213},{},[214],{"type":82,"value":215},"Repeat until the list is empty.",{"type":76,"tag":113,"props":217,"children":219},{"id":218},"_4-first-run",[220],{"type":82,"value":221},"4) First run",{"type":76,"tag":101,"props":223,"children":224},{},[225,227,232],{"type":82,"value":226},"The first run triggers automatically when a new pipeline is enabled - no need to click ",{"type":76,"tag":125,"props":228,"children":229},{},[230],{"type":82,"value":231},"New run",{"type":82,"value":131},{"type":76,"tag":113,"props":234,"children":236},{"id":235},"_5-check-its-running",[237],{"type":82,"value":238},"5) Check it's running",{"type":76,"tag":101,"props":240,"children":241},{},[242],{"type":82,"value":243},"Open the pipeline page and confirm:",{"type":76,"tag":245,"props":246,"children":247},"ul",{},[248,259],{"type":76,"tag":165,"props":249,"children":250},{},[251,253,258],{"type":82,"value":252},"Status is ",{"type":76,"tag":125,"props":254,"children":255},{},[256],{"type":82,"value":257},"active",{"type":82,"value":131},{"type":76,"tag":165,"props":260,"children":261},{},[262],{"type":82,"value":263},"A new run appears in the runs list.",{"type":76,"tag":77,"props":265,"children":267},{"id":266},"next",[268],{"type":82,"value":269},"Next",{"type":76,"tag":101,"props":271,"children":272},{},[273,275,282],{"type":82,"value":274},"To explore everything else on the pipeline page - backfills, lineage, manual runs - see ",{"type":76,"tag":276,"props":277,"children":279},"a",{"href":278},"/learn/bruin-cloud-pipelines-overview",[280],{"type":82,"value":281},"Pipelines Overview",{"type":82,"value":131},{"title":7,"searchDepth":34,"depth":34,"links":284},[285,286,287,295],{"id":79,"depth":34,"text":83},{"id":96,"depth":34,"text":99},{"id":108,"depth":34,"text":111,"children":288},[289,291,292,293,294],{"id":115,"depth":290,"text":118},3,{"id":134,"depth":290,"text":137},{"id":151,"depth":290,"text":154},{"id":218,"depth":290,"text":221},{"id":235,"depth":290,"text":238},{"id":266,"depth":34,"text":269},"content:tutorials:bruin-cloud-enable-pipelines.md","tutorials/bruin-cloud-enable-pipelines.md","tutorials/bruin-cloud-enable-pipelines",{"_path":300,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":281,"description":301,"coverImage":302,"date":10,"readingTime":303,"category":60,"tags":304,"difficulty":62,"journeys":305,"videoUrl":306,"learnMore":307,"author":309,"body":310,"_type":36,"_id":699,"_source":38,"_file":700,"_stem":701,"_extension":41},"/tutorials/bruin-cloud-pipelines-overview","A walkthrough of the Bruin Cloud pipeline page: runs, assets, backfills, lineage, connections, and manual runs.","https://img.youtube.com/vi/skRDPVERGsA/maxresdefault.jpg",5,[8],[64,65],"https://youtu.be/skRDPVERGsA",[308],{"label":21,"url":22},{"name":27,"role":28,"image":29},{"type":31,"children":311,"toc":683},[312,316,321,327,332,338,350,370,376,381,399,405,416,422,432,438,443,449,454,524,529,539,577,582,605,611,641,647,666,670],{"type":76,"tag":77,"props":313,"children":314},{"id":79},[315],{"type":82,"value":83},{"type":76,"tag":85,"props":317,"children":320},{"width":87,"height":88,"src":318,"title":319,"frameBorder":91,"allow":92,"allowFullScreen":13},"https://www.youtube.com/embed/skRDPVERGsA","Bruin Cloud - Pipelines Overview",[],{"type":76,"tag":77,"props":322,"children":324},{"id":323},"what-this-page-is",[325],{"type":82,"value":326},"What this page is",{"type":76,"tag":101,"props":328,"children":329},{},[330],{"type":82,"value":331},"The pipeline page is where you operate a single pipeline. Runs, assets, backfills, lineage, and manual actions all live here.",{"type":76,"tag":77,"props":333,"children":335},{"id":334},"open-a-pipeline",[336],{"type":82,"value":337},"Open a pipeline",{"type":76,"tag":101,"props":339,"children":340},{},[341,343,348],{"type":82,"value":342},"Two ways from the ",{"type":76,"tag":125,"props":344,"children":345},{},[346],{"type":82,"value":347},"Overview",{"type":82,"value":349}," page:",{"type":76,"tag":245,"props":351,"children":352},{},[353,358],{"type":76,"tag":165,"props":354,"children":355},{},[356],{"type":82,"value":357},"Click a pipeline in the left sidebar.",{"type":76,"tag":165,"props":359,"children":360},{},[361,363,368],{"type":82,"value":362},"Open ",{"type":76,"tag":125,"props":364,"children":365},{},[366],{"type":82,"value":367},"Catalogs → Pipelines",{"type":82,"value":369}," and pick one.",{"type":76,"tag":77,"props":371,"children":373},{"id":372},"runs",[374],{"type":82,"value":375},"Runs",{"type":76,"tag":101,"props":377,"children":378},{},[379],{"type":82,"value":380},"The bottom panel lists previous runs. You can:",{"type":76,"tag":245,"props":382,"children":383},{},[384,389,394],{"type":76,"tag":165,"props":385,"children":386},{},[387],{"type":82,"value":388},"Filter by status.",{"type":76,"tag":165,"props":390,"children":391},{},[392],{"type":82,"value":393},"Mark a run as successful or failed.",{"type":76,"tag":165,"props":395,"children":396},{},[397],{"type":82,"value":398},"Rerun all assets, or rerun only failed jobs.",{"type":76,"tag":77,"props":400,"children":402},{"id":401},"assets",[403],{"type":82,"value":404},"Assets",{"type":76,"tag":101,"props":406,"children":407},{},[408,410,414],{"type":82,"value":409},"The ",{"type":76,"tag":125,"props":411,"children":412},{},[413],{"type":82,"value":404},{"type":82,"value":415}," tab lists every asset in the pipeline with its type, owner, schedule, and last run state.",{"type":76,"tag":77,"props":417,"children":419},{"id":418},"backfills",[420],{"type":82,"value":421},"Backfills",{"type":76,"tag":101,"props":423,"children":424},{},[425,426,430],{"type":82,"value":409},{"type":76,"tag":125,"props":427,"children":428},{},[429],{"type":82,"value":421},{"type":82,"value":431}," tab shows every backfill that's been created. Click one to see the intervals, the jobs, the date range, status, and a progress bar.",{"type":76,"tag":77,"props":433,"children":435},{"id":434},"lineage",[436],{"type":82,"value":437},"Lineage",{"type":76,"tag":101,"props":439,"children":440},{},[441],{"type":82,"value":442},"The lineage panel shows how assets connect. Click any asset to jump to it. Expand to full screen for larger pipelines.",{"type":76,"tag":77,"props":444,"children":446},{"id":445},"pipeline-details",[447],{"type":82,"value":448},"Pipeline details",{"type":76,"tag":101,"props":450,"children":451},{},[452],{"type":82,"value":453},"The right panel shows:",{"type":76,"tag":245,"props":455,"children":456},{},[457,484,494,504,514],{"type":76,"tag":165,"props":458,"children":459},{},[460,465,467,472,473,478,479],{"type":76,"tag":125,"props":461,"children":462},{},[463],{"type":82,"value":464},"Name",{"type":82,"value":466},", ",{"type":76,"tag":125,"props":468,"children":469},{},[470],{"type":82,"value":471},"schedule",{"type":82,"value":466},{"type":76,"tag":125,"props":474,"children":475},{},[476],{"type":82,"value":477},"start date",{"type":82,"value":466},{"type":76,"tag":125,"props":480,"children":481},{},[482],{"type":82,"value":483},"owner",{"type":76,"tag":165,"props":485,"children":486},{},[487,492],{"type":76,"tag":125,"props":488,"children":489},{},[490],{"type":82,"value":491},"Last commit",{"type":82,"value":493}," from the connected repo",{"type":76,"tag":165,"props":495,"children":496},{},[497,502],{"type":76,"tag":125,"props":498,"children":499},{},[500],{"type":82,"value":501},"Run durations",{"type":82,"value":503}," - recent runs at a glance, so failures stand out",{"type":76,"tag":165,"props":505,"children":506},{},[507,512],{"type":76,"tag":125,"props":508,"children":509},{},[510],{"type":82,"value":511},"Connections",{"type":82,"value":513}," used by this pipeline",{"type":76,"tag":165,"props":515,"children":516},{},[517,522],{"type":76,"tag":125,"props":518,"children":519},{},[520],{"type":82,"value":521},"Activity",{"type":82,"value":523}," - a log of manual actions taken by users",{"type":76,"tag":77,"props":525,"children":527},{"id":526},"new-run",[528],{"type":82,"value":231},{"type":76,"tag":101,"props":530,"children":531},{},[532,533,537],{"type":82,"value":409},{"type":76,"tag":125,"props":534,"children":535},{},[536],{"type":82,"value":231},{"type":82,"value":538}," button (top right) triggers a manual run. Options:",{"type":76,"tag":245,"props":540,"children":541},{},[542,553,572],{"type":76,"tag":165,"props":543,"children":544},{},[545,547,552],{"type":82,"value":546},"Toggle ",{"type":76,"tag":125,"props":548,"children":549},{},[550],{"type":82,"value":551},"full refresh",{"type":82,"value":131},{"type":76,"tag":165,"props":554,"children":555},{},[556,558,563,565,570],{"type":82,"value":557},"Add ",{"type":76,"tag":125,"props":559,"children":560},{},[561],{"type":82,"value":562},"notes",{"type":82,"value":564}," and ",{"type":76,"tag":125,"props":566,"children":567},{},[568],{"type":82,"value":569},"tags",{"type":82,"value":571}," - they show up in the activity log.",{"type":76,"tag":165,"props":573,"children":574},{},[575],{"type":82,"value":576},"Run a single interval, or create multiple jobs across intervals.",{"type":76,"tag":113,"props":578,"children":580},{"id":579},"backfills-1",[581],{"type":82,"value":421},{"type":76,"tag":245,"props":583,"children":584},{},[585,595],{"type":76,"tag":165,"props":586,"children":587},{},[588,593],{"type":76,"tag":125,"props":589,"children":590},{},[591],{"type":82,"value":592},"Auto split by schedule",{"type":82,"value":594}," - one job per scheduled interval. A 23-day range on a daily schedule produces 23 jobs.",{"type":76,"tag":165,"props":596,"children":597},{},[598,603],{"type":76,"tag":125,"props":599,"children":600},{},[601],{"type":82,"value":602},"Manual split",{"type":82,"value":604}," - pick the interval and the number of splits. Useful for processing data in chunks.",{"type":76,"tag":77,"props":606,"children":608},{"id":607},"status",[609],{"type":82,"value":610},"Status",{"type":76,"tag":245,"props":612,"children":613},{},[614,624],{"type":76,"tag":165,"props":615,"children":616},{},[617,622],{"type":76,"tag":125,"props":618,"children":619},{},[620],{"type":82,"value":621},"Next run",{"type":82,"value":623}," sits next to the New run button. Hover for local, UTC, and ISO time.",{"type":76,"tag":165,"props":625,"children":626},{},[627,629,633,634,639],{"type":82,"value":628},"The pipeline's ",{"type":76,"tag":125,"props":630,"children":631},{},[632],{"type":82,"value":607},{"type":82,"value":564},{"type":76,"tag":125,"props":635,"children":636},{},[637],{"type":82,"value":638},"timestamp",{"type":82,"value":640}," (UTC) are at the top.",{"type":76,"tag":77,"props":642,"children":644},{"id":643},"pipeline-menu",[645],{"type":82,"value":646},"Pipeline menu",{"type":76,"tag":101,"props":648,"children":649},{},[650,652,657,659,664],{"type":82,"value":651},"The menu (top right) lets you ",{"type":76,"tag":125,"props":653,"children":654},{},[655],{"type":82,"value":656},"disable",{"type":82,"value":658}," or ",{"type":76,"tag":125,"props":660,"children":661},{},[662],{"type":82,"value":663},"delete",{"type":82,"value":665}," the pipeline.",{"type":76,"tag":77,"props":667,"children":668},{"id":266},[669],{"type":82,"value":269},{"type":76,"tag":101,"props":671,"children":672},{},[673,675,681],{"type":82,"value":674},"Now that you know the page, learn how to ",{"type":76,"tag":276,"props":676,"children":678},{"href":677},"/learn/bruin-cloud-enable-pipelines",[679],{"type":82,"value":680},"enable a pipeline",{"type":82,"value":682}," so it runs on schedule.",{"title":7,"searchDepth":34,"depth":34,"links":684},[685,686,687,688,689,690,691,692,693,696,697,698],{"id":79,"depth":34,"text":83},{"id":323,"depth":34,"text":326},{"id":334,"depth":34,"text":337},{"id":372,"depth":34,"text":375},{"id":401,"depth":34,"text":404},{"id":418,"depth":34,"text":421},{"id":434,"depth":34,"text":437},{"id":445,"depth":34,"text":448},{"id":526,"depth":34,"text":231,"children":694},[695],{"id":579,"depth":290,"text":421},{"id":607,"depth":34,"text":610},{"id":643,"depth":34,"text":646},{"id":266,"depth":34,"text":269},"content:tutorials:bruin-cloud-pipelines-overview.md","tutorials/bruin-cloud-pipelines-overview.md","tutorials/bruin-cloud-pipelines-overview",{"_path":703,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":704,"description":705,"coverImage":706,"date":10,"readingTime":34,"category":60,"tags":707,"difficulty":62,"journeys":710,"hidden":6,"author":712,"body":713,"_type":36,"_id":717,"_source":38,"_file":718,"_stem":719,"_extension":41},"/tutorials/migrate-project-to-github-app","Migrate a Project to the Bruin GitHub App","Move an existing Bruin project from a GitHub personal access token to the Bruin GitHub App in less than a minute, directly from Team Settings.","/img/learn/migrate-github-app/03-projects-list-before.png",[8,708,709],"GitHub","Setup",[64,711],"Platform Engineer",{"name":27,"role":28,"image":29},{"type":31,"children":714,"toc":715},[],{"title":7,"searchDepth":34,"depth":34,"links":716},[],"content:tutorials:migrate-project-to-github-app.md","tutorials/migrate-project-to-github-app.md","tutorials/migrate-project-to-github-app",{"_path":721,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":722,"description":723,"coverImage":724,"date":725,"readingTime":290,"category":60,"tags":726,"difficulty":62,"journeys":729,"hidden":6,"videoUrl":730,"author":731,"body":732,"_type":36,"_id":965,"_source":38,"_file":966,"_stem":967,"_extension":41},"/tutorials/bruin-dashboards","Build Dashboards with an AI Agent","Use the Bruin Cloud AI agent to build interactive dashboards from natural language prompts - generate queries, create charts, and ask follow-up questions in one place.","https://img.youtube.com/vi/X3usx8IUIlk/maxresdefault.jpg","2026-03-31",[8,727,728],"Bruin AI","Dashboards",[65,64],"https://youtu.be/X3usx8IUIlk",{"name":27,"role":28,"image":29},{"type":31,"children":733,"toc":953},[734,739,744,754,764,772,789,793,797,803,808,814,819,828,833,839,844,850,855,873,879,884,892,897,900,906,924,927,933],{"type":76,"tag":85,"props":735,"children":738},{"width":87,"height":88,"src":736,"title":737,"frameBorder":91,"allow":92,"allowFullScreen":13},"https://www.youtube.com/embed/X3usx8IUIlk","Bruin Features - Dashboards",[],{"type":76,"tag":77,"props":740,"children":742},{"id":741},"overview",[743],{"type":82,"value":347},{"type":76,"tag":101,"props":745,"children":746},{},[747,752],{"type":76,"tag":125,"props":748,"children":749},{},[750],{"type":82,"value":751},"Goal",{"type":82,"value":753}," - Build interactive dashboards in Bruin Cloud using natural language prompts instead of manually writing queries and configuring charts.",{"type":76,"tag":101,"props":755,"children":756},{},[757,762],{"type":76,"tag":125,"props":758,"children":759},{},[760],{"type":82,"value":761},"Audience",{"type":82,"value":763}," - Data analysts and engineers who want to quickly explore and visualize their data without leaving Bruin Cloud.",{"type":76,"tag":101,"props":765,"children":766},{},[767],{"type":76,"tag":125,"props":768,"children":769},{},[770],{"type":82,"value":771},"Prerequisites",{"type":76,"tag":245,"props":773,"children":774},{},[775],{"type":76,"tag":165,"props":776,"children":777},{},[778,780,787],{"type":82,"value":779},"A ",{"type":76,"tag":276,"props":781,"children":785},{"href":782,"rel":783},"https://getbruin.com",[784],"nofollow",[786],{"type":82,"value":8},{"type":82,"value":788}," account with data already materialized in your warehouse",{"type":76,"tag":790,"props":791,"children":792},"hr",{},[],{"type":76,"tag":77,"props":794,"children":795},{"id":108},[796],{"type":82,"value":111},{"type":76,"tag":113,"props":798,"children":800},{"id":799},"_1-open-the-dashboards-page",[801],{"type":82,"value":802},"1) Open the Dashboards page",{"type":76,"tag":101,"props":804,"children":805},{},[806],{"type":82,"value":807},"Navigate to the Dashboards section in Bruin Cloud. This is where you can create and manage all your dashboards.",{"type":76,"tag":113,"props":809,"children":811},{"id":810},"_2-write-a-natural-language-prompt",[812],{"type":82,"value":813},"2) Write a natural language prompt",{"type":76,"tag":101,"props":815,"children":816},{},[817],{"type":82,"value":818},"Describe what you want to analyze. For example:",{"type":76,"tag":820,"props":821,"children":822},"blockquote",{},[823],{"type":76,"tag":101,"props":824,"children":825},{},[826],{"type":82,"value":827},"\"I want to analyze the data for 2024 - show me customer satisfaction trends, revenue by quarter, and churn rate.\"",{"type":76,"tag":101,"props":829,"children":830},{},[831],{"type":82,"value":832},"The AI agent will generate the SQL queries and build the charts for you automatically.",{"type":76,"tag":113,"props":834,"children":836},{"id":835},"_3-inspect-the-generated-queries",[837],{"type":82,"value":838},"3) Inspect the generated queries",{"type":76,"tag":101,"props":840,"children":841},{},[842],{"type":82,"value":843},"Click on any chart to see the SQL query behind it. This lets you verify the logic and understand exactly what data is being visualized.",{"type":76,"tag":113,"props":845,"children":847},{"id":846},"_4-iterate-on-the-dashboard",[848],{"type":82,"value":849},"4) Iterate on the dashboard",{"type":76,"tag":101,"props":851,"children":852},{},[853],{"type":82,"value":854},"You can go back and forth with the AI agent to refine the dashboard:",{"type":76,"tag":245,"props":856,"children":857},{},[858,863,868],{"type":76,"tag":165,"props":859,"children":860},{},[861],{"type":82,"value":862},"Click on a chart that needs adjustment to bring it into context",{"type":76,"tag":165,"props":864,"children":865},{},[866],{"type":82,"value":867},"Ask the agent to change a specific chart, fix an issue, or add a new visualization",{"type":76,"tag":165,"props":869,"children":870},{},[871],{"type":82,"value":872},"The agent understands conversational follow-ups",{"type":76,"tag":113,"props":874,"children":876},{"id":875},"_5-ask-analytical-questions",[877],{"type":82,"value":878},"5) Ask analytical questions",{"type":76,"tag":101,"props":880,"children":881},{},[882],{"type":82,"value":883},"The agent is not limited to building charts. You can ask it questions about the data directly, for example:",{"type":76,"tag":820,"props":885,"children":886},{},[887],{"type":76,"tag":101,"props":888,"children":889},{},[890],{"type":82,"value":891},"\"Why is there a dip in customer satisfaction in July?\"",{"type":76,"tag":101,"props":893,"children":894},{},[895],{"type":82,"value":896},"It will analyze the underlying data and provide an explanation rather than generating another chart.",{"type":76,"tag":790,"props":898,"children":899},{},[],{"type":76,"tag":77,"props":901,"children":903},{"id":902},"key-takeaways",[904],{"type":82,"value":905},"Key takeaways",{"type":76,"tag":245,"props":907,"children":908},{},[909,914,919],{"type":76,"tag":165,"props":910,"children":911},{},[912],{"type":82,"value":913},"The AI agent acts as a companion for building reports, asking questions, and getting responses - all in one place",{"type":76,"tag":165,"props":915,"children":916},{},[917],{"type":82,"value":918},"You can mix chart creation with ad-hoc analysis in the same conversation",{"type":76,"tag":165,"props":920,"children":921},{},[922],{"type":82,"value":923},"Every chart is backed by a visible SQL query you can inspect and verify",{"type":76,"tag":790,"props":925,"children":926},{},[],{"type":76,"tag":77,"props":928,"children":930},{"id":929},"helpful-links",[931],{"type":82,"value":932},"Helpful links",{"type":76,"tag":245,"props":934,"children":935},{},[936,945],{"type":76,"tag":165,"props":937,"children":938},{},[939],{"type":76,"tag":276,"props":940,"children":942},{"href":22,"rel":941},[784],[943],{"type":82,"value":944},"Bruin Cloud overview",{"type":76,"tag":165,"props":946,"children":947},{},[948],{"type":76,"tag":276,"props":949,"children":951},{"href":730,"rel":950},[784],[952],{"type":82,"value":83},{"title":7,"searchDepth":34,"depth":34,"links":954},[955,956,963,964],{"id":741,"depth":34,"text":347},{"id":108,"depth":34,"text":111,"children":957},[958,959,960,961,962],{"id":799,"depth":290,"text":802},{"id":810,"depth":290,"text":813},{"id":835,"depth":290,"text":838},{"id":846,"depth":290,"text":849},{"id":875,"depth":290,"text":878},{"id":902,"depth":34,"text":905},{"id":929,"depth":34,"text":932},"content:tutorials:bruin-dashboards.md","tutorials/bruin-dashboards.md","tutorials/bruin-dashboards",{"_path":969,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":970,"description":971,"coverImage":972,"date":973,"readingTime":303,"category":60,"tags":974,"difficulty":976,"journeys":977,"hidden":6,"videoUrl":978,"author":979,"body":980,"_type":36,"_id":1352,"_source":38,"_file":1353,"_stem":1354,"_extension":41},"/tutorials/bruin-cloud-mcp","Connect Bruin Cloud MCP to Claude Code","Set up the Bruin Cloud MCP so your AI agent can query pipelines, inspect runs, and trigger actions in Bruin Cloud directly from your terminal.","https://img.youtube.com/vi/bpuYBiaxSWk/maxresdefault.jpg","2026-03-06",[8,727,975],"MCP","Advanced",[64],"https://youtu.be/bpuYBiaxSWk",{"name":27,"role":28,"image":29},{"type":31,"children":981,"toc":1340},[982,987,991,1000,1009,1016,1041,1044,1048,1054,1099,1105,1119,1191,1196,1202,1207,1215,1220,1226,1231,1239,1244,1250,1255,1273,1276,1280,1298,1301,1305,1334],{"type":76,"tag":85,"props":983,"children":986},{"width":87,"height":88,"src":984,"title":985,"frameBorder":91,"allow":92,"allowFullScreen":13},"https://www.youtube.com/embed/bpuYBiaxSWk","Bruin Features - Cloud MCP",[],{"type":76,"tag":77,"props":988,"children":989},{"id":741},[990],{"type":82,"value":347},{"type":76,"tag":101,"props":992,"children":993},{},[994,998],{"type":76,"tag":125,"props":995,"children":996},{},[997],{"type":82,"value":751},{"type":82,"value":999}," - Connect the Bruin Cloud MCP to Claude Code so you can manage pipelines, inspect runs, and trigger actions using natural language from your terminal.",{"type":76,"tag":101,"props":1001,"children":1002},{},[1003,1007],{"type":76,"tag":125,"props":1004,"children":1005},{},[1006],{"type":82,"value":761},{"type":82,"value":1008}," - Data engineers who want to interact with Bruin Cloud programmatically through an AI agent.",{"type":76,"tag":101,"props":1010,"children":1011},{},[1012],{"type":76,"tag":125,"props":1013,"children":1014},{},[1015],{"type":82,"value":771},{"type":76,"tag":245,"props":1017,"children":1018},{},[1019,1031,1036],{"type":76,"tag":165,"props":1020,"children":1021},{},[1022,1029],{"type":76,"tag":276,"props":1023,"children":1026},{"href":1024,"rel":1025},"https://getbruin.com/docs/bruin/getting-started/introduction/installation.html",[784],[1027],{"type":82,"value":1028},"Bruin CLI",{"type":82,"value":1030}," installed",{"type":76,"tag":165,"props":1032,"children":1033},{},[1034],{"type":82,"value":1035},"Claude Code installed",{"type":76,"tag":165,"props":1037,"children":1038},{},[1039],{"type":82,"value":1040},"A Bruin Cloud account with at least one pipeline deployed",{"type":76,"tag":790,"props":1042,"children":1043},{},[],{"type":76,"tag":77,"props":1045,"children":1046},{"id":108},[1047],{"type":82,"value":111},{"type":76,"tag":113,"props":1049,"children":1051},{"id":1050},"_1-create-an-api-token",[1052],{"type":82,"value":1053},"1) Create an API token",{"type":76,"tag":161,"props":1055,"children":1056},{},[1057,1067,1084,1089],{"type":76,"tag":165,"props":1058,"children":1059},{},[1060,1062],{"type":82,"value":1061},"Go to Bruin Cloud and open ",{"type":76,"tag":125,"props":1063,"children":1064},{},[1065],{"type":82,"value":1066},"Team Settings",{"type":76,"tag":165,"props":1068,"children":1069},{},[1070,1072,1077,1079],{"type":82,"value":1071},"Navigate to ",{"type":76,"tag":125,"props":1073,"children":1074},{},[1075],{"type":82,"value":1076},"Team Members",{"type":82,"value":1078}," and scroll to ",{"type":76,"tag":125,"props":1080,"children":1081},{},[1082],{"type":82,"value":1083},"Create API Token",{"type":76,"tag":165,"props":1085,"children":1086},{},[1087],{"type":82,"value":1088},"Give the token a name and select the permissions you need",{"type":76,"tag":165,"props":1090,"children":1091},{},[1092,1093,1097],{"type":82,"value":197},{"type":76,"tag":125,"props":1094,"children":1095},{},[1096],{"type":82,"value":202},{"type":82,"value":1098}," and copy the token - it will only be shown once",{"type":76,"tag":113,"props":1100,"children":1102},{"id":1101},"_2-add-the-mcp-to-claude-code",[1103],{"type":82,"value":1104},"2) Add the MCP to Claude Code",{"type":76,"tag":101,"props":1106,"children":1107},{},[1108,1110,1117],{"type":82,"value":1109},"Run the following command in your terminal, replacing ",{"type":76,"tag":1111,"props":1112,"children":1114},"code",{"className":1113},[],[1115],{"type":82,"value":1116},"YOUR_TOKEN_HERE",{"type":82,"value":1118}," with the token you just created:",{"type":76,"tag":1120,"props":1121,"children":1125},"pre",{"className":1122,"code":1123,"language":1124,"meta":7,"style":7},"language-bash shiki shiki-themes github-dark","claude mcp add --transport http bruin_cloud https://cloud.getbruin.com/mcp \\\n  --header \"Authorization: Bearer YOUR_TOKEN_HERE\"\n","bash",[1126],{"type":76,"tag":1111,"props":1127,"children":1128},{"__ignoreMap":7},[1129,1178],{"type":76,"tag":1130,"props":1131,"children":1134},"span",{"class":1132,"line":1133},"line",1,[1135,1141,1147,1152,1158,1163,1168,1173],{"type":76,"tag":1130,"props":1136,"children":1138},{"style":1137},"--shiki-default:#B392F0",[1139],{"type":82,"value":1140},"claude",{"type":76,"tag":1130,"props":1142,"children":1144},{"style":1143},"--shiki-default:#9ECBFF",[1145],{"type":82,"value":1146}," mcp",{"type":76,"tag":1130,"props":1148,"children":1149},{"style":1143},[1150],{"type":82,"value":1151}," add",{"type":76,"tag":1130,"props":1153,"children":1155},{"style":1154},"--shiki-default:#79B8FF",[1156],{"type":82,"value":1157}," --transport",{"type":76,"tag":1130,"props":1159,"children":1160},{"style":1143},[1161],{"type":82,"value":1162}," http",{"type":76,"tag":1130,"props":1164,"children":1165},{"style":1143},[1166],{"type":82,"value":1167}," bruin_cloud",{"type":76,"tag":1130,"props":1169,"children":1170},{"style":1143},[1171],{"type":82,"value":1172}," https://cloud.getbruin.com/mcp",{"type":76,"tag":1130,"props":1174,"children":1175},{"style":1154},[1176],{"type":82,"value":1177}," \\\n",{"type":76,"tag":1130,"props":1179,"children":1180},{"class":1132,"line":34},[1181,1186],{"type":76,"tag":1130,"props":1182,"children":1183},{"style":1154},[1184],{"type":82,"value":1185},"  --header",{"type":76,"tag":1130,"props":1187,"children":1188},{"style":1143},[1189],{"type":82,"value":1190}," \"Authorization: Bearer YOUR_TOKEN_HERE\"\n",{"type":76,"tag":101,"props":1192,"children":1193},{},[1194],{"type":82,"value":1195},"This configures Claude Code to communicate with Bruin Cloud via the MCP protocol.",{"type":76,"tag":113,"props":1197,"children":1199},{"id":1198},"_3-query-your-pipelines",[1200],{"type":82,"value":1201},"3) Query your pipelines",{"type":76,"tag":101,"props":1203,"children":1204},{},[1205],{"type":82,"value":1206},"Open Claude Code inside a Bruin project and ask questions like:",{"type":76,"tag":820,"props":1208,"children":1209},{},[1210],{"type":76,"tag":101,"props":1211,"children":1212},{},[1213],{"type":82,"value":1214},"\"Use Bruin Cloud MCP and tell me which pipelines are enabled.\"",{"type":76,"tag":101,"props":1216,"children":1217},{},[1218],{"type":82,"value":1219},"The agent will make API calls to Bruin Cloud and return the information.",{"type":76,"tag":113,"props":1221,"children":1223},{"id":1222},"_4-trigger-runs",[1224],{"type":82,"value":1225},"4) Trigger runs",{"type":76,"tag":101,"props":1227,"children":1228},{},[1229],{"type":82,"value":1230},"You can also ask the agent to trigger pipeline runs:",{"type":76,"tag":820,"props":1232,"children":1233},{},[1234],{"type":76,"tag":101,"props":1235,"children":1236},{},[1237],{"type":82,"value":1238},"\"Create a full refresh of the stock_market_prices asset.\"",{"type":76,"tag":101,"props":1240,"children":1241},{},[1242],{"type":82,"value":1243},"The agent may ask for confirmation before executing, especially when there are similarly named assets. It will also provide a link to monitor the run in Bruin Cloud.",{"type":76,"tag":113,"props":1245,"children":1247},{"id":1246},"_5-be-careful-with-prompts",[1248],{"type":82,"value":1249},"5) Be careful with prompts",{"type":76,"tag":101,"props":1251,"children":1252},{},[1253],{"type":82,"value":1254},"Be specific when triggering actions. A vague prompt like \"do a full refresh\" could create a large backfill job spanning months of data. Always specify:",{"type":76,"tag":245,"props":1256,"children":1257},{},[1258,1263,1268],{"type":76,"tag":165,"props":1259,"children":1260},{},[1261],{"type":82,"value":1262},"Which asset or pipeline to run",{"type":76,"tag":165,"props":1264,"children":1265},{},[1266],{"type":82,"value":1267},"The date range if applicable",{"type":76,"tag":165,"props":1269,"children":1270},{},[1271],{"type":82,"value":1272},"Whether you want a full refresh or incremental run",{"type":76,"tag":790,"props":1274,"children":1275},{},[],{"type":76,"tag":77,"props":1277,"children":1278},{"id":902},[1279],{"type":82,"value":905},{"type":76,"tag":245,"props":1281,"children":1282},{},[1283,1288,1293],{"type":76,"tag":165,"props":1284,"children":1285},{},[1286],{"type":82,"value":1287},"The Cloud MCP lets you query pipeline status, inspect runs, and trigger actions from your terminal",{"type":76,"tag":165,"props":1289,"children":1290},{},[1291],{"type":82,"value":1292},"Always be specific when triggering runs to avoid unintended large backfills",{"type":76,"tag":165,"props":1294,"children":1295},{},[1296],{"type":82,"value":1297},"The agent will ask for confirmation before executing destructive or ambiguous actions",{"type":76,"tag":790,"props":1299,"children":1300},{},[],{"type":76,"tag":77,"props":1302,"children":1303},{"id":929},[1304],{"type":82,"value":932},{"type":76,"tag":245,"props":1306,"children":1307},{},[1308,1318,1326],{"type":76,"tag":165,"props":1309,"children":1310},{},[1311],{"type":76,"tag":276,"props":1312,"children":1315},{"href":1313,"rel":1314},"https://getbruin.com/docs/bruin/cloud/mcp-setup.html",[784],[1316],{"type":82,"value":1317},"Bruin Cloud MCP setup",{"type":76,"tag":165,"props":1319,"children":1320},{},[1321],{"type":76,"tag":276,"props":1322,"children":1324},{"href":22,"rel":1323},[784],[1325],{"type":82,"value":944},{"type":76,"tag":165,"props":1327,"children":1328},{},[1329],{"type":76,"tag":276,"props":1330,"children":1332},{"href":978,"rel":1331},[784],[1333],{"type":82,"value":83},{"type":76,"tag":1335,"props":1336,"children":1337},"style",{},[1338],{"type":82,"value":1339},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":34,"depth":34,"links":1341},[1342,1343,1350,1351],{"id":741,"depth":34,"text":347},{"id":108,"depth":34,"text":111,"children":1344},[1345,1346,1347,1348,1349],{"id":1050,"depth":290,"text":1053},{"id":1101,"depth":290,"text":1104},{"id":1198,"depth":290,"text":1201},{"id":1222,"depth":290,"text":1225},{"id":1246,"depth":290,"text":1249},{"id":902,"depth":34,"text":905},{"id":929,"depth":34,"text":932},"content:tutorials:bruin-cloud-mcp.md","tutorials/bruin-cloud-mcp.md","tutorials/bruin-cloud-mcp",{"_path":1356,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":1357,"description":1358,"coverImage":1359,"date":973,"readingTime":1360,"category":60,"tags":1361,"difficulty":1364,"journeys":1365,"videoUrl":1366,"author":1367,"body":1368,"_type":36,"_id":1810,"_source":38,"_file":1811,"_stem":1812,"_extension":41},"/tutorials/cloud-slack","Deploy an AI Analyst to Bruin Cloud & Slack","Build a stock market AI analyst in Bruin Cloud and connect it to a Slack AI agent so your team can query data from any channel.","https://img.youtube.com/vi/H02v3_rJhak/maxresdefault.jpg",20,[1362,8,1363,1028],"AI","Slack","Intermediate",[65,64],"https://youtu.be/H02v3_rJhak",{"name":27,"role":28,"image":29},{"type":31,"children":1369,"toc":1795},[1370,1375,1379,1388,1397,1404,1443,1446,1450,1456,1521,1527,1540,1546,1579,1585,1608,1614,1637,1643,1680,1686,1699,1705,1728,1731,1737,1750,1753,1757],{"type":76,"tag":85,"props":1371,"children":1374},{"width":87,"height":88,"src":1372,"title":1373,"frameBorder":91,"allow":92,"allowFullScreen":13},"https://www.youtube.com/embed/H02v3_rJhak","Cloud and Slack AI Analyst walkthrough",[],{"type":76,"tag":77,"props":1376,"children":1377},{"id":741},[1378],{"type":82,"value":347},{"type":76,"tag":101,"props":1380,"children":1381},{},[1382,1386],{"type":76,"tag":125,"props":1383,"children":1384},{},[1385],{"type":82,"value":751},{"type":82,"value":1387}," - Build a stock market AI analyst in Bruin Cloud and connect it to a Slack AI agent.",{"type":76,"tag":101,"props":1389,"children":1390},{},[1391,1395],{"type":76,"tag":125,"props":1392,"children":1393},{},[1394],{"type":82,"value":761},{"type":82,"value":1396}," - Data professionals who want to deploy an AI analyst to Bruin Cloud and make it available in Slack.",{"type":76,"tag":101,"props":1398,"children":1399},{},[1400],{"type":76,"tag":125,"props":1401,"children":1402},{},[1403],{"type":82,"value":771},{"type":76,"tag":245,"props":1405,"children":1406},{},[1407,1417,1428,1433,1438],{"type":76,"tag":165,"props":1408,"children":1409},{},[1410,1415],{"type":76,"tag":276,"props":1411,"children":1413},{"href":1024,"rel":1412},[784],[1414],{"type":82,"value":1028},{"type":82,"value":1416}," installed and authenticated",{"type":76,"tag":165,"props":1418,"children":1419},{},[1420,1422],{"type":82,"value":1421},"Claude Code available for pipeline generation and ",{"type":76,"tag":1111,"props":1423,"children":1425},{"className":1424},[],[1426],{"type":82,"value":1427},"bruin ai enhance",{"type":76,"tag":165,"props":1429,"children":1430},{},[1431],{"type":82,"value":1432},"A Bruin Cloud account with access to Team settings and Projects",{"type":76,"tag":165,"props":1434,"children":1435},{},[1436],{"type":82,"value":1437},"A Git repo containing your Bruin project",{"type":76,"tag":165,"props":1439,"children":1440},{},[1441],{"type":82,"value":1442},"Slack workspace with bot credentials and channel access",{"type":76,"tag":790,"props":1444,"children":1445},{},[],{"type":76,"tag":77,"props":1447,"children":1448},{"id":108},[1449],{"type":82,"value":111},{"type":76,"tag":113,"props":1451,"children":1453},{"id":1452},"_1-initialise-the-bruin-project",[1454],{"type":82,"value":1455},"1) Initialise the Bruin project",{"type":76,"tag":245,"props":1457,"children":1458},{},[1459,1487,1500],{"type":76,"tag":165,"props":1460,"children":1461},{},[1462,1464,1470,1472,1478,1480,1486],{"type":82,"value":1463},"Run ",{"type":76,"tag":1111,"props":1465,"children":1467},{"className":1466},[],[1468],{"type":82,"value":1469},"bruin init empty \u003Cpipeline-name>",{"type":82,"value":1471},". If the current folder is already git-initialised, this creates ",{"type":76,"tag":1111,"props":1473,"children":1475},{"className":1474},[],[1476],{"type":82,"value":1477},"\u003Cpipeline-name>",{"type":82,"value":1479}," unless you pass ",{"type":76,"tag":1111,"props":1481,"children":1483},{"className":1482},[],[1484],{"type":82,"value":1485},"--in-place",{"type":82,"value":131},{"type":76,"tag":165,"props":1488,"children":1489},{},[1490,1492,1498],{"type":82,"value":1491},"If the current folder is not a git repo, Bruin creates a ",{"type":76,"tag":1111,"props":1493,"children":1495},{"className":1494},[],[1496],{"type":82,"value":1497},"bruin/",{"type":82,"value":1499}," folder first and then creates the project and pipeline inside it.",{"type":76,"tag":165,"props":1501,"children":1502},{},[1503,1505,1512,1513,1520],{"type":82,"value":1504},"For more context, see ",{"type":76,"tag":276,"props":1506,"children":1509},{"href":1507,"rel":1508},"https://getbruin.com/docs/bruin/core-concepts/project.html",[784],[1510],{"type":82,"value":1511},"Bruin project docs",{"type":82,"value":564},{"type":76,"tag":276,"props":1514,"children":1517},{"href":1515,"rel":1516},"https://youtu.be/YWDjnSxbBtY",[784],[1518],{"type":82,"value":1519},"video walkthrough",{"type":82,"value":131},{"type":76,"tag":113,"props":1522,"children":1524},{"id":1523},"_2-build-the-pipeline",[1525],{"type":82,"value":1526},"2) Build the pipeline",{"type":76,"tag":245,"props":1528,"children":1529},{},[1530,1535],{"type":76,"tag":165,"props":1531,"children":1532},{},[1533],{"type":82,"value":1534},"Use Claude to extract stock data from Yahoo Finance and Wikipedia.",{"type":76,"tag":165,"props":1536,"children":1537},{},[1538],{"type":82,"value":1539},"Build assets that clean and join the data.",{"type":76,"tag":113,"props":1541,"children":1543},{"id":1542},"_3-enhance-metadata",[1544],{"type":82,"value":1545},"3) Enhance metadata",{"type":76,"tag":245,"props":1547,"children":1548},{},[1549,1560,1574],{"type":76,"tag":165,"props":1550,"children":1551},{},[1552,1553,1558],{"type":82,"value":1463},{"type":76,"tag":1111,"props":1554,"children":1556},{"className":1555},[],[1557],{"type":82,"value":1427},{"type":82,"value":1559}," across the assets.",{"type":76,"tag":165,"props":1561,"children":1562},{},[1563,1565,1572],{"type":82,"value":1564},"See ",{"type":76,"tag":276,"props":1566,"children":1569},{"href":1567,"rel":1568},"https://getbruin.com/docs/bruin/commands/ai-enhance.html",[784],[1570],{"type":82,"value":1571},"AI enhance command",{"type":82,"value":1573}," for flag options.",{"type":76,"tag":165,"props":1575,"children":1576},{},[1577],{"type":82,"value":1578},"Confirm descriptions, column metadata, quality checks, and lineage look correct.",{"type":76,"tag":113,"props":1580,"children":1582},{"id":1581},"_4-add-the-repo-to-bruin-cloud",[1583],{"type":82,"value":1584},"4) Add the repo to Bruin Cloud",{"type":76,"tag":245,"props":1586,"children":1587},{},[1588,1593,1598,1603],{"type":76,"tag":165,"props":1589,"children":1590},{},[1591],{"type":82,"value":1592},"Go to Bruin Cloud, open Team settings, then Projects.",{"type":76,"tag":165,"props":1594,"children":1595},{},[1596],{"type":82,"value":1597},"Add the repo to the workspace.",{"type":76,"tag":165,"props":1599,"children":1600},{},[1601],{"type":82,"value":1602},"Enable the pipeline and run it.",{"type":76,"tag":165,"props":1604,"children":1605},{},[1606],{"type":82,"value":1607},"Confirm backfill runs and daily schedule work as expected.",{"type":76,"tag":113,"props":1609,"children":1611},{"id":1610},"_5-create-the-ai-agent-in-bruin-cloud",[1612],{"type":82,"value":1613},"5) Create the AI agent in Bruin Cloud",{"type":76,"tag":245,"props":1615,"children":1616},{},[1617,1622,1627,1632],{"type":76,"tag":165,"props":1618,"children":1619},{},[1620],{"type":82,"value":1621},"Go to Agents and create a new agent.",{"type":76,"tag":165,"props":1623,"children":1624},{},[1625],{"type":82,"value":1626},"Select the repo and pipeline.",{"type":76,"tag":165,"props":1628,"children":1629},{},[1630],{"type":82,"value":1631},"Add Slack credentials.",{"type":76,"tag":165,"props":1633,"children":1634},{},[1635],{"type":82,"value":1636},"Name the agent and select the target Slack channel.",{"type":76,"tag":113,"props":1638,"children":1640},{"id":1639},"_6-add-agent-instructions",[1641],{"type":82,"value":1642},"6) Add agent instructions",{"type":76,"tag":245,"props":1644,"children":1645},{},[1646,1659],{"type":76,"tag":165,"props":1647,"children":1648},{},[1649,1651,1657],{"type":82,"value":1650},"Create an ",{"type":76,"tag":1111,"props":1652,"children":1654},{"className":1653},[],[1655],{"type":82,"value":1656},"AGENTS.md",{"type":82,"value":1658}," file in the project root with pretext, context, rules, and instructions.",{"type":76,"tag":165,"props":1660,"children":1661},{},[1662,1664,1670,1672,1678],{"type":82,"value":1663},"Require ",{"type":76,"tag":1111,"props":1665,"children":1667},{"className":1666},[],[1668],{"type":82,"value":1669},"bruin query",{"type":82,"value":1671}," for all data access, and use ",{"type":76,"tag":1111,"props":1673,"children":1675},{"className":1674},[],[1676],{"type":82,"value":1677},"--dry-run",{"type":82,"value":1679}," while testing.",{"type":76,"tag":113,"props":1681,"children":1683},{"id":1682},"_7-test-in-bruin-cloud-ui",[1684],{"type":82,"value":1685},"7) Test in Bruin Cloud UI",{"type":76,"tag":245,"props":1687,"children":1688},{},[1689,1694],{"type":76,"tag":165,"props":1690,"children":1691},{},[1692],{"type":82,"value":1693},"Ask a few questions to verify the agent can query the data.",{"type":76,"tag":165,"props":1695,"children":1696},{},[1697],{"type":82,"value":1698},"Confirm it can self-correct when the first query is not correct.",{"type":76,"tag":113,"props":1700,"children":1702},{"id":1701},"_8-test-in-slack",[1703],{"type":82,"value":1704},"8) Test in Slack",{"type":76,"tag":245,"props":1706,"children":1707},{},[1708,1713,1718,1723],{"type":76,"tag":165,"props":1709,"children":1710},{},[1711],{"type":82,"value":1712},"Mention the agent in a Slack channel.",{"type":76,"tag":165,"props":1714,"children":1715},{},[1716],{"type":82,"value":1717},"Ask a stock market question.",{"type":76,"tag":165,"props":1719,"children":1720},{},[1721],{"type":82,"value":1722},"Open the generated SQL to validate the logic.",{"type":76,"tag":165,"props":1724,"children":1725},{},[1726],{"type":82,"value":1727},"Request a PDF report and confirm it is generated.",{"type":76,"tag":790,"props":1729,"children":1730},{},[],{"type":76,"tag":77,"props":1732,"children":1734},{"id":1733},"sample-prompts",[1735],{"type":82,"value":1736},"Sample prompts",{"type":76,"tag":245,"props":1738,"children":1739},{},[1740,1745],{"type":76,"tag":165,"props":1741,"children":1742},{},[1743],{"type":82,"value":1744},"\"Which companies had their free cash flow margin improve in the past 4 quarters but saw their stock price decrease more than 10% during the same period?\"",{"type":76,"tag":165,"props":1746,"children":1747},{},[1748],{"type":82,"value":1749},"\"Summarize the top 10 tickers by revenue growth and generate a PDF report.\"",{"type":76,"tag":790,"props":1751,"children":1752},{},[],{"type":76,"tag":77,"props":1754,"children":1755},{"id":929},[1756],{"type":82,"value":932},{"type":76,"tag":245,"props":1758,"children":1759},{},[1760,1769,1777,1787],{"type":76,"tag":165,"props":1761,"children":1762},{},[1763],{"type":76,"tag":276,"props":1764,"children":1766},{"href":1024,"rel":1765},[784],[1767],{"type":82,"value":1768},"Bruin installation",{"type":76,"tag":165,"props":1770,"children":1771},{},[1772],{"type":76,"tag":276,"props":1773,"children":1775},{"href":1567,"rel":1774},[784],[1776],{"type":82,"value":1571},{"type":76,"tag":165,"props":1778,"children":1779},{},[1780],{"type":76,"tag":276,"props":1781,"children":1784},{"href":1782,"rel":1783},"https://www.youtube.com/playlist?list=PLnRr-L-cuxO72ws5jYS8oyKMWs-AosgdP",[784],[1785],{"type":82,"value":1786},"Bruin core concepts videos",{"type":76,"tag":165,"props":1788,"children":1789},{},[1790],{"type":76,"tag":276,"props":1791,"children":1793},{"href":1366,"rel":1792},[784],[1794],{"type":82,"value":83},{"title":7,"searchDepth":34,"depth":34,"links":1796},[1797,1798,1808,1809],{"id":741,"depth":34,"text":347},{"id":108,"depth":34,"text":111,"children":1799},[1800,1801,1802,1803,1804,1805,1806,1807],{"id":1452,"depth":290,"text":1455},{"id":1523,"depth":290,"text":1526},{"id":1542,"depth":290,"text":1545},{"id":1581,"depth":290,"text":1584},{"id":1610,"depth":290,"text":1613},{"id":1639,"depth":290,"text":1642},{"id":1682,"depth":290,"text":1685},{"id":1701,"depth":290,"text":1704},{"id":1733,"depth":34,"text":1736},{"id":929,"depth":34,"text":932},"content:tutorials:cloud-slack.md","tutorials/cloud-slack.md","tutorials/cloud-slack",{"_path":1814,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":1815,"description":1816,"coverImage":1359,"date":973,"readingTime":1360,"category":60,"tags":1817,"difficulty":1364,"journeys":1820,"videoUrl":1366,"author":1821,"body":1822,"_type":36,"_id":2211,"_source":38,"_file":2212,"_stem":2213,"_extension":41},"/tutorials/slack-ai-analyst-stock-market","Connect a Slack AI Analyst to the Stock Market","Build a stock market AI analyst, deploy it to Bruin Cloud, and connect it to Slack so your team can ask data questions in natural language. \u003Ca href=\"https://join.slack.com/t/bruindatacommunity/shared_invite/zt-3rt3616ba-tUTTZWNZoVjB_QSSleDxAg\" target=\"_blank\" rel=\"noopener noreferrer\">Join our Slack and try out the agent for free\u003C/a>.",[1362,8,1363,1028,1818,1819],"Claude Code","Finance",[65,64],{"name":27,"role":28,"image":29},{"type":31,"children":1823,"toc":2195},[1824,1827,1831,1840,1849,1856,1885,1888,1894,1928,1931,1935,1941,1958,1964,1989,1995,2014,2020,2039,2045,2056,2062,2081,2084,2088,2099,2102,2108,2126,2129,2135,2153,2156,2160],{"type":76,"tag":85,"props":1825,"children":1826},{"width":87,"height":88,"src":1372,"title":1373,"frameBorder":91,"allow":92,"allowFullScreen":13},[],{"type":76,"tag":77,"props":1828,"children":1829},{"id":741},[1830],{"type":82,"value":347},{"type":76,"tag":101,"props":1832,"children":1833},{},[1834,1838],{"type":76,"tag":125,"props":1835,"children":1836},{},[1837],{"type":82,"value":751},{"type":82,"value":1839}," - Build a stock market AI analyst and connect it to Bruin Cloud and a Slack AI agent.",{"type":76,"tag":101,"props":1841,"children":1842},{},[1843,1847],{"type":76,"tag":125,"props":1844,"children":1845},{},[1846],{"type":82,"value":761},{"type":82,"value":1848}," - Data professionals, hobbyists, and financial analysts who want a Bruin Cloud and Slack workflow.",{"type":76,"tag":101,"props":1850,"children":1851},{},[1852],{"type":76,"tag":125,"props":1853,"children":1854},{},[1855],{"type":82,"value":771},{"type":76,"tag":245,"props":1857,"children":1858},{},[1859,1868,1873,1877,1881],{"type":76,"tag":165,"props":1860,"children":1861},{},[1862,1867],{"type":76,"tag":276,"props":1863,"children":1865},{"href":1024,"rel":1864},[784],[1866],{"type":82,"value":1028},{"type":82,"value":1416},{"type":76,"tag":165,"props":1869,"children":1870},{},[1871],{"type":82,"value":1872},"Claude Code available for pipeline generation and AI enhancements",{"type":76,"tag":165,"props":1874,"children":1875},{},[1876],{"type":82,"value":1432},{"type":76,"tag":165,"props":1878,"children":1879},{},[1880],{"type":82,"value":1437},{"type":76,"tag":165,"props":1882,"children":1883},{},[1884],{"type":82,"value":1442},{"type":76,"tag":790,"props":1886,"children":1887},{},[],{"type":76,"tag":77,"props":1889,"children":1891},{"id":1890},"high-level-flow",[1892],{"type":82,"value":1893},"High-level flow",{"type":76,"tag":161,"props":1895,"children":1896},{},[1897,1902,1913,1918,1923],{"type":76,"tag":165,"props":1898,"children":1899},{},[1900],{"type":82,"value":1901},"Build a Bruin project for stock market data using Claude.",{"type":76,"tag":165,"props":1903,"children":1904},{},[1905,1907,1912],{"type":82,"value":1906},"Enhance metadata with ",{"type":76,"tag":1111,"props":1908,"children":1910},{"className":1909},[],[1911],{"type":82,"value":1427},{"type":82,"value":131},{"type":76,"tag":165,"props":1914,"children":1915},{},[1916],{"type":82,"value":1917},"Add the repo to Bruin Cloud and enable the pipeline.",{"type":76,"tag":165,"props":1919,"children":1920},{},[1921],{"type":82,"value":1922},"Create an AI agent in Bruin Cloud and connect it to Slack.",{"type":76,"tag":165,"props":1924,"children":1925},{},[1926],{"type":82,"value":1927},"Ask questions in Slack, review SQL, and export a PDF report.",{"type":76,"tag":790,"props":1929,"children":1930},{},[],{"type":76,"tag":77,"props":1932,"children":1933},{"id":108},[1934],{"type":82,"value":111},{"type":76,"tag":113,"props":1936,"children":1938},{"id":1937},"_1-build-the-project",[1939],{"type":82,"value":1940},"1) Build the project",{"type":76,"tag":245,"props":1942,"children":1943},{},[1944,1949,1953],{"type":76,"tag":165,"props":1945,"children":1946},{},[1947],{"type":82,"value":1948},"Create a new Bruin project.",{"type":76,"tag":165,"props":1950,"children":1951},{},[1952],{"type":82,"value":1534},{"type":76,"tag":165,"props":1954,"children":1955},{},[1956],{"type":82,"value":1957},"Build reports that clean and join the data.",{"type":76,"tag":113,"props":1959,"children":1961},{"id":1960},"_2-enhance-metadata",[1962],{"type":82,"value":1963},"2) Enhance metadata",{"type":76,"tag":245,"props":1965,"children":1966},{},[1967,1985],{"type":76,"tag":165,"props":1968,"children":1969},{},[1970,1971,1976,1978,1984],{"type":82,"value":1463},{"type":76,"tag":1111,"props":1972,"children":1974},{"className":1973},[],[1975],{"type":82,"value":1427},{"type":82,"value":1977}," across the assets. See ",{"type":76,"tag":276,"props":1979,"children":1982},{"href":1980,"rel":1981},"https://getbruin.com/docs/bruin/commands/ai-enhance.html#ai-enhance-command",[784],[1983],{"type":82,"value":1571},{"type":82,"value":131},{"type":76,"tag":165,"props":1986,"children":1987},{},[1988],{"type":82,"value":1578},{"type":76,"tag":113,"props":1990,"children":1992},{"id":1991},"_3-add-the-repo-to-bruin-cloud",[1993],{"type":82,"value":1994},"3) Add the repo to Bruin Cloud",{"type":76,"tag":245,"props":1996,"children":1997},{},[1998,2002,2006,2010],{"type":76,"tag":165,"props":1999,"children":2000},{},[2001],{"type":82,"value":1592},{"type":76,"tag":165,"props":2003,"children":2004},{},[2005],{"type":82,"value":1597},{"type":76,"tag":165,"props":2007,"children":2008},{},[2009],{"type":82,"value":1602},{"type":76,"tag":165,"props":2011,"children":2012},{},[2013],{"type":82,"value":1607},{"type":76,"tag":113,"props":2015,"children":2017},{"id":2016},"_4-create-the-ai-agent-in-bruin-cloud",[2018],{"type":82,"value":2019},"4) Create the AI agent in Bruin Cloud",{"type":76,"tag":245,"props":2021,"children":2022},{},[2023,2027,2031,2035],{"type":76,"tag":165,"props":2024,"children":2025},{},[2026],{"type":82,"value":1621},{"type":76,"tag":165,"props":2028,"children":2029},{},[2030],{"type":82,"value":1626},{"type":76,"tag":165,"props":2032,"children":2033},{},[2034],{"type":82,"value":1631},{"type":76,"tag":165,"props":2036,"children":2037},{},[2038],{"type":82,"value":1636},{"type":76,"tag":113,"props":2040,"children":2042},{"id":2041},"_5-test-in-ai-agent-in-bruin-cloud-ui",[2043],{"type":82,"value":2044},"5) Test in AI Agent in Bruin Cloud UI",{"type":76,"tag":245,"props":2046,"children":2047},{},[2048,2052],{"type":76,"tag":165,"props":2049,"children":2050},{},[2051],{"type":82,"value":1693},{"type":76,"tag":165,"props":2053,"children":2054},{},[2055],{"type":82,"value":1698},{"type":76,"tag":113,"props":2057,"children":2059},{"id":2058},"_6-test-in-slack",[2060],{"type":82,"value":2061},"6) Test in Slack",{"type":76,"tag":245,"props":2063,"children":2064},{},[2065,2069,2073,2077],{"type":76,"tag":165,"props":2066,"children":2067},{},[2068],{"type":82,"value":1712},{"type":76,"tag":165,"props":2070,"children":2071},{},[2072],{"type":82,"value":1717},{"type":76,"tag":165,"props":2074,"children":2075},{},[2076],{"type":82,"value":1722},{"type":76,"tag":165,"props":2078,"children":2079},{},[2080],{"type":82,"value":1727},{"type":76,"tag":790,"props":2082,"children":2083},{},[],{"type":76,"tag":77,"props":2085,"children":2086},{"id":1733},[2087],{"type":82,"value":1736},{"type":76,"tag":245,"props":2089,"children":2090},{},[2091,2095],{"type":76,"tag":165,"props":2092,"children":2093},{},[2094],{"type":82,"value":1744},{"type":76,"tag":165,"props":2096,"children":2097},{},[2098],{"type":82,"value":1749},{"type":76,"tag":790,"props":2100,"children":2101},{},[],{"type":76,"tag":77,"props":2103,"children":2105},{"id":2104},"sample-outputs",[2106],{"type":82,"value":2107},"Sample outputs",{"type":76,"tag":245,"props":2109,"children":2110},{},[2111,2116,2121],{"type":76,"tag":165,"props":2112,"children":2113},{},[2114],{"type":82,"value":2115},"A response in Bruin Cloud UI with query results.",{"type":76,"tag":165,"props":2117,"children":2118},{},[2119],{"type":82,"value":2120},"SQL query logs for the Slack questions.",{"type":76,"tag":165,"props":2122,"children":2123},{},[2124],{"type":82,"value":2125},"A PDF report generated in Slack.",{"type":76,"tag":790,"props":2127,"children":2128},{},[],{"type":76,"tag":77,"props":2130,"children":2132},{"id":2131},"troubleshooting",[2133],{"type":82,"value":2134},"Troubleshooting",{"type":76,"tag":245,"props":2136,"children":2137},{},[2138,2143,2148],{"type":76,"tag":165,"props":2139,"children":2140},{},[2141],{"type":82,"value":2142},"Pipeline not visible in Bruin Cloud: confirm the repo is linked and the pipeline is enabled.",{"type":76,"tag":165,"props":2144,"children":2145},{},[2146],{"type":82,"value":2147},"AI enhance missing metadata: ensure the warehouse connection is valid and reachable.",{"type":76,"tag":165,"props":2149,"children":2150},{},[2151],{"type":82,"value":2152},"Slack agent not responding: verify bot token, channel access, and agent configuration.",{"type":76,"tag":790,"props":2154,"children":2155},{},[],{"type":76,"tag":77,"props":2157,"children":2158},{"id":929},[2159],{"type":82,"value":932},{"type":76,"tag":245,"props":2161,"children":2162},{},[2163,2171,2179,2187],{"type":76,"tag":165,"props":2164,"children":2165},{},[2166],{"type":76,"tag":276,"props":2167,"children":2169},{"href":1024,"rel":2168},[784],[2170],{"type":82,"value":1768},{"type":76,"tag":165,"props":2172,"children":2173},{},[2174],{"type":76,"tag":276,"props":2175,"children":2177},{"href":1980,"rel":2176},[784],[2178],{"type":82,"value":1571},{"type":76,"tag":165,"props":2180,"children":2181},{},[2182],{"type":76,"tag":276,"props":2183,"children":2185},{"href":1782,"rel":2184},[784],[2186],{"type":82,"value":1786},{"type":76,"tag":165,"props":2188,"children":2189},{},[2190],{"type":76,"tag":276,"props":2191,"children":2193},{"href":1366,"rel":2192},[784],[2194],{"type":82,"value":83},{"title":7,"searchDepth":34,"depth":34,"links":2196},[2197,2198,2199,2207,2208,2209,2210],{"id":741,"depth":34,"text":347},{"id":1890,"depth":34,"text":1893},{"id":108,"depth":34,"text":111,"children":2200},[2201,2202,2203,2204,2205,2206],{"id":1937,"depth":290,"text":1940},{"id":1960,"depth":290,"text":1963},{"id":1991,"depth":290,"text":1994},{"id":2016,"depth":290,"text":2019},{"id":2041,"depth":290,"text":2044},{"id":2058,"depth":290,"text":2061},{"id":1733,"depth":34,"text":1736},{"id":2104,"depth":34,"text":2107},{"id":2131,"depth":34,"text":2134},{"id":929,"depth":34,"text":932},"content:tutorials:slack-ai-analyst-stock-market.md","tutorials/slack-ai-analyst-stock-market.md","tutorials/slack-ai-analyst-stock-market",1777543865168]