Bubble.io Backend Workflows Guide: Scheduling, Bulk Jobs, Webhooks and Workload Control

Product Development

Backend workflows are how a Bubble.io app does work without a user waiting on a page. They send emails on a schedule, process thousands of records, receive webhooks from payment providers and keep sensitive logic on the server. If your app feels slow or your workload bill keeps growing, understanding backend workflows is one of the highest-leverage skills you can build.

Page workflows vs backend workflows

Page workflow Backend workflow
Runs where Triggered by a user on a page On the server, independent of any page
Best for Navigation, forms, immediate UI feedback Bulk jobs, schedules, webhooks, protected logic
Survives the user closing the tab Not reliably Yes
Can be scheduled Limited Yes

Backend workflows are available on paid Bubble plans, so check the current plan details on Bubble’s pricing page when you plan your build.

Seven jobs backend workflows do well

  1. Scheduled reminders. Send an email or notification 24 hours before an appointment by scheduling a workflow for a specific date and time.
  2. Bulk updates. Change a field on thousands of records without freezing a page.
  3. Webhooks. Expose an API workflow as an endpoint so a payment gateway or another service can notify your app.
  4. Protected logic. Calculate prices, apply discounts or grant access on the server, where users cannot tamper with it.
  5. Heavy processing. Generate reports, call slow external APIs or process uploads in the background.
  6. Recurring tasks. Create invoices, expire trials or archive old data on a regular cycle.
  7. Cleanup. Delete or anonymise data to meet retention rules.

Scheduling a workflow

The basic pattern is “Schedule API Workflow.” You choose the workflow, the date and time, and pass in parameters. Two habits keep this reliable:

  • Pass the thing, not a copy of its data. Send the Appointment itself as a parameter so the workflow reads the latest values when it runs.
  • Re-check conditions when it fires. If the appointment was cancelled after you scheduled the reminder, the workflow should detect that and stop. Add an “Only when” condition at the start.

Recursive workflows for bulk jobs

To process a long list, a common approach is a recursive workflow: handle one item, then schedule the same workflow for the next. A simplified version:

  1. Pass in a list of records, or a search, as a parameter.
  2. Process the first item.
  3. If more items remain, schedule the same workflow again with the list minus the first item.
  4. Stop when the list is empty.

Bubble also offers a built-in way to run a workflow on a list. Which approach fits depends on the volume and on whether order matters. Test with a small batch first, because a mistake in a bulk job is multiplied by every record it touches.

Receiving webhooks safely

Turn a backend workflow into a public endpoint and you have created a door into your app. Protect it:

  • Verify a shared secret or signature supplied by the sending service.
  • Confirm important facts, such as a payment, by calling the provider’s API rather than trusting the payload alone.
  • Make the workflow idempotent: if the same event arrives twice, the second run should do nothing.
  • Return a quick success response and do heavy work in a follow-up scheduled workflow.

See our API Connector guide for the outbound side and our Stripe integration walkthrough for a worked webhook example.

Controlling workload units

Bubble bills by workload, and backend workflows are a frequent source of surprise bills because they can run in volume without anyone watching. Habits that help:

  • Filter in the search, not after it. Use search constraints to narrow results on the server, rather than fetching everything and filtering with “:filtered.”
  • Avoid unnecessary loops. Scheduling a workflow every minute that finds “nothing to do” still costs work.
  • Batch sensibly. Process in reasonable chunks rather than one record per workflow when order does not matter.
  • Watch the logs. Check the server logs and app metrics after launching any new recurring job.
  • Add a kill switch. A simple “Settings” thing with a yes/no field lets you pause a runaway job without editing the app.

Read our full guide to calculating and controlling your WU bill and the companion article on performance optimisation.

Error handling you should not skip

  • Log failures to a “Job Log” data type with the error, record and timestamp.
  • Notify an admin when a critical job fails, not only when it succeeds.
  • Design retries carefully, with a limit, so one failing record cannot loop forever.
  • Run new jobs in a development version with test data before pointing them at live data.

Security notes

Backend workflows can run with broader access than a logged-in user, which is exactly why they are useful for protected logic and exactly why they need care. Do not expose a workflow that returns sensitive data without checking who is calling it. Pair them with solid security practices, and see our guide to automating business processes with Bubble.io workflows for more use cases.

Frequently asked questions

When should I use a backend workflow instead of a page workflow?

Use a backend workflow when the work should continue after the user leaves, must run on a schedule, receives outside calls or involves logic users must not be able to alter.

Why is my scheduled workflow not running?

Common causes: the date is in the past, an “Only when” condition is false, a required parameter is empty, or the workflow errors on the first step. Check the server logs.

Do backend workflows cost more?

Every workflow consumes workload. Inefficient searches and needless repetition cost more, not the use of backend workflows by itself.

Need help with a slow or expensive app?

SA Solutions provides ongoing support and optimisation for Bubble.io apps already in production, billed for the hours actually spent.