Skip to content

Alerts via Slack and Microsoft Teams

Sending alerts to IM services like Slack and Microsoft Teams can be a great way to quickly notify people about urgent issues.

Teams, Slack and Email Notifications

Microsoft Teams, Slack and email are all notification destinations.

Alert messages/notifications come in two variants: "basic" and "formatted".

Formatted Messages

These messages take full advantage of the formatting and customization options available in each notification destination.

Slack has its own way for creating messages with rich layout and formatting - as does Teams and email.

Formatted messages are created using template files. Each notification destination has its own set of template files. It's therefore possible to take advantage of each destination's specific features when it comes to formatting the messages sent by Butler.

Message templates can include "template fields". These are placeholders that are replaced with actual event values before the message is sent.

The GitHub repository includes fully functional template files for all destinations that suppoert formatted messages.

Basic Messages

Basic message formats are simple, pre-defined text messages that include essential information about the event that triggered the alert.

This message type is useful if you only want a short, basic notification that a task failed or was aborted. The basic formats are pre-defined and are thus easy to set up.

Microsoft Teams Notifications

Basic and formatted reload task failure notifications can look like this in Teams:

Basic failed reload notification in Microsoft Teams

Basic reload failure alert in Teams showing essential information

Formatted failed reload notification in Microsoft Teams

Formatted reload failure alert with rich card layout and detailed information

Teams Message Features

  • Rich Cards: Interactive message cards with structured information
  • Action Buttons: Quick links to QMC, app dashboards, or runbooks
  • Threaded Conversations: Maintain context around specific incidents
  • Mentions: Notify specific team members or channels
  • Emojis: Visual indicators for different severity levels

Slack Notifications

Basic and formatted reload task failure notifications can look like this in Slack:

Basic failed reload notification in Slack

Basic reload failure alert in Slack

Formatted failed reload notification in Slack

Formatted reload failure alert with rich formatting and script log

Slack Message Features

  • Rich Formatting: Bold, italic, code blocks, and lists
  • Blocks and Attachments: Structured message layouts
  • Interactive Elements: Buttons and dropdown menus
  • Channel Routing: Send different alerts to different channels
  • User Mentions: Notify specific users or groups
  • Emoji Reactions: Quick acknowledgment system

Message Templates

Handlebars Templating

Both Teams and Slack notifications use Handlebars templating for dynamic content.
Sample (but fully functional) templates are included in the distribution ZIP files as well as in the GitHub repository.

Available Template Fields

Common template fields available for both Teams and Slack include:

FieldDescription
{{appName}}Application name
{{appId}}Application ID
{{taskName}}Reload task name
{{taskId}}Reload task ID
{{taskType}}Reload task type
{{scriptLogHead}}First x lines of the reload script log
{{scriptLogTail}}Last y lines of the reload script log

For a complete list, see the template fields reference.

Best Practices

Channel Organization

Teams Channels:

  • #qlik-critical - Production failures requiring immediate attention
  • #qlik-operations - General operational notifications
  • #qlik-development - Development environment alerts

Slack Channels:

  • #alerts-critical - High-priority production issues
  • #alerts-general - Standard operational notifications
  • #alerts-dev - Development and testing alerts

Message Design

Clear Subject Lines:

  • Include severity indicator (🚨, ⚠️, ℹ️)
  • Mention environment (PROD, DEV, TEST)
  • Include app or system name

Essential Information:

  • What failed (app name, task name)
  • When it failed (timestamp)
  • Where it failed (server, environment)
  • Why it failed (error message)
  • Next steps (runbook links, contact info)

Troubleshooting

Common Issues

Messages Not Appearing:

  • Verify webhook URLs are correct and active
  • Check Butler logs for HTTP errors
  • Validate message template JSON format
  • Ensure Teams/Slack app permissions

Formatting Problems:

  • Test message templates with sample data
  • Validate Handlebars syntax
  • Check for special character escaping
  • Verify platform-specific formatting rules

Rate Limiting:

  • Monitor webhook response codes
  • Implement exponential backoff
  • Use message grouping to reduce volume
  • Consider multiple webhooks for high volume

The configuration needed for setting this up is described in the setup documentation.

Quick Setup

Both Teams and Slack provide webhook URLs that make integration straightforward. Start with basic notifications and gradually enhance with formatted templates as your team's needs evolve.

Webhook Security

Store webhook URLs securely and rotate them regularly. Monitor webhook access logs for unauthorized usage. Consider using dedicated service accounts for Butler integrations.

Next Steps

Released under the MIT License.