docs(troubleshooting): Slack Lists ‘이메일’ 컬럼 오버라이드 및 LangGraph 재테스트(KAYAKOCO) 결과 정리 (2025-10-21)

This commit is contained in:
Claude-51124 2025-10-21 13:08:31 +09:00
parent 212d272f0e
commit ce921ccadb

View File

@ -0,0 +1,51 @@
# 2025-10-21 Coldmail 리스트 ‘이메일’ 컬럼 분리 적용 및 LangGraph 재테스트
**작성일**: 2025-10-21
**작성자**: Claude (51124 서버 전담)
**상태**: 완료
---
## 배경
- 콜드메일 처리 결과가 Slack Lists에 기록될 때, 대표이름과 이메일이 같은 텍스트 컬럼에 합쳐 저장되는 사례가 있었음.
- 원인: Slack Lists API `slackLists.items.list` 응답에서 `columns` 메타가 누락되는 경우가 있어, 자동으로 ‘이메일’ 컬럼 ID를 식별하지 못함. 그 경우 로직이 연락처 텍스트 컬럼에 이메일을 병합 저장함.
## 조치 내용
- 이메일 컬럼 ID 강제 지정 기능 추가: `SLACK_LIST_EMAIL_COLUMN_ID`
- 코드: `rb8001/app/services/coldmail_processor.py`에 이메일 컬럼 오버라이드 로직 추가 (env 존재 시 우선 적용)
- 설정: `rb8001/docker-compose.yml``SLACK_LIST_EMAIL_COLUMN_ID=Col09L4SH6YK0` 명시
- 커밋: `rb8001@d3d915c`
메시지: feat(coldmail): allow override for Slack '이메일' column via SLACK_LIST_EMAIL_COLUMN_ID and set default (Col09L4SH6YK0) in compose
## 컬럼 ID 확인 방법(운영 확인)
1) skill-slack API로 리스트 아이템 조회:
`GET http://localhost:8502/api/v1/lists/F09L4S2C6BG/items?limit=200` (헤더: `X-API-Key`)
2) 응답의 `items[].fields[]``email` 키가 존재하는 항목의 `column_id`가 이메일 컬럼 ID
- 실제 확인 결과: `Col09L4SH6YK0` (샘플 값: `vincent@kayakoco.com`)
## LangGraph 체크포인트 재테스트
- 대상 메일: KAYAKOCO (메시지 ID: `18687`)
- 실행: LangGraph 체크포인트를 유지한 채 수동 실행
`docker exec -e SLACK_LIST_EMAIL_COLUMN_ID=Col09L4SH6YK0 rb8001 python /code/run_coldmail_email.py 18687`
- 결과(최신 아이템): `Rec09M5TN3U5D`
- 회사명(name): `KAYAKOCO`
- 이메일(email 컬럼 Col09L4SH6YK0): `vincent@kayakoco.com`
- 연락처 텍스트(대표/담당자): `없음`
→ 이메일이 전용 컬럼으로 분리 저장됨을 확인
## 참고 로그/아이템
- 과거 테스트 아이템: `Rec09MZD27T89` (이메일 컬럼 미식별 시 연락처 텍스트에 이메일 병합 저장)
- 오버라이드 적용 후: `Rec09M5S9RME3`, `Rec09M5TN3U5D` (이메일 분리 저장)
## 영향 및 주의
- `SLACK_LIST_EMAIL_COLUMN_ID`가 잘못 설정되면 이메일이 기록되지 않거나 에러 가능 → 운영 전 실제 리스트에서 컬럼 ID 재확인 권장.
- skill-slack의 `slackLists.items.list` 응답에 `columns` 메타가 제공되면 자동 식별 경로가 우선 적용되며, env는 강제 오버라이드로 동작.
## 추가 관찰(관련 이슈)
- skill-email 목록 API 500(로그: `column "oauth_id" does not exist`) 발생 → 목록 조회는 임시로 건너뛰고 단건 상세/수동 주입으로 테스트 수행. 목록 API 스키마 정합성 수정 필요.
## 다음 단계
1. rb8001 재배포 후 운영 스케줄 실행 시에도 이메일 분리 저장이 지속되는지 모니터링.
2. skill-email 목록 API 스키마 오류 수정(미존재 컬럼 참조 제거) 후, 전체 플로우(목록→상세→첨부→리스트) 실메일 기반 재검증.
3. Slack Lists 컬럼 메타가 불규칙한 워크스페이스에서는 필요한 컬럼 ID를 `.env`나 compose 환경변수로 명시하는 운영 가이드 반영.