Skip to content
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

[Tracking] Add email tracking for email deliverability and open/click rates. #48663

Open
17 of 21 tasks
danielrvidal opened this issue Sep 5, 2024 · 32 comments
Open
17 of 21 tasks
Assignees
Labels
Internal Requires API changes or must be handled by Expensify staff Weekly KSv2

Comments

@danielrvidal
Copy link
Contributor

danielrvidal commented Sep 5, 2024

High level design doc

Proposal: Add email tracking for email deliverability and open/click rates.

Problem: Recipients are not reliably clicking on IOUs from senders, and thus never coming into the product. We know a non zero percentage of users ignore the emails we send, but we don’t actually know how bad the problem is. We rely on email notifications to pull viral leads into our product. However, we’re unable to determine if our emails are making this problem bigger by not being engaging and compelling for our users, or even worse not getting delivered. This lack of insight prevents us from optimizing our email communications, resulting in decreased user engagement, decreased understanding of our value, decreased conversion rates, and ultimately hampers our ability to drive sustainable growth.

Solution: Let’s start tracking email deliverability and open/click through rates with all relevant notifications so we know how big the problem is and can a/b test email communications to increase conversion of invited users to active users.

  1. Let’s start by tracking the emails we send for one invite type: IOUs for new users.
  2. We already use custom subject line to trigger an immediate unread message notification to the IOU recipient (added in this PR). Let’s add a tracker in this same place that identifies the type of email.
  • It might look something like $this->parameters['trackingKey'] = 'IOUnewUser'
  1. We’ll send this tracker as a tag to Mailgun
  1. Mailgun is already set up to measure email deliverability and open/click-through rates for all emails. All we need to do now is distinguish an IOU notification vs. any other unread message notification and the tracker accomplishes that
  • Note: Mailgun only covers 50% of our emails. But so long as we track the control and test versions and compare them within that 50% pool, and then wait for statistical significance, we should learn if/which notifications are effective.
  1. We’ll run an inbox placement test which sends the IOU notification to various mail providers and lets us know how often the specific notification is getting caught by spam.
  2. We will get a baseline on the current notification open/click rate and validate this design before we introduce any A/B testing
  • A/b testing the open rate of IOUs for new users using different subject lines will likely be our first test which is why we chose that, but the a/b test will come later.

Tasks

  • Post Proposal (full Problem/Solution statement) in #expensify-open-source
  • Wait at least one full business day, and until the post has a majority (2/3) of positive reactions (👍)
  • Paste Proposal in the space above with a link to the Slack thread
  • Email [email protected] and paste in the Proposal
  • Fill out the High-level overview of the problem, Timeline, and Terminology sections of the Design Doc
  • Email [email protected] (continue the same email chain as before) with the link to your Design Doc
  • Host a pre-design meeting (example) in #expensify-open-source to discuss any necessary details in public before filling out the High-level of proposed solution section.
  • Fill out the High-level of proposed solution section
  • Email [email protected] again with links to the doc and pre-design conversation in Slack
  • Add the DesignDocReview label to get the High-level of proposed solution section reviewed
  • Respond to any questions or concerns and bring up blockers in Slack to get a consensus if necessary
  • Confirm that the doc has the minimum necessary number of reviews before proceeding
  • Host another pre-design meeting in #expensify-open-source to ask for engineering feedback on the technical solution.
  • Fill out the Detailed implementation of the solution and related sections.
  • Re-add the DesignDocReview label to this issue
  • Respond to any questions or concerns and bring up blockers in Slack to get consensus if necessary
  • Confirm that the doc has the minimum necessary number of reviews before proceeding
  • Email [email protected] one last time to let them know the Design Doc is moving into the implementation phase
  • Implement the changes
  • Add regression tests so that QA can test your feature with every deploy (instructions)
  • Send out a follow up email to [email protected] once everything has been implemented and do a Project Wrap-Up retrospective that provides:
    • Summary of what we accomplished with this project
    • What went well?
    • What could we have done better?
    • What did we learn?
