메인 콘텐츠로 건너뛰기
Journey 액션을 사용하여 사용자가 Journey를 통해 이동하는 방법과 시기를 제어하고, 경험을 개인화하며, 결과를 테스트하세요.

대기

특정 시간(분, 시간, 일 또는 주)만큼 사용자의 Journey 진행을 지연시킵니다. 사용 용도:
  • 메시지와 단계 간격 조정
  • 분기 전에 사용자가 메시지와 상호작용할 수 있는 시간 허용

조건까지 대기

특정 조건을 충족할 때까지 이 단계에서 사용자를 보류합니다:
  • 세그먼트 진입
  • 메시지 이벤트 트리거 (예: 특정 메시지 전달, 열림 또는 클릭)
    • 현재 Wait until 단계당 하나의 메시지 이벤트만 지원됩니다.
  • 커스텀 이벤트 트리거 (예: 온보딩 완료, 구매 완료)
여러 조건을 추가하고 _먼저 충족하는 조건_에 따라 사용자를 분기할 수 있습니다. 특정 시간 내에 이러한 조건이 충족되지 않으면 만료 분기를 설정하여 사용자가 Journey를 계속하거나 완전히 종료하도록 할 수 있습니다.
사용자가 이 단계에 도달할 때 이미 조건을 충족하는 경우, 대기 없이 즉시 해당 분기로 이동합니다. 조건은 순서대로(위에서 아래로/A–Z) 평가됩니다.
커스텀 이벤트 진입 규칙을 사용하면 Event Matching을 추가하여 사용자를 여러 번 입력할 때 Journey를 진행할 사용자 인스턴스를 제어할 수 있습니다.
커스텀 이벤트가 조건과 일치하면 해당 이벤트는 사용자를 대신하여 저장되며 Journey 메시지를 보낼 때 Liquid 구문에서 참조할 수 있습니다.

이벤트 매칭

커스텀 이벤트 진입 규칙을 사용하면 사용자가 Journey에 여러 번 진입할 수 있습니다. Wait Until 단계의 Event Matching 설정을 사용하면 Journey를 진행할 사용자 인스턴스를 제어할 수 있습니다. 요구 사항:
  • 커스텀 이벤트를 사용하도록 Journey 진입 규칙을 설정합니다.
  • 사용자를 Journey에 진입시킬 때 이벤트 속성을 포함합니다.
예를 들어, “설문 조사 리마인더” Journey가 있습니다. 여러 설문 조사가 있으므로 사용자는 Journey에 여러 번 진입할 수 있습니다(각 설문 조사당 한 번). 설문 조사를 완료하지 않은 경우 리마인더 메시지를 보내거나 완료한 경우 제거하려고 합니다. Event Matching 설정을 사용하여 Journey를 진행할 사용자 인스턴스를 제어할 수 있습니다. 예시:
1

Journey 진입 규칙 및 커스텀 이벤트 속성 설정

커스텀 이벤트를 사용하도록 Journey 진입 규칙을 설정합니다. 예시: survey_start
사용자는 커스텀 이벤트 API를 통해 Journey에 진입합니다.커스텀 이벤트는 namesurvey_start로 설정되고 payload 속성 survey_id에 그들이 참여하는 설문 조사 값(예: survey_1)이 포함됩니다.
Entrance Trigger Event Example
{
  "events": [
    {
      "external_id": "UserA",
      "name": "survey_start",
      "properties": {
          "survey_id": "survey_1"
      }
    }
  ]
}
2

Wait Until 단계 및 커스텀 이벤트 속성 생성

커스텀 이벤트를 사용하도록 Wait Until 조건을 설정합니다. 예시: survey_completeEvent Matching 옵션을 설정하여 다음을 일치시켜 Wait Until 단계를 통해 진행할 사용자 인스턴스를 지정합니다:
  • Trigger Event Property: Journey 진입 트리거 이벤트에 설정 (예: survey_id)
  • Wait Event Property: Wait Until 이벤트에 설정 (예: survey_type)
Wait Until Event Example
{
  "events": [
    {
      "external_id": "UserA",
      "name": "survey_complete",
      "properties": {
          "survey_type": "survey_1"
      }
    }
  ]
}
survey_id 값이 survey_type 값과 일치하면 해당 사용자 인스턴스가 Journey를 진행합니다.
Trigger Event PropertyWait Event Property 모두에서 동일한 속성(예: survey_id)을 사용할 수 있습니다. 예시에서는 개념을 설명하기 위해 서로 다른 속성(예: survey_idsurvey_type)을 사용합니다.속성은 대소문자를 구분합니다! survey_1Survey_1과 같지 않습니다.
만료 분기:만료 시간 내에 Wait Until 이벤트가 발생하지 않으면 사용자는 Journey를 진행합니다. 이 예시는 사용자에게 설문 조사를 완료할 수 있는 1주일을 제공합니다.
3

