🔗 Slack Integration
GermainUX alerts can automatically be posted to Slack channels, allowing teams to receive and respond to critical events in real time.
🔔 Messages can be triggered by:
|
Trigger |
|---|
|
SLA conditions |
|
Scheduled executions |
|
Other GermainUX automation events |
⚙️ Integration Overview
GermainUX integrates with Slack through HTTP Actions and the Slack Web API. When a configured condition occurs, GermainUX calls Slack’s chat.postMessage method to publish a message to the selected channel.
🚀 Create a Slack App
If you do not already have a Slack app:
-
Create an app in your Slack workspace.
-
Add the required OAuth scopes.
-
Install or reinstall the app in the workspace.
-
Copy the generated bot token.
-
Identify the ID of the destination channel.
The Slack app requires the chat:write scope to publish messages. Add chat:write.public only if the app must post to public channels of which it is not a member. If the channel ID must be retrieved programmatically, the app may also require channels:read. See Slack’s message-sending guide and chat:write.public documentation.
📄 Example Slack API Request
The following request posts a message to a Slack channel:
curl "https://slack.com/api/chat.postMessage" \
--request POST \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer xoxb-your-token" \
--data '{
"channel": "YOUR_CHANNEL_ID",
"text": "GermainUX detected CPU utilization of 91%, which exceeds the expected threshold."
}'
Store the Slack bot token in a secure GermainUX credential configuration. Do not include a production token directly in the HTTP Action.
📁 Automatically Post GermainUX Alerts to Slack
Go to GermainUX Workspace --> Left Menu --> Settings → Automation -> HTTP.
This screen displays the available HTTP Actions and identifies those associated with SLAs. Select an existing action to edit it, or click + to open the HTTP Action wizard.
1️⃣ Step 1: Configure the Action
Enter:
|
Field |
Value |
|---|---|
|
Name |
|
|
Execution Count |
|
Click Next.
2️⃣ Step 2: Configure the HTTP Request
|
Field |
Value |
|---|---|
|
Path |
|
|
Request Method |
|
|
Content Type |
|
|
Expected HTTP Response |
|
|
Authorization Header |
|
Use the following request body:
{
"channel": "YOUR_CHANNEL_ID",
"text": "GermainUX detected that ${context.kpi.name}, with a value of ${context.displayValue}, exceeded its configured SLA threshold."
}
A successful Slack API response contains "ok": true. Because Slack can return an HTTP success status with "ok": false in the response body, validate the ok property whenever the GermainUX HTTP Action configuration supports response-content validation. See the chat.postMessage API documentation.
3️⃣ Step 3: Select the Trigger
Select the CPU Usage SLA that should trigger the Slack message.
When the SLA is breached, GermainUX will post the configured message to the selected Slack channel.
Click Finish to save the configuration.
💡 Recommended Practices
|
Practice |
|---|
|
Use a dedicated Slack app with only the required OAuth scopes. |
|
Store the bot token securely and never expose it in documentation or logs. |
|
Use a channel ID rather than a channel name. |
|
Apply an execution limit or quiet period to avoid duplicate messages. |
|
Include the affected system, KPI, current value, threshold, and Analysis Dashboard link. |
|
Test the integration in a dedicated Slack channel before enabling it in production. |
Component: Engine
Feature Availability: 8.6.0 or later