옴니채널 여정

Omnichannel journey

웹·앱·매장을 옮겨도 고객의 진행 상태가 이어집니다.

···
html
<div class="omni"><div class="omni-stages"><div>WEB<i>SAVED</i></div><div>APP<i>READY</i></div><div>STORE<i>COLLECT</i></div></div><div class="omni-item"><small>YOUR ITEM</small><strong>FIELD NOTES / 01</strong><b id="omni-state">SAVED ON WEB</b></div><div class="omni-track"><span id="omni-cursor"></span></div></div>
css
.omni{width:min(88%,650px);display:grid;gap:clamp(9px,2.5vmin,20px);font:900 clamp(10px,max(2vmin,1vw),16px)/1 sans-serif}.omni-stages{display:flex;gap:6px}.omni-stages div{flex:1;display:grid;gap:6px;padding:clamp(7px,2vmin,16px);border:2px solid var(--line);transition:.4s}.omni-stages div.on{border-color:var(--accent);background:var(--accent-2);color:#211b19}.omni-stages i{font:700 clamp(10px,max(1.5vmin,1vw),12px)/1 sans-serif;font-style:normal}.omni-item{display:grid;gap:5px;border:2px solid var(--fg);background:var(--surface);padding:clamp(9px,3vmin,23px)}.omni-item small{color:var(--muted)}.omni-item strong{font-size:clamp(14px,3.4vmin,27px)}.omni-item b{color:var(--accent)}.omni-track{height:5px;background:var(--line);position:relative}.omni-track span{display:block;width:13px;height:13px;border-radius:50%;background:var(--accent);position:absolute;top:-4px;left:0;transition:left .55s}small{font-size:max(.833em,10px,1vw)}
js
const stages=[...document.querySelectorAll('.omni-stages div')],states=['SAVED ON WEB','OPENED IN APP','READY FOR COLLECTION'];let i=0;function show(){stages.forEach((s,n)=>s.classList.toggle('on',n===i));document.getElementById('omni-state').textContent=states[i];document.getElementById('omni-cursor').style.left=(i*48)+'%';i=(i+1)%3}show();setInterval(show,1600);

옴니채널 여정은 고객이 채널을 바꿔도 맥락과 진행 상태가 이어지는 경험입니다. 채널을 많이 운영하는 것보다 고객이 같은 일을 다시 시작하지 않게 하는 데 초점이 있습니다.

데모의 가상 고객은 웹에서 상품을 저장하고 앱에서 확인한 뒤 매장에서 수령합니다. 저장한 상품과 선택 상태가 채널 사이를 따라 이동합니다.

연결에는 식별과 동의가 필요합니다. 동일인으로 확신할 수 없는 행동을 억지로 합치거나 동의 없이 추적해서는 안 됩니다.

언제 쓰나

온라인 탐색과 오프라인 수령처럼 채널 사이 인계가 중요한 경험을 설계할 때 씁니다.

페이지로 열기 ↗