Bubble provides the Make Changes to Thing action for updating individual records and Make Changes to a List of Things for bulk updates. This tutorial covers targeting the right record, updating single and multiple fields, bulk operations with Schedule API on a List, and conditional field updates.
Overview: Updating Database Records in Bubble
Updating records is one of the most common operations in any Bubble app. Whether you are editing a user profile, changing an order status, or bulk-updating prices, you need to know the right approach. Bubble offers several methods for updates, each suited to different scenarios. This tutorial covers them all.
Prerequisites
- A Bubble app with Data Types containing records to update
- Basic understanding of Bubble workflows and the Data tab
- Familiarity with Do a Search For and dynamic expressions
Step-by-step guide
Update a single record with Make Changes to Thing
Update a single record with Make Changes to Thing
In your workflow, add the action Data → Make Changes to Thing. The first field asks which Thing to change — this is where you specify the record. Common sources: Current User (to update the logged-in user), Current cell's DataType (inside a Repeating Group), a search result, or Result of a previous step. After selecting the Thing, you see a list of all fields. Click each field you want to change and set the new value. Fields you do not set remain unchanged.
Pro tip: You only need to set the fields you want to change. Omitted fields keep their current values — you do not need to re-set every field.
Expected result: The specified record's fields are updated with the new values.
Target records in different contexts
Target records in different contexts
The most common sources for the thing to change: (1) Current User — always refers to the logged-in user. (2) Current cell's DataType — inside a Repeating Group, refers to the record in the current cell. (3) Do a Search for — finds a record by constraints, use :first item for a single result. (4) Result of step X — references a record created or found in a previous workflow step. (5) Parent group's DataType — references the record loaded in a parent group element.
Expected result: You can confidently target the correct record in any workflow context.
Update multiple records with Make Changes to a List of Things
Update multiple records with Make Changes to a List of Things
For updating many records at once, use Data → Make Changes to a List of Things. Set the list to a search expression (e.g., Do a Search for Products where category = Old Category). Set the fields you want to change (e.g., category = New Category). This updates all matching records in a single action. Note: this action processes records client-side and has a limit — for very large lists (100+ records), use backend workflows.
Pro tip: Make Changes to a List processes on the client side and can be slow for large datasets. For 100+ records, use Schedule API Workflow on a List instead.
Expected result: All records matching the search are updated simultaneously with the new field values.
Use Schedule API Workflow on a List for large bulk updates
Use Schedule API Workflow on a List for large bulk updates
For updating hundreds or thousands of records, create a backend API workflow that takes a single record as a parameter and makes the change. Then in your frontend workflow, use Schedule API Workflow on a List. Set the list to your search results and the workflow to your backend workflow. Bubble will process each record individually server-side, which is more reliable for large datasets and does not freeze the user's browser.
Expected result: Large bulk updates process reliably in the background without freezing the user's browser.
Conditionally update specific fields
Conditionally update specific fields
Sometimes you only want to update a field under certain conditions. Use the Only When condition on individual workflow actions to skip the update when conditions are not met. For field-level conditions, you can use the expression: if Condition then NewValue otherwise CurrentValue as the field value. This pattern lets you selectively update fields based on business logic within a single Make Changes action.
Expected result: Fields are updated conditionally based on your business logic, with unchanged fields preserved.
Complete working example
1DATABASE UPDATE PATTERNS2=========================34PATTERN 1: Single Record Update5 Action: Make Changes to Thing6 Thing to change: Current cell's Product7 Fields:8 → title = TitleInput's value9 → price = PriceInput's value10 → Updated Date = Current date/time1112PATTERN 2: Current User Update13 Action: Make Changes to Current User14 Fields:15 → name = NameInput's value16 → profile_picture = ImageUploader's value1718PATTERN 3: Bulk Update (small dataset, <100 records)19 Action: Make Changes to a List of Things20 List: Do a Search for Products (category = "Old")21 Fields:22 → category = "New"23 → active = no2425PATTERN 4: Bulk Update (large dataset, 100+ records)26 Backend Workflow: update-single-product27 Parameter: product (Product)28 Action: Make Changes to product29 → category = "New"30 → active = no3132 Frontend Workflow:33 Action: Schedule API Workflow on a List34 → List: Do a Search for Products (category = "Old")35 → Workflow: update-single-product36 → product = This item3738PATTERN 5: Conditional Field Update39 Action: Make Changes to Thing40 Thing: Current cell's Order41 Fields:42 → status = "Shipped"43 → shipped_date = Current date/time44 (Only set when status was previously "Paid")4546PATTERN 6: Incrementing a Number Field47 Action: Make Changes to Thing48 Thing: Current cell's Product49 Fields:50 → view_count = Current cell's Product's view_count + 1Common mistakes when updating database things in Bubble
Why it's a problem: Using Do a Search in Make Changes instead of referencing the correct Thing
How to avoid: Use the correct data reference: Current cell's Data, Current User, Parent group's Data, or a Search :first item
Why it's a problem: Using Make Changes to a List for thousands of records
How to avoid: Use Schedule API Workflow on a List for bulk operations over 100 records
Why it's a problem: Expecting immediate visibility of changes in searches
How to avoid: Use Result of step X to reference the changed record instead of doing a new search
Best practices
- Always use the most specific data reference available (Current cell, Current User, Result of step) rather than a search
- For bulk updates over 100 records, use Schedule API Workflow on a List for reliability
- Only set fields that are actually changing — omitted fields keep their current values
- Add a Modified Date field and update it on every change for audit tracking
- Use Result of step X to reference changed records in subsequent actions instead of searching
- Test updates with a single record before running bulk operations
Still stuck?
Copy one of these prompts to get a personalized, step-by-step explanation.
I need to update database records in my Bubble.io app. I have single record updates from a form, bulk price changes for all products in a category, and conditional status changes on orders. Can you show me the correct workflow patterns for each?
Set up update workflows for my app. I need to update individual product records from an edit form, bulk-update all products in a category, and conditionally change order status from Paid to Shipped.
Frequently asked questions
Does Make Changes to Thing trigger database triggers?
Yes. If you have database trigger events (A thing is modified) on the Data Type, they will fire when Make Changes to Thing updates a record.
How many records can Make Changes to a List handle?
There is no hard limit, but it runs client-side. Lists over 100 records can cause browser slowness or timeouts. Use Schedule API Workflow on a List for large datasets.
Can I undo an update?
Bubble has no built-in undo for database changes. To enable rollback, store the previous values in a history Data Type before making changes, or use version control for your app.
How much does an update cost in Workload Units?
A single Make Changes to Thing costs approximately 0.5 WU. Bulk updates with Schedule API Workflow cost WUs per record processed. Monitor your usage in Settings → App metrics.
Can I update records from an external API?
Yes. Enable the Data API in Settings → API, then use PUT or PATCH requests to update records at the endpoint https://yourapp.bubbleapps.io/api/1.1/obj/datatype/uniqueid.
What if I need to update records across related Data Types?
Chain Make Changes actions in your workflow — update the parent record first, then update related records using Result of step or search. For complex relational updates, RapidDev can help design efficient update patterns.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation