홈 / n8n 워크플로 템플릿 / 수신 Dialpad 통화로부터 Syncro에서 티켓 생성 자동화

수신 Dialpad 통화로부터 Syncro에서 티켓 생성 자동화

Dialpad to Syncro

이 워크플로는 웹훅을 통해 Dialpad에서 수신 통화를 캡처하고, Syncro에서 일치하는 고객을 검색하며, 연락처 또는 고객 데이터를 기반으로 지원 티켓을 생성하거나 업데이트합니다.

Webhook노드 21개비즈니스 운영SyncroDialpadCRM

워크플로 소개

Dialpad to Syncro 통합 워크플로우 분석

**"Dialpad to Syncro"**라는 제목의 이 N8n 워크플로우 템플릿은 **Dialpad(클라우드 기반 비즈니스 전화 시스템)**와 Syncro(MSPs를 위한 IT 서비스 관리 플랫폼) 간의 통합을 자동화하도록 설계되었습니다. 이를 통해 비즈니스는 발신자 식별을 기반으로 Dialpad를 통해 수신 전화가 걸려올 때 Syncro에서 지원 티켓을 자동으로 생성하거나 업데이트할 수 있습니다. 이 워크플로우는 전화번호를 사용하여 고객 또는 연락처를 지능적으로 일치시키고 추적 및 보고를 위해 Google 스프레드시트에 관련 데이터를 기록합니다.


워크플로우 기능

이 워크플로우의 주요 기능은 다음과 같습니다.

  • Dialpad에서 들어오는 웹훅 이벤트(수신 전화로 트리거됨)를 수신합니다.
  • 발신자의 전화번호를 사용하여 Syncro 데이터베이스를 검색하여 발신자를 식별합니다.
  • 발신자가 알려진 연락처인지 고객인지 결정합니다.
  • 해당 연락처와 연결된 열린 티켓이 이미 있는지 확인합니다.
  • 새 티켓을 생성하거나 기존 티켓에 댓글을 추가합니다.
  • 감사 및 분석을 위해 Google 스프레드시트에 통화 및 해당 티켓 정보를 기록합니다.

이 자동화는 모든 수신 전화가 추적 가능한 서비스 기록을 시작하도록 보장하여 수동 입력을 줄이고 응답 시간을 개선함으로써 고객 서비스 운영을 간소화합니다.


주요 기능 및 역량

  1. 웹훅 트리거 실행

    • Dialpad의 실시간 POST 요청을 수신하여 이벤트 기반으로 응답성이 뛰어납니다.
  2. 동적 고객/연락처 일치

    • 발신자의 전화번호(형식 +, 선행 1 또는 0 제거)를 사용하여 Syncro API를 검색합니다.
    • 개별 연락처와 회사 수준 고객을 모두 처리합니다.
  3. 조건부 논리 분기

    • 여러 IF 노드를 사용하여 다음을 기반으로 결정을 내립니다.
      • 통화 방향 (inbound)
      • 검색 결과 길이(일치하는 항목이 하나 있는지 여부)
      • 열린 티켓 존재 여부
  4. 티켓 관리 자동화

    • 열린 티켓이 없으면 새 티켓을 생성합니다.
    • 중복을 생성하는 대신 기존 열린 티켓에 통화 세부 정보를 추가합니다.
  5. 데이터 강화 및 변환

    • Function 노드를 사용하여 원시 API 응답에서 구조화된 데이터를 추출합니다.
    • 전체 이름, 전화번호 및 회사 이름을 사용하여 동적 메시지를 형식화합니다.
  6. Google 스프레드시트를 통한 외부 로깅

    • 각 작업(티켓 생성/업데이트)을 Google 스프레드시트에 다음 정보와 함께 기록합니다.
      • 통화 ID
      • 티켓 ID
    • 감사, 청구 또는 성능 추적에 유용합니다.
  7. 환경 구성

    • 유지 관리를 용이하게 하기 위해 EnvVariables Set 노드를 사용하여 구성(기본 URL 및 사용자 ID 등)을 중앙 집중화합니다.
  8. 오류 복원력 및 대체 경로

    • 데이터 누락으로 인해 실행이 중단되는 것을 방지하기 위해 대체 경로로 NoOp(No Operation) 노드를 포함합니다.

