Alerts

Introduction

Knowi's Alerts allows you to stay on top of important changes in your business in a centralized location to drive actions. With Alerts, you can enhance data management by monitoring query execution, receive real-time notifications when certain thresholds and conditions are met, or when anomalies are detected within your data.

For example, let's assume you have a widget tracking Apple's stock price, that includes a date field, and daily close price.



Let's say you'd like to generate an alert when the stock price at Close exceeds 160.00. You can create an alert based on this threshold and have it sent to you via email/webhook/Slack when the condition is triggered, including the results of your condition.

There are three main alert types you can configure depending on your use case. The sections below will guide you through setting up and managing them.


  • Data Update Alerts
  • Trigger Notification Alerts
  • Widget Alerts
  • Managing Alerts


Data Update Alerts

For datasets that use the ElasticStore to track results, use Data Update Alerts to raise alerts when the data is not updated upon an expected interval. For example, if a query didn't execute as scheduled, this will trigger an alert that can be sent via email/webhook/Slack.


Sections

  • Creating a Data Update Alert
  • Alert Actions: Email
  • Alert Actions: Webhook
  • Alert Actions: Slack


Creating a Data Update Alert

This outlines initial steps to create the alert.


  1. From any dashboard, click the Alerts icon on the left sidebar
  2. In the Alerts Management screen, Click Add Data Update Alerts +
  3. This opens the Alerts Options window
  4. Give your Alert a name. This is how it will be displayed in Alerts Management
  5. In the Dataset dropdown, select the dataset to create an alert for
  6. In the Run Every section, schedule the alert to run at a chosen interval
  7. Skip Alert if data is same as last alert: Check this box to skip this alert If the data is the same as the last alert. Useful to avoid repetitive alerts
  8. Select an Alert Action to configure alert to be sent via email/webhook/Slack


Alert Actions


Email

Email Alerts allows you to send the alert via email along with a CSV attachment of results to a list of recipients.

To set up an Email Alert:

  1. Under Alert Actions, select the Email tab
  2. Enter the Email Subject that will be displayed
  3. In the Email From section, enter the email address that the email will be sent from (support@knowi.com by default). This address will appear as the sender of the email when received in your inbox
  4. Enter the email address of the recipient(s). Comma separated for multiple recipients
  5. Enter the Email Body. (optional) Write custom HTML to customize the email template
  6. Attach Full Dataset as CSV (optional): Check this box to attach the full underlying dataset as a CSV to the email
  7. Attach Results after Cloud9QL as CSV (optional): Check this box to attach the results after the trigger condition as a CSV to the email
  8. Click Test Run (optional) to send a test email alert to the chosen recipient(s)
  9. Once configuration is complete, click Save


Webhook

Webhook Alerts allow you to send an alert directly to your application (or third party applications). When the condition is triggered, we'll send a POST request with a JSON payload of the data, which you can use to drive actions within your application. 

The data in the POST will be a JSON formatted dataset of either the full raw dataset for which the alert is generated, or the dataset after Cloud9QL which triggered the alert. Additionally, you can use Cloud9QL to make any adjustments to the data before posting.

To set up a Webhook Alert:

  1. Under Alert Actions, select the Webhook tab Click + New Webhook. This opens up the Add Webhook window
  2. Under URL to Invoke, enter the endpoint in your application that can accept a post request with JSON (Array of Objects). For example: https://somehost.com/someEndpoint
  3. Enter an Authentication URL. In cases where you need to call an authentication endpoint first to obtain a token, which is then passed into the actual POST request, use the Authentication URL along with any
  4. Authentication headers. This will invoke a separate POST call to obtain an auth token first, which can be subsequently passed as a token into the Headers section. For example:
    • Authorization: Bearer {access token}
  5. Under Headers, enter any optional authentication related headers. One header per line. For example:
  6. Under Auth Headers, enter any optional authentication related headers. One header per line. For example:
  7. Use Full Dataset into the POST (optional): If checked, the whole underlying dataset is used to post data. If unchecked, then the results after Cloud9QL which triggered the data will be used
  8. Cloud9QL filter before POST (optional): Enter any additional manipulation to the data using C9QL before sending to the endpoint. For example, if you only want to send a subset of the most recent close prices which are over 160 and order them by date descending, enter:
    • select * where close > 160 order by date desc limit 10;
  9. Click Save
  10. Click Test Run (optional) to send a test webhook alert to the chosen application. Here?s an example of the results in JSON form:
  11. Once configuration is complete, click Save


