Richiesta per supportare registrazione a basso attrito a evento di persona via mailto e utenti staged

Questa query restituisce tutti gli utenti (incluse le loro email) che inviano un PM / email a una casella di posta di gruppo, escludendo i membri del gruppo.
Il caso d’uso è un modo a basso attrito per consentire alle persone a un evento fisico di creare un utente di staging per il mio sito.

Ho scoperto che a un evento dal vivo, molti potenziali utenti hanno difficoltà a completare il processo di registrazione (che include la digitazione del loro indirizzo email (correttamente), la scelta del nome utente e la generazione della password come minimo. Richiede anche la convalida dell’email e il successivo accesso. Questa è una grande richiesta quando si è in piedi a chiacchierare con le persone / ascoltare un relatore / mangiare / ecc.!

Questo può essere ridotto un po’ con OAuth2, ma c’è ancora del lavoro da fare e anche i meno esperti di tecnologia sembrano avere difficoltà con esso.

La mia soluzione

  1. Creare un gruppo semi-privato con un indirizzo email accattivante (ad esempio, join@mycommunity.url)

  2. Presentare un codice QR che codifica un link mailto: a quell’indirizzo

  3. Mettere le brave persone che gestiranno la successiva adesione di queste persone al gruppo

  4. Aggiungere la seguente query a Data Explorer e concedere l’accesso al gruppo:

-- [params]
-- string :group_name

WITH group_members AS (
    SELECT gu.user_id
    FROM group_users gu
    JOIN groups g ON g.id = gu.group_id
    WHERE g.name = :group_name
),

non_group_users AS (
    SELECT u.id, u.username, ue.email, u.created_at
    FROM users u
    JOIN user_emails ue ON ue.user_id = u.id
    WHERE NOT EXISTS (
        SELECT 1
        FROM group_members gm
        WHERE u.id = gm.user_id
    ) AND ue.primary = TRUE
),

group_messages AS (
    SELECT tg.topic_id
    FROM topic_allowed_groups tg
    JOIN groups g ON g.id = tg.group_id
    WHERE g.name = :group_name
),

group_message_participants AS (
    SELECT gm.topic_id, tau.user_id AS tau_user_id FROM group_messages gm
    JOIN topic_allowed_users tau ON tau.topic_id = gm.topic_id
    JOIN non_group_users ngu ON ngu.id = tau.user_id
)

SELECT ngu.username, ngu.email, ngu.created_at FROM group_message_participants gmp
JOIN non_group_users ngu ON ngu.id = gmp.tau_user_id
GROUP BY ngu.username, ngu.email, ngu.created_at
ORDER BY ngu.username

C’è un po’ di lavoro da fare in seguito, ma almeno catturi i loro indirizzi email in modo affidabile in un modo che richiede solo due o tre clic / tocchi dell’utente!

3 Mi Piace