SkillAgentSearch skills...

Chatwoot

ChatWoot integration for Vue and Nuxt.

Install / Use

/learn @productdevbook/Chatwoot
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Chatwoot Vue 3 && Nuxt 3

<p> <a href="https://www.npmjs.com/package/@productdevbook/chatwoot"><img src="https://img.shields.io/npm/v/@productdevbook/chatwoot.svg?style=flat&colorA=002438&colorB=28CF8D" alt="Version"></a> <a href="https://www.npmjs.com/package/@productdevbook/chatwoot"><img src="https://img.shields.io/npm/dm/@productdevbook/chatwoot.svg?style=flat&colorA=002438&colorB=28CF8D" alt="Downloads"></a> <a href="./LICENSE"><img src="https://img.shields.io/github/license/productdevbookcom/chatwoot.svg?style=flat&colorA=002438&colorB=28CF8D" alt="License"></a> <a href="https://github.com/productdevbookcom/chatwoot"> <img src="https://img.shields.io/github/stars/productdevbookcom/chatwoot.svg?style=social&label=Star&maxAge=2592000" alt="Github Stars"> </a> </p>

This module productdevbook team created.

ChatWoot integration for Vue and Nuxt.

Features

  • Zero-config required
  • isOpen support

Setup

pnpm install @productdevbook/chatwoot
yarn install @productdevbook/chatwoot
npm install @productdevbook/chatwoot

Vue 3 Setup

add Main.ts

import { createChatWoot } from '@productdevbook/chatwoot/vue'

const chatwoot = createChatWoot({
  init: {
    websiteToken: 'b6BejyTTuxF4yPt61ZTZHjdB'
  },
  settings: {
    locale: 'en',
    position: 'left',
    launcherTitle: 'Hello Chat'
  },
  partytown: false,
})

app.use(chatwoot)

Nuxt 3 Setup

export default defineNuxtConfig({
  modules: [
    '@productdevbook/chatwoot'
  ],

  chatwoot: {
    init: {
      websiteToken: 'b6BejyTTuxF4yPt61ZTZHjdB'
    },
    settings: {
      locale: 'en',
      position: 'left',
      launcherTitle: 'Hello Chat',
      // ... and more settings
    },
    // If this is loaded you can make it true, https://github.com/nuxt-modules/partytown
    partytown: false,
  }
})

Composables

Add app.vue or add wherever you want.

<script setup lang="ts">
const { isModalVisible, toggle, toggleBubbleVisibility, popoutChatWindow } = useChatWoot()
</script>

<template>
  <div class="flex space-x-3">
    <div>{{ isModalVisible }}</div>
    <button @click="toggle('open')">
      open
    </button>
    <button @click="toggle('close')">
      close
    </button>
    <div class="flex space-x-3">
      <button @click="toggleBubbleVisibility('hide')">
        hide
      </button>
      <button @click="toggleBubbleVisibility('show')">
        show
      </button>
      <button @click="popoutChatWindow()">
        open popup
      </button>
    </div>
  </div>
</template>

Init Default

| Option | Type | Description | Default | | -------------- | -------- | ----------------------------------------------------------------- | ------------------------ | | websiteToken | string | The token given to you when you create a chat widget. | | | baseUrl | bool | Your site's domain, as declared by you in Chatwoot's settings | https://app.chatwoot.com |

useChatWoot

useChatWoot() accepts some

| Option | Type | Description | | -------------- | -------- | ----------------------------------------------------------------- | | isModalVisible | boolean | This chat will show you its open status. | | toggle | 'open' or 'close' - Function | You can open and close the chat | | setUser | key: string, args: ChatwootSetUserProps - Function | You can send user information to chatwoot panel. | | setCustomAttributes | attributes: { [key: string]: string } - Function | You can send custom attributes to chatwoot panel. | | setConversationCustomAttributes | attributes: { [key: string]: string } - Function | You can send conversation custom attributes to chatwoot panel. | | deleteCustomAttribute | key: string - Function | You can delete custom attributes to chatwoot panel. | | setLocale | local: string - Function | Change widget locale | | setLabel | label: string - Function | You can send label to chatwoot panel. | | removeLabel | label: string - Function | You can delete label to chatwoot panel. | | reset | Function | You can reset all settings. | | toggleBubbleVisibility | 'hide' or 'show' - Function | You can set the speech bubble's hide state. | | popoutChatWindow | | You can open the conversation as a popup. |

Sponsors

<p align="center"> <a href="https://cdn.jsdelivr.net/gh/productdevbook/static/sponsors.svg"> <img alt="sponsors" src='https://cdn.jsdelivr.net/gh/productdevbook/static/sponsors.svg'/> </a> </p>

💻 Development

  • Clone this repository
  • Enable Corepack using corepack enable (use npm i -g corepack for Node.js < 16.10)
  • Install dependencies using pnpm install
  • Stub module with pnpm dev:prepare
  • Run pnpm dev to start playground in development mode

Thanks

Thanks to @surmon-china, this project loadScript function is heavily inspired by surmon-china.github.io.

License

MIT License © 2022-PRESENT productdevbook

View on GitHub
GitHub Stars42
CategoryDevelopment
Updated1mo ago
Forks9

Languages

TypeScript

Security Score

95/100

Audited on Feb 21, 2026

No findings