IntegrationsGatsby

Add an Embedded AI Chat to your Gatsby app

What is Gatsby

Gatsby is a React-based open source framework for creating websites.

Install the component library

npm install @inkeep/cxkit-react
yarn add @inkeep/cxkit-react

Customize your settings

Define your Inkeep settings.

const baseSettings = {
  apiKey,
  primaryBrandColor: "#26D6FF", // your brand color, widget color scheme is derived from this
  organizationDisplayName: "Inkeep",
  // ...optional settings
};
 
const modalSettings = {
  // optional settings
};
 
const searchSettings = {
  // optional settings
};
 
const aiChatSettings = {
  // optional settings
  aiAssistantAvatar: "/img/logo.svg", // use your own ai assistant avatar
  exampleQuestions: [
    "Example question 1?",
    "Example question 2?",
    "Example question 3?",
  ],
};
import type {
  InkeepAIChatSettings,
  InkeepSearchSettings,
  InkeepBaseSettings,
  InkeepModalSettings,
} from "@inkeep/cxkit-react";
 
const baseSettings: InkeepBaseSettings = {
  apiKey,
  primaryBrandColor: "#26D6FF", // your brand color, widget color scheme is derived from this
  organizationDisplayName: "Inkeep",
  // ...optional settings
};
 
const modalSettings: InkeepModalSettings = {
  // optional settings
};
 
const searchSettings: InkeepSearchSettings = {
  // optional settings
};
 
const aiChatSettings: InkeepAIChatSettings = {
  // optional settings
  aiAssistantAvatar: "/img/logo.svg", // use your own ai assistant avatar
  exampleQuestions: [
    "Example question 1?",
    "Example question 2?",
    "Example question 3?",
  ],
};

Define the component

Next, create an InkeepEmbeddedChat.tsx file for the Embedded Chat component.

import * as React from "react";
import { useEffect, useState } from "react";
 
export default function InkeepEmbeddedChat() {
  const [EmbeddedChat, setEmbeddedChat] = useState(null);
 
  // load the library asynchronously
  useEffect(() => {
    const loadEmbeddedChat = async () => {
      try {
        const { InkeepEmbeddedChat } = await import("@inkeep/cxkit-react");
        setEmbeddedChat(() => InkeepEmbeddedChat);
      } catch (error) {
        console.error("Failed to load EmbeddedChat:", error);
      }
    };
 
    loadEmbeddedChat();
  }, []);
 
  const embeddedChatProps = {
    baseSettings,
    aiChatSettings,
  };
 
  return EmbeddedChat && <EmbeddedChat {...embeddedChatProps} />;
}
import * as React from "react";
import { useEffect, useState } from "react";
import type { InkeepChatButtonProps } from "@inkeep/cxkit-react";
 
export default function InkeepEmbeddedChat() {
  const [EmbeddedChat, setEmbeddedChat] = useState(null);
 
  // load the library asynchronously
  useEffect(() => {
    const loadEmbeddedChat = async () => {
      try {
        const { InkeepEmbeddedChat } = await import("@inkeep/cxkit-react");
        setEmbeddedChat(() => InkeepEmbeddedChat);
      } catch (error) {
        console.error("Failed to load EmbeddedChat:", error);
      }
    };
 
    loadEmbeddedChat();
  }, []);
 
  const embeddedChatProps = {
    baseSettings,
    aiChatSettings,
  };
 
  return EmbeddedChat && <EmbeddedChat {...embeddedChatProps} />;
}

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

On this page