<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RudderStack Docs – Rudder Lookout Integrations</title><link>https://www.rudderstack.com/docs/lookout/integrations/</link><description>Recent content in Rudder Lookout Integrations on RudderStack Docs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://www.rudderstack.com/docs/lookout/integrations/index.xml" rel="self" type="application/rss+xml"/><item><title>Lookout: How to Connect a Warehouse to Lookout</title><link>https://www.rudderstack.com/docs/lookout/integrations/warehouses/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/lookout/integrations/warehouses/</guid><description>
&lt;p>The Lookout agent requires access to your data warehouse to answer questions about your data.&lt;/p>
&lt;p>The agent lists tables, inspects schema, and runs SQL to answer questions, build dashboards, and investigate your pipelines. The results flow straight into charts, tables, metrics, and funnels.&lt;/p>
&lt;p>Lookout supports the following warehouses:&lt;/p>
&lt;ul>
&lt;li>PostgreSQL&lt;/li>
&lt;li>Snowflake&lt;/li>
&lt;li>Redshift&lt;/li>
&lt;li>BigQuery&lt;/li>
&lt;li>Databricks&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="connect-a-warehouse" data-heading="Connect a warehouse" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/warehouses/" data-title="How to Connect a Warehouse to Lookout" -->
&lt;h2 id="connect-a-warehouse">Connect a warehouse&lt;/h2>&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">Only admins can connect, edit, and test a warehouse connection. See &lt;a href="https://www.rudderstack.com/docs/lookout/workspaces/roles/" >Roles and Permissions&lt;/a> for more information.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;ol>
&lt;li>Go to &lt;strong>Settings&lt;/strong> &amp;gt; &lt;strong>Warehouse&lt;/strong>.&lt;/li>
&lt;li>Select &lt;strong>Add account&lt;/strong> and choose your warehouse type.&lt;/li>
&lt;li>Enter the connection details and save.&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/lookout/settings-warehouse.png" href="https://www.rudderstack.com/docs/docs/images/lookout/settings-warehouse.png"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/lookout/settings-warehouse.png"
alt="Connected warehouses and unmapped destinations in Lookout settings"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;p>Note that:&lt;/p>
&lt;ul>
&lt;li>Connected warehouses appear at the top of the page.&lt;/li>
&lt;li>RudderStack destinations that are not yet mapped to a warehouse connection are listed under &lt;strong>Unmapped Destinations&lt;/strong>, so you can see at a glance what is available to connect.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="best-practices" data-heading="Best practices" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/warehouses/" data-title="How to Connect a Warehouse to Lookout" -->
&lt;h2 id="best-practices">Best practices&lt;/h2>&lt;p>Follow these best practices to ensure a smooth and secure connection to your warehouse.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="dedicated-read-only-service-account" data-heading="Dedicated read-only service account" data-level="3" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/warehouses/" data-title="How to Connect a Warehouse to Lookout" -->
&lt;h3 id="dedicated-read-only-service-account">Dedicated read-only service account&lt;/h3>&lt;p>For every warehouse, connect Lookout through a &lt;strong>dedicated service identity that has read-only access&lt;/strong> rather than reusing a person&amp;rsquo;s credentials or an account with broad privileges. This isolates RudderStack&amp;rsquo;s access to your warehouse, keeps it strictly read-only, and makes it easy to audit or revoke independently of anyone&amp;rsquo;s personal login.&lt;/p>
&lt;p>Each platform has its own name for this kind of identity, but the principle is the same — create an identity, grant it read-only access to the data Lookout needs, and use it for the connection:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Warehouse&lt;/th>
&lt;th>Identity to create&lt;/th>
&lt;th>&lt;div style="width: 250px;">Access to grant&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Snowflake&lt;/strong>&lt;/td>
&lt;td>Service user with a dedicated read-only role&lt;/td>
&lt;td>&lt;code>SELECT&lt;/code> on the relevant databases/schemas&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>BigQuery&lt;/strong>&lt;/td>
&lt;td>Service account&lt;/td>
&lt;td>Read-only roles (for example, Data Viewer + Job User)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Databricks&lt;/strong>&lt;/td>
&lt;td>Service principal&lt;/td>
&lt;td>Read-only grants on the relevant catalogs/schemas&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Redshift&lt;/strong>&lt;/td>
&lt;td>IAM service user / dedicated database user&lt;/td>
&lt;td>&lt;code>SELECT&lt;/code> on the relevant schemas&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>PostgreSQL&lt;/strong>&lt;/td>
&lt;td>Dedicated database role&lt;/td>
&lt;td>&lt;code>SELECT&lt;/code> (read-only) on the relevant schemas&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!DOCTYPE html>
&lt;html lang="en">
&lt;blockquote class="tip">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/tip.svg loading="lazy" alt="tip" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">&lt;strong>Tip:&lt;/strong>
Scope the grant to only the databases, schemas, and tables Lookout needs. Read-only, least-privilege access keeps the connection&amp;rsquo;s blast radius small.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;p>Note that creating a service account, role, or user, and granting it read-only access usually requires warehouse-administrator privileges. If you don&amp;rsquo;t manage your warehouse directly, reach out to your &lt;strong>Infra team&lt;/strong> to have it set up.&lt;/p>
&lt;p>The exact credentials and permissions each warehouse needs are shown on its connection page in &lt;strong>Settings&lt;/strong> &amp;gt; &lt;strong>Warehouse&lt;/strong>.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="allocate-and-isolate-compute" data-heading="Allocate and isolate compute" data-level="3" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/warehouses/" data-title="How to Connect a Warehouse to Lookout" -->
&lt;h3 id="allocate-and-isolate-compute">Allocate and isolate compute&lt;/h3>&lt;p>The following recommendations help Lookout respond quickly while keeping costs predictable. They are written with Snowflake in mind, but the same principles apply to other warehouses — the exact settings may differ:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Assign enough compute&lt;/strong>: Larger compute size means faster queries and quicker access to your data, which makes the agent feel more responsive.&lt;/li>
&lt;li>&lt;strong>Isolate the workload&lt;/strong>: Where possible, point Lookout at a &lt;strong>separate, dedicated compute resource&lt;/strong> rather than one shared with production jobs. This isolates Lookout&amp;rsquo;s usage for cleaner cost attribution and avoids competing with other workloads.&lt;/li>
&lt;li>&lt;strong>Auto-suspend aggressively&lt;/strong>: Configure the compute to shut down quickly when idle — for example, after &lt;strong>5 minutes of inactivity or less&lt;/strong>. Because Lookout&amp;rsquo;s usage is bursty, aggressive auto-suspend keeps costs low without affecting responsiveness.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="read-only-access" data-heading="Read-only access" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/warehouses/" data-title="How to Connect a Warehouse to Lookout" -->
&lt;h2 id="read-only-access">Read-only access&lt;/h2>&lt;p>Warehouse access is strictly &lt;strong>read-only&lt;/strong>. The agent can query and inspect your data, but it can&amp;rsquo;t write to or alter your warehouse.&lt;/p>
&lt;p>Note that:&lt;/p>
&lt;ul>
&lt;li>Dashboards store their &lt;strong>definition&lt;/strong>, not their data — they re-run their queries on every load and store no result rows on RudderStack&amp;rsquo;s servers&lt;/li>
&lt;li>Connection credentials are encrypted at rest&lt;/li>
&lt;/ul>
&lt;p>See &lt;a href="https://www.rudderstack.com/docs/lookout/security/" >Security and Data Handling&lt;/a> for more information.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="where-warehouse-data-is-used" data-heading="Where warehouse data is used" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/warehouses/" data-title="How to Connect a Warehouse to Lookout" -->
&lt;h2 id="where-warehouse-data-is-used">Where warehouse data is used&lt;/h2>&lt;p>Once a warehouse is connected, the same connection powers the following Lookout features:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/lookout/working-with-lookout/chat/" >Chat answers&lt;/a>: Natural-language questions answered with live queries&lt;/li>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/lookout/working-with-lookout/dashboards/" >Dashboards&lt;/a>: Panels that re-run their queries on every load&lt;/li>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/lookout/integrations/slack/" >Slack&lt;/a>: The same answers from a Slack DM or channel&lt;/li>
&lt;/ul></description></item><item><title>Lookout: How to Connect GitHub to Lookout</title><link>https://www.rudderstack.com/docs/lookout/integrations/github/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/lookout/integrations/github/</guid><description>
&lt;p>Connecting GitHub to Lookout allows the agent to explore repositories, review pull requests, and propose code changes as pull requests.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="connect-github" data-heading="Connect GitHub" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/github/" data-title="How to Connect GitHub to Lookout" -->
&lt;h2 id="connect-github">Connect GitHub&lt;/h2>&lt;p>Only admins can connect GitHub. Once connected, any member can use the repository tools in chat. See &lt;a href="https://www.rudderstack.com/docs/lookout/workspaces/roles/" >Roles and Permissions&lt;/a> for more details.&lt;/p>
&lt;ol>
&lt;li>From &lt;strong>Settings&lt;/strong> &amp;gt; &lt;strong>SCM&lt;/strong>, install the &lt;strong>Lookout GitHub App&lt;/strong> and grant it access to the repositories you want Lookout to work with.&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">Installing the app enables webhook-driven pull-request review and bot-authored pull requests.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;ol start="2">
&lt;li>Once the app is installed, map each repository to the RudderStack source it instruments under &lt;strong>Settings&lt;/strong> &amp;gt; &lt;strong>Sources&lt;/strong>, so Lookout knows which repository to use for review and instrumentation.&lt;/li>
&lt;/ol>
&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/integrations/github/" data-title="How to Connect GitHub to Lookout" -->
&lt;h2 id="how-it-works">How it works&lt;/h2>&lt;p>Once a GitHub connection is set up, the agent:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Explores repositories&lt;/strong>: Reads files, lists commits, searches code, and views pull-request diffs to understand how your data is instrumented.&lt;/li>
&lt;li>&lt;strong>Proposes changes&lt;/strong>: Authors branches and commits and opens pull requests for your team to review.&lt;/li>
&lt;li>&lt;strong>Automates pull-request review&lt;/strong>: When a pull request is opened or updated, Lookout reviews the diff for breaking data-contract changes and posts its findings as review comments. See &lt;a href="https://www.rudderstack.com/docs/lookout/working-with-lookout/pr-mr-review/" >PR and MR Review&lt;/a> for more details.&lt;/li>
&lt;li>&lt;strong>Implements pull requests&lt;/strong>: A background agent implements an approved &lt;a href="https://www.rudderstack.com/docs/lookout/working-with-lookout/measurement-plans/" >measurement plan&lt;/a> by opening pull requests against your linked repositories.&lt;/li>
&lt;/ul>
&lt;p>The agent&amp;rsquo;s code changes always arrive as &lt;strong>pull requests&lt;/strong> — proposals that sit in your normal review process. A human reviews and merges before anything lands on your main branch.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="how-changes-are-attributed" data-heading="How changes are attributed" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/github/" data-title="How to Connect GitHub to Lookout" -->
&lt;h2 id="how-changes-are-attributed">How changes are attributed&lt;/h2>&lt;p>Bot-authored commits and pull requests are made under the &lt;strong>Lookout GitHub App identity&lt;/strong>, so changes proposed by Lookout are clearly distinguishable from your team&amp;rsquo;s own commits in your GitHub history.&lt;/p>
&lt;br /></description></item><item><title>Lookout: How to Connect GitLab to Lookout</title><link>https://www.rudderstack.com/docs/lookout/integrations/gitlab/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/lookout/integrations/gitlab/</guid><description>
&lt;p>Connecting GitLab to Lookout allows the agent to explore repositories, propose merge requests, and review incoming changes — for both gitlab.com and self-hosted instances.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="connect-gitlab" data-heading="Connect GitLab" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/gitlab/" data-title="How to Connect GitLab to Lookout" -->
&lt;h2 id="connect-gitlab">Connect GitLab&lt;/h2>&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>Only admins can connect GitLab. Once connected, any member can use the repository tools in chat.&lt;/p>
&lt;p>See &lt;a href="https://www.rudderstack.com/docs/lookout/workspaces/roles/" >Roles and Permissions&lt;/a> for more details.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;p>Connect GitLab from &lt;strong>Settings&lt;/strong> &amp;gt; &lt;strong>SCM&lt;/strong> with a per-workspace access token.&lt;/p>
&lt;p>Note that:&lt;/p>
&lt;ul>
&lt;li>A workspace can hold several connections (one per GitLab instance), so the same project path can exist on multiple instances without collision.&lt;/li>
&lt;li>Each connection stores its own encrypted token.&lt;/li>
&lt;li>Lookout supports both gitlab.com and self-hosted instances.&lt;/li>
&lt;/ul>
&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/integrations/gitlab/" data-title="How to Connect GitLab to Lookout" -->
&lt;h2 id="how-it-works">How it works&lt;/h2>&lt;p>Once a GitLab connection is set up, the agent:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Explores repositories&lt;/strong>: Browses files, lists commits, searches code, and views merge-request diffs.&lt;/li>
&lt;li>&lt;strong>Proposes changes&lt;/strong>: Authors commits and opens merge requests for review.&lt;/li>
&lt;li>&lt;strong>Automates merge-request review&lt;/strong>: When a merge request is opened or updated, Lookout reviews the diff for breaking data-contract changes and posts its findings as comments. See &lt;a href="https://www.rudderstack.com/docs/lookout/working-with-lookout/pr-mr-review/" >PR and MR Review&lt;/a> for more details.&lt;/li>
&lt;/ul>
&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>GitLab integration currently supports chat exploration, agent-proposed merge requests, and automated merge-request review.&lt;/p>
&lt;p>&lt;a href="https://www.rudderstack.com/docs/lookout/working-with-lookout/measurement-plans/" >Measurement Plan&lt;/a> instrumentation — where an approved plan is implemented as pull requests by a background agent — is currently supported for GitHub repositories only.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;p>The agent&amp;rsquo;s changes always arrive as &lt;strong>merge requests&lt;/strong> — proposals that sit in your normal review process. A human reviews and merges before anything lands.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="how-changes-are-attributed" data-heading="How changes are attributed" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/gitlab/" data-title="How to Connect GitLab to Lookout" -->
&lt;h2 id="how-changes-are-attributed">How changes are attributed&lt;/h2>&lt;p>Changes proposed by Lookout are identifiable in your GitLab history:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Commits&lt;/strong> carry a &lt;code>Co-authored-by:&lt;/code> trailer attributing the change to Lookout.&lt;/li>
&lt;li>&lt;strong>Merge requests&lt;/strong> are labeled &lt;code>created-by::rudder-ai&lt;/code>.&lt;/li>
&lt;/ul>
&lt;br /></description></item><item><title>Lookout: How to Connect RudderStack Control Plane to Lookout</title><link>https://www.rudderstack.com/docs/lookout/integrations/rudderstack/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/lookout/integrations/rudderstack/</guid><description>
&lt;p>Connecting RudderStack to Lookout lets the agent read and manage your control plane from chat — including your sources and destinations, transformations, Tracking Plans, and Audiences.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="connect-rudderstack" data-heading="Connect RudderStack" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/rudderstack/" data-title="How to Connect RudderStack Control Plane to Lookout" -->
&lt;h2 id="connect-rudderstack">Connect RudderStack&lt;/h2>&lt;p>Signing in to Lookout with RudderStack is &lt;strong>recommended&lt;/strong>.&lt;/p>
&lt;p>When a user creating the workspace signs in with RudderStack, Lookout automatically pulls in the list of RudderStack workspaces they belong to — so linking a Lookout workspace to the right RudderStack workspace takes a single click.&lt;/p>
&lt;p>When you create a workspace with this method, Lookout shows the RudderStack workspaces you are part of:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Link&lt;/strong>: Create a Lookout workspace connected to that RudderStack workspace&lt;/li>
&lt;li>&lt;strong>Join&lt;/strong>: If your team already uses a Lookout workspace for that RudderStack workspace, join it so everyone&amp;rsquo;s chats and dashboards stay together (or choose to create a separate workspace instead)&lt;/li>
&lt;/ul>
&lt;figure class="image--main mx-auto d-block " style="width: 55%;" >
&lt;a
data-lightbox="image-images/lookout/rudderstack-link-workspace.png" href="https://www.rudderstack.com/docs/docs/images/lookout/rudderstack-link-workspace.png"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/lookout/rudderstack-link-workspace.png"
alt="Picking a RudderStack workspace to link when creating a Lookout workspace"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="connect-manually" data-heading="Connect manually" data-level="4" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/rudderstack/" data-title="How to Connect RudderStack Control Plane to Lookout" -->
&lt;h4 id="connect-manually">Connect manually&lt;/h4>&lt;p>Though signing in with RudderStack is the recommended approach, a workspace admin can also connect manually under &lt;strong>Settings&lt;/strong> &amp;gt; &lt;strong>General&lt;/strong> by entering a RudderStack &lt;strong>Workspace ID&lt;/strong> and &lt;strong>Personal Access Token&lt;/strong>. The connection is scoped to your workspace and the token is stored encrypted.&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>The RudderStack connection is configured &lt;strong>once per workspace&lt;/strong>. Once connected, any member can use the RudderStack tools in chat. Connecting it is therefore a workspace-level decision.&lt;/p>
&lt;p>See &lt;a href="https://www.rudderstack.com/docs/lookout/workspaces/roles/" >Roles and Permissions&lt;/a> for more details.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&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/integrations/rudderstack/" data-title="How to Connect RudderStack Control Plane to Lookout" -->
&lt;h2 id="how-it-works">How it works&lt;/h2>&lt;p>Once a RudderStack connection is set up, the agent can:&lt;/p>
&lt;ul>
&lt;li>Inspect sources, destinations, transformations, Tracking Plans, and Audiences&lt;/li>
&lt;li>Review live event metrics, schemas, and Tracking Plan violations&lt;/li>
&lt;li>Make changes — for example, create or update a transformation or an Audience&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>&lt;strong>Important consideration&lt;/strong>&lt;/p>
&lt;p>Whether the agent can make changes depends on how the connection is authorized. A &lt;strong>read-write&lt;/strong> RudderStack connection enables the management tools above. However, a &lt;strong>read-only&lt;/strong> connection — for example, a workspace linked with a read-only token — limits the agent only to inspecting and reporting.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;p>Once a RudderStack connection is set up, the agent can answer questions and make changes that span your warehouse data and your RudderStack configuration in the same conversation. For example, checking how an event is defined in a Tracking Plan and where it lands in the warehouse.&lt;/p>
&lt;br /></description></item><item><title>Lookout: How to Map Sources to Repositories</title><link>https://www.rudderstack.com/docs/lookout/integrations/sources/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/lookout/integrations/sources/</guid><description>
&lt;p>The &lt;strong>Sources&lt;/strong> tab connects each of your RudderStack sources to the GitHub or GitLab repository where that source&amp;rsquo;s events are instrumented. This mapping lets Lookout connect your data to the code that produces it, so when you ask for a tracking change, it knows exactly which repository needs a pull request.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="prerequisites" data-heading="Prerequisites" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/sources/" data-title="How to Map Sources to Repositories" -->
&lt;h2 id="prerequisites">Prerequisites&lt;/h2>&lt;p>Mapping a source to a repository connects two systems, so both must already be set up:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/lookout/integrations/rudderstack/" >RudderStack&lt;/a> integration set up, so your sources are available to map&lt;/li>
&lt;li>A linked &lt;a href="https://www.rudderstack.com/docs/lookout/integrations/github/" >GitHub&lt;/a> or &lt;a href="https://www.rudderstack.com/docs/lookout/integrations/gitlab/" >GitLab&lt;/a> repository&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="map-a-source-to-a-repository" data-heading="Map a source to a repository" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/sources/" data-title="How to Map Sources to Repositories" -->
&lt;h2 id="map-a-source-to-a-repository">Map a source to a repository&lt;/h2>&lt;p>From &lt;strong>Settings&lt;/strong> &amp;gt; &lt;strong>Sources&lt;/strong>, select &lt;strong>Connect Source&lt;/strong>, then configure these settings:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">RudderStack source&lt;/td>
&lt;td style="text-align:left">Choose the source you want to map&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Repository&lt;/td>
&lt;td style="text-align:left">Choose the GitHub or GitLab repository where that source&amp;rsquo;s events are instrumented&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Subfolder&lt;/td>
&lt;td style="text-align:left">For a monorepo, point Lookout at the folder that holds the source&amp;rsquo;s code. Defaults to &lt;code>/&lt;/code> (the repository root)&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/lookout/settings-sources-mapping.png" href="https://www.rudderstack.com/docs/docs/images/lookout/settings-sources-mapping.png"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/lookout/settings-sources-mapping.png"
alt="Connecting a RudderStack source to a repository and subfolder"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;p>The &lt;strong>Sources&lt;/strong> tab lists your sources with their current mappings and shows any sources that aren&amp;rsquo;t connected yet, so you can map them.&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/integrations/sources/" data-title="How to Map Sources to Repositories" -->
&lt;h2 id="how-it-works">How it works&lt;/h2>&lt;p>Your events are defined in your warehouse and tracking plans, but they are emitted by analytics calls in your application code — this code lives in a repository. The &lt;strong>Sources&lt;/strong> tab records which repository (and, for monorepos, which subfolder) corresponds to each source.&lt;/p>
&lt;p>With the source-repository mapping in place, a request like &lt;em>&amp;ldquo;Start capturing a &lt;code>checkout_started&lt;/code> event so it reaches our warehouse&amp;rdquo;&lt;/em> becomes actionable end to end:&lt;/p>
&lt;ol>
&lt;li>Lookout identifies the &lt;strong>source&lt;/strong> the event belongs to&lt;/li>
&lt;li>It looks up the &lt;strong>repository&lt;/strong> mapped to that source&lt;/li>
&lt;li>It proposes the instrumentation change as a &lt;strong>pull request against the right repository&lt;/strong> — and the right subfolder&lt;/li>
&lt;/ol>
&lt;p>This mechanism powers &lt;a href="https://www.rudderstack.com/docs/lookout/working-with-lookout/measurement-plans/" >Measurement Plans&lt;/a> and the instrumentation agent. Without the mapping, Lookout would know &lt;strong>what&lt;/strong> to change but not &lt;strong>where&lt;/strong>.&lt;/p>
&lt;br /></description></item><item><title>Lookout: How to Connect Slack to Lookout</title><link>https://www.rudderstack.com/docs/lookout/integrations/slack/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/lookout/integrations/slack/</guid><description>
&lt;p>Connecting &lt;strong>Slack&lt;/strong> to Lookout lets your team talk to the same agent via messages or a bound channel, without opening the web app. They can ask questions, pull metrics, and get answers right in the conversation.&lt;/p>
&lt;figure class="image--main mx-auto d-block " style="width: 55%;" >
&lt;a
data-lightbox="image-images/lookout/slack-chat.png" href="https://www.rudderstack.com/docs/docs/images/lookout/slack-chat.png"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/lookout/slack-chat.png"
alt="Asking the Lookout agent a question in Slack and getting a chart back"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&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">Slack is an &lt;strong>access surface&lt;/strong>, not a data source. It changes where you talk to the agent. The answers still come from the systems that Lookout is connected to, like your &lt;a href="https://www.rudderstack.com/docs/lookout/integrations/warehouses/" >warehouse&lt;/a>.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="install-slack" data-heading="Install Slack" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/slack/" data-title="How to Connect Slack to Lookout" -->
&lt;h2 id="install-slack">Install Slack&lt;/h2>&lt;p>Workspace admins can install Slack from &lt;strong>Settings&lt;/strong> &amp;gt; &lt;strong>Slack&lt;/strong> via Slack OAuth. Once installed, the settings page shows your installation, linked users, channel bindings, and available commands.&lt;/p>
&lt;figure class="image--main mx-auto d-block " style="width: 80%;" >
&lt;a
data-lightbox="image-images/lookout/settings-slack.png" href="https://www.rudderstack.com/docs/docs/images/lookout/settings-slack.png"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/lookout/settings-slack.png"
alt="Lookout Slack settings showing guest access, linked users, and channel bindings"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="slack-commands" data-heading="Slack commands" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/slack/" data-title="How to Connect Slack to Lookout" -->
&lt;h2 id="slack-commands">Slack commands&lt;/h2>&lt;p>From Slack, your team can use a few simple commands:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Command&lt;/th>
&lt;th>What it does&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>/lookout connect&lt;/code>&lt;/td>
&lt;td>Link your Slack account to a workspace&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>/lookout setup&lt;/code>&lt;/td>
&lt;td>Bind a channel to a workspace&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>/lookout status&lt;/code>&lt;/td>
&lt;td>Show your current connection — the linked workspace, or the channel&amp;rsquo;s binding&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>/lookout help&lt;/code>&lt;/td>
&lt;td>Show available commands&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="linked-users-and-guest-access" data-heading="Linked users and guest access" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/slack/" data-title="How to Connect Slack to Lookout" -->
&lt;h2 id="linked-users-and-guest-access">Linked users and guest access&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Linked users&lt;/strong> act as their full workspace identity, with thread-to-session continuity so a conversation can pick up where it left off. A Slack user can link their account with &lt;code>/lookout connect&lt;/code>.&lt;/li>
&lt;li>&lt;strong>Guest access&lt;/strong> lets Slack users who haven&amp;rsquo;t yet linked an account ask &lt;strong>read-only&lt;/strong> questions in bound channels and DMs. It is &lt;strong>on by default&lt;/strong> — an admin can disable it with the &lt;strong>Allow guest access in Slack&lt;/strong> toggle on the Slack settings. See &lt;a href="https://www.rudderstack.com/docs/lookout/workspaces/roles/" >Roles and Permissions&lt;/a> for details on how guest access fits into the workspace model.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="channel-bindings" data-heading="Channel bindings" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/slack/" data-title="How to Connect Slack to Lookout" -->
&lt;h2 id="channel-bindings">Channel bindings&lt;/h2>&lt;p>Binding a channel to a workspace routes messages in that channel to Lookout&amp;rsquo;s agent for that workspace. Note that users may still need to run &lt;code>/lookout connect&lt;/code> unless guest access is enabled.&lt;/p>
&lt;p>Binding is done in Slack with &lt;code>/lookout setup&lt;/code> by any workspace member. Admins can view and unbind channels from the &lt;strong>Channel Bindings&lt;/strong> section on &lt;strong>Settings&lt;/strong> &amp;gt; &lt;strong>Slack&lt;/strong>.&lt;/p>
&lt;br /></description></item><item><title>Lookout: How to Connect External AI Tools to Lookout</title><link>https://www.rudderstack.com/docs/lookout/integrations/external-mcp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/lookout/integrations/external-mcp/</guid><description>
&lt;p>Lookout exposes a curated set of its tools to &lt;strong>external AI tools&lt;/strong> through the Model Context Protocol (MCP). This lets an approved external assistant or agent call into your workspace programmatically, for example, to run a warehouse query or read a dashboard, using the same connections your team already set up.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="what-it-exposes" data-heading="What it exposes" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/external-mcp/" data-title="How to Connect External AI Tools to Lookout" -->
&lt;h2 id="what-it-exposes">What it exposes&lt;/h2>&lt;p>External tools get a curated, mostly read-only subset of Lookout&amp;rsquo;s capabilities. For the exact, current tool list, see the in-app &lt;strong>MCP&lt;/strong> reference in your workspace.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Tool&lt;/th>
&lt;th style="text-align:left">Permissions&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Warehouse&lt;/td>
&lt;td style="text-align:left">Read&lt;/td>
&lt;td style="text-align:left">Query a connected warehouse, list tables, describe a table, and list warehouses&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Dashboards&lt;/td>
&lt;td style="text-align:left">Read&lt;/td>
&lt;td style="text-align:left">List dashboards, get a dashboard, and run a single dashboard panel&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Source documentation&lt;/td>
&lt;td style="text-align:left">Read&lt;/td>
&lt;td style="text-align:left">List and read Lookout&amp;rsquo;s AI-generated instrumentation documentation for your sources. This is the generated documentation in the &lt;a href="https://www.rudderstack.com/docs/lookout/working-with-lookout/context-hub/" >Context Hub&lt;/a>, not your RudderStack source catalog&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Dashboards&lt;/td>
&lt;td style="text-align:left">Write&lt;/td>
&lt;td style="text-align:left">&lt;code>save_dashboard&lt;/code> creates or updates a dashboard. &lt;br />&lt;br />It is the only write tool and is gated behind the &lt;code>mcp:write&lt;/code> scope (see below)&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="scopes" data-heading="Scopes" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/external-mcp/" data-title="How to Connect External AI Tools to Lookout" -->
&lt;h2 id="scopes">Scopes&lt;/h2>&lt;p>When an external tool authorizes via OAuth, or when you create a named programmatic token, the default scope is &lt;code>mcp:read mcp:write&lt;/code>, which includes the &lt;code>save_dashboard&lt;/code> write capability.&lt;/p>
&lt;p>To grant &lt;strong>read-only&lt;/strong> access, explicitly request the &lt;code>mcp:read&lt;/code> scope only.&lt;/p>
&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">Because the default scope includes &lt;code>mcp:write&lt;/code>, an external tool that doesn&amp;rsquo;t narrow its scope can save dashboards in your workspace. If a tool only needs to read, grant it &lt;code>mcp:read&lt;/code> only.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="how-access-is-secured" data-heading="How access is secured" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/external-mcp/" data-title="How to Connect External AI Tools to Lookout" -->
&lt;h2 id="how-access-is-secured">How access is secured&lt;/h2>&lt;ul>
&lt;li>Access uses &lt;strong>OAuth 2.1&lt;/strong> (with PKCE, dynamic client registration, and a consent screen) or named programmatic tokens.&lt;/li>
&lt;li>Programmatic tokens are stored hashed and are prefix-identified so they can be revoked.&lt;/li>
&lt;li>Tokens used for external access are separate from your web session.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="setup" data-heading="Setup" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/external-mcp/" data-title="How to Connect External AI Tools to Lookout" -->
&lt;h2 id="setup">Setup&lt;/h2>&lt;p>Any member can create clients and tokens for external access from the &lt;strong>MCP&lt;/strong> area in the sidebar (also reachable from &lt;strong>Settings&lt;/strong> &amp;gt; &lt;strong>Integrations&lt;/strong>). External tools then call into the workspace using those credentials.&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">External AI tool access is enabled at the &lt;strong>deployment&lt;/strong> level, not per workspace. If you don&amp;rsquo;t see the &lt;strong>MCP&lt;/strong> area, it may not be enabled for your deployment — check with your admin.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="see-also" data-heading="See also" data-level="2" data-permalink="https://www.rudderstack.com/docs/lookout/integrations/external-mcp/" data-title="How to Connect External AI Tools to Lookout" -->
&lt;h2 id="see-also">See also&lt;/h2>&lt;ul>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/ai-features/rudderstack-mcp/" >RudderStack MCP&lt;/a>: Connect an AI assistant to your &lt;strong>RudderStack&lt;/strong> workspace directly — this is a separate capability from Lookout&amp;rsquo;s external tool access.&lt;/li>
&lt;/ul></description></item></channel></rss>