I do this with a looping backend workflow and it uses the broadcast stream for each message. Each one is unique, in that it follows a template but the contents is tailored for each user. Perhaps I should make it more advanced, but it only goes to hundreds at the moment. When it hits thousands it may not be so WU efficient.