Slack


Slack integration allows you to trigger actions in your Slack channel(s) for a given condition triggered by an alert. When the condition is triggered, we'll send a message to a predefined channel(s) including the attachment of full data or conditional data depending on the options selected.

To set up a Slack Alert:

  1. Under Alert Actions, select the Slack tab
  2. If this is your first time connecting Knowi to Slack, click the New Team icon. Follow the prompts to give Knowi access to your Slack account
  3. Click + Add Slack. This opens up the Add Slack sidebar
  4. Give your Alert a name
  5. Under Alert Message, enter a user defined message that will show up when the Alert is received in Slack. If left blank, it will send a default message
  6. In the Alert Team dropdown, choose the Slack workspace to send the Alert to
  7. In the Alert Channels dropdown, choose the Slack channel to publish the Alert notifications to
  8. In Cloud9QL filter before POST text box, enter any additional manipulation to the data that will be sent to Slack 
  9. Attach Full Dataset as CSV (optional): Check this box to attach the full underlying dataset as a CSV to the Slack Alert
  10. Attach Results after Cloud9QL as CSV (optional): Check this box to attach the results after the Alert condition as a CSV to the email
  11. Click Save
  12. Click Test Run (optional) to send a test Slack alert to the chosen channel(s). Here?s how the Alert will show up in you Slack channel:
  13. Once configuration is complete, click Save


Trigger Notification Alerts

Trigger Notifications allows you to set powerful triggers on your datasets to drive actions based on a custom condition you specify. The notifications along with results can be sent via email/webhook/Slack.


Sections

  • Creating a Trigger Notification Alert
  • Alert Actions: Email
  • Alert Actions: Webhook
  • Alert Actions: Slack


Creating a Trigger Notification Alert

This outlines initial steps to create the alert.



  1. From any dashboard, click the Alerts icon on the left sidebar
  2. In the Alerts Management screen, Click Add Trigger Notification +
  3. This opens the Alerts Options window
  4. Give your Alert a name. This is how it will be displayed in Alerts Management
  5. In the Dataset dropdown, select the dataset to create an alert for
  6. In The condition * section, use Cloud9QL in the query editor to create the trigger condition on top of your dataset:
    • Enter the Cloud9QL query for your condition in the query editor
    • Click Preview to see the results of your Cloud9QL condition and edit if needed
  7. Click Use Query to use the query you have
  8. Generate Alert if no data is detected: Check this box to raise the alert if no data is returned from the alert condition
  9. Attach conditional data as part of the alert: Check this box to attach the underlying dataset after the C9QL condition is applied as part of the alert
  10. Enable realtime alerts: Check this box to trigger the alert every time the dataset is updated. Not available for direct datasets
  11. In the Run Every section, schedule the alert to run at a chosen interval (if realtime alerts is not enabled)
  12. Skip Alert if data is same as last alert: Check this box so to skip this alert If the data is the same as the last alert. Useful to avoid repetitive alerts
  13. Select an Alert Action to configure alert to be sent via email/webhook/Slack


Alert Actions


Email

Email Alerts allows you to send the alert via email along with a CSV attachment of results to a list of recipients.

To set up an Email Alert:

  1. Under Alert Actions, select the Email tab
  2. Enter the Email Subject that will be displayed
  3. In the Email From section, enter the email address that the email will be sent from (support@knowi.com by default). This address will appear as the sender of the email when received in your inbox
  4. Enter the email address of the recipient(s). Comma separated for multiple recipients
  5. Enter the Email Body. (optional) Write custom HTML to customize the email template
  6. Attach Full Dataset as CSV (optional): Check this box to attach the full underlying dataset as a CSV to the email
  7. Attach Results after Cloud9QL as CSV (optional): Check this box to attach the results after the trigger condition as a CSV to the email
  8. Click Test Run (optional) to send a test email alert to the chosen recipient(s)
  9. Once configuration is complete, click Save


Webhook

Webhook Alerts allow you to send an alert directly to your application (or third party applications). When the condition is triggered, we'll send a POST request with a JSON payload of the data, which you can use to drive actions within your application. 

The data in the POST will be a JSON formatted dataset of either the full raw dataset for which the alert is generated, or the dataset after Cloud9QL which triggered the alert. Additionally, you can use Cloud9QL to make any adjustments to the data before posting.

