Skip to main content
Technical Guides

Intent Signal Dashboard with Google Sheets and Looker Studio

Peter Cools · · 15 min read

TL;DR: Google Sheets holds your Rodz signal data. Looker Studio turns it into a live, interactive dashboard your entire team can use without touching a spreadsheet. This guide walks you through the full process: structuring your data source, adding calculated columns, connecting Looker Studio, building visualizations, and sharing the finished dashboard with stakeholders. No paid BI tool required.

What Is a Signal Dashboard?

A signal dashboard is a single screen that answers the question “what is happening right now in our market?” It aggregates intent signals, the structured events Rodz detects (fundraising rounds, leadership changes, job postings, competitor moves, social mentions), and presents them as charts, tables and scorecards that update automatically.

Without a dashboard, signals live in API responses, webhook payloads or spreadsheet rows. People who need the information either ask for it or never see it at all. A dashboard removes that bottleneck. Sales managers spot territory trends at a glance. Marketing teams track competitor activity over time. Executives get a weekly snapshot without requesting a report from anyone.

Google Sheets paired with Looker Studio is one of the most accessible ways to build this kind of dashboard. Sheets is the data layer. Looker Studio is the presentation layer. Both are free, collaborative, and deeply integrated with each other.

Prerequisites

Before you start, make sure the following are in place:

  1. Rodz signals flowing into a Google Sheet. If you have not set this up yet, follow the Google Sheets integration guide. That guide covers both the no-code (Make) and developer (Apps Script) approaches. Come back here once data is landing in your sheet.
  2. A Google account with access to Google Sheets, Google Drive and Looker Studio (formerly Google Data Studio). Looker Studio is free and available at lookerstudio.google.com.
  3. At least 50 to 100 signals in your sheet. A dashboard with five rows looks empty and makes it hard to validate that charts behave correctly. Let your integration run for a few days before building the dashboard.
  4. Familiarity with the Rodz API data model. If you need a refresher on endpoints, signal types and payload structures, review the API reference.
  5. Editor access to the Google Sheet you plan to use as a data source. Viewer access is not enough because you will add helper columns.

Step 1: Prepare Your Data Source

Looker Studio works best when the underlying data is clean, consistent and enriched with a few calculated fields. Raw webhook payloads are a starting point, but they need some work before they become dashboard-ready.

Validate Your Column Headers

Open your signal sheet and confirm that row 1 contains clear, single-row headers. Looker Studio uses these headers as field names. Avoid merged cells, blank headers or duplicate names. A solid baseline looks like this:

ColumnHeaderPurpose
ATimestampWhen the signal was detected (ISO 8601)
BSignal TypeCategory: fundraising, job_posting, mention, etc.
CCompany NameName of the company the signal relates to
DCompany DomainPrimary domain
ESignal TitleHuman-readable summary
FDetailsFull payload or description
GSourceWhere the signal originated
HSignal IDUnique identifier from the Rodz API

If your sheet already follows the structure from the Google Sheets guide, you are in good shape.

Freeze the Header Row

Select row 1, go to View > Freeze > 1 row. This keeps headers visible while scrolling and prevents accidental edits.

Step 2: Add Calculated Columns

Raw data gets you a table. Calculated columns get you a dashboard. Add the following formulas starting in row 2 of each new column. Then copy them down to match the number of data rows you have.

Date Only (Column I)

Looker Studio handles date aggregation better when it has a clean date field without the time component.

=DATEVALUE(LEFT(A2, 10))

Format the column as Date (Format > Number > Date). Header: Signal Date.

Week Number (Column J)

Useful for week-over-week trend charts.

=WEEKNUM(I2, 2)

The second argument 2 starts the week on Monday, which is standard in most European markets. Header: Week Number.

Signal Category Group (Column K)

Signal types from the API can be granular. Grouping them into broader categories simplifies chart legends.

