EchobellのUTC条件で時間帯を指定した通知を実現する
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}} {{timezone}}
Today is {{dayOfWeekName}}, {{monthName}} {{dayOfMonth}}, {{year}}
Epoch: {{epochSeconds}}Webhookまたはメールトリガーからのデータと組み合わせる:
{{service}} {{status}} at {{time}} ({{timezone}})注意事項
- すべてのシステム変数はUTCです。チームが複数のタイムゾーンにまたがる場合は、時間範囲設定時にオフセットを考慮してください。
- まずシンプルな時間ウィンドウから始め、動作確認後にコンテンツフィルターを追加してください。
- 条件ロジックを説明する短い説明をチャンネルに残しておきましょう(例:「平日09〜17 UTC、時間外は高重大度のみ」)。