목차
Echobell에 내장된 UTC 시간 변수를 사용하면 업무 시간, 온콜 교대 시간, 유지보수 시간대처럼 특정 시간 구간에만 알림이 오도록 제한할 수 있습니다. 모두 채널 조건에서 바로 설정하므로 외부 필터링 계층은 필요하지 않습니다.
사전 지식: 조건, 템플릿, Webhook, 이메일 트리거.
사용할 수 있는 UTC 변수
다음 변수들은 읽기 전용이며 항상 사용할 수 있고, 모든 값은 UTC 기준으로 계산됩니다.
timezone(항상 "UTC"),now/iso,epochMs,epochSecondsyear,month(1–12),monthNamedayOfMonth(1–31)dayOfWeek(0–6, 일요일 = 0),dayOfWeekNamehour(0–23),minute(0–59),second(0–59)date(YYYY-MM-DD),time(HH:mm:ss)
조건에서는 {{ }} 없이 그대로 사용합니다. 템플릿에서는 {{ }}로 감싸서 사용합니다.
조건 예제
평일 업무 시간
hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5
주말만
dayOfWeek == 0 || dayOfWeek == 6
업무 시간 외(야간과 주말)
(hour < 9 || hour >= 17) || dayOfWeek == 0 || dayOfWeek == 6
유지보수 시간대(토요일 01:00–03:00)
dayOfWeek == 6 && hour >= 1 && hour < 3
매월 1일 정각
dayOfMonth == 1 && minute == 0
분기 말 업무 시간(3월/6월/9월/12월)
(month == 3 || month == 6 || month == 9 || month == 12) && hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5
시간 조건과 콘텐츠 필터 조합하기
시간 조건은 표준 연산자를 사용해 데이터 변수와 조합할 수 있습니다.
- 업무 시간 외에는 심각도가 높은 경우에만 에스컬레이션하기:
((hour < 9 || hour >= 17) || dayOfWeek == 0 || dayOfWeek == 6) && (severity == "high" || severity == "critical") - 프로덕션 환경, 평일만:
environment == "production" && dayOfWeek >= 1 && dayOfWeek <= 5
조건은 순수한 표현식이므로 {{ }}로 감싸지 않습니다. 조건 → 지원되는 연산자를 참고하세요.
템플릿에서 시간 변수 사용하기
같은 변수를 템플릿에서 {{ }}와 함께 사용할 수 있으며, 감사 기록이나 사람이 읽기 쉬운 확인 메시지를 만들 때 유용합니다.
Sent at {{date}} {{time}} {{sys.timezone}}
Today is {{sys.dayOfWeekName}}, {{sys.monthName}} {{dayOfMonth}}, {{year}}
Epoch: {{sys.epochSeconds}}
Webhook이나 이메일 트리거에서 받은 데이터와 함께 사용할 수도 있습니다.
{{service}} {{status}} at {{time}} ({{sys.timezone}})
참고 사항
- 모든 시스템 변수는 UTC 기준입니다. 팀이 여러 시간대에 걸쳐 있다면 시간 범위를 설정할 때 시차를 고려하세요.
- 먼저 단순한 시간 구간으로 시작하고, 정상적으로 동작하는 것을 확인한 뒤에 콘텐츠 필터를 더하세요.
- 조건 로직을 설명하는 짧은 설명을 채널에 남겨 두세요(예: "평일 09–17 UTC, 업무 시간 외에는 심각도가 높은 알림만").