Dear Apple: Please fix iMessage spam

Dear Apple: Please fix iMessage spam

December 14, 2021

Text message spam is getting out of control. It feels like every day I'm getting links to meet hot singles in my area, or receiving bizarrely-formatted links, or sometimes receiving junk messages with no call to action at all.

Even if Apple can't stop spam from being created, they can absolutely change how much collective time normal humans have to spend dealing with it.

Here are a few problems with how iMessage works today...

1. It's tedious to evaluate, block, and remove spammy conversations

Here's the flow to block and delete a conversation from a spammy sender:

  1. Open spammy conversation
  2. Tap conversation details — if the thread is a group thread, expand the conversation participants
  3. Tap contact info
  4. Block contact
  5. Confirm block
  6. Go back to conversation details
  7. Go back to conversation
  8. Go back to messages list
  9. Swipe to delete conversation
  10. Confirm deletion
  11. Continue to next thread

Tap, tap, tap, tap, tap. This isn't a huge deal if you get one spammy conversation every now and then. But at this point I'm up to several of these every day. I'm tired of this process, and there has to be a better way.

Apple is in a unique position to apply an incredible amount of leverage to this system by making it easier to block, report, and delete spam conversations with just a tap or two. More on this below.

2. Group spam should be easier to detect, filter, and discard

Most of the recent iMessage spam I've received follows the exact same pattern: a sender creates a group thread originating from a fake email, sending a message to 20 other phone numbers (usually sequential), with a spammy link.

These are patterns that get repeated over and over, every single day, and place all the burden on the recipient to clean this up. Heaven forbid one of the other recipients decides to reply and bump the whole thread.

3. Message filters are confusing and inconsistent

On iOS and iPadOS, iMessage allows you to filter messages from unknown senders into a separate inbox. I find this experience to be confusing, because it requires me to leave the default iMessage view and use the "Known" view by default. This changes the navigation bar title to "Known" and adds a back navigation button to see all filters. This complicates the product, and makes me feel like I have to keep checking different filtered inboxes to make sure I'm not missing an important message.

As far as I know, macOS does not support this filtering behavior. This means that my filtered conversations on iOS still show up in my global messages list on macOS. It might be a bug, but I believe this discrepancy is breaking the ability for deleted conversations to be removed across platforms. With conversation filters enabled, if I delete one thread on my iPhone it will not be deleted from my MacBook. Yes, I have iMessage sync enabled on all of my devices.

4. Bulk triaging tools are underpowered

Earlier I outlined the incredibly tedious flow to remove just a single spammy conversation from iMessage. Doing that several times in a row to remove multiple conversations can end up taking several minutes of repetitive tapping. There are no tools to bulk triage, and swipe gestures are underpowered.

Swipe to delete just isn't enough. Deleting a conversation does not block the original sender (as far as I know) and won't mute the thread in case of a follow-up message.

Additionally, the multi-select interface in iMessage only gives two toolbar actions to mark as read/unread, or delete. There should be additional toolbar actions for reporting and blocking multiple spammy threads at once. This is especially true if I'm in the "Unknown" filter view, where Apple knows that I'm bulk-editing messages from non-contacts.

A possible solution

It seems to me that messaging apps have already rallied around a general pattern for dealing with message requests. While I'm sure the technical details change when you go from a centralized messaging service to the distributed SMS network, the patterns here are still extremely effective and give people more control over who is allowed into their inbox.

Let's take a look at some of the key features available in Messenger, Instagram, and Twitter.

A dedicated message requests inbox separates unknown contacts from my main inbox, and provides extra triage controls when bulk-editing, swiping, or viewing a thread.

I like that Twitter and Instagram both show message requests alongside my primary inbox. Because this is where I spend most of my time, it's also the place where I'll be most likely to see new requests.

The message requests inbox exposes new and special controls on each platform. For example, helper text tells me what's going to happen as I interact with each thread. Or on Twitter, quick actions to delete the request are exposed directly on the list view for faster triage.

Triage buttons in the conversation view help people respond to new conversations in one or two taps, instead of the 10+ tap flow outlined above.

The triage buttons in the conversation view wouldn't have to do anything magical in iMessage. They could simply be shortcuts to streamline the 10+ tap flow above into something much more manageable. For example:

  1. Delete — could remove the conversation from the inbox, but not block the sender and allow new messages to recreate the thread. This is the same behavior that exists today with swipe-to-delete, but allows people to delete the conversation while viewing the thread. This is useful for delivery updates, or one-time passcodes where I want to read the thread once, then get rid of it. After deleting a thread, I'd automatically return to the requests inbox.
  2. Approve — could allow the thread to go to my primary iMessage inbox. I don't have to add the number as a contact, reply, or anything else. This just lets the thread skip the requests inbox in the future, which is useful for new contacts, one-time passcode services, delivery services, etc.
  3. Block or report — could allow people to block or report a conversation in two or three taps. Ideally, a blocked or reported thread is automatically deleted, and the user is returned back to the requests inbox. So instead of 10+ steps outlined above, you'd be down to three: tap Block or report → tap Block → confirm.
Please Tim Apple

I understand that Apple and iMessage are not the same as Instagram, Messenger, and Twitter. However, the patterns outlined above can clearly exist in the iMessage ecosystem and would save people billions of collective taps and swipes dealing with the ever-increasing barrage of spam.

Please Tim Apple, fix this mess.