How to Configure Contacts
Add notification channels — email, Slack, Discord, Telegram, or webhook — so Pinguzo can reach you when an incident occurs.
What is a Contact?
A Contact is a named destination for alert notifications. Each contact can have one or more notification channels (e.g., both an email address and a Slack webhook). When an alert policy triggers, Pinguzo sends a message to every channel configured on the selected contacts.
Opening Contacts
Navigate to Alerts in the sidebar, then click the Contacts tab. Your existing contacts are listed with channel badges indicating which notification methods are configured.
Default Contact
When your Pinguzo account is created, a default contact is automatically added using your account's email address. This contact:
- Cannot be deleted
- Has its email address locked to your account email (cannot be changed)
- Is automatically added to all alert policies
Adding a New Contact
- Click Add Contact in the top-right of the Contacts tab
- Enter a Contact Name (e.g., "DevOps Team Slack", "On-Call Engineer")
- Fill in one or more notification channel fields (see channel guides below)
- Click Save Contact
The new contact immediately appears in the contact selector when creating or editing alert policies.
Notification Channels
Pinguzo sends a formatted HTML email to the address you configure. The email includes the incident title, trigger type, affected resource, start time, and a link to the resource's metrics page.
| Field | Description |
|---|---|
| Email Address | Any valid email address. |
Pinguzo posts a formatted message to a Slack channel via an Incoming Webhook. The message includes the incident details with color-coded status indicators.
Setup Steps
Go to api.slack.com/apps and click Create New App → From scratch.
Give the app a name (e.g., "Pinguzo Alerts") and select your workspace.
In the app settings, click Incoming Webhooks and toggle it On.
Click Add New Webhook to Workspace and select the channel to post to.
Copy the Webhook URL and paste it into the Slack field in Pinguzo.
| Field | Description / Format |
|---|---|
| Slack Webhook URL | https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX |
Pinguzo sends a message to a Discord channel via a Discord webhook. Messages are posted as an embed with incident details and status color.
Setup Steps
Open Discord and go to the channel where you want alerts posted.
Click the gear icon next to the channel name → Integrations → Webhooks.
Click New Webhook, give it a name, and optionally set a custom avatar.
Click Copy Webhook URL and paste it into the Discord field in Pinguzo.
| Field | Description / Format |
|---|---|
| Discord Webhook URL | https://discord.com/api/webhooks/000000000000000000/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
Pinguzo sends Telegram messages via the Bot API. You need a bot token and a chat ID (which can be a personal chat, group, or channel).
Setup Steps
Open Telegram and search for @BotFather. Send the command /newbot and follow the prompts.
BotFather will give you a Bot Token — a string like 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw. Copy it.
Get your Chat ID:
• For a personal chat: send any message to your bot, then visit https://api.telegram.org/botTOKEN/getUpdates — the chat.id field in the response is your Chat ID.
• For a group: add the bot to the group, send a message mentioning it, and check getUpdates.
• For a channel: add the bot as an admin, post a message, and check getUpdates — channel IDs start with -100.
Enter both the Bot Token and Chat ID in the Pinguzo contact form.
| Field | Description / Format |
|---|---|
| Bot Token | 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw |
| Chat ID | Numeric ID — e.g., 123456789 (user) or -100123456789 (group/channel) |
Pinguzo sends an HTTP POST request with a JSON body to any HTTPS endpoint you control. Use this to integrate with custom systems, PagerDuty, OpsGenie, Microsoft Teams (via Power Automate), or any other tool that accepts webhooks.
| Field | Description |
|---|---|
| Webhook URL | A valid HTTPS URL that accepts POST requests. HTTP (non-TLS) endpoints are not accepted. |
Webhook Payload
Pinguzo sends a POST request with Content-Type: application/json and the following body:
{
"incident_id": 123,
"entity_type": "server",
"entity_id": 45,
"entity_name": "web-prod-01",
"trigger_type": "high_cpu",
"message": "CPU usage 91.4% exceeded threshold of 80% for 12 minutes",
"started_at": 1742309520,
"resolved_at": null,
"alert_policy_id": 6
}
When an incident is resolved, Pinguzo sends a second request with resolved_at set to the resolution Unix timestamp.
Response Requirements
Your endpoint must respond with HTTP 200 OK within 10 seconds. If the response is not 200, Pinguzo marks the delivery as failed and retries up to 3 times with a short delay between attempts. After 3 failures, the delivery is abandoned and logged.
Managing Contacts
Edit a Contact
Click the Edit (pencil) icon on a contact row. Update any fields and click Save. Only the default contact's email address cannot be changed.
Delete a Contact
Click the Delete (trash) icon and confirm. You cannot delete a contact that is the only contact assigned to an active alert policy — remove the contact from those policies first, or add another contact to replace it.
Contact Visibility in the List
Each contact in the Contacts tab shows:
- Contact name
- Channel badges — icons for each configured notification method (Email, Slack, Discord, Telegram, Webhook)
- Email address below the name (if an email channel is configured)
- "No channels configured" warning if the contact has a name but no notification method
Plan Restrictions
| Feature | Free | Personal / Mini / Professional / Business |
|---|---|---|
| Default email contact | ✓ | ✓ |
| Additional contacts | — | Unlimited |
| Email channel | Account email only | Any email address |
| Slack channel | — | ✓ |
| Discord channel | — | ✓ |
| Telegram channel | — | ✓ |
| Generic Webhook | — | ✓ |
Multiple Channels per Contact
A single contact can have multiple channels configured simultaneously. For example, an "On-Call Team" contact could have an email address, a Slack webhook, and a PagerDuty webhook all configured. When an alert fires, all three are notified at the same time.
Next Steps
- Configure Alerts — create alert policies that use your contacts
- View Incidents — see which contacts were notified for past incidents