Notifications & Integrations

Configure notifications to stay informed about errors in your applications. Checkend supports email, Slack, Discord, webhooks, and GitHub issue creation.

Overview

Checkend can send notifications when errors occur in your applications. Notifications are sent in two scenarios:

  • New errors — When a new error type is first detected
  • Reoccurred errors — When a previously resolved error occurs again

Each app has its own notification settings, allowing you to control which apps send notifications and to which channels. You can configure multiple notification methods for the same app, and all configured methods will receive notifications.

Notifications are sent to team members who have access to the app. Team members can customize their notification preferences in their user settings.

Email Notifications

Email notifications are sent to team members when errors occur. To enable email notifications, you need to configure SMTP settings in the Checkend dashboard.

Configuring SMTP

SMTP configuration is managed by site administrators through the dashboard:

  1. 1 Navigate to SettingsEmail Settings in the dashboard
  2. 2 Click Edit to configure SMTP settings
  3. 3 Enter your SMTP server details (address, port, authentication, credentials)
  4. 4 Enable the configuration and use the Test Connection button to verify
Setting Description
Address SMTP server address (e.g., smtp.gmail.com)
Port SMTP port (typically 587 for TLS, 465 for SSL)
Domain HELO domain (optional, usually your domain name)
User Name SMTP username (usually your email address)
Password SMTP password (encrypted and stored securely)
Authentication Authentication method (plain, login, or cram_md5)
Enable STARTTLS Enable STARTTLS for secure connections (recommended)

Site Admin Required

Only users with site admin privileges can configure SMTP settings. This ensures that email configuration is managed centrally and securely.

Password Security

SMTP passwords are encrypted using Rails' built-in encryption. The password field is masked in the UI, and you can leave it blank when updating other settings to preserve the existing password.

Slack Integration

Receive error notifications directly in your Slack channels using Slack webhooks. Checkend sends formatted messages using Slack's Block Kit for rich, interactive notifications.

Creating a Slack Webhook

  1. 1 Go to Slack's webhook documentation or navigate to your Slack workspace settings
  2. 2 Create a new incoming webhook for the channel where you want to receive notifications
  3. 3 Copy the webhook URL (format: https://hooks.slack.com/services/...)

Configuring in Checkend

  1. 1 Navigate to your app's settings page
  2. 2 Scroll to the Slack Integration section
  3. 3 Paste your Slack webhook URL in the Slack Webhook URL field
  4. 4 Save the app settings

Message Format

Slack notifications include:

  • Error class and message
  • App name and environment
  • Notice count and timestamps
  • Backtrace (first 10 lines) when available
  • Button to view the problem in Checkend

Webhook URL Security

Slack webhook URLs are encrypted and stored securely. The URL field is masked in the UI to prevent accidental exposure.

Discord Integration

Receive error notifications in your Discord channels using Discord webhooks. Checkend sends rich, formatted messages using Discord's Rich Embed format.

Creating a Discord Webhook

  1. 1 Open your Discord server settings
  2. 2 Navigate to IntegrationsWebhooks
  3. 3 Click New Webhook and select the channel
  4. 4 Copy the webhook URL (format: https://discord.com/api/webhooks/...)

Configuring in Checkend

Configure Discord integration the same way as Slack: navigate to your app's settings, find the Discord Integration section, and paste your webhook URL.

Rich Embed Format

Discord notifications use Rich Embeds with:

  • Color coding: Red for new errors, gold for reoccurred errors
  • Error details in structured fields (app, environment, error class, notices count)
  • Timestamps and clickable link to view the problem in Checkend

Generic Webhook Integration

Send error notifications to any HTTP endpoint via POST request. This allows you to integrate Checkend with custom systems, monitoring tools, or other services that accept webhooks.

Use Cases

  • Custom monitoring dashboards
  • Integration with other error tracking systems
  • Custom automation workflows
  • Internal APIs and microservices

Payload Structure

Webhook requests are sent as JSON with the following structure:

Webhook Payload
{
  "event": "new_problem",
  "problem": {
    "id": 123,
    "error_class": "NoMethodError",
    "error_message": "undefined method 'foo' for nil:NilClass",
    "notices_count": 5,
    "first_noticed_at": "2025-12-17T02:37:20Z",
    "last_noticed_at": "2025-12-24T01:37:20Z",
    "status": "unresolved",
    "url": "https://checkend.example.com/apps/my-app/problems/123"
  },
  "app": {
    "id": 1,
    "name": "My Rails App",
    "environment": "production",
    "slug": "my-rails-app"
  },
  "notice": {
    "id": 456,
    "occurred_at": "2025-12-24T01:37:20Z",
    "context": {},
    "request": {},
    "user_info": {}
  },
  "timestamp": "2025-12-24T01:37:20Z"
}
Field Description
event Event type: new_problem or problem_reoccurred
problem Complete problem details including ID, error information, and status
app App information including name, environment, and slug
notice Details about the specific notice that triggered the notification (may be null)
timestamp ISO 8601 timestamp when the notification was sent

HTTP Method

Webhook requests are sent as POST requests with Content-Type: application/json header.

GitHub Integration

Automatically create GitHub issues when errors occur. This integration helps you track errors directly in your repository's issue tracker.

Creating a GitHub Personal Access Token

  1. 1 Go to GitHub Settings → Developer settings → Personal access tokens
  2. 2 Click Generate new token (classic)
  3. 3 Give the token a descriptive name (e.g., "Checkend Error Tracking")
  4. 4 Select the repo scope (this allows creating issues)
  5. 5 Click Generate token and copy the token (you won't be able to see it again)

Token Security

GitHub tokens are encrypted and stored securely. Make sure to copy the token immediately after creation, as GitHub only shows it once. If you lose the token, you'll need to create a new one.

Configuring in Checkend

  1. 1 Navigate to your app's settings page
  2. 2 Scroll to the GitHub Integration section
  3. 3 Enable the integration by checking Enable GitHub issue creation
  4. 4 Enter the repository in format owner/repo (e.g., octocat/Hello-World)
  5. 5 Paste your GitHub personal access token
  6. 6 Save the app settings

Issue Format

GitHub issues are created with:

  • Title: [App Name] ErrorClass: truncated message
  • Body: Markdown-formatted with error details, backtrace (first 20 lines), and link to Checkend
  • Labels: bug, error-report (new errors), plus reoccurred (reoccurred errors)

Best Practices

Security

  • All sensitive credentials (webhook URLs, tokens, passwords) are encrypted and stored securely
  • Use minimal permissions for GitHub tokens (only repo scope)
  • Regularly rotate tokens and webhook URLs if they're compromised
  • Use dedicated channels/webhooks for production error notifications

Testing

  • Test SMTP configuration using the Test Connection button before enabling
  • Send a test error to verify webhook integrations are working correctly
  • Check your notification channels after configuring to ensure messages are received

Troubleshooting

Notifications not being sent

  • Verify the app's notification settings are enabled (new errors or reoccurred errors)
  • Check that integration credentials are correctly configured
  • Ensure team members have access to the app

SMTP connection failures

  • Verify SMTP server address and port are correct
  • Check that authentication credentials are valid
  • Ensure STARTTLS is enabled if your SMTP server requires it
  • Check firewall rules allow outbound SMTP connections

Webhook delivery failures

  • Verify the webhook URL is correct and accessible
  • Check that your endpoint accepts POST requests with JSON payloads
  • Review server logs for HTTP error responses