Resources

Bubble Backend Workflows: How They Work and How to Schedule Them

Learn how Bubble backend workflows work: enable the Workflow API, schedule one-time and recurring runs, process lists, and fix workflows that don't fire.

Alex Dow

Article by

Alex Dow

Resources

•

13

mins to read

Bubble Backend Workflows: How They Work and How to Schedule Them

Founder scheduling a Bubble backend workflow

Bubble backend workflows are server-side workflows that run without anyone having a page open. You build them in the Backend workflows editor, and they cover API workflows, database trigger events, recurring events, and custom events. Use them for anything that should happen later, on a schedule, in bulk, or when an outside system calls your app. This guide shows you how to set them up, schedule them (once, on a list, or on repeat), and troubleshoot them when they don’t fire.

Let’s Build My App
Build Beyond Bubble Workflows
If your Bubble app needs more than workflow scheduling, Let’s Build My App develops and supports web and mobile applications.

TL;DR

  • Backend workflows run 100% on Bubble’s server, so they keep going after a user closes the browser. Regular page workflows do not.
  • Turn on the Workflow API in Settings, then add a backend workflow from the backend editor and choose “New API workflow.”
  • Use “Schedule API Workflow” for a single future run, “Schedule API workflow on a list” for bulk work, and a recurring event for daily, weekly, monthly, quarterly, or yearly jobs.
  • If something doesn’t run, check the scheduler in the Logs tab first: the right environment (Live or Development) and whether “Pause tasks” is switched on.

Table of Contents

What backend workflows are and how they differ from page workflows

A regular workflow lives on a page and runs in the visitor’s browser. A backend workflow lives in the backend editor and runs on Bubble’s servers. Bubble’s docs use “backend workflows” as the umbrella term for API workflows, database trigger events, recurring events, and custom events that are not tied to a page. All of them run server-side.

That difference matters in practice. According to Bubble’s documentation on API workflows, they can:

  • be triggered from an external application
  • keep running even if the page is closed
  • schedule themselves to loop
  • be scheduled to run in the future, even if the page is closed
  • override privacy rules

That last point deserves care. Because an API workflow can act regardless of who is looking at the page, you decide deliberately what it is allowed to do and who is allowed to trigger it.

When to reach for a backend workflow

Here are the situations where a backend workflow is the right tool:

  • Delayed actions. Send a reminder email 48 hours after signup, or expire a trial after 14 days.
  • Large lists. Update every record in a table, or send a message to thousands of users, without making someone’s browser do the work.
  • Recurring jobs. Generate a nightly report, bill on the first of the month, or clean up stale data weekly.
  • Incoming calls from other tools. A payment processor, a form tool, or another app sends data to an endpoint you control.
  • Sensitive logic. Steps you would rather not run in the browser, such as anything involving admin-level changes.

How to enable the Workflow API and create an API workflow

Setup takes a few minutes. Here’s the order.

  1. Turn the feature on. Go to Settings, then the API tab, and check the box labeled “Enable Workflow API and Backend Workflow”. Workflows marked “Expose as a public workflow” become callable from outside.
  2. Open the backend editor. Click “Click here to add a backend workflow” and choose “New API workflow,” as described in Bubble’s guide to creating API workflows.
  3. Name it carefully. Use lowercase letters with no spaces or special characters. Dashes or underscores work in their place. The name becomes part of the endpoint URL.
  4. Add parameters and actions. Parameters are the inputs the workflow expects, such as a user, an order, or a date. Then add the actions it should perform.

If your workflows publish or update public content, you can pair them with automated SEO for Bubble apps, which can feed pages that an API endpoint then creates or refreshes.

The endpoint pattern

Once the API is on, workflows are called at a predictable address. The general path is https://appname.bubbleapps.io/api/1.1/wf/workflow_name, or the same path on your own domain, where “wf” stands for workflow. Every API workflow you create gets its own endpoint this way.

Choosing who can trigger it

Authentication is a setting on each workflow. According to the Workflow API documentation, you have three options:

Setting Who can trigger it Typical use
None required Anyone, with no authentication Signup or other public-facing workflows
User and admin Any authenticated user Actions a logged-in user can start
Admin only Only requests with an admin-level API key Internal jobs and sensitive operations

Default to the most restrictive option that still works. If you connect external services, keep your keys out of the browser too. Our guide to securing the Bubble API Connector walks through how to do that.

One more detail: unchecking the Workflow API box disables the endpoint, but it does not stop backend workflows that are already scheduled. To halt those, pause the scheduler in the Logs tab.

