Hi everyone,
I’m building a multi-organization SaaS app in Bubble and have run into an issue with Bubble’s native Upload data as CSV action. I’d appreciate advice on the cleanest/reliable Bubble-native approach.
What I’m trying to accomplish
Users can upload a CSV containing Participant records. I want each imported Participant to automatically belong to the organization of the user who performed the upload.
My Participant data type has a custom organization field.
The native CSV upload itself works correctly. Participants are created, and Bubble automatically populates the built-in Created By / Creator field with the logged-in user. However, the custom organization field remains blank because organization is not a column in the uploaded CSV.
I do not want users to have to add an organization ID, batch ID, or other internal POSLM field to their CSV files.
What I tried
Immediately after Upload data as CSV, I added Schedule API Workflow on a list.
The list is:
Search for Participants
with:
Created By = Current User
and:
organization is empty
The backend workflow receives each Participant and performs:
Participant's organization = Participant's Creator's organization
However, this isn’t working reliably.
The server logs show that Schedule API Workflow on a list runs and finishes, but I don’t see the individual backend workflow executions. The imported Participants remain in App Data with:
Created Bypopulated correctlyorganizationempty
I also tested Ignore privacy rules, but that did not resolve it.
Bubble’s AI support indicated that the documentation does not define whether Upload data as CSV fully commits the newly created Things before the following workflow action/search executes, so I’m wondering whether the immediate search is the problem.
My questions
Has anyone successfully handled this pattern with Bubble’s native CSV uploader?
Is there a reliable way to take Participants created by the current user’s CSV upload and set:
Participant.organization = Participant's Creator's organization
without requiring an organization or batch ID column in the user’s CSV?
If the native CSV uploader doesn’t expose the records it creates, is there a recommended Bubble pattern for handling ownership immediately after an import?
I’d prefer to continue using Bubble’s native Upload data as CSV action rather than rebuild the import with a custom CSV parser unless that is genuinely necessary.
For context, program enrollment and initial stage placement are handled separately, so I specifically need to solve organization ownership of the imported Participant records at this point.
Thanks in advance for any guidance!