메시지 단계 추가

예시를 완료하려면 만료 분기 내에 메시지 단계를 추가하여 리마인더를 보냅니다.
4

테스트해보세요!

위의 단계를 따른 후 테스트할 수 있습니다:
  • 커스텀 이벤트 APIexternal_id를 귀하의 외부 ID로 교체합니다
  • survey_idsurvey_1survey_start 이벤트를 트리거합니다
    • 사용자가 Journey에 진입하고 Wait Until 단계로 이동하는 것을 볼 수 있습니다
이벤트는 즉시 처리되지 않지만 매우 빠릅니다! 이벤트가 처리되기 전에 몇 분 정도 기다려야 할 수 있습니다.커스텀 이벤트 목록을 확인하여 이벤트가 처리되었는지 확인하세요.
  • survey_idsurvey_2인 다른 survey_start 이벤트를 트리거합니다
    • 2명의 사용자가 Journey와 Wait Until 단계에 진입하는 것을 볼 수 있습니다
  • survey_typesurvey_1survey_complete 이벤트를 트리거합니다
    • 사용자가 Journey를 진행하는 것을 볼 수 있습니다
  • survey_typesurvey_2인 다른 survey_complete 이벤트를 트리거합니다
    • 두 사용자 인스턴스 모두 Journey를 진행하고 종료하는 것을 볼 수 있습니다
Event Matching을 사용한 Journey 커스텀 이벤트 예시를 완료했습니다!

시간 윈도우

특정 요일과 시간을 기준으로 사용자가 Journey의 다음 단계로 이동할 수 있는 시기를 제한합니다. 예시: 주말 저녁에만 사용자가 메시지를 받을 수 있도록 허용합니다.

시간 윈도우 동작 방식

사용자가 허용된 시간 외에 이 노드에 진입하는 경우:
  • OneSignal은 다음 사용 가능한 윈도우까지 사용자를 지연시키도록 타이머를 설정합니다
  • 윈도우 진입 시간은 무작위로 지정됩니다
시간 윈도우는 시간대 데이터를 사용할 수 있는 경우 사용자의 시간대를 사용할 수 있습니다. 사용자에게 시간대 데이터가 없으면 앱의 기본 시간대가 사용됩니다. 예시: 시간 윈도우가 화요일 오후 1시부터 오후 6시(PST)이고 사용자가 월요일에 노드에 도달하면 화요일 오후 5시 45분과 같은 무작위 시간에 계속 진행될 수 있습니다.

반복 전송에 시간 윈도우 사용

시간 윈도우 노드를 재진입 규칙과 결합하여 일정(매일, 매주 등)에 따라 반복 메시지를 보낼 수 있습니다. 사용자가 메시지를 받기 전에 올바른 요일과 시간을 기다리도록 시간 윈도우를 Journey의 첫 번째 단계로 배치하세요. 재진입 기간을 선택할 때는 시간 윈도우 기간보다 길되 전송 간격보다 짧게 설정하세요. 이렇게 하면 동일한 윈도우 내에서 이중 전송을 방지하면서도 사용자가 다음 윈도우를 놓치지 않을 만큼 충분히 일찍 재진입할 수 있습니다. 예시 — 매일 전송:
  • 시간 윈도우: 매일 오전 10시 ~ 오후 6시 (8시간 윈도우)
  • 재진입: 12시간 (8시간 윈도우보다 길고 24시간보다 짧음)
  • 결과: 사용자는 종료 후 약 12시간 후에 재진입하여 항상 다음 날 윈도우가 닫히기 전에 도착하고 하루에 하나의 메시지를 수신합니다
전체 예시는 특정 요일의 반복 Journey매일 메시지를 전송하도록 예약할 수 있나요?를 참고하세요.

Yes/No 분기

세그먼트 멤버십 또는 메시지 동작을 기반으로 사용자를 분기합니다.

세그먼트 멤버십

사용자가 속한 세그먼트를 기준으로 분기를 생성합니다. 예시: 사용자가 플랜 유형별로 태그되어 있는 경우:
  • “무료” 분기 = 업그레이드 프로모션
  • “유료” 분기 = 프리미엄 기능 강조

메시지 동작

Journey의 이전 메시지와의 상호작용을 기반으로 분기합니다:
  • 푸시: 클릭됨, 전달됨
  • 이메일: 클릭됨, 열림, 전달됨
참고: Safari는 확인된 전달을 지원하지 않습니다.

