I’ve been seeing a new concern in a workflow that I thought I had resolved in the past; hoping this audience can help me identify where I need to change my implementation…
In short, I am importing data from a spreadsheet and my import process is attempting to normalize the data stored in the database. For example, if there is a “john smith” listed multiple times in the spreadsheet, I only want one “john smith” created and then related records associated to this one “john smith” recipient record.
I built the process sometime back and thought I had a solid running process (i.e. my logic works) in the past, however, my recent tests are not consistent; feels like something changed with execution handling of workflows in bubble or the number of records in our table is causing slower queries for conditional checks.
The first screenshot is the workflow that triggers the process; in workflow the concerning bit is occurring in “Trigger GetRecipient” custom event. When called, the Get Recipient Event (screenshot further down) should return a matching record if it exist or create a new recipient and return the record to the workflow.
When running through a loop of records in an import process, I will see that sometimes (50’ish %)this process works perfectly and other times the process is creating duplicate recipient records.
Is there a better way to implement a “create a new record, only when a match isn’t found” in a looping process? I thought by using Custom Events" for the record creation, Bubble would not have sequencing issues (i.e. parallel request processing vs sequential)
This is the custom event… The search logic in the conditions are correct and work as expected (when they work)


