복잡한 일정은 “크론 표현식 사용”을 클릭해 설정할 수 있습니다. https://docs.dify.ai/en/use-dify/nodes/trigger/schedule-trigger#examples를 참고하세요.
이번에는 자동으로 실행하고 메일로 결과를 보내주는 워크플로우를 만들어보겠습니다. 아침마다 날씨 정보를 메일로 보내주는 워크플로우입니다.
배울 내용
트리거를 사용해 특정 시각에 자동으로 워크플로우 실행하기
Resend로 메일 보내기
환경 변수 설정하기
Resend
Resend는 HTTP로 메일을 보낼 수 있는 API를 제공합니다. 일 100건까지 무료로 발송할 수 있습니다.
가입자 계정 이외의 메일 계정을 대상으로 메일을 발송하려는 경우 DNS 설정을 통해 도메인 소유권을 인증해야 합니다. 해당 과정은 Resend 문서에 자세히 설명되어 있습니다.
API Key 발급
https://resend.com/ 에 접속해 API 키를 발급받습니다.
오른쪽 위 “Log In” 버튼을 클릭하고, 구글 계정이나 이메일을 사용해 계정을 생성합니다.
그리고 Add API Key 버튼을 클릭해 API 키를 생성합니다. 이 키는 외부에 유출되지 않도록 조심히 다뤄야 합니다.
아래의 Send email 버튼을 클릭하면 테스트 메일을 보낼 수 있습니다. 가입한 계정의 메일함에 들어가 보면 Resend에서 보낸 Hello World 메일이 있습니다(보이지 않는 경우 스팸메일함도 확인하세요).
위쪽 Add an API Key 오른쪽의 복사 버튼을 클릭해 API Key를 복사할 수 있습니다.
워크플로우 만들기
일정 트리거 설정
워크플로우를 만들어 줍니다. 자동으로 워프플로우를 실행할 것이므로 시작 노드는 “트리거”의 “일정 트리거”를 선택합니다.
일정 트리거는 예약된 시각에 워크플로우를 실행합니다. 매 45분마다, 매일 오전 11시 30분마다, 매주 월요일 19시마다 등 다양하게 설정할 수 있습니다. 매일 아침 메일을 보내고 싶으므로 “주파수”는 “일일”, “시간”은 “07:00 AM”으로 설정합니다.
💡
날씨 정보 가져오기
이번 튜토리얼에서는 wttr.in의 날씨 정보를 사용하겠습니다.
HTTP 요청 노드를 생성합니다.
API에는 다음 주소를 입력합니다.
https://wttr.in/부산?format=%l:+%C+%t부산을 원하는 위치로 변경하시면 되고, 변경 시에는 브라우저로 접속해 날씨 정보가 정상적으로 나오는지 확인하세요.
이런 식으로 나오면 정상입니다.
메일 보내기
날씨 정보를 메일로 보내보겠습니다.
HTTP 요청 노드를 또 생성합니다.
같은 노드가 두 개 있으니 헷갈립니다. 노드 상세 정보에서 이름을 변경해 줍니다.
두 번째 HTTP 요청 노드의 이름을 “메일 보내기”로 변경했습니다.
curl -X POST 'https://api.resend.com/emails' \
-H 'Authorization: Bearer ••••••••••••••••••••••••••••••••••••' \
-H 'Content-Type: application/json' \
-d $'{
"from": "onboarding@resend.dev",
"to": "Resend 가입한 메일 주소",
"subject": "Hello World",
"html": "<p>Congrats on sending your <strong>first email</strong>!</p>"
}'메일을 보내는 API는 위와 같습니다.
HTTP 요청 노드에 내용을 채웁니다. API 아래의 GET을 POST로 바꾸고, 아래 “to”를 Resend에 가입한 메일 주소로 변경하세요.
“헤더” Authorization에는 Resend의 API Key를 넣으면 되는데, 민감한 정보이므로 환경 변수로 관리하는 방법을 알아보겠습니다.
번호 순서대로 클릭해 RESEND_API_KEY를 만들고 저장합니다.
💡
“값”에 뭘 넣어야 하나요?
https://resend.com/api-keys로 이동합니다.
Create API Key 버튼을 클릭합니다.
Name에 Dify를 입력하고 “Add” 버튼을 클릭합니다.
복사 버튼을 눌러 복사합니다. 이 값이 RESEND_API_KEY 값이 됩니다. Done을 클릭하면 다시 복사할 수 없으니 주의하세요.
메일 보내기 노드의 헤더에 키: Authorization, 값: Bearer RESEND_API_KEY를 입력합니다. RESEND_API_KEY 앞에 Bearer 라는 텍스트를 적어주세요.
💡
인증 처리는 API 설정 부분의 “권한 부여” 버튼을 클릭해서 할 수도 있습니다.
테스트하기
현재는 일정 트리거로 설정된 워크플로우를 수동으로 실행할 수 없습니다. 따라서 일정 트리거의 예약 시각을 현재 시각으로부터 1분 후로 설정해서 테스트하겠습니다.
일정 트리거에 1분 후 시각을 입력하고 게시합니다.
메일이 잘 도착했습니다.
문제 발생 시
워크플로우 왼쪽의 “로그”를 클릭하세요.
로그에 아무것도 없는 경우
워크플로우가 실행되지 않았습니다. 일정 트리거 설정을 확인하세요.
Failure가 있는 경우
로그를 클릭해 보세요.
422 에러: 메일 수신자 설정 오류입니다. Resend에 가입한 메일 주소를 입력하세요.
401 에러: Resend API Key 설정 오류입니다.
작성: 오픈네트웍시스템 변재우