ToolJet MCP와 Jev를 활용하여 지원 티켓 분류기 앱 구축하기
요약
본 글은 ToolJet MCP와 Jev(TypeSafe의 의사 결정 모델)를 활용하여 지원 티켓 분류기 앱을 구축하는 방법을 설명합니다. 이 앱은 들어온 고객 문의를 주제, 긴급성, 명확성 등 구조화된 데이터로 분석하고, 담당자가 다음 조치를 신속하게 결정할 수 있도록 돕습니다.
핵심 포인트
- ToolJet MCP와 Jev를 결합하여 실용적인 지원 티켓 분류기 앱을 구현했습니다.
- Jev는 각 티켓에 대해 주제, 긴급성, 명확성 등 구조화된 분석 결과를 제공합니다.
- 이 앱은 에이전트가 생성했으며, 데이터 쿼리 및 인터페이스가 통합된 구조화된 ToolJet 애플리케이션입니다.
지원 티켓 분류기란 무엇인가?
지원팀은 받은 편지함에 긴급한 메시지가 묻혀 아무도 제때 처리할 수 없는 상황일 때 지원 티켓 분류기가 필요합니다. ToolJet MCP와 Jev (TypeSafe의 의사 결정 모델)를 사용하여 지원 티켓 분류기를 구축하고, 100개의 합성 티켓이 검토 가능한 대기열로 변환됩니다. Jev는 각 기록에 대해 주제(topic), 긴급성(urgency), 명확성(clarity), 에스컬레이션 가이드(escalation guidance), 신뢰도(confidence)와 짧은 이유를 반환하며, 담당자는 다음 조치를 결정합니다. 이 앱은 에이전트가 생성했으며, 결과물은 팀이 계속 운영할 수 있는 데이터, 쿼리 및 인터페이스가 통합된 구조화된 ToolJet 애플리케이션입니다.

