Slik legger du til Asyntai AI-chatbot i DatoCMS

Trinn-for-trinn-guide for DatoCMS-drevne nettsteder

Hent innebyggingskode

Headless CMS: DatoCMS er et headless CMS som leverer innhold via API-er. Chatbot-koden må legges til i frontend-applikasjonen din (Next.js, Gatsby, Nuxt osv.), ikke i DatoCMS-dashbordet.

Trinn 1: Hent innbyggingskoden din

Gå først til Asyntai-dashbordet ditt og bla ned til «Innbyggingskode»-seksjonen. Kopier din unike innbyggingskode som vil se slik ut:

<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>

Merk: Koden ovenfor er bare et eksempel. Du må kopiere din egen unike innbyggingskode fra Dashbordet ditt, da den inneholder din personlige widget-ID.

Trinn 2: Legg til i Next.js-frontend (vanligst)

Next.js er det mest populære frontend-rammeverket brukt med DatoCMS. Legg til chatboten ved hjelp av Script-komponenten:

App Router (app/layout.tsx):

  1. Åpne rotlayoutfilen din: app/layout.tsx
  2. Importer Script-komponenten og legg til chatboten:
    import Script from 'next/script'

    export default function RootLayout({ children }) {
      return (
        <html>
          <body>
            {children}
            <Script
              src="https://asyntai.com/static/js/chat-widget.js"
              data-asyntai-id="YOUR_WIDGET_ID"
              strategy="afterInteractive"
            />
          </body>
        </html>
      )
    }
  3. Erstatt YOUR_WIDGET_ID med din faktiske widget-ID
  4. Lagre filen og start utviklingsserveren på nytt

Pages Router (pages/_app.tsx):

  1. Åpne filen pages/_app.tsx
  2. Legg til Script-komponenten:
    import Script from 'next/script'
    import type { AppProps } from 'next/app'

    export default function App({ Component, pageProps }: AppProps) {
      return (
        <>
          <Component {...pageProps} />
          <Script
            src="https://asyntai.com/static/js/chat-widget.js"
            data-asyntai-id="YOUR_WIDGET_ID"
            strategy="afterInteractive"
          />
        </>
      )
    }

Tips: Bruk av strategy="afterInteractive" sikrer at chatboten lastes inn rett etter at siden blir interaktiv, noe som gir en god balanse mellom ytelse og tilgjengelighet.

Alternativ metode 1: Gatsby-frontend

For Gatsby-nettsteder som henter innhold fra DatoCMS via gatsby-source-datocms:

  1. Opprett eller rediger gatsby-ssr.js i prosjektets rotmappe:
    import React from 'react'

    export const onRenderBody = ({ setPostBodyComponents }) => {
      setPostBodyComponents([
        <script
          key="asyntai-chatbot"
          async
          src="https://asyntai.com/static/js/chat-widget.js"
          data-asyntai-id="YOUR_WIDGET_ID"
        />
      ])
    }
  2. Erstatt YOUR_WIDGET_ID med din faktiske widget-ID
  3. Start Gatsby-utviklingsserveren på nytt

Alternativ metode 2: Nuxt.js-frontend

For Nuxt.js-applikasjoner som bruker DatoCMS-innhold:

  1. Legg til i nuxt.config.ts:
    export default defineNuxtConfig({
      app: {
        head: {
          script: [
            {
              src: 'https://asyntai.com/static/js/chat-widget.js',
              async: true,
              'data-asyntai-id': 'YOUR_WIDGET_ID'
            }
          ]
        }
      }
    })
  2. Erstatt YOUR_WIDGET_ID med din faktiske widget-ID
  3. Start Nuxt-utviklingsserveren på nytt

Alternativ metode 3: Vanlig HTML / statisk nettsted

Hvis du bruker DatoCMS sitt Content Delivery API med et statisk HTML-nettsted eller en statisk nettstedsgenerator:

  1. Legg til innbyggingskoden i HTML-filen din før den avsluttende </body>-taggen:
    <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
  2. Erstatt YOUR_WIDGET_ID med din faktiske widget-ID
  3. Lagre filen og last opp til hostingen din

Alternativ metode 4: React (Vite/CRA)

For standard React-apper (Create React App, Vite) som bruker DatoCMS API:

Alternativ A: Legg til i public/index.html

  1. Åpne filen public/index.html (CRA) eller index.html (Vite)
  2. Legg til innbyggingskoden før den avsluttende </body>-taggen:
    <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
  3. Lagre filen

Alternativ B: useEffect i rotkomponent

  1. Opprett en chatbot-komponent eller legg til i rotkomponenten din:
    // components/Chatbot.jsx
    import { useEffect } from 'react'

    export default function Chatbot() {
      useEffect(() => {
        const script = document.createElement('script')
        script.src = 'https://asyntai.com/static/js/chat-widget.js'
        script.async = true
        script.setAttribute('data-asyntai-id', 'YOUR_WIDGET_ID')
        document.body.appendChild(script)
        return () => document.body.removeChild(script)
      }, [])
      return null
    }
  2. Importer og gjengi komponenten i App.jsx eller rotlayouten din

Trinn 3: Distribuer og bekreft

Etter at du har lagt til chatbot-koden på ditt DatoCMS-drevne nettsted, distribuer eller start utviklingsserveren din. Besøk nettstedet ditt i en ny nettleserfane eller et inkognitovindu. Du bør se chatwidget-knappen i nedre høyre hjørne. Klikk på den for å sjekke at den åpnes og fungerer riktig.

Ser du ikke widgeten? Sørg for at du har lagt til skriptet i riktig fil for rammeverket ditt. Sjekk nettleserens utviklerkonsoll for eventuelle feil. Hvis du bruker server-side rendering, sørg for at skriptet kjøres på klientsiden. Prøv å tømme nettleserens hurtigbuffer eller se i et inkognitovindu.

Miljøvariabler: For bedre sikkerhet og fleksibilitet, vurder å lagre widget-ID-en din i en miljøvariabel (f.eks. NEXT_PUBLIC_ASYNTAI_ID for Next.js eller VITE_ASYNTAI_ID for Vite) i stedet for å hardkode den.