Getting Started with TellR: AI-Powered Slides from Databricks

Generate presentation-ready slides from the Bakehouse sample dataset using TellR

TellR
Databricks Apps
AI
Tutorials
Learn how to install and use TellR, an agentic Databricks App that turns your data into interactive slide decks through natural language.
Modified

01/06/2028

NoteScreenshots & Video

All the code in this tutorial post is rendered against a databricks workspace before publication. A video is also provided for your convenince.

Summary

  • TellR is an open-source Databricks App that generates interactive slide decks from your data using natural language
  • You’ll install TellR, connect it to the Bakehouse sample dataset in Unity Catalog, and create your first presentation
  • TellR queries your data through Genie spaces, respecting Unity Catalog permissions automatically
  • Slides are rendered as interactive HTML with Chart.js visualizations
  • You can refine slides conversationally — no need to start over

Video Walkthrough

What is TellR?

TellR is an agentic application that generates presentation-ready slides from enterprise data through conversational interaction. It runs as a Databricks App and integrates with Genie spaces to query live, governed data.

Key features:

  • Conversational slide creation — Describe what you want in plain English and TellR builds the deck
  • Genie integration — Queries your data through Genie spaces, so your slides reflect real, up-to-date numbers
  • Unity Catalog security — All data access respects your existing permissions; no data leaks outside governance boundaries
  • Interactive visualizations — Generates Chart.js-based charts that are interactive in the browser
  • Iterative editing — Refine slides with follow-up prompts like “add a Q3 comparison” or “change the chart to a bar graph”
  • Prompt-only mode — Works without Genie for general-purpose presentations

Prerequisites

Before you begin, make sure you have:

  • A Databricks workspace with Apps enabled
  • Permission to create a Lakebase (or an existing schema you can use)
  • Access to the Bakehouse sample dataset in Unity Catalog (available by default in most workspaces)
  • A Genie space (we’ll create one in Step 2) or willingness to use prompt-only mode

The Bakehouse Dataset

The Bakehouse dataset is a sample dataset available in Unity Catalog. It models a bakery franchise business with sales, customers, suppliers, and reviews.

Table Description
sales_transactions Fact table with individual sales records
sales_customers Customer dimension table
sales_franchises Franchise/store location details
sales_suppliers Product supplier information
media_customer_reviews Customer feedback and ratings
media_gold_reviews_chunked Processed review data for analytics
TipFinding the Dataset

In your Databricks workspace, navigate to the Catalog Explorer and look under samples > bakehouse. If you don’t see it, your workspace administrator may need to enable sample datasets.

Let’s explore the tables to get familiar with the data:

# Browse the bakehouse schema
spark.sql("SHOW TABLES IN samples.bakehouse").show()
+---------+--------------------+-----------+
| database|           tableName|isTemporary|
+---------+--------------------+-----------+
|bakehouse|media_customer_re...|      false|
|bakehouse|media_gold_review...|      false|
|bakehouse|     sales_customers|      false|
|bakehouse|    sales_franchises|      false|
|bakehouse|     sales_suppliers|      false|
|bakehouse|  sales_transactions|      false|
+---------+--------------------+-----------+
# Preview the sales transactions
spark.table("samples.bakehouse.sales_transactions").limit(10).show()
+-------------+----------+-----------+--------------------+--------------------+--------+---------+----------+-------------+----------------+
|transactionID|customerID|franchiseID|            dateTime|             product|quantity|unitPrice|totalPrice|paymentMethod|      cardNumber|
+-------------+----------+-----------+--------------------+--------------------+--------+---------+----------+-------------+----------------+
|      1002961|   2000253|    3000047|2024-05-14 12:17:...|  Golden Gate Ginger|       8|        3|        24|         amex| 378154478982993|
|      1003007|   2000226|    3000047|2024-05-10 23:10:...|Austin Almond Bis...|      36|        3|       108|   mastercard|2244626981238094|
|      1003017|   2000108|    3000047|2024-05-16 16:34:...|Austin Almond Bis...|      40|        3|       120|   mastercard|2490570234487424|
|      1003068|   2000173|    3000047|2024-05-02 04:31:...|         Pearly Pies|      28|        3|        84|         amex| 343808569426192|
|      1003103|   2000075|    3000047|2024-05-04 23:44:...|         Pearly Pies|      28|        3|        84|         visa|4377080942201798|
|      1003147|   2000295|    3000047|2024-05-15 16:17:...|Austin Almond Bis...|      32|        3|        96|         amex| 371093774812677|
|      1003196|   2000237|    3000047|2024-05-07 11:13:...|       Tokyo Tidbits|      40|        3|       120|   mastercard|5538807345848392|
|      1003329|   2000272|    3000047|2024-05-06 03:32:...|     Outback Oatmeal|      28|        3|        84|         visa|4872480716880043|
|      1001264|   2000209|    3000047|2024-05-16 17:32:...|         Pearly Pies|      28|        3|        84|   mastercard|5287105980593305|
|      1001287|   2000120|    3000047|2024-05-15 08:41:...|Austin Almond Bis...|      40|        3|       120|         amex| 376211012259783|
+-------------+----------+-----------+--------------------+--------------------+--------+---------+----------+-------------+----------------+
# Check the schema
spark.table("samples.bakehouse.sales_transactions").printSchema()
root
 |-- transactionID: long (nullable = true)
 |-- customerID: long (nullable = true)
 |-- franchiseID: long (nullable = true)
 |-- dateTime: timestamp (nullable = true)
 |-- product: string (nullable = true)
 |-- quantity: long (nullable = true)
 |-- unitPrice: long (nullable = true)
 |-- totalPrice: long (nullable = true)
 |-- paymentMethod: string (nullable = true)
 |-- cardNumber: long (nullable = true)

