Power Automate Trigger Condition Formulas Cheat Sheet: 업무 시간 및 Email Filtering을 위한 즉시 사용 가능한 예시
Source: Dev.to
트리거 조건
Power Automate 트리거 조건을 사용하면 트리거가 언제 실행될지 지정할 수 있습니다. 새로운 디자이너에서는 Settings 탭에서, 클래식 디자이너에서는 Settings 메뉴에서 사용할 수 있습니다. 구문은 advanced mode의 “Filter array” 작업과 동일합니다.
트리거 조건을 사용하면 조건이 충족되지 않을 때 흐름이 전혀 실행되지 않으므로 실행 횟수와 리소스 사용량을 줄일 수 있습니다.
Learn more about limits and configuration
날짜 및 시간
날짜‑및‑시간 수식은 대부분 Scheduled 트리거와 함께 사용됩니다.
// Example: add 9 hours to UTC now (adjust for your time zone)
addHours(utcNow(), 9)
요일
이 수식들은 평일, 주말 또는 특정 요일에만 실행되어야 하는 흐름에 유용합니다.
// Only run from Monday to Friday
@and(
greaterOrEquals(dayOfWeek(addHours(utcNow(), 9)), 1),
lessOrEquals(dayOfWeek(addHours(utcNow(), 9)), 5)
)
// Only run on Saturday and Sunday
@or(
equals(dayOfWeek(addHours(utcNow(), 9)), 0),
equals(dayOfWeek(addHours(utcNow(), 9)), 6)
)
// Only run on a specific day (Wednesday)
@equals(dayOfWeek(addHours(utcNow(), 9)), 3)
dayOfWeek 결과: 일요일 = 0, 월요일 = 1, 화요일 = 2, 수요일 = 3, 목요일 = 4, 금요일 = 5, 토요일 = 6.
Note: 공휴일은 트리거 조건으로 처리하기 어렵기 때문에 일반적으로 흐름 내부에서 필터링합니다.
시간
이러한 수식을 사용하여 실행을 근무 시간 내 또는 근무 시간 외로 제한합니다.
// Within business hours (09:00 – 18:00)
@and(
greaterOrEquals(addHours(utcNow(), 9, 'HH:mm'), '09:00'),
lessOrEquals(addHours(utcNow(), 9, 'HH:mm'), '18:00')
)
// Outside business hours
@or(
less(addHours(utcNow(), 9, 'HH:mm'), '08:00'),
greater(addHours(utcNow(), 9, 'HH:mm'), '18:00')
)
시간 문자열은 앞에 0을 포함한 24시간 형식이어야 합니다.
Outlook
이메일 기반 흐름에 대한 트리거 조건.
// Only trigger for a specific sender
@equals(triggerOutputs()?['body/from'], 'sample@example.com')
// Multiple specific senders
@or(
equals(triggerOutputs()?['body/from'], 'sample1@example.com'),
equals(triggerOutputs()?['body/from'], 'sample2@example.com')
)
// Only trigger for a specific domain
@endsWith(toLower(triggerOutputs()?['body/from']), '@example.com')
// Multiple domains
@or(
endsWith(toLower(triggerOutputs()?['body/from']), '@example.com'),
endsWith(toLower(triggerOutputs()?['body/from']), '@example.org')
)
// Subject contains a keyword (e.g., "invoice")
@contains(triggerOutputs()?['body/subject'], 'invoice')
SharePoint & OneDrive
파일 기반 트리거를 특정 확장자 또는 파일명 패턴으로 제한합니다.
// Only for .pdf files
@endsWith(toLower(triggerOutputs()?['body/{FilenameWithExtension}']), '.pdf')
// Filename contains specific text (e.g., "invoice")
@contains(triggerOutputs()?['body/{FilenameWithExtension}'], 'invoice')
테스트
각 조건을 확인하는 빠른 방법은 매분 실행되는 Scheduled 트리거를 사용하고 흐름이 실행되는지 관찰하는 것입니다.
| 시나리오 | 테스트 설정 | 예상 결과 |
|---|---|---|
| 주중만 | “월요일‑금요일” 조건 사용 | 흐름이 월‑금에 실행되고 토‑일에는 실행되지 않음 |
| 주말만 | “토요일‑일요일” 조건 사용 | 흐름이 토‑일에 실행되고 평일에는 실행되지 않음 |
| 업무 시간 | “09:00‑18:00” 조건 사용 | 흐름이 09:00부터 18:00 사이에 실행됨 (현지 조정 시간) |
| 업무 시간 외 | “업무 시간 외” 조건 사용 | 흐름이 09:00 이전 또는 18:00 이후에 실행됨 |
| 특정 발신자 | sample@example.com 발신자 조건 사용 | 해당 주소에서 온 이메일이 도착할 때만 흐름이 트리거됨 |
| 특정 도메인 | @example.com 도메인 조건 사용 | 해당 도메인에서 온 이메일에만 흐름이 트리거됨 |
| 파일 확장자 | SharePoint “파일이 생성될 때” 트리거에 .pdf 조건 사용 | PDF가 업로드될 때만 흐름이 트리거됨 |
| 파일명 포함 | 같은 트리거에 invoice 조건 사용 | 파일명에 “invoice”가 포함된 경우에만 흐름이 트리거됨 |
테스트 중에 흐름을 저장할 때 1분 정도 지연이 발생하는 것을 볼 수 있습니다; 이는 트리거 조건이 흐름이 저장된 후에 평가되기 때문에 정상적인 현상입니다.