구글 시트 + 구글 태스크 API로 팀별 할 일 리스트 대시보드 구축하기
목차
팀의 생산성을 측정하려면 먼저 ‘할 일’을 모아야 한다
Google Tasks의 기본 구조 이해와 API 활성화
Apps Script로 Google Tasks 데이터 Google Sheets에 자동 수집하기
시각화 대시보드 구성: 부서별, 기한별, 우선순위별 분석
자동화 확장: 주간 요약 리포트 발송 + 알림 연동
개인의 할 일을 팀의 실행력으로 전환하는 자동화 전략
팀의 생산성을 측정하려면 먼저 ‘할 일’을 모아야 한다
많은 구성원이 Google Tasks를 개인 일정 관리에 사용하고 있지만,
이 데이터는 팀 단위로 통합하거나 시각화되기 어렵다.
결과적으로 개인은 오늘 해야 할 일을 잘 관리하고 있지만,
관리자는 각 구성원이 어떤 일을 하고 있는지, 어떤 업무가 지연되고 있는지,
또 어떤 업무가 완료되었는지를 체계적으로 파악하기 어렵다.
Google Workspace 환경에서 Google Tasks는 강력한 개인 생산성 도구지만,
이 Tasks 데이터를 Google Sheets로 자동 수집하고, 팀 단위 대시보드로 시각화할 수 있다면
조직 전체의 업무 흐름을 훨씬 효율적으로 운영할 수 있다.
이 글에서는 Google Tasks API + Apps Script + Google Sheets를 연동해
개별 사용자 Tasks를 자동 수집하고,
완료 여부/기한/우선순위 기준으로 팀 단위 할 일 대시보드를 구성하는 방법을 설명한다.
Google Tasks의 기본 구조 이해와 API 활성화
Google Tasks는 Gmail 또는 Calendar 우측 패널을 통해 사용하는
Google의 기본 할 일 관리 기능이다.
Tasks는 사용자가 직접 할 일(Task)을 추가하고, 완료 체크하며, 기한과 노트를 설정할 수 있다.
Tasks API 주요 개념
개념 설명
Task Lists 사용자당 생성된 Task 목록 단위
Tasks 각 목록에 속한 개별 할 일 항목
Status needsAction(진행 중), completed(완료됨)
Due Date 할 일의 마감일
Notes 업무 설명 또는 메모
Tasks API는 Google Cloud에서 별도로 활성화해야 사용할 수 있으며,
Apps Script에서는 OAuth 인증을 통해 데이터에 접근할 수 있다.
Apps Script로 Google Tasks 데이터 Google Sheets에 자동 수집하기
1단계: Tasks API 사용 설정
Google Cloud Console 접속 → 새 프로젝트 생성
API 및 서비스 > 라이브러리 > Tasks API 검색 → 사용
OAuth 인증 동의 화면 설정 (내부 사용)
Apps Script에서 Services > Tasks 활성화
2단계: Tasks 데이터 수집 스크립트 예시
javascript
복사
편집
function fetchTasksToSheet() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tasks");
sheet.clearContents();
sheet.appendRow(["할 일", "상태", "기한", "설명", "작성자"]);
const taskLists = Tasks.Tasklists.list().items;
for (let i = 0; i < taskLists.length; i++) {
const list = taskLists[i];
const tasks = Tasks.Tasks.list(list.id).items;
if (!tasks) continue;
for (let j = 0; j < tasks.length; j++) {
const task = tasks[j];
const title = task.title || "";
const status = task.status;
const due = task.due ? new Date(task.due).toLocaleDateString() : "";
const notes = task.notes || "";
sheet.appendRow([title, status, due, notes, Session.getActiveUser().getEmail()]);
}
}
}
▶ 실행 결과는 시트에 자동 기록되고,
필터링, 정렬, 조건부 서식, 차트 분석에 활용할 수 있는 구조로 전환된다.
시각화 대시보드 구성: 부서별, 기한별, 우선순위별 분석
Google Sheets로 가져온 Tasks 데이터를 바탕으로
팀 업무 현황을 시각적으로 확인할 수 있는 대시보드를 구성한다.
필수 분석 구성 요소
완료율 | =COUNTIF(B2:B, "completed") / COUNTA(B2:B) |
기한 초과 항목 | 조건부 서식: =AND(B2="needsAction", C2<TODAY()) → 빨간색 강조 |
우선 처리 필요 항목 | 노트 또는 제목에 긴급, 우선 키워드 포함 시 필터 |
부서/팀별 분류 | 작성자 이메일 기준으로 구분하거나 Google Groups 기반 분류 |
시각화 예시
- 스파크라인 차트: 개인별 주간 완료율
- 파이차트: 완료/미완료 비율
- 막대그래프: 구성원별 Task 건수
- 필터보드: 마감일 임박 순 정렬
이 대시보드는 실시간 동기화가 가능하며,
팀장이 업무 분배 상황을 파악하거나, 구성원이 자신의 누락 업무를 확인하는 데 효과적이다.
자동화 확장: 주간 요약 리포트 발송 + 알림 연동
할 일 목록 수집만으로는 충분하지 않다.
실무에서는 다음과 같은 자동화 기능을 함께 구성해야 생산성이 높아진다.
a. 주간 할 일 리포트 자동 이메일 발송
- 매주 월요일 아침에 개인별 Tasks 요약을 Gmail로 전송
- 우선순위 항목, 마감 임박 항목 하이라이트
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tasks");
const data = sheet.getDataRange().getValues();
const email = Session.getActiveUser().getEmail();
let message = "이번 주 할 일 요약:\n\n";
for (let i = 1; i < data.length; i++) {
const [title, status, due, note] = data[i];
if (status === "needsAction") {
message += `- ${title} (기한: ${due})\n`;
}
}
MailApp.sendEmail({
to: email,
subject: "이번 주 Google Tasks 업무 요약",
body: message
});
}
b. Google Chat 알림 연동 (Webhook)
- 마감일 하루 전 자동 알림 발송
- Tasks 제목, 기한 포함 메시지 전달
- 팀 채팅방 또는 개인 채널 선택 가능
개인의 할 일을 팀의 실행력으로 전환하는 자동화 전략
Google Tasks는 개인 중심의 도구지만,
그 데이터를 구조화하고 시각화하면 팀 전체의 실행력을 측정하고 개선하는 도구로 확장할 수 있다.
Google Sheets와 Tasks API, Apps Script를 결합하면
별도의 프로젝트 관리 툴 없이도 실시간 할 일 관리 대시보드를 구축할 수 있다.
이 구조는 팀의 크기와 무관하게 적용할 수 있으며,
중소기업, 프로젝트 조직, 비개발 조직에서도 손쉽게 도입 가능하다.
지금까지 각자 따로 관리하던 할 일을 이제 하나의 대시보드로 통합해보자.
그것이 팀 운영의 효율성을 근본적으로 높이는 시작이 될 것이다.