1. Overview

In a typical testing workflow, creating presentation slides for test reports (e.g., test summaries, module status, KPI reports) is often time-consuming due to:

  • Manually copying slide templates
  • Entering test data for each slide
  • Adjusting layout and formatting

To solve this problem, I implemented an automated solution:

Generate Google Slides from Google Sheets using Google Apps Script with template and placeholder replacement

This approach allows:

  • Generating 10+ slides automatically
  • Synchronizing real test data from Google Sheets
  • Reducing manual effort and human error

2. Example Data & Template (Real Case)

📊 Google Sheets (Data Source)

The dataset used:

TITLEMODULE_NAMETOTAL_CASESPASSEDFAILEDTESTER_NAMESTATUS_COLOR
Login Security TestAuthentication45423Nguyễn Văn ARed
Dashboard UI CheckUser Interface30300Trần Thị BGreen
Checkout Flow TestE-commerce60555Lê Văn CRed

👉 Each row represents one slide


🖥️ Google Slides Template

Slide 1 (Title slide)

{{TITLE}}{{MODULE_NAME}} | {{TESTER_NAME}}

Slide 2 (Detail slide)

{{MODULE_NAME}}Tổng số case: {{TOTAL_CASES}}  
Số case pass: {{PASSED}}
Số case fail: {{FAILED}}

👉 Placeholders are customized based on real testing data instead of generic ones like {{POINT1}}.


3. Solution Architecture

  • Google Sheets → Data source
  • Google Slides Template → Predefined layout with placeholders
  • Google Apps Script → Automation engine

4. Folder Setup (Reproducible)

Prepare:

Template Presentation ID: YOUR_TEMPLATE_ID  
Output Folder ID: YOUR_FOLDER_ID
👉 These IDs ensure the solution is reusable and scalable.

5. Full Apps Script Code

const CONFIG = {
TEMPLATE_ID: '1PenP76oNotkbbZ58yJMrH-OebQ_8GJeh2XCAIx4ZZcE',
OUTPUT_FOLDER_ID: '1cyXmz30_xRcbjo0ZQQozHWH79XD3WrIu',
SHEET_NAME: 'Data' // Đảm bảo tên Sheet chứa dữ liệu của bạn đang là 'Data'
};

function generateBulkSlides() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName(CONFIG.SHEET_NAME);

const dataRange = sheet.getDataRange();
const data = dataRange.getValues();
data.shift();

const outputFolder = DriveApp.getFolderById(CONFIG.OUTPUT_FOLDER_ID);
const templateFile = DriveApp.getFileById(CONFIG.TEMPLATE_ID);

let tempSheet = ss.getSheetByName("TEMP_CHART");
if (!tempSheet) {
tempSheet = ss.insertSheet("TEMP_CHART");
}

data.forEach((row, index) => {
if (!row[0]) return;

const presentationName = `Report_${row[1]}_${new Date().toISOString().split('T')[0]}`;

const newFile = templateFile.makeCopy(presentationName, outputFolder);
const slideDeck = SlidesApp.openById(newFile.getId());

// 👉 Mapping mới theo sheet của bạn
const mapData = {
'{{TITLE}}': row[0] || '',
'{{MODULE_NAME}}': row[1] || '',
'{{TOTAL_CASES}}': row[2] || 0,
'{{PASSED}}': row[3] || 0,
'{{FAILED}}': row[4] || 0,
'{{TESTER_NAME}}': row[5] || '',
'{{STATUS_COLOR}}': row[6] || ''
};

for (const [placeholder, value] of Object.entries(mapData)) {
slideDeck.replaceAllText(placeholder, value.toString());
}

// 👉 Tạo chart mới (Passed vs Failed)
tempSheet.clear();

const chartData = [
["Status", "Count"],
["Passed", row[3] || 0],
["Failed", row[4] || 0],
];

tempSheet.getRange(1, 1, chartData.length, 2).setValues(chartData);

const chartBuilder = tempSheet.newChart()
.setChartType(Charts.ChartType.PIE) // 👈 đổi sang pie cho dễ nhìn
.addRange(tempSheet.getRange("A1:B3"))
.setOption('title', `Test Result - ${row[1]}`)
.setPosition(1, 1, 0, 0)
.build();

tempSheet.insertChart(chartBuilder);

const tempCharts = tempSheet.getCharts();
const currentChart = tempCharts[tempCharts.length - 1];

const slides = slideDeck.getSlides();
if (slides.length >= 2) {
const targetSlide = slides[1];

targetSlide.insertImage(
currentChart.getBlob(),
250, 50, 450, 300
);
}

tempSheet.removeChart(currentChart);

slideDeck.saveAndClose();
Logger.log(`Đã tạo thành công: ${presentationName}`);
});
}

