이 게시물(Webhook triggered groups on flags )에 따르면, 일부 이벤트는 트리거된 그룹(Triggered Groups) 필터를 지원하지 않는다고 합니다. 특정 그룹에 속한 사용자가 사용자 프로필을 업데이트할 때마다 알림을 받도록 사용자 이벤트(User Event) 웹훅을 설정하려고 합니다. 그러나 사용하려고 하면 다음과 같은 오류가 발생합니다:
다음과 같은 이유로 이 웹훅을 특정 그룹으로 제한하고 싶습니다:
제 자동화 서비스인 Airtable은 자동화당 호출 횟수에 제한을 두고 있습니다. 수천 명에 달하는 모든 사용자에게 이 웹훅이 발동되면 제한을 초과할 수 있습니다. 제가 대상으로 삼는 그룹에는 전체 사용자의 일부만 포함되어 있습니다.
수신하는 이벤트가 제가 관심 있는 그룹에서 발생한 것인지 확인하고 싶습니다. 제 자동화는 특정 그룹의 사용자 프로필 업데이트만 처리합니다. 그룹별로 필터링할 수 없다면, 제 자동화 로직에 해당 그룹이 아닌 이벤트를 제외하는 로직을 추가해야 합니다.
"User Event"에 대해 Triggered Groups 기능을 활성화할 수 있을까요?
pfaffman
(Jay Pfaffman)
5월 25, 2023, 8:15오후
2
플러그인이 필요할 것 같고, 그렇게 할 거라면 Airtable로 하는 것과 동일한 작업을 수행하는 플러그인을 직접 만들 수도 있을 겁니다(단, Airtable이 최종 목적지이지 수단이 아닌 경우를 제외하고).
group_user_event를 생성하고 trigged_groups를 설정해 보셨나요? 사용자에게는 그룹이 연결되어 있지 않으므로 그룹이 User에 영향을 미칠 것으로 예상되지 않지만, 말씀하시는 것은 UserGroups일 것입니다(아마도).
다음과 같이 시도해 보았습니다:
"User Event"가 사용자가 속해 있는 한 개 이상의 그룹을 기준으로 필터링되기를 바랐습니다. 이 경우, 사용자가 Ambassador 그룹에 속해 있을 때의 사용자 이벤트만 관심이 있습니다.
pfaffman
(Jay Pfaffman)
5월 26, 2023, 5:29오후
4
이미 시도했다고 말씀하셨죠. 저는 다른 것을 시도해 보라고 제안드린 것입니다.
그룹에 대한 사용자 이벤트는 존재하지 않습니다.
group_user 이벤트는 사용자가 그룹에 추가되거나 제거될 때 발생하는 이벤트로, 당신이 관심 있는 부분입니다. 따라서 group_user 이벤트와 당신이 관심 있는 그룹에 대한 그룹 트리거를 생성해 보세요.
실제로 저는 사용자 프로필이 업데이트될 때를 알고 싶고, Ambassador 그룹에 속한 사용자들에만 관심이 있습니다. 사용자 프로필에 대한 다음 세 가지 변경 사항을 알림으로 받고 싶습니다:
이메일 주소 변경
사용자 이름 변경
연결된 GitHub 계정 추가 또는 변경
"User Event"를 통해 이를 얻을 수 있을 것 같지만, 해당 이벤트를 특정 그룹으로 제한할 수 없다는 점은 원하지 않는 과도한 알림을 받을 수 있음을 의미합니다.
pfaffman
(Jay Pfaffman)
5월 26, 2023, 6:34오후
6
아, 당황하셨군요. 죄송합니다. 제가 너무 빨리 읽었거나, 맥락을 끊어서 읽은 것 같습니다.
불행히도 플러그인이 필요할 것 같습니다.
오래 전에 제가 작성한 플러그인입니다. 이 플러그인이 작동하거나 잘 작성된 것이라고 보장할 수는 없지만(당시보다 지금은 플러그인에 대해 훨씬 더 많이 알고 있으니!), 시작점으로 삼을 수는 있을 것입니다. plugin.rb의 웹훅 관련 부분과 직렬화기(serializer)를 추가하면서 GitHub - discourse/discourse-plugin-skeleton: Template for Discourse plugins · GitHub 을 기준으로 시작해 보시길 권합니다.
Contribute to pfaffman/discourse-mailchimp-webhook development by creating an account on GitHub.
Webhook triggered groups on flags 에서 이어서 논의합니다:
해당 기능 구현에 대한 계획이 없나요? 코어 팀이 실제로 권장하는 가장 좋은 우회 방법은 무엇인가요?
저는 OP가 올린 내용과 정확히 같은 것을 찾고 있습니다. (그게 제가 아직 이 작업을 해야 한다는 것을 상기시켜 주었네요)