[Activepieces] Slack 멘션으로 AI 자동화 따라하기: 좌충우돌 연결 성공기

📝 소개

이번에도 Hero 스터디장님이 주신 미션을 수행해 보았습니다. 제공해주신 가이드 PDF를 따라 해보았는데 Slack 는 제가 잘 사용하지 않는 앱이라 처음에 많이 헤맸습니다.
이번에 flow 는 Slack에서 제가 멘션되었을 때, 그 쓰레드의 대화 내용을 몽땅 긁어와서 AI에게 분석시키는 것이 목표였는데요. 가장 기초가 되는 Slack 봇 연결과 트리거 설정부터 꽤 많은 시행착오를 겪었습니다. 저처럼 처음 시작하시는 분들이 같은 실수를 하지 않으시길 바라며 기록을 남깁니다.

▶️ 진행 방법

어떤 도구를 사용했고, 어떻게 활용하셨나요?

사용 도구: Activepieces (자동화 툴), Slack, Google Gemini, Google Tasks 구현 목표: Slack New Mention 트리거 → 쓰레드 내용 가져오기 (API) → 대화 내용 저장 (Store) → AI 요약 및 액션 아이템 추출 → Google Tasks 자동 등록

1. 봇 초대 및 연결 (Connection)

가장 먼저 Activepieces 봇을 제 슬랙 채널에 초대해야 했습니다. Activepieces 트리거 설정에서 (+) New Connection을 눌러 슬랙 로그인을 완료한 뒤, 슬랙 채널 채팅창에서 아래 명령어로 봇을 불렀습니다.

(💡 시행착오 Tip: 처음엔 무작정 슬랙에서 봇을 검색했는데 나오지 않아 당황했습니다. 알고 보니 Activepieces에서 먼저 연결(Connection)을 생성해야 봇이 '설치'되는 구조였고, 그 후에야 초대가 가능했습니다.)

Bash

/invite @Activepieces

2. Custom API Call 설정 (conversations.replies)

Activepieces에는 '쓰레드 가져오기'라는 버튼이 따로 없어서, Custom API Call 기능을 사용했습니다.

(💡 시행착오 Tip: 'Custom API' 이름만 보고 'Housecall Pro'라는 엉뚱한 앱을 선택해서 실패했었습니다. 반드시 Slack 앱 내에 있는 Action인지 아이콘을 확인해야 합니다!)

  • App: Slack 선택

  • Action: Custom API Call

  • URL: https://slack.com/api/conversations.replies

  • Method: GET

  • Query Params: channel (트리거의 채널 ID), ts (트리거의 thread_ts)

3. 대화 내용 누적하기 (Loop & Store)

가져온 대화 목록(JSON 배열)을 깔끔한 텍스트로 합치기 위해 LoopStore(Append) 기능을 사용했습니다. '이름: 메시지 내용' 형태로 변환하여 차곡차곡 쌓아두는 과정입니다.

4. AI로 액션 아이템 추출하기 (Google Gemini)

누적된 대화 내용을 Google Gemini에게 전달하여 "액션 아이템(할 일)"만 뽑아내도록 요청했습니다. 여기서 중요한 것은 AI가 JSON 데이터 형식으로 대답하도록 프롬프트를 짜는 것이었습니다.

  • Prompt 예시:

"위 대화 내용을 분석해서 실행 가능한 액션 아이템을 추출해줘. 반드시 아래와 같은 JSON 배열 형식으로만 출력해." [{"title": "할 일 제목", "description": "상세 내용"}]

5. 데이터 파싱 (Code)

AI는 가끔 대답 앞뒤에 불필요한 기호(```json 등)를 붙여서 줍니다. 이를 컴퓨터가 이해할 수 있는 데이터로 바꾸기 위해 Code(Javascript) 단계를 추가했습니다.

JavaScript

// AI 응답에서 불필요한 마크다운을 제거하고 JSON으로 변환
export const code = async (inputs) => {
  const cleanJson = inputs.text.replace(/```json/g, "").replace(/```/g, "");
  return JSON.parse(cleanJson);
};

6. Google Tasks에 자동 등록 (Loop)

마지막으로, 파싱된 액션 아이템 리스트를 다시 한번 Loop(반복문)로 돌렸습니다. 각각의 할 일을 Google Tasks의 'Add Task' 액션에 연결하여, 자동으로 내 할 일 목록에 꽂히도록 완성했습니다.

  • Task Title: AI가 뽑은 title 연결

  • Notes: AI가 뽑은 description 연결

🌈 결과와 배운 점

😅 과정 중에 겪은 시행착오 (이게 핵심!)

1. 봇이 검색되지 않음 ("유효한 멤버 이름이 필요합니다") 처음에 슬랙에서 /invite @Activepieces를 쳤는데 봇이 없다고 나왔습니다. 알고 보니 Activepieces 웹사이트에서 먼저 [New Connection]을 눌러 로그인을 해줘야 슬랙에 봇이 '설치'되는 구조였습니다. 순서가 중요하더군요!

2. 엉뚱한 앱 선택 (Housecall Pro?) Custom API Call이라는 이름만 보고 검색해서 선택했는데, 알고 보니 Slack 앱이 아니라 아이콘이 다른 엉뚱한 앱(Housecall Pro)이었습니다. 앱 로고를 꼭 확인해야 합니다.

3. 무한 로딩의 늪 (Load Data 실패) "Load Data"를 눌러놓고 테스트하는데 계속 뱅글뱅글 돌기만 하고 실패했습니다.

  • 원인: 트리거 설정을 'User: 나'으로 해놓고, 정작 슬랙에서는 '봇(@Activepieces)'을 멘션했기 때문이었습니다.

  • 해결: 설정된 당사자(저 자신)를 멘션하니 바로 데이터가 로드되었습니다.

💡 배운 점과 나만의 꿀팁

  • 데이터 로드(Load Data)는 필수: channel, user 같은 변수 목록이 안 뜬다면, 십중팔구 'Load Data'를 안 했거나 테스트 데이터가 안 들어온 상태입니다.

  • 봇 초대 확인: "모든 채널" 설정이라도 봇이 초대되지 않은 방에서는 작동하지 않습니다.

✨ 앞으로의 계획

가이드에 따라 flow를 완성은 했지만 개인적으로 일을 할 때 Slack를 사용하지 않아서 저한테 맞게 flow를 수정할 계획입니다.

🟪 도움 받은 글

  • Hero 스터디장님 제공: [PDF] Activepieces 워크플로우 실전 가이드

1

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요