6. Key Design Considerations

🔹 Data Mapping Design

  • Mapping is based on column headers:
{{TITLE}} → TITLE column  
{{MODULE_NAME}} → MODULE_NAME column
{{PASSED}} → PASSED column

👉 Advantage:

  • No hardcoding
  • Easily scalable

🔹 Placeholder Naming Rules

  • Format: {{NAME}}
  • Must exactly match column headers
  • Case-sensitive

🔹 Handling Missing Data

const value = row[i] || "N/A";

👉 Ensures:

  • No script failure
  • Clear fallback value

7. Generating 10+ Slides

  • Each row = 1 presentation
  • With 10 rows → 10 slide files generated automatically

8. KPI Table Integration (Requirement)

In addition to text replacement, the script:

  • Dynamically inserts a KPI table
  • Uses real data (TOTAL_CASES, PASSED, FAILED)

👉 This satisfies:


9. Output Result

After execution:

  • Files are generated in the output folder:
Test_Report_1
Test_Report_2
...

Each presentation includes:

  • Slide 1: Title + Module + Tester
  • Slide 2: KPI details + table

🎥 Demo Video: https://youtu.be/RJaaWxTkytM


10. Practical Use Case (Testing)

This solution can be applied to:

  • Test summary reports
  • Weekly QA reports
  • Client demo presentations

Benefits:

  • Saves significant time
  • Reduces manual errors
  • Improves consistency

11. Conclusion

By combining:

  • Google Sheets
  • Google Slides
  • Google Apps Script

👉 The slide creation process can be fully automated.

Gần đây Anthropic ra mắt Claude Managed Agents — một bộ API cho phép doanh nghiệp xây dựng và triển khai AI agent trên hạ tầng cloud mà không cần tự xây từ đầu. Nghe có vẻ kỹ thuật, nhưng ý tưởng đằng sau khá đơn giản: thay vì AI chờ bạn ra lệnh, agent tự chạy và tự xử lý công việc trong khi bạn làm việc khác.


Claude Managed Agents là gì?

Khác với cách dùng Claude thông thường — bạn hỏi, AI trả lời — Claude Managed Agents hoạt động theo cơ chế khác hoàn toàn: bạn định nghĩa nhiệm vụ một lần, agent tự chạy nhiều bước liên tiếp mà không cần bạn can thiệp. Đọc file, xử lý dữ liệu, gửi kết quả — tất cả tự động, có thể chạy hàng giờ liên tục. Nếu bị gián đoạn giữa chừng, nó tiếp tục đúng chỗ dở chứ không làm lại từ đầu.

Phần sandboxing, bảo mật, lưu trạng thái, xử lý lỗi — Anthropic lo hết. Developer chỉ cần định nghĩa agent làm gì, dùng công cụ gì và giới hạn ra sao. Đối tượng chính là doanh nghiệp và đội kỹ thuật muốn đưa AI agent vào quy trình thực tế mà không mất nhiều tháng xây hạ tầng từ đầu.


Khác Claude Code chỗ nào?

Cả hai đều là sản phẩm của Anthropic và đều liên quan đến tự động hóa, nên dễ nhầm. Nhưng bản chất khác nhau hoàn toàn.

Claude Code là công cụ — developer cầm lên dùng để viết code, sửa lỗi, bỏ xuống là dừng. Claude Managed Agents là nền tảng — bạn đặt nhiệm vụ vào rồi để agent tự chạy trong khi bạn làm việc khác.

 Claude CodeClaude Managed Agents
