Dashboard

Staffjet Athena Chatbot Integration Guide

Step-by-step integration for modern frameworks

Staffjet's Athena Chatbot is a lightweight and customizable chatbot that can be embedded in different frontend frameworks. This guide provides step-by-step instructions and code snippets for integrating Staffjet's Athena Chatbot into React, Angular, Vue, and plain HTML/JavaScript applications.

Integration in Plain HTML/JavaScript

Integration in Plain HTML/JavaScript

Integration guide for Integration in Plain HTML/JavaScript applications

1

Step 1: Include the Athena Chatbot script in the <head> section of your HTML.

The following script tag should be included in the <head> section of your HTML to load the Athena Chatbot script:

<script src='https://api.staffjet.ai/v1/embed.js'></script>
2

Step 2: Add a container <div> for the chatbot

Create a <div> element with an ID that matches the one specified in the script tag. For example, if the ID is 'athena-chatbot', the <div> element should have an ID of 'athena-chatbot'.

<div id='athena-chatbot'></div>
3

Step 3: Initialize the chatbot

Initialize the chatbot using JavaScript. Below is the complete code.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Athena Chatbot</title>
    <script src="https://api.staffjet.ai/v1/embed.js"></script>
</head>
<body>
    <div id="athena-chatbot-container"></div>

    <script>
        window.AthenaChatbot.initChatbot("athena-chatbot-container", {
            apiKey: "YOUR_API_KEY"
        });
    </script>
</body>
</html>
Integration in React

Integration in React

Integration guide for Integration in React applications

1

Step 1: Install Athena Chatbot in public/index.html by adding the script.

<script src='https://api.staffjet.ai/v1/embed.js'></script>
2

Step 2: Use useEffect to initialize the chatbot inside a React component.

import { useEffect } from "react";

const AthenaChatbot = () => {
  useEffect(() => {
    //@ts-ignore
    window.AthenaChatbot.initChatbot("athena-chatbot-container", {
      apiKey: "YOUR_API_KEY"
    });
  }, []);

  return <div id="athena-chatbot-container"></div>;
};

export default AthenaChatbot;
Integration in Angular

Integration in Angular

Integration guide for Integration in Angular applications

1

Step 1: Include the script in angular.json under the 'scripts'.

"options": {
            "scripts": [
              "https://api.staffjet.ai/v1/embed.js"
            ],
        }
2

Step 2: Use AfterViewInit lifecycle hook to initialize the chatbot.


import { Component, AfterViewInit } from "@angular/core";

@Component({
  selector: "app-athena-chatbot",
  template: "<div id="athena-chatbot-container"></div>",
})
export class AthenaChatbotComponent implements AfterViewInit {
  ngAfterViewInit() {
    //@ts-ignore
    window.AthenaChatbot.initChatbot("athena-chatbot-container", {
      apiKey: "YOUR_API_KEY"
    });
  }
}
Integration in Vue

Integration in Vue

Integration guide for Integration in Vue applications

1

Step 1: Add the Athena script dynamically in index.html.

<head>
  <script src="https://api.staffjet.ai/v1/embed.js"></script>
</head>
2

Step 2: Use mounted lifecycle hook to initialize the chatbot.

<template>
  <div id="athena-chatbot-container"></div>
</template>

<script>
import { onMounted } from "vue";

export default {
  setup() {
    onMounted(() => {
      window.AthenaChatbot.initChatbot("athena-chatbot-container", {
        apiKey: "YOUR_API_KEY"
      });
    });
  },
};
</script>
Integration in Next.js

Integration in Next.js

Integration guide for Integration in Next.js applications

1

Since Next.js uses SSR (Server-Side Rendering), we need to dynamically load the chatbot.


import { useEffect } from "react";

const AthenaChatbot = () => {
  useEffect(() => {
    if (typeof window !== "undefined") {
      import("https://api.staffjet.ai/v1/embed.js").then(() => {
        window.AthenaChatbot.initChatbot("athena-chatbot-container", {
          apiKey: "YOUR_API_KEY"
        });
      });
    }
  }, []);

  return <div id="athena-chatbot-container"></div>;
};

export default AthenaChatbot;
Integration in Wordpress

Integration in Wordpress

Integration guide for Integration in Wordpress applications

1

Upload the given below code snippet at wp-content/themes/[your_theme]/functions.php

function enqueue_athena_chatbot_scripts() {
    // Athena Chatbot Script
    wp_enqueue_script(
        'athena-chatbot',
		'https://athena-chatbot-1053840004341.asia-southeast1.run.app/qualimatrix/athena.js',
        array(),
        null,
        true
    );
}
add_action('wp_enqueue_scripts', 'enqueue_athena_chatbot_scripts');

function athena_chatbot_inline_script() {
    ?>
    <script>
      document.addEventListener("DOMContentLoaded", function () {
        if (window?.AthenaChatbot) {
          window.AthenaChatbot.initChatbot("athena-chatbot-container", {
            apiKey: "1d0cb4ff-7893-40df-a979-ff89c40f25ca"
          });
        } else {
          console.warn("AthenaChatbot is not loaded yet.");
        }
      });
    </script>
    <?php
}
add_action('wp_footer', 'athena_chatbot_inline_script', 100);
Integration in Svelte

Integration in Svelte

Integration guide for Integration in Svelte applications

<script>
  import { onMount } from "svelte";

  onMount(() => {
    window.AthenaChatbot.initChatbot("athena-chatbot-container", {
      apiKey: "YOUR_API_KEY"
    });
  });
</script>

<div id="athena-chatbot-container"></div>
Integration in jQuery

Integration in jQuery

Integration guide for Integration in jQuery applications

<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Athena Chatbot</title>
    <script src="https://api.staffjet.ai/v1/embed.js"></script>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <div id="athena-chatbot-container"></div>

    <script>
        $(document).ready(function() {
            window.AthenaChatbot.initChatbot("athena-chatbot-container", {
                apiKey: "YOUR_API_KEY"
            });
        });
    </script>
</body>
</html>

Need Help?

Join our community or check out additional resources for more advanced integrations.