Tóm tắt nhanh:
- Tiết kiệm thời gian: Tự động hóa toàn bộ quy trình từ ghi chép biên bản cuộc nói chuyện đến tạo slide đề xuất (proposal deck).
- Quy trình 2 bước (Decoupled): Tách biệt việc ghi log dữ liệu (Webhook) và quy trình tạo slide (Google Sheets Trigger) để hệ thống ổn định hơn.
- Kiểm soát chất lượng: Tích hợp Slack để "Human approval" (phê duyệt bởi con người) ngay trong n8n trước khi gọi AI tạo slide.
Bạn vừa kết thúc một cuộc nói chuyện với khách hàng. Nhưng ngay sau đó là cảm giác "ngại" khi phải bắt tay vào viết biên bản cuộc nói chuyện, tổng hợp ý chính và thiết kế slide đề xuất. Tin vui là: "Tất cả những thứ đó giờ đây đều có thể tự động hóa."
Dưới đây là cách tôi xây dựng một "cỗ máy" tự động tạo proposal deck chuyên nghiệp ngay lập tức bằng n8n và AI Agents.
Làm thế nào để tự động tạo slide đề xuất từ cuộc nói chuyện?
Cách hiệu quả nhất là sử dụng quy trình tự động hóa (workflow) trên n8n để kết nối Fireflies.ai (ghi chép cuộc nói chuyện), Google Sheets (lưu trữ dữ liệu), Slack (duyệt) và Gamma (tạo slide).
Thay vì nhập liệu thủ công, hệ thống sẽ tự động trích xuất thông tin từ transcript cuộc nói chuyện, chờ xác nhận của bạn qua Slack, và tạo ra một bản trình bày hoàn chỉnh.
Download workflow: https://romhub.io/n8n/Gamma_Proposal_Generation
Quy trình hoạt động chi tiết
Hệ thống được chia làm hai giai đoạn riêng biệt (Decoupled workflow) nối với nhau qua Google Sheets.
Giai đoạn 1: Webhook & Polling (Ghi nhận dữ liệu)
Ngay khi cuộc nói chuyện trên Fireflies.ai kết thúc, một Webhook sẽ được kích hoạt. Tuy nhiên, Fireflies cần một chút thời gian để xử lý transcript và tóm tắt (Gist), nên n8n sẽ xử lý như sau:
1. Webhook Trigger: Nhận tín hiệu từ Fireflies.
2. Cơ chế chờ thông minh (Wait loop): Workflow sử dụng node Wait và If để kiểm tra xem bản tóm tắt (Gist) đã có chưa. Nếu chưa, nó sẽ đợi và kiểm tra lại mỗi phút. Điều này đảm bảo dữ liệu ghi vào Sheet luôn đầy đủ.
3. Trích xuất người tham dự: Sử dụng Code Node để lấy danh sách tên người nói (Speakers).
4. Log Meeting: Dữ liệu metadata (Title, Date, ID, Gist, Attendees) được ghi vào một dòng mới trên Google Sheets với trạng thái "N/A".
Giai đoạn 2: Trigger tạo slide & Human Approval
Đây là lúc "ma thuật" thực sự xảy ra. Khi Google Sheets có dòng mới, workflow thứ hai sẽ kích hoạt:
1. Google Sheets Trigger: Phát hiện cuộc nói chuyện mới vừa được log.
2. Làm sạch Transcript (Clean Up): n8n gọi lại API Fireflies để lấy toàn bộ transcript, sau đó dùng Code Node để nhóm các câu nói liên tiếp của cùng một người và loại bỏ các ký tự thừa. Bước này cực kỳ quan trọng để AI có thể đọc hiểu nội dung tốt nhất.
3. Slack Approval (Send & Wait): Hệ thống gửi tin nhắn vào Slack kèm nút bấm: "Would you like a proposal generated?". Quy trình n8n sẽ tạm dừng tại đây để chờ bạn bấm nút.
4. Xử lý rẽ nhánh (If Node):
* Nếu chọn "Yes": AI Agent (sử dụng model Gemini/OpenAI) sẽ phân tích transcript, soạn thảo nội dung theo cấu trúc Proposal, sau đó gửi lệnh API sang Gamma để tạo slide. Cuối cùng, cập nhật trạng thái "Generated" vào Google Sheets.
* Nếu chọn "No": Cập nhật trạng thái "Generation Declined" vào Google Sheets và kết thúc quy trình.
Bảng phân tích các công cụ trong hệ thống
Để giúp bạn hình dung rõ hơn về vai trò của từng thành phần, tôi đã lập bảng tổng hợp dưới đây:
| Công cụ | Vai trò chính | Lợi ích đặc biệt trong Workflow |
|---|---|---|
| n8n | "Nhạc trưởng" (Orchestrator) | Xử lý logic phức tạp như Wait Loop (chờ dữ liệu) và Human-in-the-loop (nút bấm Slack). |
| Fireflies.ai | Nguồn dữ liệu (Source) | Cung cấp transcript và tóm tắt. Workflow gọi API 2 lần: lần 1 để log, lần 2 để lấy full text xử lý. |
| Google Sheets | Bộ đệm (Buffer) | Kết nối giữa 2 giai đoạn, đảm bảo không bị mất dữ liệu nếu quy trình tạo slide bị lỗi. |
| Gamma | Đầu ra sản phẩm (Output) | Nhận nội dung dạng JSON/Text từ n8n và tự động thiết kế thành slide PDF/PPT. |
Tại sao cần bước "Slack Approval" (Send & Wait)?
Trong workflow n8n này, node Slack được cấu hình ở chế độ "Wait for interaction". Tại sao không để nó chạy tự động 100%?
Theo quan điểm chuyên môn:
- Tiết kiệm tín dụng AI & Gamma: Không phải cuộc nói chuyện nào cũng cần proposal. Việc tạo slide bừa bãi sẽ đốt cháy API credits của bạn rất nhanh.
- Kiểm soát ngữ cảnh: Đôi khi cuộc nói chuyện có nội dung nhạy cảm hoặc chưa chốt xong, bạn chưa muốn tạo slide ngay. Nút bấm Yes/No trên Slack trao quyền quyết định cuối cùng cho bạn.
Câu hỏi thường gặp (FAQ)
Tại sao cần tách thành 2 giai đoạn (Webhook & Sheets Trigger)?
Để xử lý vấn đề về thời gian (Timing). Fireflies cần thời gian để xử lý audio. Nếu chạy tất cả trong 1 luồng ngay khi Webhook gọi, có thể bạn sẽ nhận được transcript rỗng. Việc ghi vào Google Sheets trước đóng vai trò như một "hàng đợi" (queue), giúp hệ thống ổn định hơn.
Workflow xử lý thế nào nếu có nhiều cuộc nói chuyện cùng lúc?
Trong Giai đoạn 2, ngay sau node Google Sheets Trigger, workflow có sử dụng node Limit với thiết lập "Keep Last Items: 1". Điều này giúp workflow tập trung xử lý cuộc nói chuyện mới nhất, tránh việc kích hoạt hàng loạt gây quá tải hoặc nhầm lẫn dữ liệu khi gửi tin nhắn Slack.
Tôi cần những API key nào?
Bạn sẽ cần kết nối:
- Fireflies API: Để lấy transcript.
- Google Sheets & Slack: Xác thực OAuth2.
- OpenRouter (hoặc OpenAI/Gemini): Cho AI Agent xử lý nội dung.
- Gamma API: Để generate slide deck.
Top comments (0)