23일간 로그인하지 않은 사람에게 보내는 이메일 알림
#클로드 3.5 소네트
{
"trigger": {
"schedule": {
"cron": "0 0 * * *" // 매일 자정에 실행
}
},
"input": {
"search": {
"request": {
"indices": ["users-index"],
"body": {
"query": {
"bool": {
"must_not": [
{
"range": {
"last_login": {
"gte": "now-23d"
}
}
}
],
"must": [
{
"term": {
"active": true
}
}
]
}
}
},
"size": 1000
}
}
},
"condition": {
"compare": {
"ctx.payload.hits.total": {
"gt": 0
}
}
},
"actions": {
"email_inactive_users": {
"foreach": "ctx.payload.hits.hits",
"max_iterations": 1000,
"email": {
"to": "{{_source.email}}",
"subject": "Login Reminder",
"body": {
"html": """
<p>Dear {{_source.name}},</p>
<p>We noticed that you haven't logged in to our service for 23 days.
We miss you and hope to see you soon!</p>
<p>Best regards,<br>Your Service Team</p>
"""
}
}
}
}
}
#챗gpt 3.5
PUT _watcher/watch/login_watch
{
"trigger": {
"schedule": {
"daily": { "at": "12:00" } // 매일 낮 12시에 실행
}
},
"input": {
"search": {
"request": {
"indices": ["user-logs"], // 사용자 로그가 저장된 인덱스
"body": {
"query": {
"bool": {
"must_not": {
"range": {
"last_login": { // 마지막 로그인 시간 필드
"gte": "now-23d/d",
"lte": "now/d"
}
}
}
}
}
}
}
}
},
"condition": {
"compare": {
"ctx.payload.hits.total.value": {
"gt": 0 // 하나 이상의 사용자가 검색되면 실행
}
}
},
"actions": {
"email_action": {
"email": {
"to": "{{#ctx.payload.hits.hits}}{{_source.email}}{{/ctx.payload.hits.hits}}", // 사용자 이메일 주소
"subject": "로그인 알림",
"body": "귀하의 계정은 23일 동안 로그인하지 않았습니다."
}
}
}
}