@danielrvidal danielrvidal added Daily KSv2 Internal Requires API changes or must be handled by Expensify staff labels Sep 5, 2024
@danielrvidal
Copy link
Contributor Author

danielrvidal commented Sep 5, 2024

Here are the next steps as of now

From there we'll plan the next steps once those are done.

@melvin-bot melvin-bot bot added the Overdue label Sep 9, 2024
@justinpersaud
Copy link
Contributor

Workong on it this week but I'm just trying to wrap up some SOX audit issues that keep coming back from EY + finishing up blocking spam with ChatGPT for #fireroom-05-23-spam

@melvin-bot melvin-bot bot added Overdue and removed Overdue labels Sep 9, 2024
@danielrvidal
Copy link
Contributor Author

We should have the doc out today or tomorrow!

@melvin-bot melvin-bot bot removed the Overdue label Sep 11, 2024
@justinpersaud
Copy link
Contributor

I updated the design doc and filled in the Data Storage / API section

@melvin-bot melvin-bot bot added the Overdue label Sep 16, 2024
@danielrvidal danielrvidal added the Weekly KSv2 label Sep 16, 2024
@melvin-bot melvin-bot bot removed the Overdue label Sep 16, 2024
@danielrvidal danielrvidal added Overdue and removed Daily KSv2 labels Sep 16, 2024
@danielrvidal
Copy link
Contributor Author

High level design doc

The HL is ready for reviews. Please give it a read and ask questions in the doc or room. Assigning the review label now!

Copy link

melvin-bot bot commented Sep 16, 2024

👋 Hello Generalist Track Team - you have been assigned to review this High Level Design Doc. Check out this Stack Overflow for some tips on reviewing a design doc. Once you are done, simply press the Add "Reviewed Doc" comment button in the right hand side K2 panel or follow these instructions.


@techievivek
Copy link
Contributor

I have read and reviewed this Design Doc!

2 similar comments
@iwiznia
Copy link
Contributor

iwiznia commented Oct 3, 2024

I have read and reviewed this Design Doc!

@flodnv
Copy link
Contributor

flodnv commented Oct 7, 2024

I have read and reviewed this Design Doc!

Copy link

melvin-bot bot commented Oct 8, 2024

👋 Hello Generalist Track Team - you have been assigned to review this Detailed Design Doc. Check out this Stack Overflow for some tips on reviewing a design doc. Once you are done, simply press the Add "Reviewed Doc" comment button in the right hand side K2 panel or follow these instructions.


@justinpersaud
Copy link
Contributor

Wrapping up some discussions in the detailed portion

@melvin-bot melvin-bot bot removed the Overdue label Oct 10, 2024
@puneetlath
Copy link
Contributor

I have read and reviewed this Design Doc!

5 similar comments
@garrettmknight
Copy link
Contributor

I have read and reviewed this Design Doc!

@cead22
Copy link
Contributor

cead22 commented Oct 15, 2024

I have read and reviewed this Design Doc!

@CherylWalsh
Copy link
Contributor

I have read and reviewed this Design Doc!

@tylerkaraszewski
Copy link
Contributor

I have read and reviewed this Design Doc!

@chiragsalian
Copy link
Contributor

I have read and reviewed this Design Doc!

@melvin-bot melvin-bot bot added the Overdue label Oct 21, 2024
@justinpersaud
Copy link
Contributor

Implementation for this is in review

@melvin-bot melvin-bot bot removed the Overdue label Oct 21, 2024
@JmillsExpensify
Copy link

I have read and reviewed this Design Doc!

@melvin-bot melvin-bot bot added the Overdue label Oct 29, 2024
@justinpersaud
Copy link
Contributor

Working on some last bit of bugs with the IOU tracking

@melvin-bot melvin-bot bot removed the Overdue label Oct 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Internal Requires API changes or must be handled by Expensify staff Weekly KSv2
Projects
Status: No status
Development

No branches or pull requests