How to Build an Internal Dashboard with Retool
Last updated Apr 23, 2026

Retool is a low-code platform built for internal tools. You connect a data source, drag components onto a canvas, write queries in SQL or through a form interface, and ship a working dashboard the same day. This guide covers setting up Retool from a free account through to a shared, live dashboard connected to a real database.
What Retool Is (and Is Not)
Retool is not a traditional BI tool. It does not have a drag-and-drop query builder in the style of Tableau or Looker. Instead, it is closer to a visual app builder: you write SQL or configure API requests, then wire the results to charts, tables, buttons, and forms.
This makes it more flexible than most BI tools but requires that you are comfortable writing basic SQL queries or following API documentation. If you have never written a SELECT statement, plan for a short learning curve. For those who can write SQL, Retool collapses the gap between "raw database" and "working dashboard" to an hour or less.
As of 2026, Retool supports more than 50 data sources: PostgreSQL, MySQL, MongoDB, Supabase, Airtable, REST APIs, GraphQL, Snowflake, BigQuery, Google Sheets, Salesforce, and others. The free tier allows up to 5 users and unlimited apps.
Step 1: Create a Free Account
Go to retool.com and sign up with your work email. Retool offers a cloud-hosted version (no infrastructure setup required) and a self-hosted option for teams with data residency requirements.
After signing up, you land in the Retool editor. The default workspace includes a few example apps. Ignore them and click Create new in the top right, then select App.
Give the app a name (for example, "Revenue Dashboard") and click Create app. You are now in the Retool visual editor.
Step 2: Connect Your Data Source
In the left sidebar, click Resources. This opens the data source configuration screen.
Click Create new, then choose your source from the list. For a PostgreSQL database, select PostgreSQL and fill in:
- Host (your database server address)
- Port (default 5432)
- Database name
- Username and password
Click Test connection. Retool will confirm a successful connection or surface the specific error (wrong password, firewall rule, SSL mismatch). If your database is behind a firewall, Retool provides a set of static IP addresses to whitelist.
For Google Sheets, select Google Sheets from the list and authenticate with your Google account. Retool will list your spreadsheets and tabs.
Once connected, the data source appears in your resource list and is available to all apps in your workspace.
Step 3: Write Your First Query
Back in the app editor, click the + button in the bottom panel to create a new query. Select your connected data source.
For a PostgreSQL connection, you get a SQL editor. Write a basic query:
SELECT
date_trunc('week', created_at) AS week,
COUNT(*) AS signups,
SUM(revenue) AS total_revenue
FROM orders
WHERE created_at >= NOW() - INTERVAL '90 days'
GROUP BY 1
ORDER BY 1;
Click Preview to see the results returned as a table in the query panel. Once the results look correct, click Save.
Retool runs queries on demand (triggered by a user action or on page load) and on a schedule (refreshed every N seconds). For a dashboard showing live metrics, set the query to run on page load and set a refresh interval of 60 seconds.
Step 4: Build the Dashboard Layout
In the right panel, you have a component library: Chart, Table, Statistic, Text, Button, Date Picker, and more.
Drag a Chart component onto the canvas. In the component configuration panel, set the data source to your query result, choose "Line chart," set the x-axis to the week column, and the y-axis to total_revenue. The chart renders immediately.
Drag a Statistic component to show a single number (for example, total signups this month). Set its value to {{ query1.data.signups.reduce((a, b) => a + b, 0) }}. Retool uses JavaScript template expressions inside double curly braces to reference query results and compute values.
Drag a Table component to show row-level detail. Map the data property to your query and the table auto-populates columns from the returned fields.
Arrange the components on the canvas by dragging and resizing. Retool uses a grid layout that snaps components to columns.
A typical ops dashboard takes 20 to 40 minutes to build from scratch: 10 minutes connecting the data source, 10 minutes writing queries, and 10 minutes laying out components.
Step 5: Add Filters
Drag a Date Range Picker component to the top of the canvas. In your SQL query, replace the hardcoded date condition with a dynamic reference:
WHERE created_at >= {{ dateRangePicker1.startDate }}
AND created_at <= {{ dateRangePicker1.endDate }}
Now when a user adjusts the date range, the query reruns and the charts update automatically.
You can add dropdown filters in the same way: drag a Select component, populate it with values (for example, region names), and reference it in your WHERE clause.
Step 6: Share with Your Team
Click Preview in the top right to see the finished dashboard without the editor chrome. Click Deploy to publish the current version.
Retool generates a shareable URL for each app. You can share this URL directly with teammates who have a Retool account. For external stakeholders who do not have accounts, Retool's paid tiers support public links.
User permissions are managed at the app level: editors can modify queries and layout; viewers can use filters and see data but cannot change the app.
Performance and Scale
Retool runs queries against your data source directly. There is no data copy or sync layer, which means dashboard results are always current but query performance depends on your database.
For large tables (millions of rows), add a LIMIT clause or aggregate in SQL before returning data to Retool. Returning 100,000 rows to a client-side table slows rendering; returning an aggregated 100-row summary is fast.
Limitations to Know
Retool is not a good fit for pixel-perfect marketing-facing reports or dashboards intended for customers outside your organization (without custom branding work). It is optimized for internal ops use cases: monitoring, ops review, support queue management, and data entry tools.
If your team needs to explore data freely without writing SQL, tools like Julius AI or a platform with a natural language query layer may better fit the workflow. If you work primarily in spreadsheets and want live data without switching tools, Coefficient is a lighter-weight option. If you want to skip database setup entirely and just ask questions against a CSV file, VSLZ lets you upload a file and get analysis from a single prompt with no configuration.
Summary
Retool cuts the time from "raw database" to "working internal dashboard" to under an hour. The core steps are: connect a data source, write SQL queries, drag chart and table components onto a canvas, add filter inputs wired to query parameters, and deploy. The free tier supports up to 5 users and covers most small team needs. For teams comfortable with SQL, it is one of the fastest ways to turn a database into a usable ops tool.
FAQ
Is Retool free to use?
Retool has a free tier that supports up to 5 users with unlimited apps. Paid tiers start at $10 per user per month (Starter) and add features like custom branding, audit logs, and public app sharing. A self-hosted version is also available for teams with data residency requirements.
What data sources does Retool support?
Retool supports more than 50 data sources including PostgreSQL, MySQL, MongoDB, Supabase, Airtable, REST APIs, GraphQL, Google Sheets, Snowflake, BigQuery, Salesforce, Stripe, and Twilio. Connections are configured once and shared across all apps in your workspace.
Do I need to know how to code to use Retool?
Basic SQL knowledge is required to write queries against a database. For REST API data sources, you configure the endpoint and parameters through a form. JavaScript is optional but needed for computed values and complex logic. Non-developers can build useful dashboards with SQL alone.
How does Retool compare to Tableau or Looker?
Retool is a low-code app builder optimized for internal tools, not a BI platform. It requires writing SQL rather than using a drag-and-drop query builder, but it is much more flexible: you can add buttons, forms, and write-back actions that BI tools do not support. Tableau and Looker are better choices for self-serve exploration by non-technical users.
Can Retool dashboards refresh automatically?
Yes. You can configure any query to run on a timed interval (for example, every 30 seconds or every 5 minutes). Components connected to that query update automatically. You can also trigger manual refreshes from a button component.


