--- title: "Nixstats notification" slug: "nixstats-notification" updated: 2026-01-08T09:27:08Z published: 2026-01-08T09:27:08Z canonical: "docs.rocket.chat/nixstats-notification" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.rocket.chat/llms.txt > Use this file to discover all available pages before exploring further. # Nixstats notification Add Nixstats notifications via a new WebHook in Rocket.Chat 1. In Rocket.Chat go to **Manage** ![Screenshot 2025-12-23 130522.png](https://cdn.us.document360.io/6ae79a05-7252-45d0-96e8-8f375e07b1b2/Images/Documentation/Screenshot%202025-12-23%20130522.png) **> Workspace > Integrations** and create **New Integration**. 2. Choose Incoming WebHook. 3. Follow all instructions like Enable, give it a name, link to channel, etc. Set **Enable Script** to true and enter the JavaScript in the "Script" box. 4. Hit **Save changes** and copy the *Webhook URL* (added just below the script box). 5. Go to [https://nixstats.com](https://nixstats.com) **-> Settings -> Notification Contacts -> Add** (or Edit a contact) contact. 6. Paste the Rocket.Chat URL you've copied in step 4. Paste this JavaScript code in the "Script" textarea on Rocket.Chat webhook settings: ```javascript /* exported Script */ /* globals console, _, s */ /** Global Helpers * * console - A normal console instance * _       - An underscore instance * s       - An underscore string instance */ class Script {  /**   * @params {object} request   */  process_incoming_request({ request }) {    var url;    var url_title;    if(request.content.domain_id)    {      url = 'https://nixstats.com/domains/'+request.content.domain_id;      url_title = request.content.name+" @ nixstats.com";    }    else    {      url = 'https://nixstats.com/server/'+request.content.server_id;      url_title = request.content.server_name+" @ nixstats.com";    }    return {     content:{        text: request.content.subject,        "attachments": [          {            "author_name": url_title,            "author_link": url,            "author_icon": "https://nixstats.com/images/favicon.png"          }          ]       }    };  } } ``` ## Render Nixstats graphs in Rocket.Chat Add Nixstats notifications via a new WebHook in Rocket.Chat 1. In Rocket.Chat go to **Manage** ![Screenshot 2025-12-23 130522.png](https://cdn.us.document360.io/6ae79a05-7252-45d0-96e8-8f375e07b1b2/Images/Documentation/Screenshot%202025-12-23%20130522.png) > **Integrations** and create "New Integration". 2. Choose Outgoing WebHook. 3. Select **Message Sent** as Event trigger. 4. Enter **ns** as trigger word. 5. Enter `<https://api.eu.nixstats.com/v1/>` as URLs. 6. Avatar URL `<https://nixstats.com/images/favicon.png>`. 7. **Token**, this is your nixstats API token, [create an API key](https://nixstats.com/settings/api). 8. Script Enabled set to **True**. Paste this JavaScript in the **Script** text area on Rocket.Chat webhook settings: ```javascript /* exported Script */ /* globals Store */ class Script {  prepare_outgoing_request({ request }) {    let match;    match = request.data.text.match(/^ns servers\s(ls|list)\s*(.*)?$/);    if (match) {      let u = request.url + 'servers?perpage=99&token='+request.data.token;      return {        url: u,        headers: request.headers,        method: 'GET'      };    }    match = request.data.text.match(/^ns graphs\s(.*)?$/);    if (match) {      var matched = false;      var options;      var serverrequest = HTTP('GET', request.url + 'servers?perpage=99&token='+request.data.token, options);      var serverlist = []      JSON.parse(serverrequest.result.content).servers.forEach(function(pr) {        serverlist.push({'name': pr.name, 'id': pr.id});      });      serverlist.forEach(function(serv) {        if(serv.id == match[1])        {          matched = serv.id;        }        if(serv.name == match[1])        {          matched = serv.id;        }      });      if(!matched){        return {          message: {            text: 'Server not found.'          }        };      }      else      {        let u = request.url + 'server/'+matched+'?charts=yes&token='+request.data.token;        return {          url: u,          headers: request.headers,          method: 'GET'        };      }    }    match = request.data.text.match(/^help$/);    if (match) {      return {        message: {          text: [            '**Nixstats commands**',            '```',              '  ns servers ls|list',              '  ns graphs serverid|servername',            '```'          ].join('\n')        }      };    }  }  process_outgoing_response({ request, response }) {    var text = [];    var attach = [];    if(response.content.charts)    {      response.content.charts.forEach(function(pr) {        attach.push({           "color": "#000000",           "text": pr.title+" on "+response.content.name,           "image_url": pr.url,         });      });        text.push('Performance of '+response.content.name);    }    else    {      text.push('```');      response.content.servers.forEach(function(pr) {        text.push(''+pr.id+"\t "+pr.last_data.load.replace(",",",\t")+"\t"+pr.name+'');      });      text.push('```');    }    return {      content: {        text: text.join('\n'),        attachments: attach,        parseUrls: false      }    };  } } ``` After saving the data, you can use the following commands to retrieve data: - `ns servers list` to list your servers with their IDs and load average. - `ns graphs [serverid]` to retrieve a graph of Memory, Network, Load average, and Disk usage of the specified server.