Pull Event RSVP-Liste über Data Explorer

Wir versuchen, die Teilnahme an unserer Veranstaltung zu steigern, indem wir Benutzer finden, die mit ähnlichen bestehenden Inhalten interagiert haben. Mit Hilfe des KI-Bots konnten wir die folgende Abfrage ausarbeiten.

-- [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

Wir geben den Benutzern Zeit, unsere Veranstaltungen organisch zu entdecken und sich anzumelden, aber wenn die Veranstaltung näher rückt, möchten wir gezieltere Einladungen versenden. Dazu müssen wir die bestehende RSVP-Liste abgleichen und sie aus der Liste der Zielbenutzer ausschließen. Gibt es eine Möglichkeit, über data-explorer auf diese RSVP-Liste zuzugreifen?
Der einzige Weg, den ich gefunden habe, um manuell darauf zuzugreifen, ist die Verwendung der Export-Option für ein Event-Objekt:


Das Problem ist, dass dies eine gezippte Datei generiert, die per PM an mich gesendet wird, was meiner Annahme nach für Data Explorer nicht sichtbar ist.

Ich glaube, Sie werden die Tabellen discourse_post_event_events und discourse_post_event_invitees dafür verwenden wollen.

Ich konnte mit dem Bot Folgendes erreichen, aber er gibt 0 Ergebnisse zurück (obwohl ich sehen kann, dass 30+ Personen geantwortet haben. Die Abfrage funktioniert, wenn ich die WHERE-Anweisung entferne.

-- [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 "Benutzername",
    invitees.status AS "RSVP-Status",
    invitees.updated_at AS "Zuletzt aktualisiert"
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

Wie wäre es mit so etwas:

-- [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

Für den Parameter event_url akzeptiert er die Topic-URL, aber mit der Beitragsnummer am Ende, also https://developer.sailpoint.com/discuss/t/deploying-the-beyondtrust-password-safe-connector-for-identityiq-with-michel-bluteau/68228/1 (anstelle der Topic-Version, die kein /1 am Ende hat).

1 „Gefällt mir“