NotiWeave Get the app

Android how-to

How to set a different notification sound for each contact on Android

Android lets a few apps give a chat its own alert tone. Here's what works natively in Messages, WhatsApp and Telegram — and how to get one everywhere else.

The short answer: Android has no system-wide “sound per person” setting. A handful of messaging apps build their own — Google Messages, WhatsApp, Telegram and Signal all let you give one chat its own tone. For every other app, including Instagram, you need something that sits on top of your notifications and applies the rule itself.

If you have ever wanted your partner’s message to sound different from a delivery update, you have run into one of Android’s odder gaps. The platform is generous about notification control in some directions and completely silent in others. This guide covers exactly where the line falls, so you don’t spend an evening hunting for a setting that was never there.

Why Android can’t do this on its own

Since Android 8.0, every notification an app posts belongs to a notification channel — “Messages”, “Calls”, “Group chats”, “Promotions”, and so on. The sound is a property of the channel, and that is the unit you get to control. Open Settings → Apps → the app → Notifications and you can give each of those categories its own tone, turn off the ones you don’t care about, or make them silent.

What you cannot do is create a channel. Only the app can. So unless the developer decided to make a channel per conversation, there is no hook for “this person, specifically” — the system has nowhere to hang the setting.

Android 11 improved this with conversation notifications: apps can mark a notification as belonging to a person, which is what puts those chats in the Conversations section at the top of your notification shade. Apps that adopt it effectively get a channel per conversation, and that is why the apps below can offer per-chat sounds while most others can’t.

Apps that let you do it natively

Exact menu wording shifts between app versions and between Samsung, Xiaomi and Pixel builds, but the path is stable.

Google Messages (SMS/RCS)

Open the conversation → the ⋮ menu → Details (or Notifications) → Sound. Pick any tone on the device. Google Messages creates a per-conversation channel behind the scenes, so the choice also shows up under Settings → Notifications → Conversations.

WhatsApp

Open the chat → tap the contact’s name at the top → Custom notifications → tick Use custom notifications. You get two separate controls here: Notification tone for messages and Ringtone for calls. This is the most complete per-contact implementation of the four.

Telegram

Open the chat → tap the name → NotificationsSound. Telegram also lets you set a different tone for a group than for a private chat, which is handy if you’re in a few busy groups.

Signal

Open the conversation → ⋮ → SettingsSounds & notificationsMessage sound. Signal keeps the per-chat setting local to the device, like everything else it does.

Per-contact ringtones for phone calls

This one is separate, and often what people actually mean. Open the Contacts app → the contact → ⋮ → Set ringtone. That gives you a distinct ringtone when that person rings your phone number.

Two things it does not do: it has no effect on messages, and it has no effect on calls placed through WhatsApp, Instagram, Telegram or any other app — those arrive as app notifications, not as calls to your SIM, so the Contacts ringtone never enters the picture.

Where the native approach runs out

If your messaging life fits inside those four apps, you’re done — no extra software needed. In practice it usually doesn’t, and the gaps look like this:

  • Most apps never built the feature. Instagram DMs, LinkedIn, Discord, Slack, Gmail, food delivery apps, banking apps: one sound for everything the app sends, no matter who sent it.
  • The settings live in a dozen places. Four apps means four different menus with four different names, and nothing that shows you the whole picture at once.
  • It doesn’t survive cleanly. Reinstall an app, or move to a new phone, and the per-chat tones generally do not come with you.
  • There’s no consistency. You can’t say “family always sounds like this, in every app” — each app only knows about its own chats.

Doing it in one place, across every app

The alternative is to let one app read your notifications and apply your own rules. That’s what NotiWeave does: it groups notifications into a thread per sender, and each sender can have its own message sound and its own call ringtone — regardless of which app the message came through.

Because it works from the notification itself rather than from inside each app, the same rule covers Instagram, LinkedIn or anything else that has no per-contact setting of its own.

Setting it up:

  1. Grant Notification Access when NotiWeave asks on first launch. That’s the one permission it needs to read notifications, and you can revoke it at any time.
  2. Allow it to keep running in the background, so capture continues while your phone is idle. On Xiaomi and similar builds that also means enabling Autostart — the app walks you through it.
  3. Open the Apps screen and pick which apps to include, and what NotiWeave may do with each: save messages as threads, play your own notification sounds, ring a custom tone for its calls. Anything you don’t tick stays invisible to it.
  4. In Rules, set a default sound per app. Then in any sender’s thread, tap the bell to give that person their own message sound or call ringtone — from the built-in libraries or your own audio file.
  5. Silence the original app’s own notification sound in its system settings. Otherwise both sounds play and you hear a double alert. The support page covers this step in more detail.

Worth knowing before you start: it’s Android-only — iOS gives apps no way to read other apps’ notifications, so no equivalent exists there — and it runs entirely on the device. There’s no account and no server, which you can verify in the privacy policy.

Common questions

Do I need an extra app if I only care about WhatsApp? No. WhatsApp’s own Custom notifications feature is complete — message tone and call ringtone, per contact. Use it.

Can I get a per-person sound for Instagram DMs? Not from inside Instagram; it has no such setting. It takes a notification-level approach like the one above.

Why do I hear two sounds? Because the source app is still playing its own tone alongside your custom one. Silence the app’s notification sound in system settings and only your chosen tone remains.

Do custom tones survive a restart? Yes, in both approaches. What tends not to survive is reinstalling the source app, which resets its channels and any per-chat sounds you set inside it.

Will this drain my battery? Reading notifications you already receive costs very little — nothing is being polled. The one thing to watch is aggressive battery optimisation cutting the listener off, which is why the background-running step above matters.


Android’s notification system is better than its reputation, but it was designed around apps, not people. Until that changes, per-contact sound means either using the few apps that built it themselves, or putting one layer above all of them.

Keep reading

Android how-to How to set a custom ringtone per contact — including WhatsApp and Instagram calls A contact ringtone only covers calls to your SIM. How per-contact ringtones work for WhatsApp, Telegram and Instagram calls — and what to do otherwise. Android how-to How to see notification history on Android — and get back one you cleared Android's notification history is off by default and only keeps about a day. How to turn it on, what it misses, and how to keep alerts for longer.

← All articles