티켓 상세 패널: 고객의 원본 메시지 옆에 Jev가 구조화한 결과, 그리고 팀(team), 우선순위(priority), 메모(note) 제어 기능이 있습니다.
녹화된 실행에서 100개 티켓 분류 과정을 10배 속도로 보여줍니다: 처리 카운터가 100까지 올라가고 Jev 타이머는 00:07.3에 멈춘 후, 대기열 탭과 테이블이 채워집니다.
지원 티켓을 빠르게 분류하는 방법은?
각 메시지를 읽어 주제와 긴급성을 분류하고, 불분명한 사례는 인간 검토로 라우팅하며, 검토자가 최종 결정을 저장할 수 있도록 하는 것입니다. 코딩 에이전트가 ToolJet MCP를 사용하여 이를 작동하는 앱으로 구축할 수 있으며, 따라서 대기열(queue), 상세 패널(detail panel), 그리고 저장된 수정 사항은 ToolJet 내부에 위치하게 됩니다.
- 지원 메시지 배치(batch) 수집하기
- 각 티켓을 주제와 긴급성별로 분류하기
- 불분명한 항목을 인간 검토로 라우팅하기
- 검토자가 팀, 우선순위 및 메모를 수정하도록 하기
- 최종 분류 결정을 대기열에 다시 저장하기
Jev는 어떻게 티켓을 큐(Queue)로 분류할까요?
화면에는 상단 바, 큐 탭, 필터, 티켓 테이블, 그리고 오른쪽에 상세 패널이 있는 밀집된 콘솔 형태의 분류기가 있습니다. 주요 동작은 '분류(Sort)'이며, 이 기능은 배치(batch)에서 큐를 채우고 검토자가 전체(All), 미분류(Untriaged), 즉시 응답(Respond now), 표준(Standard), 수동 검토 필요(Needs human review) 사이를 전환할 수 있게 합니다. 행을 클릭하면 원본 메시지와 Jev의 결과를 나란히 볼 수 있으며, 검토자는 팀이나 우선순위를 변경하고, 메모를 추가하며, 저장할 수 있습니다. Jev는 주제(topic), 긴급성(urgency), 명확성(clarity), 에스컬레이션 제안 여부(whether escalation is suggested), 신뢰도(confidence) 및 간략한 이유를 반환하며, 신뢰도는 백분율로, 명확성은 라우팅을 위한 점수로 표시됩니다. 실시간 처리 카운터와 Jev 시간 타이머는 완료되고 저장된 결정을 추적하여 검토자가 진행 상황을 파악할 수 있도록 합니다. 원본 메시지는 계속 보이므로, 수정은 텍스트가 아닌 분류에 관한 것입니다.
- 100개의 합성 티켓을 검토 가능한 큐 탭으로 분류합니다.
- 원본 메시지 옆에 Jev의 주제, 긴급성, 명확성 및 에스컬레이션 제안을 표시합니다.
- 검토자가 팀이나 우선순위를 변경하고, 메모를 추가하며, 저장할 수 있게 합니다.
- 실시간 처리 카운터와 Jev 시간 타이머로 저장된 결정을 추적합니다.
- 큐 규칙에 따라 명확하지 않은 항목을 수동 검토로 라우팅합니다.
ToolJet MCP 및 TypeSafe 데이터 소스 설정
ToolJet MCP는 코딩 에이전트를 ToolJet 작업 공간에 연결하여, 에이전트가 테이블, 쿼리, 구성 요소를 자동으로 생성할 수 있게 합니다. ToolJet MCP 개요와 ToolJet MCP 저장소를 사용하여 설정하세요. TypeSafe는 의사 결정 모델 플랫폼입니다: 이 데이터 소스는 ToolJet 앱이 Jev에게 유형화된 질문을 하고 선택, 점수 또는 신뢰도를 가진 예/아니오와 같은 구조화된 답변을 받을 수 있게 합니다. TypeSafe 데이터 소스를 작업 공간에 추가하고 typesafe라는 이름으로 지정하세요. 이 이름이 빌드 프롬프트가 참조하는 이름입니다.
- 빌드 시점 (At build time): ToolJet MCP는 에이전트가 사용자의 워크스페이스에서 앱을 생성할 수 있도록 합니다.
- 런타임 (At run time): 이 앱은 TypeSafe의 의사결정 모델인 Jev를 타입 안전 데이터 소스를 통해 호출하고, 레코드 옆에 그 결과로 나온 타입이 지정된 답변을 보여줍니다.
지원 티켓 분류기는 어떤 프롬프트로 구축되었나요?
이 빌드는 여러 단계를 거쳐 이러한 형태에 도달했습니다. 다음 요구사항들을 통합했으니, 이 내용을 바탕으로 동일한 앱을 한 번에 재현할 수 있습니다.
ToolJet에서 '지원 티켓 분류기(Support Ticket Sorter)'라는 세련된 내부 앱을 구축하세요. 페이지는 단일 페이지로 구성하고, 밀도가 높고 깔끔한 콘솔 모양, 옅은 회색 캔버스, 네이비색 상단 바, 그리고 청록색 액션 버튼을 사용해야 합니다. 애니메이션, 그라디언트 또는 KPI 카드는 사용하지 않고 기본 컴포넌트만 사용하며, 페이지 헤더와 내비게이션은 숨겨야 합니다. 기존 PostgreSQL(ToolJet DB 아님)을 사용하고 네 개의 테이블(
stk_tickets,stk_triage,stk_notes,stk_runs)을 생성하세요. 청구, 로그인, 버그, 기능 요청 및 계정 접근 문제와 관련된 100개의 가상의 SaaS 지원 티켓(모두 합성 데이터)을 길이, 긴급성, 명확성이 다양한 상태로 시딩하세요. 분류를 위해 Jev를 통해 기존 TypeSafe 데이터 소스를 사용합니다. 각 티켓에 대해 주제(topic), 긴급성(urgency), 명확성(clarity), 에스컬레이션 제안 여부, 신뢰도(confidence) 및 메시지에 근거한 짧은 이유를 Jev에게 요청하세요. 주제에 따라 가시적인 라우팅 규칙을 통해 할당 팀을 도출하고, 주제가 불분명하거나, 주제 신뢰도가 60퍼센트 미만이거나, 명확성이 1 이하일 경우 인간 검토(human review)로 항목을 라우팅해야 합니다. Jev 자체의 값과 에이전트 오버라이드 값을 나란히 유지하세요. 제품 이름, 실시간 처리 카운터, Jev 시간 타이머, 정렬(Sort), 재개(Resume), 초기화(Reset) 및 진행 표시줄이 있는 네이비색 바를 추가하세요. 모든 항목(All), 분류되지 않은 항목(Untriaged), 즉시 응답(Respond now), 표준(Standard), 인간 검토 필요(Needs human review)에 대한 큐 탭과 주제, 긴급성, 팀, 검토 상태 필터를 추가하세요. 밀도가 높은 티켓 테이블과 원본 메시지, Jev의 구조화된 결과, 노트 및 팀, 우선순위 및 노트 입력란과 저장(Save)이 있는 오른쪽 상세 패널을 보여주세요.
지원 일시 중지 및 재개, 실제 처리된 건수와 완료 시간을 표시하고, 응답을 보내거나 환불하거나 계정을 자동으로 변경하는 일은 절대 하지 않습니다. 12개의 병렬 워커로 정렬을 실행하고, 결과를 메모리에 유지하며, 50건의 티켓마다 한 번씩 PostgreSQL에 대량 저장하고 마지막에도 한 번 더 저장합니다. 각 대량 저장 후 보드를 새로고침하고, 마지막에는 실행과 보드 새로고침을 함께 종료합니다. 모든 쿼리 매개변수는 해당 쿼리의 매개변수 목록에 선언해야 합니다. 앱 보기 접근 권한을 가진 Support Sorter - Agents, Support Sorter - Leads, 그리고 Support Sorter - Viewers 그룹을 생성합니다. 정렬 실행, Jev, 저장 및 노트 쿼리는 Agents와 관리자만 할 수 있으며, 초기화(Reset)는 관리자 전용이고, Leads와 Viewers는 읽기 전용입니다. 현재 사용자의 그룹에 따라 UI 버튼 접근을 제한합니다._
ToolJet MCP는 대기열을 어떻게 생성하나요?
ToolJet MCP는 데이터 모델과 쿼리부터 컴포넌트 트리 및 이들 간의 연결까지 전체 애플리케이션에서 작동하기 때문에, 결과가 사용자가 직접 조립해야 하는 코드베이스가 아니라 구조화된 앱 형태로 ToolJet 내에 도착합니다. 엔터프라이즈 앱 빌딩은 인터페이스에서 끝나지 않으며, 런타임은 데이터 연결, 워크플로우, 권한, 배포 및 지원되는 범위의 지속적인 변경 사항을 처리하는데, 이는 대기열이 계속 변경될 때 중요합니다. 사례에 필요할 경우 AI 생성부터 시각적 편집, 그리고 코드까지 이동할 수 있으며, ToolJet MCP 문서에서 그 패턴을 보여줍니다.
정의되지 않은 Run Id는 어떻게 수정되었나요?
첫 번째 정렬 클릭은 대기열이 가득 차기 전에 멈췄고, 상세 패널은 비어 있었습니다. 쿼리 매개변수가 각 쿼리의 옵션에 선언되지 않았기 때문에 run id가 정의되지 않았으며, 이로 인해 매개변수 보간(parameter interpolation) 결과가 빈 문자열로 처리되었습니다. 모든 곳에 이를 선언함으로써 실행과 패널의 문제가 해결되었습니다.
ToolJet MCP는 무엇을 생성했나요?
| Metric | Result |
|---|---|
| Pages | 1 |
| ... |
Support Operations Queues는 누가 사용하나요?
지속적인 양의 고객 메시지를 처리하는 모든 팀이 이 패턴을 활용할 수 있습니다. SaaS 및 소프트웨어 지원, 전자상거래 및 마켓플레이스 서비스 데스크, 핀테크 및 은행 지원, 통신 및 공공 서비스, IT 또는 HR 헬프데스크 등이 해당됩니다. 이러한 인박스-투-큐(inbox-to-queue) 레이아웃은 AI 제안이 사람이 결정하는 데 도움을 주는 피드백 분류나 내부 요청 라우팅과 같은 다른 검토 대기열에도 적용될 수 있습니다.
지원 티켓 분류기는 누가 접근할 수 있나요?
이 앱은 세 가지 ToolJet 그룹을 사용합니다. 'Support Sorter - Agents'(및 워크스페이스 관리자)는 분류를 시작하고 재개하며, Jev를 실행하고 팀 또는 우선순위를 변경하고 메모를 저장할 수 있습니다. 'Support Sorter - Leads'와 'Support Sorter - Viewers'는 모든 것을 볼 수 있지만 작성할 수는 없습니다. 초기화(Reset) 기능은 관리자만 사용할 수 있습니다. 이러한 규칙은 쿼리 자체에 적용되므로, 차단된 사용자는 단순히 숨겨진 버튼이 아니라 서버 측 거부 응답을 받게 됩니다. 현재 이 그룹들은 멤버가 없습니다.
ToolJet 워크플로우 및 서브-워크플로우로 프로세스 자동화하기
지원 티켓 분류기 앱은 종종 백그라운드에서 작동하는 작업이 필요하며, ToolJet 워크플로우는 이를 시각적인 노드 기반 에디터로 자동화합니다. 이 에디터는 앱(apps), 웹훅(webhooks), 스케줄에 의해 트리거될 수 있습니다. 알림, 다중 시스템 업데이트 및 승인은 누군가의 브라우저가 아닌 서버에서 실행됩니다.
담당자가 티켓을 '인간 검토 필요(Needs human review)'로 저장할 때, 워크플로우를 통해 이 인계 작업을 처리하여 리드가 대기열을 떠나지 않고도 알림을 받을 수 있게 할 수 있습니다.
ToolJet 워크플로우 및 서브-워크플로우로 프로세스 자동화하기
워크플로우 트리거: 앱, 웹훅 및 스케줄
- 앱에서 워크플로우 트리거하기: 쿼리 패널에 Run Workflow 쿼리를 추가하고 매개변수를 전달한 다음, 버튼 클릭이나 폼 제출과 같은 이벤트 핸들러에 연결합니다.
- 웹훅 트리거: 외부 시스템이 HTTP 요청을 보낼 때 워크플로우를 시작하며, 환경별로 별도의 엔드포인트 URL을 가집니다.
- 예약된 워크플로우: 선택한 시간대에서 간격 또는 cron 표현식에 따라 실행되며, Team 플랜부터 이용 가능합니다.
서브 워크플로우, 로직 및 코드 노드
- 서브 워크플로우용 워크플로우 노드: 하나의 워크플로우에서 다른 워크플로우를 호출하고 매개변수를 전달하여, 로깅이나 알림과 같은 공유 단계를 재사용 가능한 자식 워크플로우에 배치할 수 있습니다.
- 로직 노드: ToolJet Workflows 개요에서 설명한 대로 If-Else를 사용하여 분기하고 Loop 노드를 사용하여 반복합니다.
- 데이터 소스 노드: 플로우 내에서 데이터베이스, REST 또는 GraphQL API 및 SaaS 도구를 읽고 쓸 수 있습니다.
- JavaScript 및 Python 노드: 서버 측 코드에서 데이터를 변환하고 비즈니스 로직을 적용합니다.
- 워크플로우 환경: Enterprise 플랜에서 Production에 실행하기 전에 Development 및 Staging에서 구축하고 테스트할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기