To set up a Webhook Alert:

  1. Under Alert Actions, select the Webhook tab Click + New Webhook. This opens up the Add Webhook window
  2. Under URL to Invoke, enter the endpoint in your application that can accept a post request with JSON (Array of Objects). For example: https://somehost.com/someEndpoint
  3. Enter an Authentication URL. In cases where you need to call an authentication endpoint first to obtain a token, which is then passed into the actual POST request, use the Authentication URL along with any
  4. Authentication headers. This will invoke a separate POST call to obtain an auth token first, which can be subsequently passed as a token into the Headers section. For example:
    • Authorization: Bearer {access token}
  5. Under Headers, enter any optional authentication related headers. One header per line. For example:
  6. Under Auth Headers, enter any optional authentication related headers. One header per line. For example:
  7. Use Full Dataset into the POST (optional): If checked, the whole underlying dataset is used to post data. If unchecked, then the results after Cloud9QL which triggered the data will be used
  8. Cloud9QL filter before POST (optional): Enter any additional manipulation to the data using C9QL before sending to the endpoint. For example, if you only want to send a subset of the most recent close prices which are over 160 and order them by date descending, enter:
    • select * where close > 160 order by date desc limit 10;
  9. Click Save
  10. Click Test Run (optional) to send a test webhook alert to the chosen application. Here?s an example of the results in JSON form:
  11. Once configuration is complete, click Save


Slack


Slack integration allows you to trigger actions in your Slack channel(s) for a given condition triggered by an alert. When the condition is triggered, we'll send a message to a predefined channel(s) including the attachment of full data or conditional data depending on the options selected.

To set up a Slack Alert:

  1. Under Alert Actions, select the Slack tab
  2. If this is your first time connecting Knowi to Slack, click the New Team icon. Follow the prompts to give Knowi access to your Slack account
  3. Click + Add Slack. This opens up the Add Slack sidebar
  4. Give your Alert a name
  5. Under Alert Message, enter a user defined message that will show up when the Alert is received in Slack. If left blank, it will send a default message
  6. In the Alert Team dropdown, choose the Slack workspace to send the Alert to
  7. In the Alert Channels dropdown, choose the Slack channel to publish the Alert notifications to
  8. In Cloud9QL filter before POST text box, enter any additional manipulation to the data that will be sent to Slack 
  9. Attach Full Dataset as CSV (optional): Check this box to attach the full underlying dataset as a CSV to the Slack Alert
  10. Attach Results after Cloud9QL as CSV (optional): Check this box to attach the results after the Alert condition as a CSV to the email
  11. Click Save
  12. Click Test Run (optional) to send a test Slack alert to the chosen channel(s). Here?s how the Alert will show up in you Slack channel:
  13. Once configuration is complete, click Save


Widget Alerts

Widget Alerts enable you to set up alerts directly on a widget based on a threshold, anomaly detected, or custom condition in your data and have the alert along with results sent via email/webhook/Slack.


Sections

  • Creating a Threshold Widget Alert
  • Creating an Anomaly Detection Widget Alert
  • Creating a Custom Widget Alert
  • Advanced Settings
  • Send alert via Email
  • Send alert via Webhook
  • Send alert via Slack


To get started, navigate to the widget you want to create an alert for and click the Add/Remove Alert Icon. 



Creating a Threshold Widget Alert

  1. Navigate to the widget you want to create an alert for and click the Add/Remove Alert icon
  2. Select Add Alert + to open the Create Alert sidebar 
  3. Select the Threshold tab
  4. Give your Alert a name. This is how it will be displayed in Alerts Management
  5. In Alerts metric dropdown, select the field you want to set an alert on
  6. Choose the the threshold type (i.e. >, >=, =, <=, <)
  7. In the Threshold box, enter the value that will trigger the alert
  8. See section below for Advanced Settings
  9. Select a Send Alert via action to configure alert to be sent via email/webhook/Slack



Creating an Anomaly Detection Widget Alert

Time-series anomaly detection is used to identify unusual patterns that do not conform to expected behavior, called outliers. This alert notifies you when such anomalies are detected within your data.


  1. Navigate to the widget you want to create an alert for and click the Add/Remove Alert Icon
  2. Select Add Alert + to open the Create Alert sidebar 
  3. Select the Anomaly Detection (Beta) tab
  4. Give your Alert a name. This is how it will be displayed in Alerts Management
  5. In Alerts metric dropdown, select the field you want to set an alert on
  6. Set the Anomaly Detection Threshold (default: 50). The threshold/band width determines the range of expected values. Values outside of the threshold are considered anomalies. 
  7. Select the Date/Time Dimension - this is the time series feature of the selected dataset, typically used as the x-axis of time-series charts
  8. Select a Dimension to detect anomalies across other fields in your dataset
  9. Use the Preview button to preview the anomaly detection model which is trained and applied to the data
  10. Select the type of dimension from Dimension drop-down to see the specific values
  11. See section below for Advanced Settings
  12. Select a Send Alert via action to configure alert to be sent via email/webhook/Slack



