# n8n-nodes-mtai-zalo-test-trial

Các node hỗ trợ tích hợp Zalo vào nền tảng **n8n**.

---

## 📦 Cài đặt

```bash
pnpm install n8n-nodes-mtai-zalo-test-trial
```

### Yêu cầu:
- **Node.js** ≥ 18.10
- **n8n** ≥ 1.0.0

---

## 🔐 Cấu hình Credentials

1. Sử dụng node `ZaloLoginByQr` để quét mã QR và lấy thông tin xác thực:
   - `cookie`
   - `imei`
   - `userAgent`

2. Credential được tạo sẽ dùng cho các node Zalo còn lại trong workflow.

---

## ✅ Các node đã hoàn chỉnh

### 1. `ZaloLoginByQr`
- **Chức năng**: Đăng nhập Zalo bằng mã QR để lấy thông tin xác thực.
- **Cách dùng**:
  - Thêm node vào workflow.
  - Làm theo hướng dẫn để quét QR và thu thập thông tin login.

---

### 2. `ZaloSendMessage`
- **Chức năng**: Gửi tin nhắn đến người dùng hoặc nhóm trên Zalo, hỗ trợ nhiều định dạng.
- **Cách dùng**:
  - Cấu hình `userId` hoặc `groupId`.
  - Nhập nội dung tin nhắn (hỗ trợ gửi text, ảnh).
  - **Mới**: Hỗ trợ gửi tin nhắn thoại bằng cách chuyển đổi văn bản thành giọng nói (Text-to-Speech) với nhiều ngôn ngữ.
  - **Mới**: Hỗ trợ gửi video từ URL, có khả năng tải và tối ưu hóa video.

---

### 3. `ZaloUser`
- **Chức năng**: Quản lý thông tin và các hành động liên quan đến người dùng trên Zalo.
- **Cách dùng**:
  - Hỗ trợ các thao tác như chấp nhận/gửi lời mời kết bạn, chặn/bỏ chặn người dùng.
  - Thay đổi ảnh đại diện và cài đặt tài khoản.
  - Lấy thông tin chi tiết của người dùng.

---

### 4. `ZaloMessageTrigger`
- **Chức năng**: Lắng nghe và kích hoạt workflow khi có tin nhắn mới trên Zalo.
- **Cách dùng**:
  - Cấu hình để lắng nghe tin nhắn từ người dùng hoặc nhóm.
  - Hỗ trợ chuyển đổi tin nhắn thoại thành văn bản (speech-to-text) bằng Wit.ai, có thể tự động nhận diện hoặc chọn ngôn ngữ thủ công.
  - Tùy chọn cho phép lắng nghe cả tin nhắn do chính bạn gửi đi.

---

## 📝 Ghi chú

- Một số tính năng nâng cao như **chuyển đổi voice thành text (speech-to-text)** đang được phát triển.
- Nếu gặp lỗi cài đặt:
  - Kiểm tra quyền truy cập file
  - Chạy với quyền admin (nếu cần)
  - Đảm bảo không có tiến trình nào đang khóa file

---

## 👨‍💻 Liên hệ & Đóng góp

Đóng góp mã nguồn, bug report, hoặc ý tưởng xin gửi về repo hoặc liên hệ tác giả.

---