# How to build review and approval workflows in Bubble

- Tool: Bubble
- Difficulty: Intermediate
- Time required: 25-30 min
- Compatibility: All Bubble plans
- Last updated: March 2026

## TL;DR

Create a multi-step review and approval workflow in Bubble with submit for review, approver assignment, approve and reject actions, revision requests, and audit trail logging. This tutorial covers the data model, status management, email notifications, and an admin review dashboard.

## Overview: Building a Review and Approval Workflow

Many apps need content or request approval before going live — blog posts, expense reports, job applications. This tutorial builds a complete approval system with submission, review assignment, approval/rejection, revision loops, and audit logging.

## Before you start

- A Bubble account with an app ready to edit
- A Data Type for the items being reviewed
- Basic understanding of workflows and Option Sets
- Familiarity with sending emails from Bubble

## Step-by-step guide

### 1. Create the approval data model

Create an Option Set called ApprovalStatus with options: Draft, Pending Review, Approved, Rejected, Revision Requested. Add fields to your item Data Type: status (ApprovalStatus), reviewer (User), submitted_date (date), reviewed_date (date), and review_notes (text). Create an AuditLog Data Type with item, action (text), actor (User), timestamp (date), and notes (text).

**Expected result:** Data model with approval statuses and audit logging.

### 2. Build the submission workflow

On the item edit page, add a Submit for Review button. The workflow sets status to Pending Review, submitted_date to now, and assigns a reviewer (either automatically based on role or manually selected). Create an AuditLog entry with action Submitted. Send an email notification to the assigned reviewer.

**Expected result:** Items can be submitted for review with notifications to reviewers.

### 3. Create the reviewer dashboard

Build an admin page showing items pending review. Add a Repeating Group searching items where status is Pending Review and reviewer is Current User. Each cell shows the item title, submitter, date, and Review button. Clicking Review opens the item detail with Approve, Reject, and Request Revision buttons.

**Expected result:** Reviewers see their pending items and can take action.

### 4. Implement approve and reject actions

The Approve button workflow: set status to Approved, reviewed_date to now. Create AuditLog entry. Send approval notification to submitter. The Reject button shows a popup for rejection reason, sets status to Rejected, saves review_notes, creates AuditLog, and notifies submitter with the reason.

**Expected result:** Reviewers can approve or reject with notes and notifications.

### 5. Add revision request flow

The Request Revision button opens a popup for revision notes. The workflow sets status to Revision Requested and saves notes. The submitter sees their items needing revision, makes changes, and can resubmit (setting status back to Pending Review). Each action creates an AuditLog entry.

**Expected result:** A revision loop where submitters can address feedback and resubmit.

### 6. Build the audit trail view

On the item detail page, add a Repeating Group showing AuditLog entries for this item, sorted by timestamp descending. Display action, actor name, timestamp, and notes. This provides a complete history of all approval actions.

**Expected result:** A chronological log of all actions taken on each item.

## Complete code example

File: `Workflow summary`

```text
APPROVAL WORKFLOW — SUMMARY\n============================\n\nDATA MODEL\n  Item (existing): + status (ApprovalStatus), reviewer (User),\n    submitted_date, reviewed_date, review_notes\n  ApprovalStatus: Draft, Pending Review, Approved, Rejected, Revision Requested\n  AuditLog: item, action (text), actor (User), timestamp, notes\n\nWORKFLOW: Submit for Review\n  Set status = Pending Review, assign reviewer\n  Create AuditLog (Submitted), send email to reviewer\n\nWORKFLOW: Approve\n  Set status = Approved, reviewed_date = now\n  Create AuditLog (Approved), notify submitter\n\nWORKFLOW: Reject\n  Set status = Rejected, save rejection notes\n  Create AuditLog (Rejected), notify with reason\n\nWORKFLOW: Request Revision\n  Set status = Revision Requested, save notes\n  Create AuditLog, notify submitter\n\nWORKFLOW: Resubmit\n  Set status = Pending Review\n  Create AuditLog (Resubmitted)
```

## Common mistakes

- **Not logging actions in an audit trail** — Without a log, there is no record of who approved what and when, creating accountability gaps. Fix: Create an AuditLog entry for every status change with actor, action, timestamp, and notes.
- **Allowing submitters to edit items during review** — Changes during review invalidate the reviewer is assessment. Fix: Disable edit access when status is Pending Review. Only allow edits when status is Draft or Revision Requested.
- **Not sending notifications on status changes** — Reviewers and submitters miss updates, causing delays. Fix: Send email notifications on every status change to the relevant party.

## Best practices

- Log every status change in an audit trail
- Send email notifications on all status changes
- Disable editing during pending review
- Allow multiple revision cycles
- Show the complete approval history on item detail pages
- Use Privacy Rules so reviewers only see items assigned to them

## Frequently asked questions

### Can I have multiple approval levels?

Yes. Add additional statuses (Level 1 Approved, Level 2 Pending) and chain workflows so approval at one level triggers the next review.

### How do I auto-assign reviewers?

Search for users with the reviewer role and assign based on workload (fewest pending reviews) or round-robin using a counter.

### Can I set approval deadlines?

Yes. Add a review_deadline field. Create a backend workflow that checks for overdue items and sends reminder emails.

### Can RapidDev help build complex approval flows?

Yes. RapidDev builds multi-level approval systems with SLA tracking, escalation, parallel approvals, and compliance reporting.

---

Source: https://www.rapidevelopers.com/bubble-tutorial/create-a-review-and-approval-workflow-in-bubble
© RapidDev — https://www.rapidevelopers.com/bubble-tutorial/create-a-review-and-approval-workflow-in-bubble
