사용자 정의 필드 및 연락처로 새 사용자 필터링

안녕하세요,

제 파트너가 호스팅 프로 버전을 시험 사용 중이며, 커뮤니티 멤버들을 초대할 예정입니다. 가입 시 사용자들로 하여금 양식을 작성하도록 하고자 하는데, 아마도 사용자 정의 필드가 포함될 것입니다. 이후에는 가입 시 작성한 내용을 기반으로 해당 사용자에게 연락을 보내고 싶어 합니다.

사용자 정의 필드가 x인 모든 사용자에게 1:1 DM을 보내는 방법이 있을까요? 즉, 각 사용자가 개별적으로 1:1 DM을 받는 형태입니다. 만약 그것이 불가능하다면, 해당 사용자를 찾아서 하나씩 DM을 보낼 수 있는지 궁금합니다.

참고로, 파트너는 사용자 정의 필드가 다른 멤버들에게 노출되는 것을 원하지 않습니다. 이로 인해 해당 필드를 사용자 디렉토리에 추가하는 것을 허용할 수 없을 수도 있습니다.

요약하자면, 제 파트너는 가입 시 답변한 질문을 기준으로 신규 사용자를 그룹으로 나누고 싶어 합니다. 질문의 답변은 사용자 본인과 관리자만 볼 수 있도록 비공개로 유지되어야 합니다. 마지막으로, 1:1 DM이나 이메일을 통해 해당 사용자에게 일괄적으로 연락을 보내고 싶어 합니다. 만약 그것이 불가능하다면, 사용자 정의 필드로 필터링할 수만 있다면 하나씩 연락하는 방식도 괜찮다고 합니다.

도움 주시면 감사하겠습니다. 감사합니다.

크리스

안타깝게도 Pro 플랜에는 데이터 탐색기(data explorer)나 자동화(automation) 플러그인이 포함되어 있지 않습니다. 이 문제의 해결책으로 사용할 수 있을 것 같아서 말씀드립니다.

보통은 데이터 탐색기 쿼리를 통해 사용자 정의 필드 데이터를 추출하는 것을 제안할 것입니다.

그러나 새로운 사용자 정의 필드에 사용자들의 값이 채워지면 /u 페이지에서 필터링을 사용할 수 있어야 합니다.

아직 이 주제를 읽어보셨나요? Creating and configuring custom user fields


자동화 플러그인을 사용하여 예를 들어 보겠습니다. 사용자 필드를 기준으로 사용자를 그룹에 추가하도록 자동화를 구성하면, 항상 해당 그룹에 맞게 정리되어 있습니다. 예를 들어 3개의 옵션이 있는 사용자 정의 필드에 기반한 3개의 그룹을 만들 수 있으며, 이 경우 데이터 탐색기 쿼리(자동 또는 수동)를 사용하여 해당 그룹 멤버의 이메일 주소를 별도의 목록으로 추출하거나(또는 자동화를 사용하여 그룹 멤버에게 DM을 전송) 사용할 수 있습니다.

그룹 멤버의 이메일 주소를 가져오는 데이터 탐색기 쿼리
-- [params]
-- string :group_name

SELECT 
    u.username, 
    ue.email
FROM users u
JOIN group_users gu ON gu.user_id = u.id
JOIN groups g ON g.id = gu.group_id
JOIN user_emails ue ON ue.user_id = u.id
WHERE g.name = :group_name
  AND ue.primary = true
ORDER BY u.username

감사합니다. /u에서 필터링을 하면 다른 사용자들도 동일한 작업을 수행하여 비공개로 유지되어야 하는 정보를 노출시킬 수 있는 것 아닌가요?

네, 프로 플랜에서 내부 관리자 프로세스에 사용자 정의 필드를 활용하려는 사용 사례는 어려울 것 같습니다. 관리자나 스태프를 제외한 모든 사용자에게 해당 열을 숨기기 위해 CSS를 사용할 수는 있지만, 브라우저 개발자 콘솔에 대해 아는 스마트한 사용자는 이를 우회할 수 있습니다.


수정: API를 사용해 이 작업을 수행할 수 있을 것 같습니다 (Moin님, 떠올리게 해 주셔서 감사합니다):