Get started free

Notification sounds

Choose a notification sound for Appkeepr API and SDK messages. Learn the reusable presets, automatic integration choices and device support.

Add an optional sound to any Messages API or Node.js SDK message. Leave it out for Appkeepr's neutral tone. Integrations and monitors choose a sound automatically.

Presets

SoundMeaning
defaultAppkeepr's neutral notification tone; also used when sound is omitted.
successA successful operation or recovery.
errorA failed operation or payment problem.
cashA purchase or positive financial event.
attentionA warning or change worth checking.
alarmAn outage or serious problem.
noneRequest no sound; the message is still saved and counted.

These are reusable choices: a custom message can use any preset regardless of its event, title or channel. Use the exact lowercase identifier, without a filename or URL. null, empty strings and unknown identifiers are rejected. Existing identifiers stay stable as new presets are added.

Send with cURL

Create a sales channel, then send a purchase message with cash:

curl https://appkeepr.com/api/messages \
  -H "Authorization: Bearer $APPKEEPR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: purchase-1044" \
  -d '{
    "channel": "sales",
    "body": "Ada upgraded to Pro.",
    "sound": "cash"
  }'

Omit sound or set it to "default" for the neutral tone. Set it to "none" to request no sound.

Send with Node.js

await appkeepr.messages.send(
  { channel: "sales", body: "Ada upgraded to Pro.", sound: "cash" },
  { idempotencyKey: "purchase-1044" },
);

await appkeepr.messages.send(
  { channel: "sales", body: "Daily summary is ready.", sound: "none" },
  { idempotencyKey: "summary-2026-10-07" },
);

Retry with the same content and sound. Changing the sound with an existing idempotency key returns 409; omitting sound and sending "default" are equivalent.

Automatic choices

You do not need to configure a sound for each integration event. Appkeepr selects it from the received event's meaning:

SourceExamples
RevenueCatTrials use success; purchases and trial conversions use cash; refunds and payment failures use error; cancellations use attention.
Sentry Issue AlertsFatal events use alarm, errors use error, warnings use attention and informational alerts use default.
Sentry User FeedbackFeedback uses attention.
VercelProduction deployment failures use error; successful checks use success.
DokployFailed operations use error, successful operations use success and server threshold alerts use attention.
App Store ReleasesReady for distribution uses success; review rejection uses error; changes needing attention use attention; routine progress uses default.
UptimeDown uses alarm; recovery uses success.
Domains and TLSExpiry warnings use attention; critical expiry or certificate problems use alarm; recovery uses success.

Event selection still controls which messages are published. A sound does not enable an excluded or unsupported event. Previously accepted messages keep their original sound when an integration retries an event.

Device support

Presets require an updated Appkeepr native app. Older apps use the operating system's default tone for audible messages. On Android, preset support also requires Android 8 or later.

Silent messages on older Android apps

Android devices without preset support receive none messages in Inbox without an OS push. Update the app and enable notifications on Android 8 or later to receive silent push notifications.

none requests no audio; it does not cancel the message, unsubscribe you from its channel or select a separate vibration preference. Notification permission, mute, Focus, Do Not Disturb and your device's notification settings determine what you hear and see. alarm is a tone, with no Do Not Disturb bypass or critical-alert behavior.

Messages API · Node.js SDK · Troubleshooting

On this page