← Back to all products

Retool Internal Tool Templates

$39

8 Retool dashboard templates: admin panel, order management, user analytics, support ticket system, and inventory manager.

📁 32 files
SQLMarkdownJSONPostgreSQLLLM

📄 Product Preview

Try the interactive reader and demo tools below, or get the full product with all content unlocked.

📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample

📁 File Structure 32 files

retool-dashboard-templates/ ├── LICENSE ├── README.md ├── free-sample.zip ├── guide/ │ ├── 01_query-library.md │ └── 02_resource-configuration.md ├── guides/ │ ├── query-library.md │ └── resource-configuration.md ├── index.html └── templates/ ├── admin-panel/ │ ├── SETUP.md │ ├── app.json │ └── queries.sql ├── api-key-manager/ │ ├── SETUP.md │ ├── app.json │ └── queries.sql ├── content-moderation/ │ ├── SETUP.md │ ├── app.json │ └── queries.sql ├── crm-contacts/ │ ├── SETUP.md │ ├── app.json │ └── queries.sql ├── inventory-manager/ │ ├── SETUP.md │ ├── app.json │ └── queries.sql ├── order-management/ │ ├── SETUP.md │ ├── app.json │ └── queries.sql ├── support-tickets/ │ ├── SETUP.md │ ├── app.json │ └── queries.sql └── user-analytics/ ├── SETUP.md ├── app.json └── queries.sql

📖 Documentation Preview README excerpt

Retool Dashboard Templates

Eight ready-to-import Retool application templates covering the most common internal-tool use cases. Each template ships with a complete app.json (importable into Retool), the raw SQL queries used by the app, and a step-by-step setup guide.

Skip the blank-canvas syndrome. Import a template, point it at your database, and have a working internal tool in under 30 minutes.

What's Included

TemplateDescriptionKey Queries
Admin PanelUser management, RBAC, audit logs, system settingslistUsers, updateUser, getAuditLog, bulkUpdateStatus
Order ManagementOrder listing, status tracking, fulfillment workflow, refundslistOrders, orderDetails, updateOrderStatus, processRefund
User AnalyticsSignups over time, retention cohorts, activity heatmapssignupTrend, retentionCohorts, dailyActiveUsers, topUsers
Support TicketsTicket queue, assignment, SLA tracking, canned responsesopenTickets, assignTicket, slaBreaches, ticketMetrics
Inventory ManagerStock levels, reorder alerts, supplier management, audit trailstockLevels, lowStockAlerts, reorderHistory, supplierList
Content ModerationFlagged-content queue, bulk approve/reject, user warningsflaggedContent, moderationHistory, issueWarning, bulkModerate
CRM ContactsContact directory, activity timeline, deal pipeline, tagginglistContacts, contactActivity, dealsByStage, tagContact
API Key ManagerKey listing, usage stats, rotation workflow, access scopinglistApiKeys, keyUsageStats, rotateKey, createScopedKey

Directory Layout


retool-dashboard-templates/
├── README.md                          ← you are here
├── LICENSE
├── guides/
│   ├── query-library.md              ← cross-template SQL reference
│   └── resource-configuration.md     ← connecting data sources in Retool
└── templates/
    ├── admin-panel/
    │   ├── app.json                  ← importable Retool app
    │   ├── queries.sql               ← raw SQL used by the app
    │   └── SETUP.md                  ← step-by-step setup
    ├── order-management/
    │   ├── app.json
    │   ├── queries.sql
    │   └── SETUP.md
    ├── user-analytics/
    │   └── ...
    ├── support-tickets/
    │   └── ...
    ├── inventory-manager/
    │   └── ...
    ├── content-moderation/
    │   └── ...
    ├── crm-contacts/
    │   └── ...
    └── api-key-manager/
        └── ...

Quick Start

1. Import a Template

1. Log in to your Retool instance (cloud or self-hosted).

2. Click "Create new""From JSON/ZIP".

3. Select the app.json file from the template directory you want to use.

4. Retool will create a new app with all components and queries pre-wired.

... continues with setup instructions, usage examples, and more.

📄 Code Sample .sql preview

templates/admin-panel/queries.sql -- Admin Panel — SQL Query Definitions -- A comprehensive admin dashboard with user management, role assignment, audit logs, and system settings. Includes RBAC controls and bulk user operations. -- Query: listUsers -- Type: sql SELECT u.id, u.email, u.name, r.name as role, u.status, u.created_at, u.last_login FROM users u LEFT JOIN roles r ON u.role_id = r.id ORDER BY u.created_at DESC LIMIT /* RETOOL: usersTable.pageSize */ OFFSET /* RETOOL: usersTable.paginationOffset */; -- Query: getUserCount -- Type: sql SELECT COUNT(*) as total_users, COUNT(CASE WHEN status = 'active' THEN 1 END) as active_users, COUNT(CASE WHEN role_id = 1 THEN 1 END) as admin_count FROM users; -- Query: updateUser -- Type: sql UPDATE users SET email = /* RETOOL: editUserForm.data.email */, name = /* RETOOL: editUserForm.data.name */, role_id = (SELECT id FROM roles WHERE name = /* RETOOL: editUserForm.data.role */), status = /* RETOOL: editUserForm.data.status */, updated_at = NOW() WHERE id = /* RETOOL: usersTable.selectedRow.id */; -- Query: getAuditLog -- Type: sql SELECT al.created_at as timestamp, u.email as user, al.action, al.resource_type || '/' || al.resource_id as resource, al.ip_address FROM audit_logs al LEFT JOIN users u ON al.user_id = u.id ORDER BY al.created_at DESC LIMIT 100; -- Query: bulkUpdateStatus -- Type: sql UPDATE users SET status = /* RETOOL: statusSelect.value */ WHERE id = ANY(/* RETOOL: usersTable.selectedRows.map(r => r.id) */); -- Query: deleteUser -- Type: sql UPDATE users SET status = 'deleted', deleted_at = NOW() WHERE id = /* RETOOL: usersTable.selectedRow.id */;
Buy Now — $39 Back to Products