=IFS(
  OR(B2="fundraising", B2="acquisition", B2="registration"), "Financial",
  OR(B2="job_posting", B2="leadership_change", B2="hiring"), "HR & Recruitment",
  OR(B2="mention", B2="social_engagement", B2="content_published"), "Social & Content",
  OR(B2="competitor_move", B2="public_tender"), "Competitive",
  TRUE, "Other"
)

Adjust the mapping to match the signal types you actually receive. Header: Category Group.

Days Since Signal (Column L)

Helps with filtering stale signals in the dashboard.

=TODAY() - I2

Format as a plain number. Header: Days Ago.

Company Signal Count (Column M)

Shows how active a company is in your signal feed. This uses COUNTIF against the full Company Name column.

=COUNTIF($C:$C, C2)

Header: Company Signals.

Step 3: Structure the Sheet for Looker Studio

Looker Studio connects to a specific range in a Google Sheet. A few structural decisions now will save you headaches later.

Use a Named Range

Select all your data including headers (for example, A1:M1000). Go to Data > Named ranges and create one called SignalData. When your integration appends new rows beyond row 1000, update the range. Better yet, set the range to A1:M (open-ended) so it grows automatically.

Create a Summary Tab

Add a second sheet tab called Summary. Use formulas to build a few aggregate metrics that Looker Studio can pull from directly:

CellFormulaPurpose
A1Total SignalsLabel
B1=COUNTA(SignalData!A:A)-1Total signal count
A2Signals This WeekLabel
B2=COUNTIFS(SignalData!I:I, ">="&(TODAY()-WEEKDAY(TODAY(),3)), SignalData!I:I, "<="&TODAY())Current week count
A3Unique CompaniesLabel
B3=SUMPRODUCT(1/COUNTIF(SignalData!C2:C, SignalData!C2:C))Distinct company count
A4Most Common SignalLabel
B4=INDEX(SignalData!B:B, MATCH(MAX(COUNTIF(SignalData!B2:B, SignalData!B2:B)), COUNTIF(SignalData!B2:B, SignalData!B2:B), 0)+1)Top signal type

These summary cells feed Looker Studio scorecards later.

Keep the Sheet Clean

Remove any test rows, empty rows in the middle of the data, or columns with inconsistent formatting. Looker Studio infers data types from the first few rows. If row 3 has a number where Looker Studio expected a date, the entire column may be mistyped.

Step 4: Connect Google Sheets to Looker Studio

Open Looker Studio and click Blank Report (or Create > Report).

Add Your Data Source

  1. In the data source panel, search for Google Sheets.
  2. Authorize access if prompted.
  3. Select the spreadsheet that contains your signal data.
  4. Choose the worksheet tab (your main data tab, not the Summary tab).
  5. Check Use first row as headers.
  6. Click Add.

Looker Studio will show you a list of detected fields. Review the data types:

  • Timestamp and Signal Date should be Date or Date & Time.
  • Week Number, Days Ago and Company Signals should be Number.
  • Everything else should be Text.

Fix any mismatches now. You can always edit the data source later, but getting types right at the start avoids broken charts.

Add the Summary Tab as a Second Source

Repeat the process for the Summary tab. This gives you access to pre-calculated metrics as standalone scorecards, which is useful for KPI headers at the top of the dashboard.

Step 5: Build Your Visualizations

A good signal dashboard follows a top-down structure: high-level KPIs at the top, trend charts in the middle, detail tables at the bottom. Here is a layout that works well.

Row 1: Scorecards

Add four Scorecard widgets across the top of the report. Connect them to your Summary tab data source:

  • Total Signals: Metric = B1 cell value.
  • Signals This Week: Metric = B2.
  • Unique Companies: Metric = B3.
  • Most Common Signal: Metric = B4 (use a text scorecard here).

Style them with a consistent background color, large font for the number and a smaller label underneath. These give stakeholders the executive summary in two seconds.

Row 2: Signal Volume Over Time

Add a Time Series Chart:

  • Dimension: Signal Date
  • Metric: Record Count
  • Granularity: Daily (or weekly if your volume is low)

This chart answers “are we seeing more or fewer signals over time?” Add a trendline to make the direction obvious.

