-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"New member joined your organization" email #3509
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👏 100% on board with this! Will be very helpful in terms of security & engagement.
I'm thinking we could simplify the workflow a little bit here, let me know your thoughts. Instead of adding another attribute used_at
and keeping all these invite records, we could simply fire a celery task (with proper retry handling) that contains the invite ID for use as campaign_key
. I don't think there's a ton of value on keeping the invite records and adds more stuff to maintain.
In terms of the email here are my thoughts (ignore the missing images, localhost
thing),
- I'm not sure about having the person who created the invite in there, think it may be leaking info out of PostHog, can even be interpreted as a bit accusatory, and the info is available in PostHog if you need it.
- I think the main CTA should be something more valuable on PostHog. For instance, we could prompt users to go to their dashboards to share some of them with the new member. At least I think this should just take you to PostHog home.
- Related to the above, we can change the members list to a secondary CTA. Something like, "To see the current member list for Hogflix Movies click here".
- Visually I think using the avatar thing in there (the one we use in the top navigation bar) would make it even more clear what's going on and who joined.
- I'm thinking the subject line should be "Bob just joined you on PostHog" (i.e. remove the org name), think it might be too much for the subject line, and the line does read confusing at first.
- This is a more general comment for emails, but maybe worth adding something in the footer like: "This email is intended for {email} at Hogflix Movies".
Thanks a lot for the feedback! Finally got to prioritize this, so I addressed the points, added tests, and did some refactoring. Replying to points:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minor comments but lgtm!
) | ||
# Don't send this email to the new member themselves | ||
members_to_email = tuple(organization.members.exclude(email=invitee.email)) | ||
if members_to_email: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think you need either the conversion to tuple
or the check on whether it's truthy. If the queryset is empty, it will simply not add any recipients in the for loop.
{{ invitee.first_name }} (<a href="mailto:{{ invitee.email }}">{{ invitee.email }}</a>) just joined you at {{ organization.name }}. | ||
</p> | ||
<p> | ||
PostHog is a product analytics platform made to help you understand your users.<br/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only comment: I would remove this line. If you're getting this message, you already know what PostHog is.
Changes
These Metabase emails got me inspired, I just could not resist. This adds a similar email that is sent to all organization members when a new member joins from an invite (obviously besides that new member themselves). Two benefits:
Sadly I have problems receiving the email locally despite everything seeming in order… mind taking a look @paolodamico?
Checklist