캠페인 엔드포인트

캠페인은 연락처 목록에 순차적으로 연락하고, 아웃바운드 통화를 시작하고, 각 연락처를 사용 가능한 상담사에게 연결하는 아웃바운드 자동 다이얼러 기능을 의미합니다. 캠페인 엔드포인트는 캠페인 관련 데이터에 대한 액세스를 제공하여 캠페인 및 연락처 객체를 검색할 수 있도록 합니다.

  • 캠페인 객체는 플랫폼 내의 단일 캠페인을 나타냅니다.

  • Contact 객체는 특정 캠페인 내의 개별 캠페인 연락처를 나타냅니다.

캠페인 엔드포인트를 사용하면 사용자가 기존 캠페인의 연락처를 추가, 업데이트, 삭제할 수 있습니다. 사용 가능한 엔드포인트는 다음과 같습니다.

캠페인 연락처 상태

상태 필드는 다음 상태 중 하나일 수 있습니다.

캠페인 연락처 상태 설명
예정 다음에 전화를 걸 연락처입니다.
Dialing(전화 거는 중) 지금 연락처에 전화를 걸고 있습니다.
큐에 추가됨 특정 연락처에 대한 통화가 대기열에 추가됩니다.
연결됨 문의가 상담사와 연결되었습니다.
완료됨 통화가 완료되었습니다.
이전됨 통화가 트랜스퍼되었습니다.
전송 및 완료됨 통화가 트랜스퍼된 후 완료되었습니다.
수령하지 않음 최종 사용자가 응답하지 않거나 최종 사용자에게 도달하지 못했습니다.
연락처에 도달하지 않음 통화가 연락처에 연결되지 않았습니다.
Abandoned by Contact(고객이 포기) 미리보기의 경우 최종 사용자가 상담사에게 연결되기 전에 전화를 끊습니다. 프로그레시브와 예측 모두에서 최종 사용자가 상담사에게 연결된 후 5초 이내에 전화를 끊습니다.
건너뜀 상담사가 연락처를 건너뛰었으며 다른 상담사에게 연결할 수 있습니다.
건너뛰고 닫음 미리보기에서 상담사가 연락처를 건너뛰고 닫습니다. 이제 이 캠페인에서 이 연락처가 항상 건너뛰어집니다.
잘못된 번호 전화번호가 잘못된 연락처
이동통신사 오류 이 오류는 이동통신사에 의해 발생합니다.
다이얼러에 의해 포기됨 다이얼러에서 연락처가 버려졌습니다.
음성메시지 통화 종료 예측 모드에서 다이얼러는 최종 사용자가 머신 (예: 음성사서함)이라고 판단합니다.
다이얼러 일반 오류 다이얼러 오류로 인해 통화에 실패했습니다.
다시 걸기 예약됨 임시 상태입니다. 향후 다시 걸기 예약됨
Do Not Call 전화번호가 수신 거부 전화번호 목록에 있습니다.
잘못된 아웃바운드 번호 잘못된 발신 번호가 있는 연락처
차단된 전화번호 잘못되었거나 차단된 국제 번호가 있는 연락처

캠페인에 연락처 하나 추가

매개변수 필수 데이터 유형 정의
캠페인_id TRUE 정수 연락처를 추가할 캠페인의 ID입니다.

엔드포인트:

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts

헤더:

설명
Content-Type application/json

본문:

{
    "name": "string",
    "email": "customer@somedomain.com",
    "phone_number": "+1 111-111-1111",
    "outbound_number": "+1 760-867-5309",
    "external_unique_id": "UID_123456"
}

요청 및 응답 예시

다음 섹션에서는 엔드포인트에 대한 요청의 예를 제공합니다.

캠페인에 연락처 하나 추가

이 예시에서는 특정 캠페인 ID에 연락처를 추가하는 방법을 보여줍니다.

요청

헤더:

설명
Content-Type application/json

질문:

설명
캠페인_id 정수 연락처를 추가할 캠페인의 ID입니다.

본문:

{
    "name": "string",
    "email": "customer@somedomain.com",
    "phone_number": "+1 111-111-1111",
    "outbound_number": "+1 760-867-5309",
    "external_unique_id": "UID_123456"
}
응답
{
    "valid_contacts": [
        {
            "name": "string",
            "email": "customer@somedomain.com",
            "phone_number": "+1 111-111-1111",
            "outbound_number": "+1 760-867-5309",
            "external_unique_id": "UID_123456"
        }
    ],
    "invalid_contacts": []
}

상태 코드: 200

캠페인의 연락처 가져오기

매개변수 필수 데이터 유형 정의
캠페인_id TRUE 정수 연락처를 가져올 캠페인의 ID입니다.

엔드포인트:

Method: GET
Type:
URL: https://{subdomain}.​{domain}​/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts

헤더:

설명
Content-Type application/json

질문:

설명
캠페인_id 정수 연락처를 추가할 캠페인의 ID입니다.

요청 및 응답 예시

다음 섹션에서는 엔드포인트에 대한 요청의 예를 제공합니다.

캠페인의 연락처 가져오기

다음 예시에서는 지정된 캠페인 ID의 연락처를 가져오는 방법을 보여줍니다.

요청

헤더:

설명
Content-Type application/json

질문:

설명
캠페인_id 정수 조회할 캠페인의 캠페인 ID
응답
[
  {
      "name": "string",
      "email": "customer@somedomain.com",
      "phone_number": "+1 111-111-1111",
      "outbound_number": "+1 760-867-5309",
      "external_unique_id": "UID_123456"
  }
]

상태 코드: 200

캠페인에 여러 연락처 가져오기

매개변수 필수 데이터 유형 정의
파일 TRUE 문자열 캠페인에 추가할 여러 연락처가 포함된 json 파일입니다.
캠페인_id TRUE 정수 연락처를 추가할 캠페인의 ID입니다.

엔드포인트:

Method: POST
Type: FORM DATA
URL: https://{​subdomain}​.{​domain}​/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts/import

헤더:

설명
Content-Type multipart/form-data

본문:

'FORM DATA'

파일 콘텐츠:

[
  {
      "name": "string",
      "email": "customer@somedomain.com",
      "phone_number": "+1 111-111-1111",
      "outbound_number": "+1 760-867-5309",
      "external_unique_id": "UID_123456"
  }
]

요청 및 응답 예시

다음 섹션에서는 엔드포인트에 대한 요청의 예를 제공합니다.

파일에서 여러 연락처 가져오기

이 예에서는 엔드포인트에 게시된 파일을 기반으로 캠페인에 연락처를 추가하는 방법을 보여줍니다. 파일이 양식 데이터로 게시됩니다.

요청

헤더:

설명
Content-Type multipart/form-data

질문:

설명
캠페인_id 정수 연락처를 추가할 캠페인 ID

파일 콘텐츠:

[
  {
      "name": "string",
      "email": "customer@somedomain.com",
      "phone_number": "+1 111-111-1111",
      "outbound_number": "+1 760-867-5309",
      "external_unique_id": "UID_123456"
  }
]
응답

None

상태 코드: 202 (수락됨)

작업

매개변수 필수 데이터 유형 정의
job_id TRUE 정수 가져올 작업 ID
캠페인_id TRUE 정수 작업 ID가 속한 캠페인 ID입니다.

엔드포인트:

Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts/jobs/{job_id}

헤더:

설명
Content-Type application/json

요청 및 응답 예시

다음 섹션에서는 엔드포인트에 대한 요청의 예를 제공합니다.

완료됨

다음 예에서는 작업을 검색하고 작업이 성공적으로 완료되었는지 확인하는 방법을 보여줍니다.

요청

헤더:

설명
Content-Type application/json

질문:

설명
캠페인_id 1 작업이 속한 캠페인 ID
job_id 530 상태를 확인할 작업 ID
응답
{
    "id": 530,
    "status": "completed",
    "type": "Jobs::Bulk::Campaign::ParentJob"
}

상태 코드: 200

가져오기가 아직 진행 중입니다

다음 예에서는 작업을 검색하고 가져오기가 아직 진행 중인지 확인하는 방법을 보여줍니다.

