ЛС / уход после добавления тега

Анализируя паттерны поведения пользователей, мы недавно начали обращать внимание на случаи, когда пользователи отвечают сами себе. Когда пользователь отвечает на свой собственный исходный пост (OP) в теме, является ли это #bump или #self-solve? Я написал отчет, чтобы

Найти темы, где пользователи отвечают сами себе.
-- Цель: показать темы, где пользователи отвечают сами себе

WITH

SonarSourcers AS (
    SELECT u.id AS user_id
    FROM groups g
    INNER JOIN group_users gu ON g.id=gu.group_id
    INNER JOIN users u ON u.id = gu.user_id
    WHERE g.name='sonarsourcers'
),

tagged_topics AS (
    SELECT tt.topic_id
    FROM topic_tags tt
    JOIN tags t on t.id=tt.tag_id
    WHERE name in ('me-too', 'bump', 'self-solve')
),


-- найти «обычные» темы, созданные обычными пользователями
topic_user AS (
    SELECT id as topic_id, user_id, created_at
    FROM topics
    LEFT JOIN SonarSourcers ss USING(user_id)
    LEFT JOIN tagged_topics tt on topics.id = tt.topic_id
    WHERE ss.user_id IS NULL  -- исключить темы, начатые SonarSourcers
        AND tt.topic_id IS NULL -- исключить темы с тегами me-too, bump или self-solve
        AND visible = TRUE
        AND archived = FALSE
        AND archetype='regular'
        AND deleted_at IS NULL
        AND created_at::DATE > '2023-07-01'
),

-- найти первый ответ, не являющийся OP, в темах пользователей
min_response AS (
    SELECT p.topic_id, tu.created_at, MIN(post_number) as post_number
    FROM posts p
    JOIN topic_user tu USING(topic_id)
    WHERE p.post_type = 1
--        AND p.user_id = tu.user_id
        AND p.post_number > 1
        AND p.hidden = false
        AND p.deleted_at IS NULL
    GROUP BY topic_id, tu.created_at
)

SELECT p.topic_id, p.user_id, mr.created_at::DATE as thread_date
FROM posts p
JOIN min_response mr ON p.topic_id = mr.topic_id AND p.post_number=mr.post_number
LEFT JOIN SonarSourcers ss ON p.user_id=ss.user_id
LEFT JOIN user_badges ub on p.id = ub.post_id and ub.badge_id=110
WHERE ss.user_id IS NULL -- исключить темы, где SonarSourcer первым ответил
    AND ub.user_id IS NULL -- исключить темы, где уже была выдана значок
ORDER BY mr.created_at DESC

Мы регулярно просматриваем результаты, чтобы классифицировать темы, добавляя тег #bump или #self-solve (что удаляет тему из отчета).

Теперь мы хотели бы развить это, отправляя пользователям, которые решили проблему сами, «поддерживающее» личное сообщение с чем-то вроде:

Поздравляем с решением вашей проблемы и благодарим за обмен своими выводами. Ваши коллеги в сообществе обязательно найдут это полезным в будущем. А если вы хотите еще больше поделиться своим опытом, вот как вы можете начать…

Теперь к вопросу: Мы можем найти соответствующих пользователей на основе тегов в их темах. И мы, конечно, можем отправлять эти сообщения вручную (и делаем это до сих пор).

Но есть ли какая-либо автоматизация, которую мы можем внедрить для:

  • выбора пользователей (да, мы можем написать для этого еще один отчет…)
  • отправки сообщения
2 лайка