I have a repeating group of Indicators. Each repeating-group row contains an Indicator checkbox and a notes input (IndicatorNotesInput).
When the user selects indicators and clicks Save Progress, a ParticipantIndicatorCompletion record is successfully created for each selected Indicator. The records correctly save the participant, indicator, completed status, completion date, category, and program.
However, I cannot get the note entered in the corresponding repeating-group row to save to the notes field of that same ParticipantIndicatorCompletion record.
I also created an Input IndicatorNotesInput's value is changed workflow that searches for the ParticipantIndicatorCompletion using:
The ParticipantIndicatorCompletion records are present in App Data, but the notes field remains blank.
The complication appears to be that the completion record may not exist yet when the note is entered, while the completion records themselves are created later through the Save Progress workflow/backend workflow.
What is the recommended Bubble architecture for passing the value of an input from each repeating-group row to the corresponding record when those records are created through a later workflow?
I would appreciate having a technical support team member review the workflow configuration.
You shouldn’t run on list the backend workflow. Your popup is one thing, not a list of things, at least, it should be one thing and not a list.
Usually what you’d do is set the popup data type to same type as the repeating group. I’m not really sure why you need the separate data type for saving the note and progress, so I’d recommend just putting those fields into the data type of the repeating group whatever it is called and not create a new thing of the second data type as you are now.
But if you do actually need the separate data type (in my experience I think you don’t) you can from popup save button just run a workflow to create a new thing and save note value from the inputs value in popup and you don’t need a backend workflow at all.
Use auto-binding. Create the Indicator records up front, point the repeating group at them, and bind the checkbox and note with auto-binding. Auto-binding has to be allowed in that type’s privacy rules.
This looks less like a notes-field problem and more like a timing/state problem.
It’s the kind of thing I pay attention along with the team I work on projects at Girmairi too , sometimes the UI has the value already, but the database record you want to attach it to doesn’t exist yet.
In your case, the Input value is changed workflow can only update the completion record if that record already exists. So if the record is created later during Save Progress, there’s nothing for that workflow to modify yet.
I’d probably handle it one of two ways:
Create the ParticipantIndicatorCompletion earlier when the indicator is selected, even if the note is still blank. Then the notes input can update that same record as the user types.
Or, if you really want to create everything only on Save Progress, keep the note as temporary row state first and pass both the Indicator + note value into the workflow that creates the completion record.
The second option is cleaner conceptually, but the important part is that the backend workflow can’t magically know the value of an input sitting in the repeating group. That value has to be passed into it somehow.
Personally, I’d lean toward creating a draft/completion record when the checkbox is selected, then updating that same record with the note. It gives you a stable record ID to work with and avoids trying to match temporary UI values back to records later.
One extra thing I’d check: if you’re searching for the completion by indicator + participant, make sure there can’t be more than one matching record, otherwise Bubble may update the wrong one or make the workflow harder to reason about. Very brilliantly one of my helping engineers had made me learn too, and we had to learn the hard way.
Curious whether your Save Progress workflow is running directly on the page or through a backend API workflow, because that changes the cleanest way to pass the note value.