[Seeking Alpha testers] Database change triggers

Requirements:

  • Apps must be on the (non-legacy) Personal plan and above to participate
  • Dedicated apps can participate, but you must upgrade your box after code is available for dedicated (ETA morning of Friday 2/14).

We are kicking off the Alpha phase for a new feature: the ability to create a backend workflow that triggers when a change to a Thing is made.

In other words, this feature allows you to create a workflow that starts when any change to a particular data type is made. You must specify the data type to “watch”, and you can add a condition on current or old values of the changing thing to determine whether the workflow should trigger.

A use case: let’s say you have a project management app and users can change the status of a task from many different pages. You want to send an email to the task owner whenever the status changes. Previously you would have to create a workflow every place the task could change in order to send the email. But with this feature, you can just create 1 backend workflow to watch for changes on tasks where old status is not new status, and send the email as an action from there.

Note that this is a relatively powerful feature which could suck up a lot of capacity, so be judicious in using it :slight_smile:

If you wish to participate and help us test this feature, please DM me the app ID you wish to activate.

Cheers,
Allen

31 Likes

This is awesome!

Yes! Two classic use cases come to mind:

  • Managing bi-directional relationships: when a person’s manager changes, trigger a corresponding change to that manager’s reports
  • Replicating something like Salesforce’s “formula fields”: when a deal’s unit price or quantity is updated, update the total price accordingly
2 Likes

Yes finally, wish I can participate though! Erghhhh Thank you guys so much

GREAT! :smile: I want to participate for sure!

@allenyang This is absolutely next level!

How broad is the trigger? Is it possible to watch an entire data type for a change to any of the fields? Or trigger on the creation/deletion of a specific data type’s record?

I’ll dm tomorrow with an app ID :slight_smile:

1 Like

I hoped this would happen !
@allenyang Of many changes happen during a short time, could we define a “delay” before the trigger runs ? so the Backend Workflow does not run as many times as the Thing get modified.

This is a seriously awesome update!!

@eli - This should be pretty broad, but give it a try and let us know if anything’s missing :slight_smile:

@nicolas_dap - The way it should work now is that if workflow A has a few actions that make changes to a thing, the backend workflow should only trigger once for workflow A (caveat if you log the user out in the middle of it - then it’ll run twice)

Could this be used to create a type of log system where you create a system which tracks every change a user makes ( especially if you use auto binding)?

1 Like

Im interested in participating here too!

This would be incredibly useful for one of my apps. I’ve actually held off on integrating an API because of the need you are addressing in this feature. You can count me in to beta test it if you want!

What I actually meant is :
If 5 different workflows change a Thing in less than 30 seconds (because different process going on or different users), is there a way to trigger only once the Backend Workflow and not 5 times ?
This is a very current use case. I already tried to build a kind of auto-scheduler with several backend worflows to avoid my apps to get over-loaded

Awesome update! :+1:

Hi @allenyang

idea > have a mode > Run this: After xx seconds :face_with_monocle:?

2 Likes

Will be this feature be bound optionally to privacy settings?

Thanks,
Rick

Also please beware of recursiveness when developing this feature. A workflow that changes a thing which triggers this server side workflow to change a thing which then triggers this server side workflow indefinitely. Rinse and repeat…

But you probably thought of this already, didn’t you?

Thanks,
Rick

1 Like

@klaas.vanhoeck1 - yes, you theoretically could with this, but that will probably take a noticeable amount of capacity and you’ll also see an impact from having such a large database. However, if you’re tracking edits which are infrequent to, say, only 1 data type that’s particularly sensitive, this feature could work well for that

@richardsherman @josh10 - sure thing, please DM me the app ID you want this feature on

@nicolas_dap - in that case, I don’t believe we have special logic yet that would wait across different workflows; the wait is only for a given workflow for now

@mente12 - Could you clarify what you mean by “bound to privacy settings”? This is a very pertinent design decision that we’d like feedback on :slight_smile: And yes, we should be dealing with the recursive scenario gracefully

Hi there,

Awesome feature coming up!

Will the trigger watch connected things? For example, if the invoice_line 1 amount is 10 and the invoice_line amount 2 is 20, the invoice total should do the math of all the invoices lines amounts getting a total of 30.

Also, when are you planning to deploy this? Is in the near future? Because I was thinking about switching workflows to API workflows but this feature could fit better.

Thanks a lot.

Btw what happens if I just save all the same information into the object. E.g. I have a form with all fields having the initial content driven from the thing. And the user doesnt modify anything and proceeds to next step. The workflow saves the thing (with same info).

Since bubble auto-updates the modified date on the thing, does it mean the database trigger will run in such a scenario?