주요 노드 및 목적

노드 이름 유형 목적
Webhook Webhook Trigger 수신 전화 발생 시 Dialpad에서 POST 페이로드를 수신합니다.
IF (Direction Check) IF Condition inbound 통화만 처리되도록 보장합니다. 아웃바운드/내부 통화는 무시합니다.
EnvVariables Set Node Syncro 기본 URL 및 기본 사용자 ID와 같은 환경 상수를 저장합니다.
GetCustomer HTTP Request 정리된 발신자 번호를 사용하여 Syncro 검색 API를 쿼리합니다.
Contacts Function Node API 응답을 구문 분석하여 연락처 레코드를 추출합니다.
Customers Function Node API 응답을 구문 분석하여 고객(회사) 레코드를 추출합니다.
IFContacts / IFCustomers IF Conditions 정확히 하나의 연락처 또는 고객이 발견되었는지 확인합니다.
GetTicket HTTP Request 식별된 연락처와 연결된 열린 티켓을 검색합니다.
IFMoreThanOne IF Condition 열린 티켓이 있는지(길이 > 0) 확인한 다음 업데이트 또는 생성 여부를 결정합니다.
UpdateTicket HTTP Request 통화를 기록하는 숨겨진 댓글을 기존 티켓에 추가합니다.
CreateTicket / CreateTicketForCustomer HTTP Request 연락처 또는 고객에게 새 티켓을 생성합니다.
Set Nodes (ForGoogle)* Set Node 로깅을 위해 구조화된 데이터(통화 ID + 티켓 ID)를 준비합니다.
**Google Sheets * ** Google Sheets Node 추적을 위해 스프레드시트에 로그 항목을 추가합니다.
**NoOp * ** No Operation Node 조치가 취해지지 않은 경우를 처리하기 위한 더미 출력 역할을 합니다.

사용 사례 및 이점

✅ 사용 사례

  • MSP(관리 서비스 제공업체): 에이전트가 모든 통화 후에 수동으로 티켓을 생성할 필요 없이 클라이언트 상호 작용을 자동으로 추적합니다.
  • 헬프 데스크: 통화하기 전에 발신자에 대한 컨텍스트를 미리 채워 첫 응답 효율성을 개선합니다.
  • 영업 및 지원팀: Syncro의 CRM과 유사한 레코드에 직접 연결된 모든 수신 통신의 상세 로그를 유지합니다.
  • 규정 준수 및 감사: 통화와 서비스 활동을 연결하는 불변 로그를 Google 스프레드시트에 보관합니다.

✅ 이점

  • 수동 작업 감소: 클라이언트 조회 및 티켓 열기의 필요성을 제거합니다.
  • 중복 티켓 방지: 스마트 로직으로 시스템이 복잡해지는 것을 방지합니다.
  • 책임성 향상: 모든 통화는 디지털 흔적을 남깁니다.
  • 컨텍스트 인식 향상: 에이전트는 통화에 응답하거나 다시 걸기 전에 최근 활동을 볼 수 있습니다.
  • 확장 가능 및 구성 가능: SMS, 음성 메일 또는 이메일 통합을 포함하도록 확장할 수 있습니다.