Scheduling a backend workflow to run once

The “Schedule API Workflow” action is how most people first use backend workflows. Pick the workflow, fill in its required parameters, and set the date and time. Bubble’s docs on backend workflow actions also note that to run something right away, you use the current date/time operator as the scheduled date. That is handy when you want the work to happen on the server instead of in the visitor’s browser.

A snapshot is saved at scheduling time

This catches many builders off guard. When you schedule a workflow for later, Bubble saves a snapshot of its structure and actions as they exist at that moment. If you edit the workflow afterward, runs that are already scheduled do not pick up the change. You need to cancel them and schedule again.

Practical takeaway: after you change a workflow that has future runs queued, clear the old ones and reschedule. Otherwise the old logic fires at the old time.

Creating recurring scheduled workflows

If you searched for scheduled workflows in Bubble, you probably want a job that repeats. That’s what recurring events are for. You define them in the backend editor and set the interval to Daily, Weekly, Monthly, Quarterly, or Yearly. The schedule starts when the “Set/cancel a recurring event” action first triggers it, and the interval is calculated from that moment onward.

Two things follow from that:

  • A recurring event does nothing until an action starts it. Defining it is not enough.
  • The start time sets the rhythm. If you start a daily event at 3:40 p.m., expect it at about that time each day.

Know your plan limits

Recurring events have limits per thing in your database. Bubble’s documentation lists 1 on Free, 1 on Starter, 5 on Growth, and 20 on Team. If you need many different recurring jobs per record, plan around those numbers early.

Recurring workflow limits by Bubble plan

Recursive workflows for custom timing

Sometimes a fixed interval is not enough. A recursive workflow reschedules itself: you use the Schedule API workflow action and pick the same workflow. You control the delay, the stop condition, and the order. Since July 1, 2024, Bubble applies a default that ends recursive chains at 10 iterations for new apps, which protects you from infinite loops and runaway workload unit (WU) use.

A good recursive design always has an exit condition, such as “stop when the list is empty.” Check your app’s setting for the iteration cap if a chain stops earlier than you expected.

In very rare cases, a recurring event can get stuck rescheduling itself. Bubble’s recommended fix is to pause the scheduler, bulk delete the extra scheduled tasks, unpause, and try again.

Running a workflow on a list of things

Bulk work is where backend workflows earn their keep. “Schedule API workflow on a list” runs a workflow once for each item in a list. Each run handles a single item and counts as one workflow run. According to the backend workflows action docs, the list is evaluated when you schedule it, and you can set an interval in seconds between runs.

Hard limits to design around

Bubble’s hard limits page sets the ceiling at 100,000 workflows for unsorted lists and 50,000 for sorted lists. Enterprise plans with a dedicated instance do not have a hard limit on this action. If your list is bigger, split it into batches.

The interval setting

An interval of 0 seconds makes the batch block all other scheduled workflows until it finishes. Leaving the field at its default usually works better, since other scheduled work keeps moving. If you have a big batch and live users who depend on timely emails or updates, this one setting can make a visible difference.

List action or recursive workflow?

Both process many items, but they behave differently:

Schedule on a list Recursive workflow
How it runs Schedules everything in one operation and tries to run items in parallel Runs one item at a time, in order
Workload cost Generally more efficient Small cost on each re-schedule step
Best for Bulk updates and sends Sequential steps and custom delays

The comparison above follows Bubble’s own notes: a recursive workflow over 100 things runs the schedule action 100 times, while the list action schedules them all at once. Bubble’s recursion guide recommends the list action for bulk processing and keeps recursion for cases that need sequential execution or custom delays.

Testing scheduled workflows and troubleshooting

When a scheduled workflow doesn’t run, work through this checklist in order.

  1. Check the environment. Live and Development have separate schedules. A workflow scheduled in Development will not appear in Live.
  2. Open the scheduler. It sits in the Logs tab and shows upcoming scheduled workflows.
  3. Look at “Pause tasks.” When this is active, no API workflows run, including those scheduled by live users. Check it first.
  4. Think about congestion. The scheduler is a queue. A flood of simultaneous or tightly spaced workflows can cause delays.
  5. Remember what won’t appear. Requests that come in from an external app are triggered immediately rather than scheduled, so they never show in the scheduler.

Getting data back from a workflow

API workflows can send a response using the “Return data from API” action, with plain text, structured JSON, or another content type. But a scheduled run is not a direct call. The Schedule API workflow action only returns the ID of the scheduled workflow. Community guidance on returning data from an API workflow points to calling the workflow through the API Connector when you need a real response back.

Getting data back from a workflow

If you need a result after a scheduled run, a reliable pattern is to have the workflow write its output to the database. Your page can then read that record.

Our perspective on backend workflows

Backend workflows are the part of a Bubble app that decides whether it feels like a prototype or a product. Emails that go out on time, nightly jobs that finish, and imports that don’t freeze a browser tab all come from good backend design.

We build these every week. The patterns that hold up are simple: give each workflow one job, restrict who can trigger it, use the list action for bulk work, and always give recursive chains a clear way to stop. Our team of senior US-based engineers designs the backend first, because it is much easier to get right at the start than to untangle later.

Bubble can take a product a long way, and we are the #1 US-based Bubble agency because we know where it shines. If your product grows to the point where you want custom code behind it, we handle Bubble-to-code migrations too, so the logic you’ve already built carries over into production-grade software.

Alex

Get help building your backend workflows

If you’d rather have an experienced team design and ship your backend logic, we can help. Our senior engineers work directly with you, with no layers of account management, and most projects ship in 6 to 10 weeks. We use fixed pricing, so you know the cost up front.

Let’s Build My App

Our published plans are Starter at $1,750 per month, Growth at $3,000 per month, and Enterprise at $5,000 per month, plus a Custom option. Building a first product? See our MVP development service. Already outgrowing Bubble? Look at Bubble-to-code migration. Or start with a conversation: launch your project with us.

FAQ

What is the difference between a workflow and a backend workflow in Bubble?

A regular workflow is built on a page and runs in the user’s browser. A backend workflow is built in the backend editor and runs on Bubble’s server. Backend workflows keep running when the page is closed, can be triggered externally, and can be scheduled for later.

How do I run a Bubble workflow at a specific time every day?

Create a recurring event in the backend editor and set its interval to daily. Then trigger it once with the “Set/cancel a recurring event” action. From that point, Bubble calculates each next run from the start time.

Can a backend workflow handle thousands of records at once?

Yes. Use “Schedule API workflow on a list.” Bubble lists a hard limit of 100,000 workflows for unsorted lists and 50,000 for sorted lists, and Enterprise plans with a dedicated instance have no hard limit on the action. For anything larger, split the work into batches.

Why isn’t my scheduled workflow running in the live version?

First confirm you’re looking at the Live scheduler, since Live and Development keep separate schedules. Then check that “Pause tasks” is off in the Logs tab. If both are fine, look for a congested queue or a workflow that was edited after it was scheduled.

Sources

About Let’s Build My App

Let’s Build My App is a US-based AI development agency. We design, build, and launch production-grade custom software using AI coding tools including Claude Code and OpenAI Codex, and we migrate legacy Bubble apps onto AI-coded stacks such as React, Supabase, and Firebase. We are the #1 US-Based Bubble Agency, founded and run by Alex Dow. Book a free strategy call to scope your project.

You liked this article ? Share it!

Ready to turn
your idea into reality?

LetsBuildMyApp Team is ready to take on your challenge. Contact us for a free quote today!

Alex Dow, founder of Let's Build My App

Got a question?

We have an answer for you! 

How can I get a quote?

Jump on a free strategy call with our founder, Alex. You can schedule here or reach out to us directly.

How long will it take to complete my project?

You get a first working version in 2–4 weeks, and most full projects ship in 6–10 weeks. Timeline depends on feature complexity. Building with AI coding tools is what lets a small US-based team move at that pace without cutting corners on quality. Schedule a call for an exact estimate based on your scope.

What is AI-powered app development?

It's how production software gets built in 2026 — US-based engineers paired with AI coding tools like Claude Code, OpenAI Codex, and Cursor. You get real production code (React, Next.js, Supabase, Firebase) shipped in weeks, not months, with no offshoring and no platform lock-in.

Can AI-coded apps handle complex production workloads?

Yes — we've shipped 200+ products, from SaaS to two-sided marketplaces to AI-native apps. Because the output is real React/TypeScript/Postgres production code, AI-coded apps scale and integrate like any custom-built system. No platform ceiling, no vendor lock-in.

What happens after the application is deployed?

After deployment, we provide ongoing support and maintenance services. This includes regular updates, bug fixes, and addressing any changes. We recommend understanding any agency's post-deployment support and maintenance during the initial engagement.