Bản chấtCông cụ viết và sửa codeNền tảng chạy agent tự động
Cần người điều khiển?Có — liên tụcKhông — agent tự chạy
Thời gian chạyTheo phiên làm việcHàng giờ liên tục
Phù hợp choCông việc cần tư duy từng bướcCông việc lặp lại, nhiều bước, kết quả rõ ràng

Ứng dụng thực tế

Notion dùng Managed Agents để tự động tóm tắt meeting notes và tạo action items. Sentry dùng để phân tích bug report và gợi ý hướng xử lý. Đây đều là những task lặp lại hàng ngày, tốn nhiều thời gian nhưng không đòi hỏi tư duy sáng tạo — đúng loại việc phù hợp nhất để giao cho agent.

Nhìn từ góc độ vận hành nội bộ, hai trường hợp tôi thấy tiềm năng rõ nhất:

Tuyển dụng: Mỗi đợt nhận 50-100 CV, agent có thể tự đọc từng file, đối chiếu với JD, phân loại đạt/không đạt, tự soạn và gửi email phản hồi. Người phụ trách chỉ cần duyệt danh sách shortlist cuối cùng thay vì xử lý thủ công từng hồ sơ.

Onboarding: Quy trình onboarding có nhiều bước, nhiều bên liên quan. Agent có thể tự gửi nhắc nhở đúng người đúng thời điểm, tự cập nhật trạng thái hoàn thành, tự báo cáo tiến độ — không cần ai theo dõi thủ công từng bước.


Cân bằng giữa tự động hóa và kiểm soát

Tiềm năng thì rõ. Nhưng có một điều tôi vẫn chưa thể bỏ qua: rủi ro khi agent tự động hoàn toàn mà thiếu kiểm soát của người.

Trong tuyển dụng, một CV tốt có thể bị lọc nhầm vì format khác thường — agent không nhận ra nhưng người đọc sẽ thấy ngay. Hay tệ hơn: agent đọc sai địa chỉ email rồi gửi nhầm cho người chưa nộp hồ sơ. Những lỗi nhỏ như vậy trong vận hành thủ công còn sửa được — nhưng khi agent đã tự gửi đi hàng loạt thì thiệt hại khó lường hơn nhiều.

Đó không phải lý do để không dùng. Nhưng là lý do để thiết kế quy trình có checkpoint — những điểm người thật phải xem lại trước khi agent tiếp tục bước tiếp theo.


Một góc nhìn khách quan

Claude Managed Agents không phải người tiên phong trong lĩnh vực này. OpenAI, Google, Amazon đều có dịch vụ tương tự và ra trước. Điểm Anthropic đang cạnh tranh là độ an toàn và khả năng xử lý ngữ cảnh phức tạp của Claude — điều quan trọng khi agent đụng vào dữ liệu nhạy cảm như hồ sơ ứng viên hay thông tin nội bộ.


Kết

Claude Managed Agents đánh dấu bước chuyển rõ ràng: từ AI hỗ trợ người làm việc sang AI tự vận hành quy trình. Với những task lặp lại, nhiều bước, kết quả rõ ràng — đây là hướng đi có giá trị thực tế.

Nhưng “tự động hóa” không có nghĩa là “bỏ mặc”. Câu hỏi không phải là có nên dùng không — mà là thiết kế quy trình thế nào để agent làm đúng việc của nó mà không tạo ra rủi ro mới.
Nguồn: claude.com/blog/claude-managed-agents

Bạn đã bao giờ mơ về một nhân viên ảo có thể tự mình thực hiện các dự án phức tạp từ đầu đến cuối mà không cần bạn phải cầm tay chỉ việc chưa? Claude Managed Agents chính là bước đột phá đó. Thay vì chỉ là một chatbot trả lời câu hỏi, đây là những “đại lý” có khả năng hành động thực sự trên môi trường đám mây. Hãy tưởng tượng bạn chỉ cần đưa ra một mục tiêu lớn, và AI sẽ tự biết tìm kiếm thông tin, viết mã, chạy thử nghiệm và trả về kết quả cuối cùng. Điều làm nên sự kỳ diệu của dịch vụ này chính là khả năng tự vận hành trong một môi trường an toàn, giúp tiết kiệm hàng giờ đồng hồ làm việc thủ công và giảm thiểu rủi ro kỹ thuật cho người dùng. Trong bài viết này, chúng ta sẽ cùng khám phá cách công nghệ này đang thay đổi cuộc chơi và tại sao nó lại khác biệt hoàn toàn với những công cụ lập trình thông thường

Khái quát về Claude Managed Agents và giá trị cốt lõi

Claude Managed Agents là gì và những khả năng ấn tượng?

Claude Managed Agents là một dịch vụ nền tảng (Platform-as-a-Service) được Anthropic thiết kế để chạy các đại lý AI có khả năng tự chủ cao. Khác với các mô hình ngôn ngữ thông thường chỉ dừng lại ở việc phản hồi văn bản, Managed Agents có thể thực thi các nhiệm vụ trong một môi trường máy tính thực thụ trên đám mây.

Các khả năng cốt lõi bao gồm:

  • Sử dụng công cụ linh hoạt: Khả năng kết nối với các API bên thứ ba, cơ sở dữ liệu và các công cụ chuyên dụng để hoàn thành mục tiêu đề ra.
  • Thực thi hành động: AI có thể sử dụng trình duyệt web để thu thập dữ liệu, tương tác với các ứng dụng và thực hiện các thao tác như một con người.
  • Môi trường Sandbox an toàn: Mọi mã nguồn mà AI tạo ra đều được chạy trong một môi trường cách ly, đảm bảo an toàn tuyệt đối cho hệ thống của khách hàng.
  • Quản lý trạng thái dài hạn: Đại lý có khả năng ghi nhớ tiến độ công việc, cho phép thực hiện các dự án kéo dài nhiều giờ hoặc nhiều ngày mà không bị mất dấu ngữ cảnh.

Đối tượng nào nên sử dụng Claude Managed Agents?

Dịch vụ này hướng tới hai nhóm đối tượng chính đang gặp khó khăn trong việc mở rộng quy mô tự động hóa. Thứ nhất là các doanh nghiệp (Enterprises) muốn tự động hóa các quy trình nghiệp vụ phức tạp như phân tích thị trường, đối soát tài chính hoặc chăm sóc khách hàng chuyên sâu mà không muốn đầu tư quá nhiều vào hạ tầng kỹ thuật. Thứ hai là các nhà phát triển ứng dụng (Developers) muốn tích hợp khả năng “Agentic” (tính đại lý) vào sản phẩm của mình một cách nhanh chóng. Thay vì phải tự xây dựng hệ thống quản lý bộ nhớ, hạ tầng chạy code và bảo mật cho AI, họ có thể sử dụng ngay nền tảng đã được Anthropic tối ưu hóa hoàn toàn. Điều này giúp các đội ngũ nhỏ cũng có thể vận hành những hệ thống AI phức tạp tương đương với các tập đoàn công nghệ lớn.

Sự khác biệt giữa Claude Managed Agents và Claude Code

Phân biệt về mục đích sử dụng và môi trường vận hành

Mặc dù cả hai đều dựa trên sức mạnh của mô hình Claude 3.7 Sonnet, nhưng Claude Managed Agents và Claude Code phục vụ hai mục đích hoàn toàn khác biệt. Claude Code là một công cụ dòng lệnh (CLI) tập trung vào việc hỗ trợ lập trình viên trực tiếp trên máy tính cục bộ hoặc kho lưu trữ mã nguồn. Nó giúp viết code, gỡ lỗi và thực hiện các lệnh Git dưới sự giám sát chặt chẽ của con người. Ngược lại, Claude Managed Agents là một thực thể vận hành trên đám mây, tập trung vào việc thực hiện các “quy trình công việc” (workflows) kéo dài và tự trị. Trong khi Claude Code giúp bạn viết phần mềm nhanh hơn, thì Managed Agents giúp bạn vận hành doanh nghiệp hoặc thực hiện các nhiệm vụ nghiên cứu mà không cần bạn phải có mặt ở đó.

