Forum Academy Marketplace Showcase Pricing Features

Send multiple e-mails

At http://bubble.is/site/cpa (under construction), once a teacher sets up their classes and the students that take part in them and create a project and its tasks and then sets up teams (picking team members from the available students in various classes and assigning specific roles to them), I need at the project info page to do an “e-mail tasks” action to send to each student a unique url with their assignment (and at the end of the project, to do from there too an “e-mail scores” to send the evaluation scores to students)

I see there is an e-mail action, but how can I do an action on multiple items?

There is a “Make changes to a list of Items”, but I can’t give it any task to it to do, it can only change some field of the items that I pick via some search query. Not sure if I could else spawn (or have a hidden one or at separate page) a repeating group to host my query there and then execute an action for each entry in that group. Both running actions on multiple UI items of the same type (from a repeating group [say manually picked/added ones] or directly from a search) would be very handy

Is there some way I can do what I want? Not sure how I could do it in Javascript or how I could write a Bubble plugin either. I can’t find some documentation on it

Yes we don’t support running custom workflows on a list of things. It’s a bit dangerous security/performance wise so we want to think about it carefully. It’s on our list.

Using Javascript and blockspring would do it, since you can write a custom block, you can then do pretty much anything.

1 Like

You mean this can be done with the free plan too?

I’m afraid I’d need to change all my database design (which is more OOP/Graph style relations) to keep data in a single table in order to be able to pass it to BlockSpring. That is since I don’t want to send to all students the same e-mail, I need a separate e-mail to be sent to each student (containing their task assignment and unique url to be able to log-in to the system, see their assignment[s] and submit their deliverable)

Yes, using blockspring is fine in the free plan.

But i’ll think about it, you might be right that’s still going to be tricky

You could put a caps in the freeplan for looping in such workflows I guess. However, since you don’t have caps in workflow length (that is if I put 50 e-mail sending actions in a row), not sure putting a caps in looping index is needed, but in more general capping resource usage by an app (or maybe even better do throttling - that is have the app execute requests slower [sleep in between] like IIS does when running in non-server versions of Windows)

…I mean throttling after some limit gets exceeded, not throttling from the beginning

Please see these two screenshots, currently I can only sent the e-mail to only the 1st student from the 1st team in a project at the CPA app (pressing the “e-mail Tasks” button at the Teams page of a Project)


BTW, I also need to loop over all Teams (List of Team) of a Project and get all TeamMembers (List of TeamMember) from them first into a temporary list that I will then loop upon to send the e-mails.

Unless that is you can make nested loops (why not of any depth if you implement resource caping or thortling in general), where each loop has a Type property. Then I can have my outer loop be of type Team and loop upon Project.Teams and have my inner loop be of type TeamMember and loop upon ContainerLoop.CurrentItem.Members (where CurrentItem is of type Team). Then in the inner loop I can have the Send e-mail action

I was forced to move the send e-mail buttons to the Team page (instead of the Teams page), since I cannot do a nested loop

and did the hack of copy-pasting and editing the index of the expression for each e-mail command:

since I could go on there and add a 100th of send-email commands in a row, it would be much better if I could have a loop (over a data list and/or items of a repeating group etc.)