[Activepieces] 슬랙 대화에서 우선순위/중요도까지 파악해 구글 Tasks에 자동 등록하기!

📝 소개

기존의 슬랙(Slack) → 구글 Tasks(Google Tasks) 자동화는 단순히 대화 내용을 할 일로 옮겨주는 기능뿐이었습니다. 하지만 업무를 하다 보면 중요한 일과 급한 일이 섞여 있어서, 단순히 쌓이기만 하면 우선순위 파악이 어려웠습니다.

그래서 저는 아이젠하워 매트릭스(중요도/긴급도) 방식을 적용하고 싶었습니다. 슬랙에서 "교안 수정 / 4-5"처럼 [할 일 / 우선순위-중요도] 형식으로 입력하면, AI가 이를 분석해 구글 Tasks에 빨간원(🔴)이나 노란원(🟡) 이모지를 붙여 시각적으로 중요도를 표시해 주는 시스템을 만들고자 했습니다.


▶️ 진행 방법

  • 사용 도구: Activepieces(자동화 툴), Slack, Google Gemini(AI), Google Tasks

  • 핵심 로직:

    1. Slack에서 제가 멘션된 쓰레드 내용을 가져옵니다.

    2. Google Gemini에게 대화 내용을 주고, 제가 정한 규칙(숫자 파싱, 이모지 매핑)에 따라 JSON 데이터로 변환하게 시킵니다.

    3. 변환된 데이터를 Code(자바스크립트)로 파싱하여 구글 Tasks에 등록합니다.

1. Gemini 프롬프트 설계 (핵심!) Gemini가 할 일 / 4-4 같은 패턴을 인식하고, 점수에 따라 이모지를 붙이도록 프롬프트를 정교하게 수정했습니다.

Markdown

당신은 대화 내용에서 업무와 일정을 추출하여 구조화하는 비서입니다.

## 입력 데이터
---conversation
{{step_6}}
---

## 작업 목표
위 대화 내용을 분석하여 실행 가능한 '액션 아이템'을 추출하세요.

## 핵심 분석 규칙 (중요)
1. **입력 형식 해석:** 사용자가 "할 일 내용 / 숫자1-숫자2" 형태로 입력한 경우를 찾으세요.
   - **우선순위(Priority):** 숫자1 (범위: 1~5, 높을수록 긴급)
   - **중요도(Importance):** 숫자2 (범위: 1~5, 높을수록 중요)
   - 예시: "교안 수정 작업 / 4-4" → 내용: 교안 수정 작업, 우선순위: 4, 중요도: 4
2. **숫자가 없는 경우:** 우선순위와 중요도는 기본값 "3"으로 설정하세요.
3. **날짜/시간:** 대화에 "내일", "12월 3일" 등 날짜가 있으면 구체적인 날짜를 파악하세요.

## 이모지 및 제목 생성 규칙
우선순위(Priority)에 따라 제목 앞에 시각적 알림을 붙입니다.
- **Priority 4~5:** "🔴" (긴급)
- **Priority 3:** "🟡" (보통)
- **Priority 1~2:** "🟢" (여유)
- **정보 없음:** "⚪"

## 출력 형식 (JSON Only)
반드시 아래 JSON 형식의 배열만 출력하세요. (마크다운 코드블록 ```json 제외)

[
  {
    "title": "이모지 [P우선순위-I중요도] 액션 제목",
    "notes": "구체적 설명 (날짜: YYYY-MM-DD)",
    "due_date": "YYYY-MM-DD"
  }
]

(여기에 Activepieces의 Generate Content 단계 설정 화면 캡처를 넣으시면 좋습니다)

2. 데이터 파싱 (Code 단계) AI가 만든 JSON 문자열을 실제 데이터 객체로 변환하기 위해 자바스크립트 코드를 사용했습니다.

JavaScript

export const code = async (inputs) => {
    let stringData = inputs.items;
    try {
        // 마크다운 코드블록 제거 및 공백 제거
        stringData = stringData.replace(/```json\s*/g, '').replace(/\s*```/g, '');
        const jsonData = JSON.parse(stringData);
        return jsonData;
    } catch (e) {
        return { error: `JSON 파싱 오류: ${e.message}` };
    }
};

🌈 결과와 배운 점

결과 화면: 이제 슬랙에 대충 적어도 구글 Tasks에는 아래처럼 깔끔하게 정리됩니다!

  • 🔴 [P4-I5] 교안 수정 작업

  • 🟡 [P3-I3] 내일 수업 준비

  • 🟢 [P1-I1] 이메일 답장

    한국어와 영어로 된 작업 목록

과정 중에 겪은 시행착오 (이게 진짜 꿀팁!) 처음엔 계속 오류가 나거나 데이터가 안 들어와서 고생했습니다. 원인은 아주 사소한 "변수 연결" 문제였습니다.

  1. Code 단계의 변수명 불일치:

    • 오류 메시지: Cannot read properties of undefined (reading 'replace')

    • 원인: 코드는 inputs.items를 기다리는데, 제가 Input Key 이름을 item으로 설정했었습니다.

    • 해결: Input Key를 itemitems로 수정하니 바로 해결되었습니다. (변수명 철자 하나가 이렇게 중요합니다!)

  2. 엉뚱한 데이터 매핑:

    • 증상: AI가 아무 결과([])도 내놓지 않음.

    • 원인: AI에게 보낼 대화 내용을 만들 때, 메시지 본문(text)이 아니라 사용자 이름(name)을 연결했었습니다. AI 입장에서는 이름만 잔뜩 받았으니 할 일을 못 찾았던 거죠.

    • 해결: 데이터 연결을 Step 2 Looptext로 정확하게 다시 연결했습니다.

앞으로의 계획 지금은 Code 단계에서 파싱만 하고 있는데, 나중에는 중요도(Priority) 점수에 따라 아예 구글 Tasks의 '긴급 리스트', '보통 리스트' 등 다른 목록으로 자동 분류되도록 분기(Branch) 처리를 추가해 볼 생각입니다.


✨ 도움 받은 글

  • Hero 스터디장님 제공: [PDF] Activepieces 워크플로우 실전 가이드 (기본 구조 변)

1

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요