Creating a Custom Widget Alert

  1. Navigate to the widget you want to create an alert for and click the Add/Remove Alert Icon
  2. Select Add Alert + to open the Create Alert sidebar 
  3. Select the Custom tab
  4. Give your Alert a name. This is how it will be displayed in Alerts Management
  5. In the Cloud9QL condition editor, enter a custom alert condition syntax. For example, to be notified when the stock Close price exceeds the 50-period moving average, use the syntax:
  6. The custom condition you?ve specified will trigger the alert
  7. See section below for Advanced Settings
  8. Select a Send Alert via action to configure alert to be sent via email/webhook/Slack


Advanced Settings

These are additional options to configure your Alert. Check the Advanced Settings box to expand the menu.



  • Generate Alert if no data is detected: Check this box to raise the alert if no data is returned from the alert condition
  • Attach conditional data as part of the alert: Check this box to attach the underlying dataset after the alert condition is applied as part of the alert
  • Attach another dataset on trigger: Check this box to attach a separate dataset when the condition is triggered. For example, if an alert is triggered for total Users crossing a threshold, but you need the data sent/attached to be from a list of Users from a separate dataset/query. Cloud9QL can be applied on that dataset to optionally manipulate the results
  • Enable realtime alerts: Check this box to trigger the alert every time the dataset is updated. Not available for direct datasets
  • Skip Alert if data is same as last alert: Check this box to skip this alert If the data is the same as the last alert. Useful to avoid repetitive alerts


Send alert via

This section will walk you through setting up Alert notifications for Widget Alerts.


Email

Email Alerts allows you to send the alert via email along with a CSV attachment of results to a list of recipients. 



To set up an Email Alert:

  1. Under Send alert via, select the Email tab, then click Setup
  2. Enter the Email Subject that will be displayed
  3. In the Email From section, enter the email address that the email will be sent from (support@knowi.com by default). This address will appear as the sender of the email when received in your inbox
  4. Enter the email address of the recipient(s). Comma separated for multiple recipients
  5. Enter the Email Body. (Optional) Write custom HTML to customize the email template
  6. Attach Full Dataset as CSV (optional): Check this box to attach the full underlying dataset as a CSV to the email
  7. Attach Results after Cloud9QL as CSV (optional): Check this box to attach the results after the trigger condition as a CSV to the email
  8. Click Save Settings
  9. Click Test Run (optional) to send a test email alert to the chosen recipient(s)
  10. Once configuration is complete, click Save Alert
  11. You can add a new Alert or edit an existing one by clicking the Alert Icon in the widget


Webhook

Webhook Alerts allow you to send an alert directly to your application (or third party applications). When the condition is triggered, we'll send a POST request with a JSON payload of the data, which you can use to drive actions within your application. 

The data in the POST will be a JSON formatted dataset of either the full raw dataset for which the alert is generated, or the dataset after Cloud9QL which triggered the alert. Additionally, you can use Cloud9QL to make any adjustments to the data before posting.



To set up a Webhook Alert:

  1. Under Send alert via, select the Webhook tab, then click Setup
  2. Click Add New Webhook. This opens up the Create new webhook sidebar
  3. Under URL to Invoke, enter the endpoint in your application that can accept a post request with JSON (Array of Objects). For example: https://somehost.com/someEndpoint
  4. Enter an Authentication URL, In cases where you need to call an authentication endpoint first to obtain a token, which is then passed into the actual POST request, use the Authentication URL along with any Authentication headers. This will invoke a separate POST call to obtain an auth token first, which can be subsequently passed as a token into the Headers section:
    • Authorization: Bearer {access token}
  5. Under Headers, enter any optional authentication related headers. One header per line. For example:
  6. Under Auth Headers, enter any optional authentication related headers. One header per line. For example:

  7. Under Cloud9QL filter before POST, leave empty if you want to send the full results of the Alert. Otherwise, enter any additional manipulation to the data using C9QL before sending to the endpoint. For example, if you only want to send a subset of the most recent close prices which are over 160 and order them by date descending, enter:
    • select * where close > 160 order by date desc limit 10;
  8. Check the box Use full dataset into POST to send the whole dataset. If left unchecked, then the results after Cloud9QL which triggered data will be used
  9. Click Save Settings
  10. Click Test Run (optional) to send a test webhook alert to the chosen application. Here?s an example of the results in JSON form:
  11. Once configuration is complete, click Save Alert
  12. You can add a new Alert or edit an existing one by clicking the Alert Icon in the widget