Next to it, add a Bar Chart for signal volume by category group:

  • Dimension: Category Group
  • Metric: Record Count
  • Sort: Descending by metric

This shows the composition of your signal feed at a glance.

Row 3: Breakdown Charts

Add a Pie Chart (or Donut Chart) for signal type distribution:

  • Dimension: Signal Type
  • Metric: Record Count

Limit to the top 8 slices and group the rest as “Other” to keep it readable.

Next to it, add a Horizontal Bar Chart for the most active companies:

  • Dimension: Company Name
  • Metric: Record Count
  • Sort: Descending
  • Limit: Top 15

This immediately highlights which companies are generating the most signal activity, a strong input for account prioritization.

Row 4: Detail Table

Add a Table with Heatmap:

  • Dimensions: Signal Date, Signal Type, Company Name, Signal Title
  • Metric: None (pure dimension table)
  • Sort: Signal Date descending
  • Rows per page: 25

Enable column sorting so users can reorder by any field. This table is the drill-down layer. When someone sees a spike in the time series chart, they scroll down to the table to see exactly what happened.

Row 5: Geographic or Source Breakdown (Optional)

If your signals include geographic data, add a Geo Map with company headquarters locations. If geography is not relevant, add a Stacked Bar Chart showing signal source distribution over time. This reveals whether your signal feed is diversified or overly dependent on a single source.

Step 6: Add Interactivity

Static charts are useful. Interactive filters make the dashboard a daily tool.

Date Range Control

Add a Date Range Control at the top of the report. Bind it to Signal Date. Set the default range to “Last 30 days”. Users can adjust this to zoom in on a specific week or zoom out to see quarterly trends.

Add filter controls for:

  • Signal Type: Lets users isolate a specific type (e.g., only fundraising signals).
  • Category Group: Broader filter for teams that care about a category rather than a specific type.
  • Company Name: Lets users focus on a single company to see its full signal history.

Place these filters in a horizontal row just below the scorecards. When a user selects a filter, every chart on the page updates automatically. This is one of Looker Studio’s strongest features and requires zero configuration beyond adding the control.

Cross-Filtering

Enable cross-filtering on your charts (right-click a chart > Chart interactions > Enable cross-filtering). This means clicking a bar in the “Signals by Category” chart will filter every other chart on the page to show only that category. It turns your dashboard into an exploratory tool, not just a report.

Step 7: Style and Share

Visual Consistency

Apply a consistent theme across the dashboard:

  • Use a single font family (Google Sans or Roboto work well).
  • Limit your color palette to 4-5 colors. Use distinct colors for each category group and keep them consistent across all charts.
  • Add a header section with your company logo, the dashboard title and a last-updated timestamp.
  • Use white or light gray backgrounds for chart containers with subtle borders.

Auto-Refresh

Looker Studio data sources connected to Google Sheets refresh automatically. The default cache duration is 15 minutes. You can adjust this in the data source settings under Data freshness. For most signal dashboards, 15 minutes is fine. If you need near-real-time updates, set it to 1 minute, but be aware this increases load on your sheet.

Sharing Options

Looker Studio supports several sharing models:

  • View link: Anyone with the link can view but not edit. Best for executives and stakeholders.
  • Edit access: Collaborators can modify charts, add filters, or create new pages. Best for the ops team maintaining the dashboard.
  • Embed: Generate an embed URL and drop the dashboard into an internal wiki, Notion page or intranet. The embedded version is interactive and respects all filters.
  • Scheduled email delivery: Set up automated email reports (PDF snapshots) on a daily or weekly cadence. Go to Share > Schedule email delivery and configure recipients and frequency.

For team-wide adoption, the view link combined with a weekly email digest tends to work best. People check the live dashboard when they need to dig into something specific and get the summary email for passive awareness.

Keeping the Dashboard Healthy