Step 1: Install TellR

Open a new notebook in your Databricks workspace and run the following cells:

%pip install --upgrade databricks-tellr databricks-sdk==0.73.0
dbutils.library.restartPython()

Then create the TellR app:

import databricks_tellr as tellr

tellr.create(
    lakebase_name="tellr-db",
    schema_name="app_data",
    app_name="tellr",
    app_file_workspace_path="/Workspace/Users/you@example.com/.apps/tellr"
)
NoteWorkspace Path

Replace you@example.com with your actual Databricks username. This is the workspace path where TellR’s application files will be stored.

Installing TellR in a Databricks notebook

Step 2: Create a Genie Space

TellR uses Genie spaces to query your data with natural language. To set one up for the Bakehouse dataset:

  1. In your Databricks workspace, go to Genie in the left sidebar
  2. Click New Genie space
  3. Give it a name like “Bakehouse Analytics”
  4. Add the Bakehouse tables you want TellR to query:
    • samples.bakehouse.sales_transactions
    • samples.bakehouse.sales_customers
    • samples.bakehouse.sales_franchises
    • samples.bakehouse.sales_suppliers
    • samples.bakehouse.media_customer_reviews
  5. Add a description to help Genie understand the data context, for example: “Sales and customer data for a bakery franchise business. Includes transactions, customer details, franchise locations, suppliers, and customer reviews.”
  6. Save the Genie space

Creating a Genie space for the Bakehouse dataset
TipGenie Space Tips

The more descriptive your Genie space instructions are, the better TellR will understand your data. Include details about relationships between tables and common business questions.

Step 3: Launch the App

Once TellR is installed and your Genie space is ready:

  1. Navigate to Apps in the left sidebar of your Databricks workspace
  2. Find and open the tellr app
  3. The TellR interface will load in your browser

TellR app running in Databricks

Step 4: Generate Your First Slide Deck

Now for the fun part. In TellR’s chat interface, describe the presentation you want. Here are some prompts to try with the Bakehouse dataset:

Start with a simple request:

Create a presentation showing total sales by franchise location

Add more slides:

Add a slide comparing customer review ratings across franchises

Get more specific:

Add a slide showing monthly sales trends for the top 3 franchises over the last year

Refine existing slides:

Change the sales trend chart to use a line graph instead of bars

TellR generating slides from the Bakehouse dataset

TellR will query your Genie space for the data, generate insights, and produce an interactive slide deck. Each slide can include:

  • Data-driven text summaries
  • Interactive Chart.js visualizations
  • Tables with key metrics

Example slide deck with charts and data

Tips & Tricks

TipPrompt-Only Mode

If you don’t have a Genie space set up, TellR can still generate slides from descriptive prompts. It won’t pull live data, but it’s useful for creating general-purpose presentations quickly.

TipIterative Refinement

You don’t need to get your prompts perfect the first time. TellR supports conversational editing — ask it to change colours, swap chart types, add comparisons, or restructure the narrative. Think of it like chatting with a presentation designer.

TipExport Your Slides

TellR generates HTML slides, which means they’re easy to share via a link or embed in other tools. You can also screenshot or print to PDF for traditional distribution.

NoteUnity Catalog Permissions

TellR respects your Unity Catalog permissions. If you can’t see certain data in the Catalog Explorer, TellR won’t be able to query it either. This means your presentations are always within your governance boundaries.

References & Further Reading

Back to top