Extraer la lista de RSVP del evento Pull a través de Data Explorer

Estamos intentando aumentar la asistencia a nuestros eventos encontrando usuarios que han interactuado con contenido similar existente. Con la ayuda del bot de IA, pudimos idear la siguiente consulta.

-- [params]
-- text :keyword
-- int :min_engagements
-- null string :tag_name

WITH keyword_posts AS (
    SELECT
        p.id AS post_id
    FROM
        posts p
    JOIN
        topics t ON t.id = p.topic_id
    LEFT JOIN
        topic_tags tt ON tt.topic_id = t.id
    LEFT JOIN
        tags tg ON tg.id = tt.tag_id
    WHERE
        p.raw ILIKE '%' || :keyword || '%'
        AND (:tag_name is null OR tg.name = :tag_name)
),
user_engagement AS (
    SELECT
        ua.user_id,
        COUNT(DISTINCT ua.target_post_id) AS engaged_posts_count
    FROM
        user_actions ua
    JOIN
        keyword_posts kp ON kp.post_id = ua.target_post_id
    WHERE
        ua.action_type IN (1, 4, 5, 6)
    AND ua.user_id NOT IN (
        SELECT gu.user_id
        FROM group_users gu
        JOIN groups g ON g.id = gu.group_id
        WHERE g.name = 'developer_relations'
    )
    GROUP BY
        ua.user_id
)
SELECT
    ue.user_id,
    ue.engaged_posts_count
FROM
    user_engagement ue
WHERE
    ue.engaged_posts_count >= :min_engagements
ORDER BY
    ue.engaged_posts_count DESC

Estamos dando tiempo a los usuarios para que descubran y confirmen su asistencia a nuestros eventos de forma orgánica, pero a medida que se acerca el evento, queremos enviar invitaciones más específicas. Para ello, necesitamos cruzar la lista de confirmaciones de asistencia existente y excluirlos de la lista de usuarios específicos. ¿Hay alguna forma de acceder a esta lista de confirmaciones de asistencia a través de data-explorer?
La única forma que he encontrado de acceder a esto manualmente es utilizando la opción Exportar en un objeto de Evento:


El problema es que esto genera un archivo comprimido que se me envía por mensaje privado, lo que supongo que no es visible para Data Explorer.

Creo que querrás usar las tablas discourse_post_event_events y discourse_post_event_invitees para esto.

Pude avanzar en lo siguiente con el bot, pero devuelve 0 resultados (a pesar de que puedo ver que más de 30 personas han respondido. La consulta funciona si elimino la declaración WHERE).

-- [params]
-- text :event_url = 'https://developer.sailpoint.com/discuss/t/deploying-the-beyondtrust-password-safe-connector-for-identityiq-with-michel-bluteau/68228'

SELECT
    users.username AS "Username",
    invitees.status AS "RSVP Status",
    invitees.updated_at AS "Last Updated"
FROM
    discourse_post_event_events AS events
JOIN
    discourse_post_event_invitees AS invitees
ON
    events.id = invitees.post_id
JOIN
    users
ON
    invitees.user_id = users.id
WHERE
    events.url = :event_url

¿Qué tal algo como esto:

-- [params]
-- text :keyword
-- int :min_engagements
-- null string :tag_name
-- post_id :event_post

WITH keyword_posts AS (

    SELECT
        p.id AS post_id
    FROM posts p
      JOIN topics t ON t.id = p.topic_id
      LEFT JOIN topic_tags tt ON tt.topic_id = t.id
      LEFT JOIN tags tg ON tg.id = tt.tag_id
    WHERE p.raw ILIKE '%' || :keyword || '%'
      AND (:tag_name is null OR tg.name = :tag_name)
),

user_engagement AS (

    SELECT
        ua.user_id,
        COUNT(DISTINCT ua.target_post_id) AS engaged_posts_count
    FROM user_actions ua
    JOIN keyword_posts kp ON kp.post_id = ua.target_post_id
    WHERE ua.action_type IN (1, 4, 5, 6)
    AND ua.user_id NOT IN (SELECT user_id FROM group_users WHERE group_id = 41)
    GROUP BY ua.user_id
)

SELECT
    ue.user_id,
    ue.engaged_posts_count
FROM user_engagement ue
WHERE ue.engaged_posts_count >= :min_engagements
  AND ue.user_id NOT IN (SELECT user_id FROM discourse_post_event_invitees WHERE post_id = :event_post AND status = 0)
ORDER BY ue.engaged_posts_count DESC

Para el parámetro event_url, acepta la URL del tema pero con el número de publicación al final, por lo que https://developer.sailpoint.com/discuss/t/deploying-the-beyondtrust-password-safe-connector-for-identityiq-with-michel-bluteau/68228/1 (en lugar de la versión del tema que no tiene el /1 al final)

1 me gusta