A dashboard is only useful if the data behind it stays reliable. Here are a few maintenance practices:

  1. Monitor your data pipeline. If your Make scenario or Apps Script stops running, the dashboard goes stale without warning. Set up a simple alert (a Slack notification or email) that fires if no new row has been added to the sheet in 24 hours.
  2. Archive old data. Google Sheets slows down noticeably past 50,000 rows. Move signals older than 90 days to an archive tab or a separate sheet. Update your Looker Studio data source to point only at the active tab.
  3. Review field mappings quarterly. When Rodz adds new signal types or changes payload structures, your calculated columns (especially the Category Group formula) may need updating. Check the API reference periodically for changelog updates.
  4. Document your dashboard. Add a text box or a dedicated “About” page in the Looker Studio report explaining what each chart shows, where the data comes from, and who to contact if something looks wrong.

Going Further

Once the basic dashboard is running, there are several ways to extend it:

  • Blended data sources. Connect your CRM data (exported to a sheet or via a Looker Studio connector) and blend it with signal data. This lets you build charts like “signals per active deal” or “signal coverage by account tier.”
  • Calculated fields in Looker Studio. Instead of adding formulas in Google Sheets, you can create calculated fields directly in Looker Studio. This keeps your sheet clean and moves logic into the presentation layer. Use CASE WHEN statements for grouping and DATE_DIFF for time-based calculations.
  • Multi-page reports. Create separate pages for each team: a sales page focused on company activity and deal signals, a marketing page focused on social mentions and content signals, and an executive page with high-level KPIs only.
  • API-driven data. For high-volume setups, consider replacing Google Sheets with BigQuery as the data layer. The Rodz API can feed data into BigQuery via Cloud Functions, and Looker Studio connects natively to BigQuery with much better performance at scale. Consult the API documentation for guidance on high-volume data extraction.

Frequently Asked Questions

Is Looker Studio really free?

Yes. Looker Studio (formerly Google Data Studio) is completely free for individual users and teams. There is a paid version called Looker Studio Pro that adds enterprise features like team workspaces, usage analytics and SLA-backed support, but the free version covers everything described in this guide.

How often does Looker Studio refresh data from Google Sheets?

By default, every 15 minutes. You can change this in the data source settings under Data freshness. Options range from 1 minute to 12 hours. Shorter intervals mean more frequent queries against your sheet, which can slow down a large spreadsheet.

What happens if my Google Sheet has more than 50,000 rows?

Performance degrades noticeably, both in the sheet itself and in Looker Studio queries. The recommended approach is to archive older signals to a separate sheet or tab and keep your active data source under 50,000 rows. If you consistently exceed this volume, consider migrating to BigQuery.

Can I combine data from multiple Google Sheets in one dashboard?

Yes. Looker Studio supports multiple data sources in a single report. You can add each sheet as a separate source and either build independent charts from each or use the Blend Data feature to join them on a common field (like company domain or signal ID).

How do I handle new signal types that appear in my feed?

New signal types will show up automatically in your charts because Looker Studio reads directly from the sheet. However, they will fall into the “Other” bucket in your Category Group column unless you update the IFS formula. Review your category mapping once a month, or whenever Rodz announces new signal types.

Can I embed the dashboard in Notion or Confluence?

Yes. Looker Studio provides an embed URL for every report. In Notion, use the Embed block and paste the URL. In Confluence, use the iframe macro. The embedded dashboard is fully interactive, so users can still apply filters and click through charts without leaving the page.

What permissions do viewers need?

Viewers of the Looker Studio report need implicit access to the underlying Google Sheet. The simplest approach is to share the sheet with “Anyone with the link can view” or share it explicitly with the same group you share the report with. If a viewer does not have sheet access, they will see an authorization error in the report.

Can I set up alerts based on dashboard data?

Looker Studio itself does not support alerts. For alert functionality, set up conditional triggers in your Google Sheet (using Apps Script) or in your automation platform (Make or n8n). For example, you can write a script that sends an email when the signal count for a specific company exceeds a threshold. The dashboard is for visibility. The alerting layer sits closer to the data source.

Share:

Generate your outbound strategy for free

Our AI analyzes your company and creates a complete playbook: ICP, personas, email templates, call scripts.

Generate my strategy