Slack

Slack integration allows you to trigger actions in your Slack channel(s) for a given condition triggered by an alert. When the condition is triggered, we'll send a message to a predefined channel(s) including the attachment of full data or conditional data depending on the options selected.



  1. Under Send alert via, select the Slack tab, then click Setup
  2. If this is your first time connecting Knowi to Slack, click Add new Slack team. Follow the prompts to give Knowi access to your Slack account
  3. Click Add New Slack Account. This opens up the Add Slack sidebar
  4. Give your Alert a name
  5. Under Alert Message, enter a user defined message that will show up when the Alert is received in Slack. If left blank, it will send a default message
  6. In the Alert Team dropdown, choose the Slack workspace to send the Alert to
  7. In the Alert Channels dropdown, choose the Slack channel to publish the Alert notifications to
  8. In Cloud9QL filter before POST text box, enter any additional manipulation to the data that will be sent to Slack 
  9. Attach Full Dataset as CSV (optional): Check this box to attach the full underlying dataset as a CSV to the Slack Alert
  10. Attach Results after Cloud9QL as CSV (optional):Check this box to attach the results after the Alert condition as a CSV to the email
  11. Click Save Settings
  12. Click Test Run (optional) to send a test Slack alert to the chosen channel(s). Here?s how the Alert will show up in you Slack channel:
  13. Once configuration is complete, click Save Alert
  14. You can add a new Alert or edit an existing one by clicking the Alert Icon in the widget


Managing Alerts

All alerts are managed in a central location in the Alerts Management screen. From the dashboard, click on the Alerts icon on the left side panel. 



Sections

  • Creating a New Alert
  • Alerts List
  • Alert Details
  • Edit an Alert
  • Delete an Alert
  • Share an Alert
  • Webhooks & Slacks
  • Email Alert Template and Tokens


Creating a New Alert

You can create new alerts in Alerts Management by clicking the Add Trigger Notification + or Add Data Update Alerts + orange icons. Note that Widget Alerts must be created on the widget themselves.


Alerts List

The list of Alerts you?ve created are listed here, along with details about the alert. You can also edit, share, clone, or delete alerts here.


Alert Details

  • Alert name: The name you gave your alert
  • Source: The widget or dataset used for the alert
  • Alert Type: Displays the type of alert (i.e. Widget Alert, Trigger Notification, or Data Update Alert)
  • Medium: The medium used to notify you of the alert (i.e. email/webhook/Slack)
  • Total Fired: The number of times the alert has been triggered
  • Last Fired: The date/time the alert was last triggered
  • Created Date: The date/time the alert was created


Edit an Alert

You can edit an alert by clicking the pencil icon on the right side of each alert listing.


Clone an Alert


To clone an alert:

  1. Click the 3-dot icon on the right side of the alert listing
  2. Select Clone
  3. Make any changes to the alert as needed
  4. Click Save
  5. The cloned alert will now appear in the Alert list


Delete an Alert


To delete an alert:

  1. Click the 3-dot icon on the right side of the alert listing
  2. Select Delete
  3. You will be asked to confirm if you want to delete the alert. To proceed, click OK


Share an Alert

You can explicitly share an alert with another user. Note that sharing is only available to users who have full access rights to the dataset being used for the alert. 


To share an alert:

  1. Click the 3-dot icon on the right side of the alert listing
  2. Select Share
  3. In the dropdown, select the user(s) to share the alert to Click Share


Webhooks & Slacks

In Alerts Management, you also see a list of all the Webhook and Slack alerts you've created. You can edit each entry by clicking the pencil icon on the right hand side of each line. You can also delete an entry by clicking the Delete icon. 


Email Alert Template and Tokens

For alerts sent via email, you have the option to write custom HTML to customize the body of the email template. The body can contain the dynamic tags below:


%DATASET_NAME%

%ALERT_CONDITION%

%DATASETLASTUPDATE%

%COLUMN_NAME%

%DATA_CSV%

%DATA_JSON%


For example, using the default HMTL payload template for a Trigger Notification Alert:


Will produce an email alert body that looks similar to the image below: