Free
$0/mo
Every channel except PSTN voice and SMS — Telegram VoIP included (20 calls / month). Tight enough to validate fit, generous enough to ship a real escalation.
A comprehensive, step-by-step guide to every feature of WardenPoint. If you have a question — the answer is here.
WardenPoint is a multi-channel notification platform for companies and teams. You create recipients (people who need to receive alerts), configure notification channels (Telegram, voice calls, WhatsApp, Viber, Email, SMS), and send critical notifications — manually from the dashboard or automatically via API.
The key feature: if a recipient does not acknowledge a notification, the system automatically escalates — retries through another channel, increases urgency, or notifies a manager. This ensures that critical alerts are never missed.
Register, enter company name, confirm email
Add recipients, set up channels and escalation rules
Send notifications via dashboard or API
System escalates unacknowledged notifications automatically
Go to the registration page. Enter your name, email, password, and company name. After registration, you will be automatically logged into the dashboard. No credit card required — the Free plan is available immediately.
Go to Dashboard → Recipients → Add Recipient. Enter the person's name and at least one contact method: Telegram username, phone number, or email. For Telegram — enter the recipient's username (e.g., @johndoe) so the system can send messages directly.
First, set up Telegram: go to Settings → Credentials, enter your Telegram API credentials and authorize the account. Voice calls via WardenPoint telephony work out of the box on paid plans. For WhatsApp, Viber, or custom Asterisk PBX — add their credentials in Settings → Credentials as well.
Go to Dashboard → Notifications → Send Notification. Select a recipient, type a message, choose a priority (start with 'normal'), and click Send. The recipient will receive the notification through the configured channel within seconds.
Go to Settings → API Keys, create a key. Use the key in the X-API-Key header to send notifications programmatically from your monitoring system, CI/CD pipeline, or any other service. See the API section below for code examples.
Start with 2–3 test recipients before sending to everyone. Make sure Telegram is linked and the notification arrives. Then add the rest of your team.
The dashboard is your main workspace. Here's what each section does:
Overview of recent notifications, delivery statistics, and quick actions. This is the first page you see after login.
List of all people who receive notifications. Add, edit, delete, and view contact details. Each recipient can have multiple contact methods (Telegram, phone, email).
Organize recipients into groups (e.g., 'DevOps Team', 'Managers'). Send notifications to an entire group with one click or API call.
History of all sent notifications. See delivery status (delivered, failed, pending), channel used, timestamps, and escalation chain status.
Configure automatic escalation rules: what happens if a notification is not acknowledged — retry on another channel, call the manager, etc.
Charts and metrics about notification delivery rates, average response time, most used channels, and escalation frequency. Available on Team plan and above.
Company name, timezone, default language, and general preferences.
Tokens and connection details for third-party services: Telegram account credentials, custom Asterisk PBX connection, WhatsApp API key, Viber bot token.
Create and manage API keys for programmatic access. Each key is scoped to your company's data.
Your current plan, usage statistics, payment history. Upgrade or downgrade your plan here.
Invite team members to your company account. Assign roles (admin, member). Team members can manage recipients and send notifications.
Recipients are the people who receive your notifications. Each recipient must have a name and at least one contact method. The more contact methods you add, the more channels the system can use for delivery and escalation.
Click 'Add Recipient' in the Recipients section. Fill in the name (required), and at least one of: Telegram username (e.g., @johndoe), phone number (international format, e.g., +380501234567), or email address. You can add all three — this gives the system the most flexibility for channel selection and escalation.
Each contact type enables specific notification channels:
| Contact Type | Example | Unlocked Channels |
|---|---|---|
| Telegram | @johndoe | Telegram text, voice messages, voice calls via Telegram |
| Phone | +380501234567 | PBX voice calls (Asterisk), SMS |
| [email protected] | Email notifications |
Groups let you organize recipients (e.g., 'Backend team', 'Night shift', 'Management'). When you send a notification to a group, every member of that group receives it. You can also set notification rules at the group level — for example, all members of the 'Critical Alerts' group get voice calls by default.
To add many recipients at once, use CSV import. Go to Recipients → Import. Your CSV must have a header row with columns: name, phone, email, telegram_username. Only the 'name' column is required — others are optional. Example:
name,phone,email,telegram_username
John Doe,+380501234567,[email protected],@johndoe
Jane Smith,+380671234567,[email protected],WardenPoint supports 9 notification channels across 7 providers. Each channel has different strengths: text channels are great for informational alerts, voice channels grab immediate attention for critical situations. Here's a detailed breakdown:
Sends a text message to the recipient's Telegram account from your company's dedicated Telegram number. Supports up to 4,096 characters. Acknowledgment is available via a link in the message.
Best for: informational alerts, status updates, non-urgent notifications.
Sends an audio voice message to Telegram. The system converts your text to speech (TTS) and sends the resulting audio file. The recipient hears the message without reading. Great for getting attention when the person might not read texts.
Best for: medium-priority alerts where you need the person to hear the message.
Initiates a voice call through Telegram. The recipient's phone rings with a Telegram call, and they hear the TTS message. This is the most attention-grabbing Telegram channel — the phone literally rings.
Best for: high-priority and critical alerts via Telegram.
A separate bot (BotFather-issued) delivers text with inline ack/snooze buttons. No personal Telegram account with a phone number required.
Best for: self-service onboarding for recipients who don't want to share a phone number.
The same bot sends a voice note (OGG/Opus) with ack/snooze buttons. TTS generates the audio by default, or you can upload your own track.
Best for: alerts that should be heard without a text context, without a personal Telegram account.
Makes a real phone call (PSTN) using WardenPoint's built-in telephony system (Asterisk). The recipient's phone rings, they pick up, and hear the TTS message. No setup required — works out of the box on all paid plans.
Best for: critical alerts when you need to call a real phone number, not just Telegram.
If your company has its own Asterisk PBX, you can connect it to WardenPoint. Calls will go through your PBX, using your SIP trunks and phone numbers. This gives you full control over call routing and costs. Requires Team plan or above.
Best for: companies with existing PBX infrastructure who want to use their own phone lines.
Sends a text message via WhatsApp. Useful if your recipients prefer WhatsApp over Telegram. Supports delivery and read receipts. Requires WhatsApp Business API credentials in Settings → Credentials.
Best for: teams where WhatsApp is the primary messenger.
Sends a text message via Viber. Maximum 1,000 characters. Supports delivery confirmation. Requires Viber bot token in Settings → Credentials.
Best for: recipients in regions where Viber is popular (Eastern Europe, Southeast Asia).
Sends an email notification. Supports rich HTML formatting and up to 50,000 characters. Acknowledgment via a button link in the email. Works out of the box — no additional setup needed.
Best for: detailed notifications, documentation-style alerts, recipients without messengers.
Sends a short text message via SMS. Limited to 160 characters. Works on any mobile phone, even without internet. Available on Team plan and above.
Best for: recipients without internet access, backup channel for critical alerts.
Routing rules let you automatically direct incoming alerts from monitoring sources to the right recipient group based on alert content — severity, lifecycle status, or any label attached to the alert.
Rules are evaluated top to bottom. The first rule whose conditions all match the incoming alert wins — WardenPoint routes the alert to that rule's group and stops checking. Reorder rules with the up/down controls to change their priority.
Each rule can filter on two built-in dimensions and any number of label conditions. Leaving a dimension empty means match any value.
Reflects how critical the alert is — values like critical, warning, info, none. Matches the alert's own severity field from the source.
Reflects the alert's lifecycle — for example firing or resolved for Prometheus, ok or alarm for CloudWatch. The available values depend on the integration source.
Match any key/value label the source attaches to the alert — for example team=backend, service=payments, or host=~prod-.*. Four operators are available:
Multiple conditions on a rule are AND'd — every condition must pass for the rule to match.
Each matching rule sends the alert to a specific group and optionally overrides the accumulation window — how long WardenPoint waits to batch similar alerts before dispatching.
Alerts that match no rule land in the Unrouted Inbox. From there you can resolve them silently, route them to a group manually, or use them as a starting point to create a new rule that catches similar alerts in the future.
The severities, statuses, and label keys shown in the rule editor are pulled from the integration source you're configuring. A Prometheus alert has different severity values than a Zabbix trigger — WardenPoint shows you the right options for each.
Set a health-check URL on any integration and WardenPoint will GET it every minute. If the endpoint returns a non-2xx status or times out past the failure threshold, the owner group is paged. Once the endpoint recovers, the alert resolves automatically. The URL must be publicly reachable — VPN-only endpoints are not supported.
Every notification has a priority level that determines how aggressively it is delivered and escalated. Choose the right priority for each situation:
Informational alerts that don't require immediate action. System sends a text message via the default channel. Quiet hours are respected.
Default: Telegram text → no escalation. Retry: 2 attempts with 5 min delay. Respects quiet hours.
Standard alerts that should be delivered reliably. If the text message fails, the system falls back to a voice message.
Default: Telegram text → voice message on fail. Retry: 3 attempts with 1 min delay. Respects quiet hours.
Important alerts that need quick attention. Starts with a voice message, escalates to voice call, then text. Bypasses quiet hours.
Default: voice message → voice call → text message. Retry: 3 attempts with 1 min delay. Bypasses quiet hours.
Emergency alerts that must be acknowledged immediately. Starts with a voice call, then voice message, then text. Maximum retry attempts. Always bypasses quiet hours.
Default: voice call → voice message → text message. Retry: 5 attempts with 1 min delay. Always bypasses quiet hours.
Escalation is the core feature that makes WardenPoint different from a simple notification sender. When a notification is sent, the system doesn't just fire-and-forget — it tracks whether the recipient acknowledged it, and takes action if they didn't.
After sending a notification, the system waits for an acknowledgment (ACK) from the recipient. ACK can happen by: clicking an acknowledgment link in a Telegram message, clicking a link in an email, or simply answering a voice call. If no ACK is received within the configured timeout (e.g., 2–5 minutes), the system moves to the next escalation step: sends via a different channel, retries the same channel, or notifies a manager.
You can create reusable escalation policies in Dashboard → Escalation Policies. A policy is a set of ordered rules: 'first send Telegram text, wait 3 min, then call via PBX, wait 2 min, then notify the manager'. Policies can be assigned to individual recipients or groups.
ACK is how the system knows the recipient got the message. For Telegram text — clicking the acknowledgment link in the message. For Telegram voice/call — the message being delivered. For email — clicking the acknowledgment link. For voice calls — answering the call. Once ACK is received, the escalation chain stops immediately — no further steps are executed.
Notification settings let you fine-tune how each recipient (or group) receives alerts. You can configure these per priority level:
Each recipient can have individual notification rules for each priority level (low, normal, high, critical). Go to Recipients → select a recipient → Notification Settings. Here you configure which channels to use, escalation order, retry count, and timeouts.
Same as per-recipient, but applied to an entire group. Useful when all members of a team should have the same notification rules. Individual recipient settings override group settings.
Set a time range when low and normal priority notifications are held and not delivered (e.g., 22:00–08:00). High and critical priorities bypass quiet hours. Configure per recipient or per group.
A detailed weekly schedule (7 days × 24 hours) that defines when a recipient is available to receive notifications. Useful for shift workers — only notify people who are currently on duty.
Configure how many times the system retries a failed delivery (1–10 attempts) and the delay between retries (1–60 minutes). Higher priority notifications get more retries by default.
For each escalation step, choose the channel type (text_message, voice_message, voice_call) and the provider (Telegram, platform Asterisk, custom Asterisk, WhatsApp, Viber, Email, SMS). This gives you full control over the delivery path.
There are two ways to send notifications: manually through the dashboard, or programmatically via the REST API.
Go to Dashboard → Notifications → Send Notification. Select a recipient (or group), type your message (up to 4,096 characters), choose a priority level, and optionally attach an audio file. Click Send. The notification will be processed immediately — you'll see the status update in real time on the Notifications page.
Use the REST API to send notifications from your monitoring tools, scripts, CI/CD pipelines, or any other system. All API endpoints are under /api/v1/ and require an API key for authentication. Here are the available methods:
Sends one notification and waits for the result. Returns the delivery status in the response. Best for simple integrations where you need immediate feedback.
POST /api/v1/notifications/sendQueues the notification for background processing and returns immediately with a notification ID. The notification is delivered asynchronously. Best for high-volume sends where you don't need to wait.
POST /api/v1/notifications/send-asyncSend a notification to all members of a recipient group. Supports both sync (send-to-group) and async (send-to-group-async) modes.
POST /api/v1/notifications/send-to-groupSend multiple notifications at once (up to 100 in a single request). Each notification can have a different recipient and message. All are processed asynchronously.
POST /api/v1/notifications/send-bulk-asyncThe WardenPoint REST API lets you integrate notifications into any system. All endpoints are versioned under /api/v1/ and return JSON responses.
Explore all endpoints, try requests interactively, and see response schemas in our Swagger documentation.
Every API request must include your API key in the X-API-Key header. You can create API keys in Dashboard → Settings → API Keys. Each key is scoped to your company — it can only access your company's recipients and notifications.
Prefer not to call the REST API by hand? Two officially maintained clients wrap every endpoint below — install one, add your API key and you are sending alerts.
pip-installable client with a guard() helper that pages on-call when your code raises.
Single static binary for shell scripts, cron and CI — pipe a failing command into an alert.
| Method | Path | Description |
|---|---|---|
| POST | /api/v1/notifications/send | Send a notification synchronously. Waits for delivery and returns the result. |
| POST | /api/v1/notifications/send-async | Queue a notification for async delivery. Returns immediately with notification ID. |
| POST | /api/v1/notifications/send-to-group | Send a notification to all members of a group (synchronous). |
| POST | /api/v1/notifications/send-to-group-async | Send a notification to all group members (asynchronous). |
| POST | /api/v1/notifications/send-bulk-async | Send up to 100 notifications in one request (all async). |
| GET | /api/v1/notifications | List all notifications with filtering and pagination. |
| GET | /api/v1/notifications/{id} | Get full details of a specific notification. |
| GET | /api/v1/notifications/{id}/status | Get delivery status of a notification. |
| POST | /api/v1/notifications/{id}/retry | Retry a failed notification (sync). |
| POST | /api/v1/notifications/{id}/cancel | Cancel a pending notification. |
| POST | /api/v1/notifications/{uuid}/acknowledge | Acknowledge a notification (stop escalation chain). |
| GET | /api/v1/recipients/{id}/availability | Check which channels are available for a recipient. |
| GET | /api/v1/recipients/{id}/routes | Get the notification delivery routes configured for a recipient. |
| Field | Type | Required | Description |
|---|---|---|---|
| recipient_uuid | string (UUID) | Yes | UUID of the recipient (from the Recipients page or API). |
| message | string | Yes | Notification message text. Maximum 4,096 characters. |
| priority | string | No | Priority level: low, normal (default), high, critical. |
| audio_file | string | No | Path to a pre-uploaded audio file for voice channels. |
| max_attempts | integer | No | Number of delivery attempts (1–10). Overrides plan defaults. |
WardenPoint POSTs to your own systems when notification lifecycle events happen — acknowledgments, escalations, delivery failures. Subscribe your endpoints to the events you care about and react automatically: close tickets, update incidents, kick runbooks.
Create and manage webhooks in the Dashboard: Integrations → Webhooks. Each webhook has a URL, a per-webhook signing secret, an event mask, and an active toggle.
Subscribe to one or more events. WardenPoint sends a separate POST for each.
notification.sentNotification queued and sent through its first channel.notification.deliveredThe channel confirmed delivery (delivery receipt from the provider).notification.failedAll delivery attempts exhausted without success.notification.acknowledgedThe recipient acknowledged the alert (button, call, DTMF).escalation_chain.startedEscalation chain started for an unacknowledged alert.escalation_chain.resolvedEscalation chain ended via acknowledgment.escalation_chain.expiredEscalation chain ran out of steps without acknowledgment.recipient.contact.failedA single recipient contact failed to deliver.Every event starts with the same envelope: event name, company UUID, and timestamp. Event-specific fields are merged in on top (see per-event schemas below).
Exact contract for each of the 8 events. Fields prefixed `// optional` may be absent depending on channel.
Every request is signed with HMAC-SHA256 in the X-WardenPoint-Signature header. Always verify the signature before processing the payload — this guarantees the request came from WardenPoint and not from someone who happens to know your URL.
X-WardenPoint-SignatureHMAC-SHA256 of the request body, prefixed with "sha256=".X-WardenPoint-Webhook-IdThe UUID of the webhook in your account — useful for logs and debugging.X-WardenPoint-TimestampUnix timestamp of when the request was sent. Useful for deduplication or rejecting stale requests.If your endpoint returns non-2xx or times out, WardenPoint retries automatically:
WardenPoint can tell you when a monitored source goes dark — two ways, choose per integration.
WardenPoint GETs a public URL every minute. A non-2xx response or timeout alerts your owner group.
Your source pings WardenPoint on a schedule. If the signal stops, we page you.
Use this when your health endpoint is publicly reachable. WardenPoint sends an HTTP GET to the URL you set, once per minute. If the endpoint replies with a non-2xx status code, or the request times out past the failure threshold, we page your owner group. Once the endpoint responds normally, the alert resolves automatically.
Private IP ranges (10.x.x.x, 172.16-31.x.x, 192.168.x.x), loopback addresses, and cloud-provider metadata endpoints (169.254.169.254, fd00:ec2::254) are blocked. Only publicly routable URLs are accepted.
Use this when the monitoring source is inside a private network or behind a VPN and cannot be reached from outside — for example, an internal Prometheus/Alertmanager stack. Instead of us pulling, your source pings WardenPoint's ingest URL on a schedule. If no ping arrives within the configured grace window, we page your owner group.
The canonical setup: an always-firing Prometheus rule drives a regular Alertmanager webhook to WardenPoint. If Prometheus or Alertmanager stops firing, the pings stop, and WardenPoint pages you.
Step 1 — always-firing rule in Prometheus
Step 2 — Alertmanager route and receiver
The Map tab on each integration renders your full delivery topology as an auto-generated graph — routing rules, recipient groups, escalation steps, on-call schedules with a live badge showing who is currently on duty, and every fallback path down to the owner-email safety net. The graph is built from your live configuration on every load, so it can never drift from what actually executes. Branches that have received zero events in the last 7 days are shown dashed, making dead or unused paths instantly visible. The built-in simulator lets you dry-run your live rules at any point in time — pick a moment, and the map highlights the exact delivery path along with who is on duty at that instant, without writing a single event to production.
Routing rules, group membership, escalation steps, and on-call schedule overrides (substituting the person on duty) are editable directly on the map — click any node to open the editor in a right-hand panel. Save goes through the same endpoints as the settings pages; the map re-renders from the database immediately after. Per-recipient channel preferences are not editable from the map — open the recipient's page instead. Shared escalation policies open their own page rather than offering inline editing. What you see on the map is exactly what executes.
Save pre-built alert presets with placeholders once, then fire them from your code with one POST per slug. Variables come from the request body; the rest (recipient, priority, escalation policy) comes from the template.
Pass in the body; backend substitutes them, applies the default priority/recipient, and ships through the same pipeline as /send.
Every save creates a new version. Existing callers keep working — add "version": N to the body to pin to a specific historical version.
Pass an "override" object with priority, recipient_uuid and group_uuid keys in the body to swap any default for that single call.
Mustache-lite — substitution only, no logic, no loops:
{{ var }} — HTML-escaped (default; safe for any channel).{{{ var }}} — raw value, no escape. Your responsibility.Most channels require external service credentials. Go to Dashboard → Settings → Credentials to configure them. Only email works out of the box — all other channels need setup.
WardenPoint sends Telegram messages as a regular user (not a bot). Your company provides a dedicated Telegram account — the system logs in via MadelineProto and sends messages, voice messages, and calls from that account directly to recipients.
Connect your company's own Asterisk PBX to make calls through your existing phone infrastructure. Calls are routed through your SIP trunks using your phone numbers.
Send messages via WhatsApp. Requires a WhatsApp Business API account. The system uses the Cloud API to send messages and receive delivery/read receipts.
Send messages via Viber. You need to create a Viber bot account and provide the bot token.
WardenPoint offers tiered plans. The Free plan includes Telegram and email; paid plans unlock PSTN voice calls, SMS, WhatsApp and Viber along with higher recipient/voice/SMS quotas and advanced features. The plan cards below are pulled from the live billing config.
$0/mo
Every channel except PSTN voice and SMS — Telegram VoIP included (20 calls / month). Tight enough to validate fit, generous enough to ship a real escalation.
$9/mo
On-call rotations, outbound webhooks, all messaging channels and PSTN voice pay-as-you-go for the first paged team.
$29/mo
Telegram VoIP, analytics, Microsoft SSO, anomaly detection and . The most popular choice.
$89/mo
, , ElevenLabs premium TTS, priority support and -day audit retention.
Custom
Dedicated infrastructure with SLA guarantees and named support.
Payment methods: credit/debit card via MonoPay or PayPal. Annual plans get a 20% discount. You can change your plan at any time — upgrade takes effect immediately, downgrade at the end of the billing period.
Can't find the answer? Our support team is ready to help you.