Bảng so sánh chi tiết các đặc tính kỹ thuật

Đặc tính Claude Managed Agents Claude Code
Vị trí hoạt động Đám mây (Managed Cloud) Máy cục bộ / Terminal (Local)
Mức độ tự trị Rất cao (Tự thực hiện quy trình) Vừa phải (Trợ lý lập trình)
Tương tác chính API, Webhook, Dashboard Dòng lệnh (CLI)
Khả năng truy cập Web, API bên thứ ba, Sandbox File hệ thống, Git, Công cụ Local
Đối tượng ưu tiên Doanh nghiệp, Nhà phát triển App Lập trình viên, Kỹ sư phần mềm

Kịch bản ứng dụng thực tế và trải nghiệm cá nhân

Những tình huống cụ thể mang lại hiệu quả vượt trội

Việc sử dụng Claude Managed Agents trở nên cực kỳ hữu ích trong các kịch bản đòi hỏi sự kiên trì và khả năng tổng hợp thông tin đa nguồn. Một ví dụ điển hình là quy trình nghiên cứu đối thủ cạnh tranh. Bạn có thể yêu cầu đại lý theo dõi 20 trang web đối thủ, đọc các báo cáo tài chính mới nhất của họ, tổng hợp các phản hồi từ khách hàng trên mạng xã hội và tạo ra một bản thuyết trình so sánh hàng tuần. Một kịch bản khác là kiểm thử phần mềm tự động (E2E Testing). Đại lý có thể tự mở trình duyệt, đăng nhập vào ứng dụng của bạn, thực hiện các chuỗi thao tác phức tạp để tìm lỗi và báo cáo lại kèm theo video hoặc ảnh chụp màn hình minh họa lỗi. Những tác vụ này nếu làm thủ công sẽ tốn rất nhiều nhân lực và dễ sai sót.

Ứng dụng Claude Managed Agents vào công việc hàng ngày của tôi

Với tư cách là một chuyên gia về AI, tôi nhận thấy có thể áp dụng Claude Managed Agents để tối ưu hóa quy trình sản xuất nội dung chuyên sâu và kiểm định dữ liệu của mình. Cụ thể, tôi sẽ thiết lập một đại lý chuyên trách việc “đọc và phản biện”. Khi tôi hoàn thành một bản thảo kỹ thuật, đại lý này sẽ tự động truy cập vào các nguồn tài liệu học thuật mới nhất để kiểm chứng tính xác thực của các con số tôi đưa ra. Nó không chỉ kiểm tra lỗi chính tả mà còn đóng vai trò là một “người dùng khó tính”, thực hiện các lệnh mã nguồn trong bài viết của tôi để đảm bảo chúng hoạt động hoàn hảo trước khi xuất bản. Điều này giúp tôi nâng cao chất lượng công việc lên mức gần như tuyệt đối mà không cần thuê thêm cộng tác viên kiểm tra lại (reviewer).

Kết luận và hướng phát triển tương lai

Claude Managed Agents không chỉ là một công cụ mới, nó là một tư duy mới về cách con người và máy tính cộng tác. Bằng cách tách rời việc “suy nghĩ” và “thực hiện” khỏi máy tính cục bộ, Anthropic đã mở ra cánh cửa cho những ứng dụng AI có khả năng tự giải quyết vấn đề thực sự. Đối với tôi, đây là khởi đầu của kỷ nguyên mà mỗi cá nhân đều có thể sở hữu một đội ngũ nhân viên ảo tinh nhuệ trên đám mây. Việc nắm bắt và ứng dụng sớm công nghệ này sẽ tạo ra lợi thế cạnh tranh khổng lồ, cho phép chúng ta tập trung vào những quyết định mang tính chiến lược và sáng tạo, trong khi để AI lo liệu những phần việc lặp đi lặp lại và tốn thời gian.