Skip to main content
RapidDev - Software Development Agency
bubble-tutorial

How to Build a Tracking System in Bubble

A tracking system in Bubble uses a TrackableItem Data Type with status fields and a StatusUpdate Data Type recording each change with timestamps. This tutorial covers building the data model for tracking orders, packages, or tasks, creating a timeline view of status changes, implementing automated notifications when status updates occur, and building real-time tracking dashboards for both administrators and end users.

What you'll learn

  • How to design a status tracking data model
  • How to build a visual timeline of status changes
  • How to automate notifications on status updates
  • How to create tracking dashboards for admins and users
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Beginner5 min read25-30 minAll Bubble plansMarch 2026RapidDev Engineering Team
TL;DR

A tracking system in Bubble uses a TrackableItem Data Type with status fields and a StatusUpdate Data Type recording each change with timestamps. This tutorial covers building the data model for tracking orders, packages, or tasks, creating a timeline view of status changes, implementing automated notifications when status updates occur, and building real-time tracking dashboards for both administrators and end users.

Overview: Tracking System in Bubble

This tutorial shows you how to build a generic tracking system that can be applied to orders, shipments, tasks, or any item that moves through status stages.

Prerequisites

  • A Bubble app on any plan
  • Basic understanding of Data Types and Workflows
  • Familiarity with Repeating Groups and conditional formatting
  • An item type you want to track (orders, packages, tasks)

Step-by-step guide

1

Design the tracking data model

Create two Data Types. 'TrackableItem' with: tracking_id (text — unique identifier), title (text), current_status (Option Set), owner (User), assigned_to (User), created_date (date), estimated_completion (date). 'StatusUpdate' with: item (TrackableItem), old_status (text), new_status (text), updated_by (User), notes (text), Created Date (auto). Create a 'TrackingStatus' Option Set with your stages: Pending, Processing, In Transit, Delivered (or whatever fits your use case). Add a display_order attribute to the Option Set.

Expected result: A data model supporting item tracking with full status change history.

2

Build the status update workflow

Create a workflow for updating item status. When the status change button is clicked: first create a StatusUpdate record capturing the old and new status, then Make changes to the TrackableItem setting current_status to the new value. This two-step approach maintains a complete history while keeping the current status easily accessible. Add a notes Input so the updater can add context to the change. Trigger notifications after the status update.

Expected result: Status changes are recorded in a history log while the current status is updated on the item.

3

Create a visual timeline of status changes

On the item detail page, add a vertical timeline UI. Use a Repeating Group of StatusUpdate where item = current item, sorted by Created Date ascending. Each cell shows: a colored dot (green for positive statuses, gray for neutral, red for issues), the status name, timestamp formatted as 'March 28, 2026 at 2:30 PM', the updater's name, and any notes. Connect the dots with a vertical line using a thin Group with a colored border. Style the most recent update as larger and highlighted.

Expected result: A visual timeline shows the complete history of status changes for each tracked item.

4

Automate notifications on status changes

After creating a StatusUpdate in the workflow, add notification actions. Send an in-app notification to the item owner when status changes. Send an email with the new status and any notes. For important transitions (like 'Delivered'), send a push notification if configured. Create different email templates for each status transition to provide relevant information. You can also send notifications to the assigned_to user if the status requires their action.

Pro tip: Use database triggers on StatusUpdate creation to decouple notification logic from the update workflow. This keeps workflows clean and notifications reliable.

Expected result: Stakeholders receive automated notifications via in-app alerts and email when statuses change.

5

Build tracking dashboards

Create two dashboard views. For administrators: a summary page showing counts per status (how many items in each stage), a table of all items with filtering by status, assigned user, and date range, and alerts for items stuck in a status too long. For end users: a simple tracking page where they enter a tracking ID and see their item's current status, timeline, and estimated completion. Add a progress bar showing the item's position in the overall workflow using the status display_order relative to total stages.

Expected result: Admins see operational dashboards and users can track their items with progress visualization.

Complete working example

Workflow summary
1TRACKING SYSTEM SUMMARY
2=====================================
3
4DATA MODEL:
5 TrackableItem: tracking_id, title,
6 current_status (Option Set), owner,
7 assigned_to, created_date, est_completion
8 StatusUpdate: item, old_status, new_status,
9 updated_by, notes, Created Date
10 TrackingStatus: Option Set with display_order
11
12STATUS UPDATE WORKFLOW:
13 1. Create StatusUpdate (history record)
14 2. Make changes to TrackableItem
15 current_status = new status
16 3. Send notifications (in-app + email)
17
18TIMELINE VIEW:
19 RG: StatusUpdates for item (asc by date)
20 Cell: colored dot, status, time, user, notes
21 Vertical line connecting dots
22 Latest update highlighted
23
24PROGRESS BAR:
25 Width = (current status order / total stages) %
26 Color: green for on-track, yellow for delayed
27
28ADMIN DASHBOARD:
29 Status counts per stage
30 Item table with filters
31 Stuck items alert (status unchanged > X days)
32
33USER TRACKING:
34 Input: tracking ID
35 Display: current status, timeline, ETA
36 Progress bar visualization

Common mistakes when building a Tracking System in Bubble

Why it's a problem: Updating the item status without creating a history record

How to avoid: Always create a StatusUpdate record before changing the current_status field on the item

Why it's a problem: Not validating status transitions

How to avoid: Define allowed transitions and add Only When conditions to prevent invalid status changes

Why it's a problem: Searching StatusUpdates inside each timeline cell for additional data

How to avoid: Store all necessary display data directly on the StatusUpdate record at creation time

Best practices

  • Record every status change as a separate StatusUpdate for complete history
  • Use Option Sets with display_order for consistent status progression
  • Validate status transitions to prevent invalid changes
  • Send automated notifications on every status change
  • Show a progress bar relative to total stages for visual tracking
  • Alert admins about items stuck in a status beyond expected timeframes
  • Archive completed items periodically to maintain dashboard performance

Still stuck?

Copy one of these prompts to get a personalized, step-by-step explanation.

ChatGPT Prompt

I want to build an order tracking system in my Bubble.io app where customers can track their order status with a timeline view showing each status change. How should I design the data model?

Bubble Prompt

Help me build a tracking system with status stages (Pending, Processing, Shipped, Delivered), a visual timeline of changes, automated email notifications, and a progress bar showing current position.

Frequently asked questions

Can I track different types of items with the same system?

Yes. Add a 'type' field to TrackableItem and create different TrackingStatus Option Sets for each type. Filter dashboards by item type.

How do I handle items that go backwards in status?

The StatusUpdate history records all changes regardless of direction. Define allowed transitions in your workflow logic to control which backward moves are permitted.

Can end users update the status?

Typically, only administrators or assigned users update status. End users can view the timeline and current status. Control this with role-based access on the status update workflow.

How do I calculate estimated delivery time?

Track average time spent in each status stage across all items. Sum the remaining stage averages from the current status to calculate the estimated completion.

Can I send SMS notifications for status changes?

Yes. Integrate Twilio via the API Connector and add an SMS sending step to the status update workflow alongside the email notification.

Can RapidDev help build a tracking system?

Yes. RapidDev can build complete tracking systems in Bubble including real-time updates, SMS/email notifications, customer portals, and analytics dashboards.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Need help with your project?

Our experts have built 600+ apps and can accelerate your development. Book a free consultation — no strings attached.

Book a free consultation

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.