분할 분기

메시징, 채널 또는 Journey 흐름을 테스트하기 위해 사용자를 서로 다른 경로에 무작위로 분배합니다.
Journey가 실행되면 Split Branch를 편집할 수 없습니다. 분기 수를 변경하려면 새 Journey를 생성하세요.

작동 방식

  • 최대 20개의 분기
  • 동일하거나 사용자 지정 백분율 분할 설정
  • 백분율은 정수로 반올림됩니다 (예: 3방향 분할은 34/33/33이 됨)
  • 작은 샘플 크기에서는 분포가 약간 다를 수 있습니다
기본적으로 사용자는 Journey에 재진입할 때마다 무작위로 재배정됩니다. 동일한 분기에 유지하려면 재진입 시 무작위 배정을 끕니다. Tag User 액션을 사용하여 사용자가 따른 분기를 추적합니다.

A/B/N 테스트

중첩된 Split Branch를 사용하여 두 개 이상의 변형을 동시에 테스트합니다. 예시: 사용자를 3개의 변형에 균등하게 분할하려면:
  1. 첫 번째 분기: 33% vs 67%
  2. 67% 분기 아래에 또 다른 50/50 Split Branch 추가
이렇게 하면 각 경로에서 약 33%가 됩니다.

대조군

메시징의 영향을 테스트하려면 한 분기를 비워 둡니다(메시지 노드 없음). 이를 통해 메시지를 전혀 받지 않는 사용자와 비교할 수 있습니다.

승자 선택

성공적인 변형이 식별되면 해당 경로로 트래픽의 **100%**를 보내도록 분기를 업데이트합니다. 시간이 지남에 따라 영향을 지속적으로 측정하려면 작은 홀드아웃 그룹(승리 메시지를 받지 않는 사용자 비율)을 유지하는 것을 고려하세요.

사용자 태그 지정

이 액션을 사용하여 Journey 중에 태그를 적용하거나 제거합니다. 일반적인 사용 사례:
  • Journey 진행 상황 추적 (예: journeyStep: welcome)
  • 주요 순간에 사용자에게 태그를 지정하여 인앱 메시지 강화
  • 활성 태그를 사용하여 다른 Journey에서 사용자 제외

예시: 온보딩 흐름 제어

  1. 첫 번째 단계: 태그 추가 (예: onboardingJourney: active)
  2. 이 태그를 사용하여 다른 Journey에서 제외할 세그먼트 생성
  3. 마지막 단계: 값을 공백으로 설정하여 태그 제거

모범 사례: 웹훅 또는 개인화와 함께 태그 사용

Journey에서 태그를 추가하거나 제거하면 다음 단계에서 해당 변경 사항을 사용할 준비가 되기까지 짧은 시간이 걸릴 수 있습니다. 모든 것이 원활하게 작동하도록 하려면:
  • 웹훅의 경우: 웹훅으로 데이터를 보내기 전에 태그를 설정한 후 짧은 대기 시간을 추가합니다.
  • 개인화의 경우: 이메일에서 콘텐츠를 개인화하는 데 사용하기 전에 태그를 설정하거나 제거한 후 짧은 대기 시간을 추가합니다.
Tag 액션과 다음 단계 사이에 15분 대기 노드를 추가하는 것이 좋습니다. 이렇게 하면 태그가 완전히 준비되므로 웹훅이나 이메일에 항상 올바른 데이터가 포함됩니다.

자주 묻는 질문

어떤 푸시 액션 버튼이 클릭되었는지에 따라 Journey를 분기할 수 있나요?

내장된 예/아니오 분기만으로는 불가능합니다. 메시지 동작 조건은 “클릭됨” 또는 “전달됨”만 감지하며 어떤 특정 버튼이 클릭되었는지는 감지하지 않습니다. 버튼별로 분기하려면 SDK에서 클릭 이벤트를 수신하고 Action ID를 읽어 Custom Event를 전송하세요. 그런 다음 Wait Until 단계를 사용하여 어느 custom event가 먼저 발생하는지에 따라 분기하세요. 코드 예제가 포함된 전체 안내는 액션 버튼 클릭으로 Journey 분기하기를 참조하세요.

Journey에서 Custom Event를 사용하려면 코드를 작성해야 하나요?

네. Custom Event는 SDK를 사용하여 앱이나 웹사이트에서 OneSignal로 전송되거나 REST API를 사용하여 백엔드에서 전송됩니다. 대시보드만으로 Custom Event를 발생시키는 방법은 없습니다. 이벤트가 OneSignal로 유입되면 추가 코드 없이 대시보드를 통해 Journey와 세그먼트에서 사용할 수 있습니다.