7 Replies Latest reply: Mar 21, 2016 5:59 AM by Sangram Reddy RSS

    Automatic Alerts(Email)

    Eric Hannert

      Hi community,

      is there any way to get Alert mesages in QlikSense, when for example a kpi goes into a critical status or some critical values get loaded into the programm?

      So u get a Email or ans SMS.

      I saw this for  QlikView but it is also possible to get it in QlikSense?

      CREATING AUTOMATED ALERTS AND EMAILS SENDING BASED ON DATA LOADED IN QLIKVIEW.docx

        • Re: Automatic Alerts(Email)
          Gabor Tarnoczai

          Hi Eric,

           

          This is not possible in Qlik Sense.

           

          You can implement a workaround in the load script.

          You can make and execute a batch file from load script, that do the work.

           

          You should set legacy mode to execute batch files from script.

           

          G.

          • Re: Automatic Alerts(Email)
            Petter Skjolden

            You could achieve this with a properly designed load script depending on whether the KPI is easily determined in the data model that is created in the load script. This is the documentation that tells how to use EXECUTE statement from a load script: http://help.qlik.com/en-US/sense/2.1/Subsystems/Hub/Content/Scripting/ScriptRegularStatements/Execute.htm?q=execute

             

            So depending on your level of expertise it might not be so complicated to achieve...

            • Re: Automatic Alerts(Email)
              Sangram Reddy

              Hi Eric,

               

              Yes this is possible using extensions for sure. You can build an extension to read a KPI using the data from a hypercube and conditionally run your PHP code to send an email.

              I have implemented something similar this using Python to read the log files, to notify any reload failures:

              Capture.PNG

              Thanks,

              Sangram.

                • Re: Automatic Alerts(Email)
                  Rosie Lu

                  Would you mind to share the example?

                    • Re: Automatic Alerts(Email)
                      Sangram Reddy

                      Hi Rosie,

                       

                      Sure will do, its a python code. i will post in in the same thread tomorrow.

                       

                      Thanks,

                      Sangram.

                        • Re: Automatic Alerts(Email)
                          Rosie Lu

                          many thanks~

                            • Re: Automatic Alerts(Email)
                              Sangram Reddy

                              Hi Rosie,

                               

                              Here is the code, which was built for my requirement and has to be tweaked a bit to meet yours if necessary.

                               

                              import smtplib

                              from email.mime.multipart import MIMEMultipart

                              from email.mime.text import MIMEText

                               

                               

                              Error_Suspects = ['Error', 'ERROR', 'Failed', 'Failure']

                               

                               

                              def detect_suspects(file_path, word_list):

                               

                               

                                  with open(file_path) as LogFile:

                                      Summary = {word:[] for word in word_list}

                                      failure = ':'

                                      for num, line in enumerate(LogFile, start=1):

                                          for word in word_list:

                                              if word in line:

                                                  failure += '<li>'+line+'</li>'

                                  return failure

                               

                               

                              Result = detect_suspects(r"C:\Users\sangramr\Desktop\Error_File.log", Error_Suspects)

                               

                               

                              def py_mail(SUBJECT, BODY, TO, FROM):

                                  MESSAGE = MIMEMultipart('alternative')

                                  MESSAGE['subject'] = SUBJECT

                                  MESSAGE['To'] = TO

                                  MESSAGE['From'] = FROM

                                  MESSAGE.preamble = """    """

                                  HTML_BODY = MIMEText(BODY, 'html')

                                  MESSAGE.attach(HTML_BODY)

                               

                               

                                  server = smtplib.SMTP('smtp.company.local',25)

                               

                               

                                  if __name__ == "__main__":

                                      server.set_debuglevel(1)

                                  server.sendmail(FROM, [TO], MESSAGE.as_string())

                                  server.quit()

                               

                               

                              if Result != None:

                               

                               

                                  if __name__ == "__main__":

                                      """Executes if the script is run as main script (for testing purposes)"""

                               

                               

                                      email_content = """

                               

                               

                                     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

                              <html xmlns="http://www.w3.org/1999/xhtml">

                              <head>

                              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

                              <title>Qlik Sense Alerts!</title>

                              </head>

                               

                               

                              <body bgcolor="#8d8e90">

                              <table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#8d8e90">

                                <tr>

                                  <td><table width="600" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF" align="center">

                               

                               

                                       <tr>

                                        <td align="center"><font style="font-family:'Myriad Pro', Helvetica, Arial, sans-serif; color:#68696a; font-size:36px; text-transform:uppercase"><strong>Qlik Sense Alerts!</strong></font></td>

                                      </tr>

                                      <tr>

                                        <td align="center"><a href= "" target="_blank"><img src="http://us.analytics8.com/images/uploads/general/762/qlikmaps-2.png" alt="" width="598" height="249" border="0"/></a></td>

                                      </tr>

                                      <tr>

                                        <td><table width="100%" border="0" cellspacing="0" cellpadding="0">

                                            <tr>

                                              <td width="7%"> </td>

                                              <td width="58%" align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">

                                                <tr>

                                                  <td> </td>

                                                </tr>

                                                <tr>

                                                  <td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">

                                                    <tr>

                                                      <td width="95%"><table width="100%" border="0" cellspacing="0" cellpadding="0">

                                                        <tr>

                                                          <td height="35" align="left" valign="middle" style="border-bottom:2px dotted #000000"><font style="font-family: Georgia, 'Times New Roman', Times, serif; color:#000000; font-size:25px"><strong><em>Error Information</em></strong></font></td>

                                                        </tr>

                                                        <tr>

                                                          <!-- our content -->

                               

                               

                                                          <ul> Error List

                                                           """

                               

                               

                                      email_content += Result

                               

                               

                                      email_content += """

                                                      </ul>

                                                        </tr>

                               

                               

                                                      </table></td>

                                                      <td width="5%" style="border-right:2px dashed #95989a"> </td>

                                                    </tr>

                                                  </table></td>

                                                </tr>

                                              </table></td>

                                            </tr>

                                          </table></td>

                                      </tr>

                                      <tr>

                                        <td> </td>

                                      </tr>

                                      <tr>

                                        <td align="center"><font style="font-family:'Myriad Pro', Helvetica, Arial, sans-serif; color:#231f20; font-size:8px"><strong>Your Company Name | <a href= "http://google.com" style="color:#010203; text-decoration:none">data@company.co.uk</a></strong></font></td>

                                      </tr>

                                      <tr>

                                        <td> </td>

                                      </tr>

                                    </table></td>

                                </tr>

                              </table>

                              </body>

                              </html>

                               

                               

                               

                               

                                       """

                               

                               

                                      TO = 'sangramreddy@company.co.uk'

                                      FROM ='data@company.co.uk'

                               

                               

                                      py_mail("Qlik Sense Alerts!", email_content, TO, FROM)

                              Thanks and Regards,

                              Sangram.