Expert Advice on Scheduling

Hello,

I am integrating with LinkedIn to post automatically via the Bubble app. Seems like we do not have the option to schedule the post on LinkedIn. What would be the best option for me to go for in terms of WU and optimization.

  1. Schedule a backend workflow to do the API call to post as I have the exact date and time
  2. Create a draft of the post and check everyday which posts are due for the day and then schedule them
  3. Create queue system in python and host in AWS
1 Like

Commenting for better reach

1 Like

Did you find the answer to this question? I am looking to do the same.

I’ll try to help. There are some nuances to the design of this. Your 3 options are a fair starting point.

Up front, scheduling a Workflow in a Bubble app is very straightforward. As you suggest, if you have the exact date and time, and the exact actions - why not just schedule it?

Right now I am fixing the design of a “subscription reminder service” in a Bubble app. A subscriber is added to the service let’s say Jan 14 2024, and a reminder is set for the future, let’s say Jan 14 2025, to send an email that the subscription has expired. Seems fine right? It’s probably exactly what the Client asked for at the time.

This design creates many operational issues. There are many reasons why subscriptions end, get extended, get transferred to another account, email addresses change, etc., and there is generally expected change over time.

In a Bubble app, sometimes your Scheduled jobs go hay-wire - and you have to hit the brakes hard. Perhaps you have some naughty recursive workflow. So you need to clear all scheduled jobs - in a busy Bubble app, this could be 1000’s of scheduled workflows. You now have the issue of picking through manually numerous scheduled jobs to kill the naughty ones. Generally in a highly stressful moment. Not operationally viable.

So to manage scheduled jobs, in a programmatic way you create a “job table” holding the scheduled job metadata, so you can get some visibility and control of your jobs. That’s totally fine, makes sense. But now you have a reconciliation issue, does everything in your jobs table equal exactly what is scheduled in your Bubble scheduler - or is there drift? Not operationally viable.

Then there is time zone issues. You want your email to arrive at 7am on the day in the users local time. So what does that mean when your set the timing of the job? How can you check that everything in the scheduler is scheduled correctly?

Then business rules evolve - you decide in October, that now reminders ought to be sent 2 weeks before expiry. Everything previously scheduled is now wrong.

You can do things like add extra bogus parameters to the workflow being scheduled - purely for the purpose to make the scheduled jobs have a more useful description - and that is probably a good idea anyway. But not retrospectively. Then you can copy and paste the content of the schedular out of the Editor into a spreadsheet so you can make sense of what is in the scheduler, vs your job table vs your accounting system. Yuck.

That’s enough typing - in short

  • long-running schedules are probably a bad use case for the Bubble scheduler.
  • there is a time and place for using end of period, eg weekly/monthly batch jobs
  • jobs should be idempotent - jargon meaning an action can run multiple times without issues - but now WU comes into play.
  • the hard part is reconciling the list of scheduled jobs with anything else - and in this case this makes the Bubble scheduler a poor tool for managing schedules - it really should just be considered as ‘run something in the future but don’t use this timing as any part of the business rules’

I hope that helps someone’s thinking when they come to designing scheduled tasks. :slight_smile: