Overview

In this integration example, we will be integrating Inkeep widget into Ananke theme, which is the default theme used as an example with Hugo.

What is Hugo

Hugo is one of the most popular open-source static site generators.

Get an API key

  1. Go to the Inkeep Dashboard
  2. Select your project under Projects
  3. Go to the Integrations tab
  4. Click on Create integration
  5. Select Web
  6. Provide a Name and URL (optional) for the integration
  7. Click on Create
  8. Click the Example < /> button to get your API key and view suggested settings

Create the baseof.html file

Create an baseof.html file at the path layouts/_default

touch layouts/_default/baseof.html

Copy the contents of the baseof.html file:

cp themes/ananke/layouts/_default/baseof.html layouts/_default/baseof.html
Depending on your Hugo theme, this step may differ. The goal is to be able to insert custom scripts into your sites <head> tag.

Load the script files

In the baseof.html file, locate the head tag and paste the scripts below at the end:

baseof.html
<head>
  <!-- Other code -->
  <script
    src="https://unpkg.com/@inkeep/widgets-embed@0.2.288/dist/embed.js"
    type="module"
    defer
  ></script>

  <script src="/js/addInkeep.js" defer></script>
</head>

Create the addInkeep.js script

Create an addInkeep.js file in your static/js folder.

touch static/js/addInkeep.js

Now, configure the chat button component.

addInkeep.js
const inkeepWidget = Inkeep().embed({
  componentType: "ChatButton",
  properties: {
    chatButtonType: "ICON_TEXT",
    baseSettings: {
      apiKey: "INKEEP_API_KEY", // required
      integrationId: "INKEEP_INTEGRATION_ID", // required
      organizationId: "INKEEP_ORGANIZATION_ID", // required
      primaryBrandColor: "#26D6FF", // your brand color, widget color scheme is derived from this
      organizationDisplayName: "Inkeep",
      // ...optional settings
    },
    modalSettings: {
      // optional settings
    },
    searchSettings: {
      // optional settings
    },
    aiChatSettings: {
      // optional settings
      botAvatarSrcUrl: "/img/logo.svg", // use your own bot avatar
      quickQuestions: [
        "Example question 1?",
        "Example question 2?",
        "Example question 3?",
      ],
    },
  },
});

For a full list of customizations, check out the Chat Button documentation.