요청

헤더:

설명
Content-Type application/json

질문:

설명
캠페인_id 1 작업이 속한 캠페인 ID
job_id 530 상태를 확인할 작업 ID
응답
{
    "id": 530,
    "status": "in_progress",
    "type": "Jobs::Bulk::Campaign::ParentJob"
}

상태 코드: 200

실패한 작업

다음 예에서는 작업을 가져오고 작업이 실패했는지 확인하는 방법을 보여줍니다.

요청

헤더:

설명
Content-Type application/json

질문:

설명
캠페인_id 1 작업이 속한 캠페인 ID
job_id 523 상태를 확인할 작업 ID
응답
{
    "error_details": "NativePowerDial::ContactService::DuplicateContactPhoneOnCampaign",
    "error_message": "Internal Error",
    "id": 523,
    "status": "failed",
    "type": "Jobs::Bulk::Campaign::StartImport"
}

상태 코드: 200

단일 연락처 업데이트

매개변수 필수 데이터 유형 정의
캠페인_id TRUE 정수 작업 ID가 속한 캠페인 ID입니다.

엔드포인트:

Method: PATCH
Type: RAW
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contact

헤더:

설명
Content-Type application/json

본문:

{
    "contact_id": 16312,
    "name": "string",
    "email": "customer@somedomain.com",
    "phone_number": "+1 111-111-1111",
    "external_unique_id": "UID_123456"
}

요청 및 응답 예시

다음 섹션에서는 엔드포인트에 대한 요청의 예를 제공합니다.

캠페인의 연락처 업데이트

이 예시에서는 특정 캠페인에 있는 연락처를 업데이트하는 방법을 보여줍니다.

요청

헤더:

설명
Content-Type application/json

본문:

{
    "contact_id": 7,
    "name": "Bob Smith",
    "email": "customer@somedomain.com",
    "phone_number": "+1 111-111-1111",
    "external_unique_id": "UID_123456"
}
응답
{
    "id": 7,
    "name": "Bob Smith",
    "campaign_id": 6,
    "assigned_call_id": null,
    "assigned_participant_id": null,
    "outbound_number": "+1-(201)-471-6992",
    "priority": null,
    "created_at": "2024-08-05T14:51:49.000Z",
    "updated_at": "2024-08-05T21:01:16.000Z",
    "status": "Upcoming",
    "user_custom_metadata": {
        "NAME (REQUIRED)": "Bob Smith",
        "PHONE (REQUIRED)": "+1 111-111-1111",
        "EMAIL (REQUIRED)": "customer@somedomain.com"
    }
}

상태 코드: 200

단일 연락처 삭제

매개변수 필수 데이터 유형 정의
캠페인_id TRUE 정수 작업 ID가 속한 캠페인 ID입니다.

엔드포인트:

Method: DELETE
Type: RAW
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contact

헤더:

설명
Content-Type application/json

본문:

{
    "contact_id": integer,
    "phone_number": "string",
    "external_unique_id": "string"
}

요청 및 응답 예시

다음 섹션에서는 엔드포인트에 대한 요청의 예를 제공합니다.

연락처 ID로 연락처 삭제

이 예에서는 연락처의 연락처 ID를 기반으로 캠페인에서 연락처를 삭제하는 방법을 보여줍니다.

요청

헤더:

설명
Content-Type application/json

본문:

{
    "contact_id": 7,
}

질문:

설명
캠페인_id 1 작업이 속한 캠페인 ID
응답
{
    "id": 7,
    "name": "Bob Smith",
    "campaign_id": 6,
    "assigned_call_id": null,
    "assigned_participant_id": null,
    "outbound_number": "+1-(201)-471-6992",
    "priority": null,
    "created_at": "2024-08-05T14:51:49.000Z",
    "updated_at": "2024-08-05T21:01:16.000Z",
    "status": "Upcoming",
    "user_custom_metadata": {
        "NAME (REQUIRED)": "Bob Smith",
        "PHONE (REQUIRED)": "+1 111-111-1111",
        "EMAIL (REQUIRED)": "customer@somedomain.com"
    }
}

상태 코드: 200