단계별 워크플로우 로직

  1. 트리거: 수신 전화 감지

    • Dialpad는 /moezdialpad 웹훅 엔드포인트로 POST 요청을 보냅니다.
    • 페이로드에는 발신자 번호(external_number), 통화 ID 및 방향이 포함됩니다.
  2. 필터: 수신 통화만 처리

    • 첫 번째 IF 노드는 direction === 'inbound'인지 확인합니다.
    • 거짓이면 NoOp2(아무 작업도 수행하지 않음)로 라우팅됩니다.
    • 참이면 다음 단계로 진행됩니다.
  3. 환경 변수 로드

    • EnvVariables 노드는 다음을 주입합니다.
      • syncro_baseurl: Syncro API의 기본 URL
      • 나중에 사용되는 기타 정적 값(예: 사용자 ID)
  4. 발신자 Syncro 검색

    • GetCustomer는 다음으로 HTTP GET 요청을 보냅니다.
      {{syncro_baseurl}}/api/v1/search?query={cleaned_phone}
      
    • 전화번호는 .replace()를 사용하여 +, 선행 1 또는 0을 제거하도록 정리됩니다.
  5. 결과를 연락처 및 고객으로 구문 분석

    • 두 개의 병렬 Function 노드(Contacts 및 Customers)가 검색 결과 JSON을 구문 분석합니다.
      • _index === 'contacts' 또는 'customers'인 항목 필터링
      • 주요 필드 추출: 이름, ID, customer_id, 전화번호
    • 일치하는 연락처/고객 배열을 출력합니다.
  6. 정확히 하나의 일치 확인

    • IFContacts: 정확히 하나의 연락처가 발견되면 → 티켓 확인으로 진행
    • IFCustomers: 정확히 하나의 고객이 발견되면 → 고객 수준 티켓 생성으로 진행
    • 그렇지 않으면 NoOp/NoOp1(조치 없음)으로 라우팅됩니다.
  7. 열린 티켓 확인(연락처별)

    • 연락처가 발견되면 GetTicket은 다음을 쿼리합니다.
      /api/v1/tickets?contact_id=X&status=Not%20Closed
      
    • 해당 연락처의 열린 티켓 목록을 반환합니다.
  8. 결정: 티켓 업데이트 또는 생성?

    • IFMoreThanOne은 다음을 평가합니다.
      • 열린 티켓이 하나 이상 있습니까?
    • YES → UpdateTicket으로 이동
    • NO → CreateTicket으로 이동
  9. 기존 티켓 업데이트

    • UpdateTicket은 첫 번째 열린 티켓에 댓글을 게시합니다.
      • 제목: "John Doe(+1234567890)로부터의 전화"
      • 본문: "John Doe가 전화했습니다."
      • 숨김: true(내부 메모)
      • 기본 사용자로 할당됨
    • 그런 다음 ForGoogle → Google Sheets를 통해 데이터를 준비하고 기록합니다.
  10. 새 티켓 생성

    • 열린 티켓이 없으면:
      • CreateTicket은 다음으로 새 티켓을 생성합니다.
        • 일치하는 연락처의 고객 ID 및 연락처 ID
        • 동적 제목 줄
        • 상태: "진행 중"
        • 기본 사용자로 할당됨
    • 그런 다음 ForGoogle1 → Google Sheets1을 통해 기록합니다.
  11. 고객 수준 대체 처리

    • 연락처는 없지만 고객이 발견된 경우:
      • CreateTicketForCustomer는 조직 수준에서 티켓을 생성합니다.
      • 제목에 회사 이름 포함
      • ForGoogle2 → Google Sheets2를 통해 기록합니다.
  12. Google 스프레드시트에 로깅

    • 모든 성공적인 작업(업데이트/생성)은 행을 추가하는 결과를 낳습니다.
      • A열: 통화 ID
      • B열: 티켓 ID
    • 세 개의 별도 분기는 모든 경로가 적절하게 기록되도록 합니다.

요약

이 Dialpad to Syncro 워크플로우는 n8n이 지능형 자동화를 통해 통신 플랫폼과 서비스 관리 시스템을 어떻게 연결할 수 있는지 보여주는 예입니다. 웹훅, 조건부 논리, API 통합 및 외부 로깅을 결합하여 고객 서비스 워크플로우를 개선하기 위한 강력한 솔루션을 제공합니다. 모든 통화가 기록되고 모든 상호 작용이 더 나은 지원 결과를 위해 기여하도록 보장합니다.

사용 방법: JSON을 다운로드한 뒤 n8n에서 “파일에서 가져오기”를 선택하세요.