<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RudderStack Docs – How to Work with Rudder Lookout</title><link>https://www.rudderstack.com/docs/lookout/working-with-lookout/</link><description>Recent content in How to Work with Rudder Lookout on RudderStack Docs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://www.rudderstack.com/docs/lookout/working-with-lookout/index.xml" rel="self" type="application/rss+xml"/><item><title>Lookout: How to Chat and Ask Questions to Rudder Lookout</title><link>https://www.rudderstack.com/docs/lookout/working-with-lookout/chat/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/lookout/working-with-lookout/chat/</guid><description>
&lt;p>Chat is the primary surface in Lookout and the entry point for almost everything else. You ask a question in plain English, and the Lookout agent inspects your data, runs a read-only query, and returns a durable chart or table.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="ask-a-question" data-heading="Ask a question" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/chat/" data-title="How to Chat and Ask Questions to Rudder Lookout" -->
&lt;h2 id="ask-a-question">Ask a question&lt;/h2>&lt;p>Open a new chat and describe what you want to know — for example:&lt;/p>
&lt;blockquote>
&lt;p>How many signups did we get last week, by source?&lt;/p>
&lt;/blockquote>
&lt;p>The agent:&lt;/p>
&lt;ol>
&lt;li>Inspects the relevant tables and schema in your connected warehouse&lt;/li>
&lt;li>Writes read-only SQL to answer the question&lt;/li>
&lt;li>Runs the query against your warehouse and returns the result as a chart or table in the conversation&lt;/li>
&lt;/ol>
&lt;p>Because the agent reasons over your actual data journey — events, Tracking Plans, and the warehouse they land in — its answers are grounded in how your data really moves, not guessed from table names alone.&lt;/p>
&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">&lt;p>Warehouse access is &lt;strong>read-only&lt;/strong>. The agent can list tables, inspect schema, and run queries, but it can&amp;rsquo;t write to or change your data.&lt;/p>
&lt;p>See &lt;a href="https://www.rudderstack.com/docs/lookout/integrations/warehouses/" >Warehouses&lt;/a> for more details.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="results-are-durable" data-heading="Results are durable" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/chat/" data-title="How to Chat and Ask Questions to Rudder Lookout" -->
&lt;h2 id="results-are-durable">Results are durable&lt;/h2>&lt;p>The charts and tables the agent produces are saved as durable bubbles in the transcript — they are results you can return to. From there you can:&lt;/p>
&lt;ul>
&lt;li>Ask follow-up questions to refine or re-scope the answer&lt;/li>
&lt;li>Save the answer as a &lt;a href="https://www.rudderstack.com/docs/lookout/working-with-lookout/dashboards/" >dashboard&lt;/a> for repeated use&lt;/li>
&lt;li>Move from a warehouse number to the tracking-plan definition behind it, to the instrumentation code that emits it — all in the same conversation&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="beyond-questions" data-heading="Beyond questions" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/chat/" data-title="How to Chat and Ask Questions to Rudder Lookout" -->
&lt;h2 id="beyond-questions">Beyond questions&lt;/h2>&lt;p>The same chat surface is where you drive the rest of Lookout. Depending on what your workspace has connected, you can ask the Lookout agent to:&lt;/p>
&lt;ul>
&lt;li>Build and edit &lt;a href="https://www.rudderstack.com/docs/lookout/working-with-lookout/dashboards/" >dashboards&lt;/a>&lt;/li>
&lt;li>Reference the generated &lt;a href="https://www.rudderstack.com/docs/lookout/working-with-lookout/context-hub/" >documentation&lt;/a> of how your events are instrumented to ground its answers (Generating that documentation happens in the Context Hub, not from chat)&lt;/li>
&lt;li>Draft &lt;a href="https://www.rudderstack.com/docs/lookout/working-with-lookout/measurement-plans/" >Measurement Plans&lt;/a> for tracking changes&lt;/li>
&lt;li>Explore your GitHub and GitLab repositories and propose changes as pull requests&lt;/li>
&lt;li>Read and manage your &lt;a href="https://www.rudderstack.com/docs/lookout/integrations/rudderstack/" >RudderStack&lt;/a> resources, including sources, destinations, transformations, Tracking Plans, and Audiences&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="chat-from-slack" data-heading="Chat from Slack" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/chat/" data-title="How to Chat and Ask Questions to Rudder Lookout" -->
&lt;h2 id="chat-from-slack">Chat from Slack&lt;/h2>&lt;p>You can talk to the same agent from Slack — by direct message or in a bound channel — without opening the web app. See &lt;a href="https://www.rudderstack.com/docs/lookout/integrations/slack/" >Slack&lt;/a>.&lt;/p>
&lt;br /></description></item><item><title>Lookout: How to Build Dashboards with Rudder Lookout</title><link>https://www.rudderstack.com/docs/lookout/working-with-lookout/dashboards/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/lookout/working-with-lookout/dashboards/</guid><description>
&lt;p>A &lt;strong>dashboard&lt;/strong> turns an ad-hoc answer into something your team keeps. Dashboards are built and iterated on in chat, each has its own link inside your workspace, and they re-run their queries fresh on every load — so a dashboard always reflects current data.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/lookout/dashboard.png" href="https://www.rudderstack.com/docs/docs/images/lookout/dashboard.png"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/lookout/dashboard.png"
alt="A Lookout dashboard with metric and chart panels"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="build-a-dashboard-from-chat" data-heading="Build a dashboard from chat" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/dashboards/" data-title="How to Build Dashboards with Rudder Lookout" -->
&lt;h2 id="build-a-dashboard-from-chat">Build a dashboard from chat&lt;/h2>&lt;p>When an answer is worth keeping, ask the agent to save it as a dashboard panel. The agent writes a dashboard specification, its parameters and panels, and gives it a slug-addressed URL inside your workspace.&lt;/p>
&lt;p>You can keep refining a dashboard conversationally — ask the agent to add a panel, change a grouping, or adjust a filter, and it edits the dashboard in place.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="panel-types" data-heading="Panel types" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/dashboards/" data-title="How to Build Dashboards with Rudder Lookout" -->
&lt;h2 id="panel-types">Panel types&lt;/h2>&lt;p>A dashboard is made up of panels. Lookout supports four panel types:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Panel&lt;/th>
&lt;th>&lt;div style="width: 350px;">Best for&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Chart&lt;/strong>&lt;/td>
&lt;td>Trends and comparisons over time or across categories&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Table&lt;/strong>&lt;/td>
&lt;td>Row-level detail and breakdowns&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Metric&lt;/strong>&lt;/td>
&lt;td>A single headline number, such as a total or a rate&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Funnel&lt;/strong>&lt;/td>
&lt;td>Step-by-step conversion through a sequence of events&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="parameters-and-filters" data-heading="Parameters and filters" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/dashboards/" data-title="How to Build Dashboards with Rudder Lookout" -->
&lt;h2 id="parameters-and-filters">Parameters and filters&lt;/h2>&lt;p>Every dashboard carries parameters that let viewers re-scope the data without editing it:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Time range&lt;/strong>: Always present, so any viewer can change the window the dashboard covers.&lt;/li>
&lt;li>&lt;strong>Filters&lt;/strong>: Optional single-select and multi-select filters you can add to narrow the data.&lt;/li>
&lt;/ul>
&lt;p>Because dashboards re-run their queries on every load, changing a parameter always pulls current numbers rather than cached ones.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="live-data-nothing-cached" data-heading="Live data, nothing cached" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/dashboards/" data-title="How to Build Dashboards with Rudder Lookout" -->
&lt;h2 id="live-data-nothing-cached">Live data, nothing cached&lt;/h2>&lt;p>Dashboards store their &lt;strong>definition&lt;/strong>, not their data. Each time a dashboard loads, its queries run again against your warehouse, and no result rows are cached. This keeps dashboards current and means your warehouse data stays in your warehouse.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="share-a-dashboard" data-heading="Share a dashboard" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/dashboards/" data-title="How to Build Dashboards with Rudder Lookout" -->
&lt;h2 id="share-a-dashboard">Share a dashboard&lt;/h2>&lt;p>Dashboards are visible to everyone in your workspace by default. You can also publish a read-only version to people outside the workspace via a public link.&lt;/p>
&lt;p>See &lt;a href="https://www.rudderstack.com/docs/lookout/working-with-lookout/sharing/" >How to Share Dashboards&lt;/a> for more details.&lt;/p>
&lt;br /></description></item><item><title>Lookout: How to Share Lookout Dashboards</title><link>https://www.rudderstack.com/docs/lookout/working-with-lookout/sharing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/lookout/working-with-lookout/sharing/</guid><description>
&lt;p>Most work in Lookout stays inside your workspace and is visible only to its members. When you want to show something to people outside the team, you can publish a read-only &lt;strong>public dashboard&lt;/strong>, protected by an unguessable link.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="share-within-your-workspace" data-heading="Share within your workspace" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/sharing/" data-title="How to Share Lookout Dashboards" -->
&lt;h2 id="share-within-your-workspace">Share within your workspace&lt;/h2>&lt;p>Every dashboard is visible to everyone in your workspace by default. Use the &lt;strong>Share&lt;/strong> menu on a dashboard to confirm workspace visibility or to create a public link.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/lookout/dashboard-public-view.png" href="https://www.rudderstack.com/docs/docs/images/lookout/dashboard-public-view.png"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/lookout/dashboard-public-view.png"
alt="The dashboard share menu showing workspace and public link options"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="public-dashboards" data-heading="Public dashboards" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/sharing/" data-title="How to Share Lookout Dashboards" -->
&lt;h2 id="public-dashboards">Public dashboards&lt;/h2>&lt;p>A dashboard can be published to a public link that anyone can open &lt;strong>without signing in&lt;/strong>. The public dashboard re-runs its queries on each load, so viewers always see current numbers.&lt;/p>
&lt;p>Note that:&lt;/p>
&lt;ul>
&lt;li>The link is protected by a secret share token.&lt;/li>
&lt;li>The public view is &lt;strong>read-only&lt;/strong> — viewers can&amp;rsquo;t edit the dashboard or act on your team&amp;rsquo;s behalf.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="public-sharing-policy" data-heading="Public sharing policy" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/sharing/" data-title="How to Share Lookout Dashboards" -->
&lt;h2 id="public-sharing-policy">Public sharing policy&lt;/h2>&lt;p>Publishing to a public link is gated by a workspace setting. An Admin can enable public sharing under &lt;strong>Settings&lt;/strong> &amp;gt; &lt;strong>General&lt;/strong> &amp;gt; &lt;strong>Public sharing&lt;/strong>.&lt;/p>
&lt;p>When the &lt;strong>Allow public dashboard links&lt;/strong> setting is off, existing public links are unavailable until it is enabled again.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/lookout/dashboard-share-admin.png" href="https://www.rudderstack.com/docs/docs/images/lookout/dashboard-share-admin.png"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/lookout/dashboard-share-admin.png"
alt="The public sharing setting in workspace settings"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">&lt;p>&lt;strong>A public link means unauthenticated access&lt;/strong>&lt;/p>
&lt;p>Anyone who holds a public dashboard link can view it — there is no per-viewer login, only the secret token in the URL. Because a public dashboard can expose warehouse query results, treat publishing as a deliberate decision and share the link accordingly.&lt;/p>
&lt;p>Everything else in your workspace stays members-only.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;p>See &lt;a href="https://www.rudderstack.com/docs/lookout/workspaces/roles/" >Roles and Permissions&lt;/a> for more details on how guest and public access fit into the workspace model.&lt;/p>
&lt;br /></description></item><item><title>Lookout: Lookout Context Hub</title><link>https://www.rudderstack.com/docs/lookout/working-with-lookout/context-hub/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/lookout/working-with-lookout/context-hub/</guid><description>
&lt;p>The &lt;strong>Context Hub&lt;/strong> is your workspace&amp;rsquo;s knowledge store. It holds what your team and the agent have learned, so the agent can pull it into later conversations for grounded answers and your team can find what was figured out earlier.&lt;/p>
&lt;p>In the workspace sidebar, the Context Hub appears under &lt;strong>Context&lt;/strong>.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/lookout/context-hub.png" href="https://www.rudderstack.com/docs/docs/images/lookout/context-hub.png"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/lookout/context-hub.png"
alt="The Context Hub showing generated docs, notes, and memories"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="what-it-holds" data-heading="What it holds" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/context-hub/" data-title="Lookout Context Hub" -->
&lt;h2 id="what-it-holds">What it holds&lt;/h2>&lt;p>The Context Hub combines three kinds of items, all searchable together:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Generated documentation&lt;/strong>: AI-generated descriptions of how your sources and events are instrumented&lt;/li>
&lt;li>&lt;strong>Team notes&lt;/strong>: Knowledge your team shares manually&lt;/li>
&lt;li>&lt;strong>Memories&lt;/strong>: Facts the agent captures from conversations so it can remember them later&lt;/li>
&lt;/ul>
&lt;p>The Context Hub page has a &lt;strong>keyword search&lt;/strong> box for finding an item by name or text. When the agent searches the hub during a conversation, it uses a richer &lt;strong>hybrid&lt;/strong> search that combines keyword and meaning-based matching.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="generated-instrumentation-documentation" data-heading="Generated instrumentation documentation" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/context-hub/" data-title="Lookout Context Hub" -->
&lt;h2 id="generated-instrumentation-documentation">Generated instrumentation documentation&lt;/h2>&lt;p>To understand what a codebase actually tracks, Lookout generates a structured document describing the RudderStack events and properties it finds in a linked repository. It clones the repository into an isolated sandbox, scans for analytics calls, and produces a document that lives in the Context Hub alongside your notes and the agent&amp;rsquo;s memories.&lt;/p>
&lt;p>This documentation is generated from your source control, not from chat. It is produced when:&lt;/p>
&lt;ul>
&lt;li>You select &lt;strong>Generate Context&lt;/strong> or regenerate an existing document in the Context Hub.&lt;/li>
&lt;li>A push lands on the &lt;strong>default branch&lt;/strong> of a linked &lt;a href="https://www.rudderstack.com/docs/lookout/integrations/github/" >&lt;strong>GitHub&lt;/strong>&lt;/a> repository that has documentation enabled. Lookout refreshes the affected docs automatically.&lt;/li>
&lt;/ul>
&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">&lt;p>Automatic push-triggered refresh applies to &lt;strong>GitHub&lt;/strong> only.&lt;/p>
&lt;p>For &lt;a href="https://www.rudderstack.com/docs/lookout/integrations/gitlab/" >&lt;strong>GitLab&lt;/strong>&lt;/a>-linked sources, regenerate the documentation manually from the Context Hub. In chat, the agent can read these generated docs to ground its answers, but it doesn&amp;rsquo;t generate them.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="notes-and-memory" data-heading="Notes and memory" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/context-hub/" data-title="Lookout Context Hub" -->
&lt;h2 id="notes-and-memory">Notes and memory&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Notes&lt;/strong> are written by your team and are a good place to capture conventions, definitions, and context you want the agent to use.&lt;/li>
&lt;li>&lt;strong>Memories&lt;/strong> are captured by the agent during conversations. You control whether the agent captures memory with the &lt;strong>memory capture&lt;/strong> setting, and captured memories appear in the Context Hub where you can review them.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="skills-slash-commands" data-heading="Skills (slash commands)" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/context-hub/" data-title="Lookout Context Hub" -->
&lt;h2 id="skills-slash-commands">Skills (slash commands)&lt;/h2>&lt;p>A team note can be promoted to a &lt;strong>skill&lt;/strong> — a reusable instruction set the agent follows for a particular task. To use one, type &lt;code>/&lt;/code> in the chat composer and pick the skill; its instructions are added to your prompt before the agent runs.&lt;/p>
&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">Skills are a good way to standardize a repeated task — a recurring analysis, a documentation format, or a review checklist — so anyone on the team gets a consistent result.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="admin-controls" data-heading="Admin controls" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/context-hub/" data-title="Lookout Context Hub" -->
&lt;h2 id="admin-controls">Admin controls&lt;/h2>&lt;p>A workspace Admin can control what knowledge the agent can use and save, from the controls at the top of the Context Hub, for example, whether the agent draws on team notes and memories, whether it uses generated context, and whether it captures new memories from chat.&lt;/p>
&lt;p>All members can see these controls. However, only admins can change them.&lt;/p>
&lt;p>See &lt;a href="https://www.rudderstack.com/docs/lookout/working-with-lookout/chat/" >Chat and Ask Questions&lt;/a> for more details on how the agent draws on this context during a conversation.&lt;/p>
&lt;br /></description></item><item><title>Lookout: How to Create Measurement Plans</title><link>https://www.rudderstack.com/docs/lookout/working-with-lookout/measurement-plans/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/lookout/working-with-lookout/measurement-plans/</guid><description>
&lt;p>A &lt;strong>measurement plan&lt;/strong> captures what your team wants to track and carries it through a reviewed lifecycle — from a draft definition to instrumentation code proposed as pull requests. It is how you go from &amp;ldquo;we should be tracking this&amp;rdquo; to a concrete, reviewable change without writing the instrumentation by hand.&lt;/p>
&lt;p>In the workspace sidebar, measurement plans appear under &lt;strong>Plans&lt;/strong>.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/lookout/measurement-plans.png" href="https://www.rudderstack.com/docs/docs/images/lookout/measurement-plans.png"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/lookout/measurement-plans.png"
alt="A measurement plan with its events and properties"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="create-a-plan" data-heading="Create a plan" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/measurement-plans/" data-title="How to Create Measurement Plans" -->
&lt;h2 id="create-a-plan">Create a plan&lt;/h2>&lt;ol>
&lt;li>&lt;strong>Draft the plan&lt;/strong>: From chat, describe the tracking you want — the events and properties that should be captured. The agent saves and refines this as a measurement plan.&lt;/li>
&lt;/ol>
&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">From chat, the agent can only &lt;strong>save, update, and manage&lt;/strong> a plan — it can&amp;rsquo;t implement it.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;ol start="2">
&lt;li>&lt;strong>Review and approve&lt;/strong>: A person reviews the plan and approves it. Nothing is implemented until this human-gated step.&lt;/li>
&lt;li>&lt;strong>Generate the pull requests&lt;/strong>: Approval alone doesn&amp;rsquo;t start implementation — a person clicks &lt;strong>Generate PRs&lt;/strong> and confirms. This action launches the instrumentation agent and moves the plan to the implementation state.&lt;/li>
&lt;li>&lt;strong>The instrumentation agent opens pull requests&lt;/strong>: Once started, a background agent works each repository linked to the plan, writes the code changes, and opens a pull request for each one.&lt;/li>
&lt;li>&lt;strong>Review and merge&lt;/strong>: The pull requests sit in your normal code-review process. You can review and merge them like any other change.&lt;/li>
&lt;/ol>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="the-plan-lifecycle" data-heading="The plan lifecycle" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/measurement-plans/" data-title="How to Create Measurement Plans" -->
&lt;h2 id="the-plan-lifecycle">The plan lifecycle&lt;/h2>&lt;p>A measurement plan moves through clear states so you always know where it stands:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>State&lt;/th>
&lt;th>&lt;div style="width: 350px;">Meaning&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Draft&lt;/strong>&lt;/td>
&lt;td>The plan is being defined and refined&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Approved&lt;/strong>&lt;/td>
&lt;td>A person has approved the plan. It is ready to implement, but the instrumentation agent doesn&amp;rsquo;t start until someone selects &lt;strong>Generate PRs&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Implementing&lt;/strong>&lt;/td>
&lt;td>&lt;strong>Generate PRs&lt;/strong> has been triggered — the background agent is generating code and opening pull requests&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Implemented&lt;/strong>&lt;/td>
&lt;td>The pull requests have been opened&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Partial failure&lt;/strong>&lt;/td>
&lt;td>The agent implemented some repositories but couldn&amp;rsquo;t complete others&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Verified&lt;/strong>&lt;/td>
&lt;td>A person has marked the plan as verified after reviewing the merged pull requests. This is a manual step — merging a pull request doesn&amp;rsquo;t move the plan to verified on its own&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="why-it-is-split-this-way" data-heading="Why it is split this way" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/measurement-plans/" data-title="How to Create Measurement Plans" -->
&lt;h2 id="why-it-is-split-this-way">Why it is split this way&lt;/h2>&lt;p>The agent &lt;strong>proposes&lt;/strong>, a human &lt;strong>approves&lt;/strong>, and a background worker &lt;strong>implements&lt;/strong>. This process keeps a person in the loop before any code reaches a repository.&lt;/p>
&lt;ul>
&lt;li>From chat, the agent can only save and manage a plan — it can&amp;rsquo;t set one running.&lt;/li>
&lt;li>Turning an approved plan into real code is a separate, human-gated step. Someone must explicitly select &lt;strong>Generate PRs&lt;/strong> to start the instrumentation agent.&lt;/li>
&lt;li>Every change lands as a pull request you review and merge, not a commit pushed straight to your main branch.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="how-lookout-finds-the-right-repository" data-heading="How Lookout finds the right repository" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/measurement-plans/" data-title="How to Create Measurement Plans" -->
&lt;h2 id="how-lookout-finds-the-right-repository">How Lookout finds the right repository&lt;/h2>&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">&lt;p>A measurement plan needs a connected &lt;a href="https://www.rudderstack.com/docs/lookout/integrations/github/" >GitHub&lt;/a> repository for the instrumentation agent to open pull requests against, and a &lt;a href="https://www.rudderstack.com/docs/lookout/integrations/sources/" >source-to-repository mapping&lt;/a> so Lookout knows which repository to use.&lt;/p>
&lt;p>GitLab repositories are &lt;strong>not supported currently&lt;/strong> for measurement plan PR generation.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;p>To open a pull request, Lookout needs to know which repository instruments a given source. That comes from your &lt;a href="https://www.rudderstack.com/docs/lookout/integrations/sources/" >source-to-repository mappings&lt;/a> — each RudderStack source is mapped to the GitHub or GitLab repository (and subfolder) where its events are instrumented.&lt;/p>
&lt;p>When you ask to capture a new event, Lookout identifies the source the event belongs to, looks up the repository mapped to it, and targets the instrumentation pull request at the right codebase — without you having to specify where the code lives.&lt;/p>
&lt;br /></description></item><item><title>Lookout: How Lookout Manages PR and MR Reviews</title><link>https://www.rudderstack.com/docs/lookout/working-with-lookout/pr-mr-review/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/lookout/working-with-lookout/pr-mr-review/</guid><description>
&lt;p>Lookout can automatically review incoming pull requests (GitHub) and merge requests (GitLab) for changes that would break your data contract — so a problem is caught in code review rather than discovered later in the warehouse.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="how-it-works" data-heading="How it works" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/pr-mr-review/" data-title="How Lookout Manages PR and MR Reviews" -->
&lt;h2 id="how-it-works">How it works&lt;/h2>&lt;p>When a pull or merge request is opened or updated in a connected repository, a review agent inspects the diff for changes that would break the data contract, like:&lt;/p>
&lt;ul>
&lt;li>Renamed or removed events&lt;/li>
&lt;li>Altered property types&lt;/li>
&lt;li>Dropped fields&lt;/li>
&lt;/ul>
&lt;p>It posts its findings back as review comments on the pull or merge request, right where your team is already reviewing the change.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="why-it-helps" data-heading="Why it helps" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/pr-mr-review/" data-title="How Lookout Manages PR and MR Reviews" -->
&lt;h2 id="why-it-helps">Why it helps&lt;/h2>&lt;p>Instrumentation drift is usually invisible until the data is already wrong — a renamed event or a dropped property quietly breaks a dashboard or a downstream sync days later. Reviewing the diff at code-review time moves that catch to the earliest possible point, where the change is still easy to fix.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="setup-requirements" data-heading="Setup requirements" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/working-with-lookout/pr-mr-review/" data-title="How Lookout Manages PR and MR Reviews" -->
&lt;h2 id="setup-requirements">Setup requirements&lt;/h2>&lt;p>An automated review depends on three requirements being in place:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>A connected repository&lt;/strong>: Install the GitHub App so Lookout receives pull-request events, or connect your GitLab instance so it receives merge-request events. See &lt;a href="https://www.rudderstack.com/docs/lookout/integrations/github/" >GitHub&lt;/a> and &lt;a href="https://www.rudderstack.com/docs/lookout/integrations/gitlab/" >GitLab&lt;/a> for details.&lt;/li>
&lt;li>&lt;strong>A source-to-repository mapping&lt;/strong>: The repository must be mapped to the RudderStack source it instruments, so Lookout knows which data contract to check. See &lt;a href="https://www.rudderstack.com/docs/lookout/integrations/sources/" >Sources&lt;/a> for more information.&lt;/li>
&lt;li>&lt;strong>Auto PR review enabled&lt;/strong>: The per-source &lt;strong>Auto PR review&lt;/strong> toggle (under &lt;strong>Settings&lt;/strong> &amp;gt; &lt;strong>Sources&lt;/strong>) must be on. An admin can turn it off for a source to stop reviews.&lt;/li>
&lt;/ul>
&lt;p>When these requirements are in place, review happens automatically on incoming pull and merge requests — no per-request action is needed.&lt;/p>
&lt;br /></description></item></channel></rss>