This is another example of using Workflow.app to turn tedium into simplicity (see this recent post for other examples). It also demonstrates the Workflow.app control flow actions.
Here's the user story: I like to send photo messages to people but I really don't need (or want) to use group messaging if they don't know each other. Being forced to compose the same message multiple times usually means I leave some people out. I want to write a message once, attach some photos, and send it in one go.
Repetitive tasks like this are prime for automation. Let's fire up Workflow for iOS and solve this problem.
We start by asking for some input. First we ask for a photo and then immediately save that to a variable for later. We follow up by asking for a text message that will be sent to everyone and add that to the same variable.
This is a valuable trait of Workflow.app variables. They can contain several different kinds of data in a single variable. For example, a photo and some text.
Next up, we generate the list of recipients to choose from. This list can be any kind of text and doesn't need to match anything in your Contacts. We pass the list into a "Choose from List" prompt. The real key to this workflow is that little optional toggle to allow multiple selections.
When this workflow runs, we'll get a nice little list to choose from and we can select one or more people to receive the same message and photo.
The selections from this list get saved into a new variable that we are going to test over and over, checking to see who the message should go to.
The workflow checks the input for a name using the "If" control flow action. If the name exists then the user must have selected it. In that case, we read from the variable "SendPhoto" using the "Get Variable" action and then create a new text message with it. If the name doesn't exist in the selection, we move on to the next action, which is a new "If" block.
Workflow.app will not automatically send the message, which I think is a feature. It populates the message and then waits for you to edit and send the message. It's a nice way to quickly personalize an automated message.1
The rest of the workflow is pretty much identical. Just keep recalling the variable with the list selection and test it for a name. If the variable contains the name, then send that person the same message.
You can download the workflow here.
Here's the entire workflow in a ridiculously long image:
Hey, I never claimed to be some sort of hero. ↩