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

Notification reminder of impending Purple expiration #1973

Closed
alltheseas opened this issue Feb 1, 2024 · 18 comments
Closed

Notification reminder of impending Purple expiration #1973

alltheseas opened this issue Feb 1, 2024 · 18 comments
Assignees
Labels
notifications purple Damus purple membership

Comments

@alltheseas
Copy link
Collaborator

alltheseas commented Feb 1, 2024

user story

As a purple subscriber, I want to be notified a few days before my Purple subscription expires, so that I can be reminded to keep my support of Damus current.

acceptance criteria

  1. Three (3) days before, purple subscriber is reminded of impending purple expiration
  2. Two (2) days before, purple subscriber is reminded of impending purple expiration
  3. One (1) day before, purple subscriber is reminded of impending purple expiration
  4. Bonus points: ez-mode deep-link to Purple checkout re-subscribe included with notification

questions

-(how) is the flow different for IAP vs website subscribers?

h/t Yegor

@alltheseas alltheseas added purple Damus purple membership notifications labels Feb 1, 2024
@alltheseas
Copy link
Collaborator Author

yeah we will have push notifications soon so we could use those as a reminder if you paid with lightning. Alternatively we could do something like “looks like your subscription is expiring soon, renew?” When you open the app

@jb55

@alltheseas alltheseas added this to the purple follow on milestone Feb 5, 2024
@alltheseas
Copy link
Collaborator Author

Do not use DMs to DM unreliability, and security/impersonation risk.

Get notifications to work

@alltheseas
Copy link
Collaborator Author

@danieldaquino likes notification red dot as reminder mechanism. See mockup here: #2007 (comment)

@danieldaquino
Copy link
Contributor

@alltheseas @jb55, quick thought: I can make the notifications appear 3, 2, and 1 day(s) before the expiration like mentioned in the acceptance criteria. However, would it make sense to make that schedule to be 7, 3, and 1 day(s) before expiration?

I think both schedules would work (I am ok either way), but I feel like the 7-3-1 schedule might feel slightly more natural (my personal opinion). Are there any preferences or reasons to use the 3-2-1 schedule?

@danieldaquino
Copy link
Contributor

@jb55, @alltheseas, I implemented two link methods for the notification. What are your thoughts on each method?

Before clicking Right after clicking
Deep linking Simulator Screenshot - iPhone 15 Pro - 2024-02-26 at 23 13 13 Simulator Screenshot - iPhone 15 Pro - 2024-02-26 at 23 13 06
In-app linking Simulator Screenshot - iPhone 15 Pro - 2024-02-26 at 23 18 46 Simulator Screenshot - iPhone 15 Pro - 2024-02-26 at 23 18 52

I also sent a "Request for comment" draft patch (with both methods implemented) here: https://groups.google.com/a/damus.io/g/patches/c/E0lSiMzLg8U

@alltheseas
Copy link
Collaborator Author

@alltheseas @jb55, quick thought: I can make the notifications appear 3, 2, and 1 day(s) before the expiration like mentioned in the acceptance criteria. However, would it make sense to make that schedule to be 7, 3, and 1 day(s) before expiration?

I think both schedules would work (I am ok either way), but I feel like the 7-3-1 schedule might feel slightly more natural (my personal opinion). Are there any preferences or reasons to use the 3-2-1 schedule?

7-3-1 is good

@alltheseas
Copy link
Collaborator Author

@jb55, @alltheseas, I implemented two link methods for the notification. What are your thoughts on each method?

| | Before clicking | Right after clicking |

|--------|--------|--------|

| Deep linking | Simulator Screenshot - iPhone 15 Pro - 2024-02-26 at 23 13 13 | Simulator Screenshot - iPhone 15 Pro - 2024-02-26 at 23 13 06 |

| In-app linking | Simulator Screenshot - iPhone 15 Pro - 2024-02-26 at 23 18 46 | Simulator Screenshot - iPhone 15 Pro - 2024-02-26 at 23 18 52 |

I also sent a "Request for comment" draft patch (with both methods implemented) here: https://groups.google.com/a/damus.io/g/patches/c/E0lSiMzLg8U

Is the logic that if user is subscribed using apple IAP/ fiat they will be lead in app, and if subscribed via sats to the website?

@alltheseas
Copy link
Collaborator Author

Prompt from signal fyi

image

@alltheseas
Copy link
Collaborator Author

On the purple in app view, should there be a renew IAP CTA?

@danieldaquino
Copy link
Contributor

Is the logic that if user is subscribed using apple IAP/ fiat they will be lead in app, and if subscribed via sats to the website?

@alltheseas, I apologize I might not have been clear, I meant it as a question on which way works best. I personally prefer the one that takes the user straight to a verified checkout page (it is easier for the user), I just worry about whether that would be acceptable for Apple and their AppStore guidelines.

As for the difference in flow between IAP/LN users, this notification is almost exclusively aimed at LN users, since IAP users will get their product renewed automatically (they won't get this notification)

@danieldaquino
Copy link
Contributor

On the purple in app view, should there be a renew IAP CTA?

Currently, while they are active we show them that their account is managed externally (through the website). When LN users' accounts expire they will be shown the option to purchase via IAP.

I could change the logic to make the IAP buttons show up a few days before expiry, or when the user comes from this notification. @alltheseas, @jb55 what do you think is the best way?

@alltheseas
Copy link
Collaborator Author

personally prefer the one that takes the user straight to a verified checkout page (it is easier for the user), I just worry about whether that would be acceptable for Apple and their AppStore guidelines.

Agree, let's try unless Will has a strong view.

As for the difference in flow between IAP/LN users, this notification is almost exclusively aimed at LN users, since IAP users will get their product renewed automatically (they won't get this notification)

Makes sense, didn't register fiat is auto resubscribe til I read your explanation.

@alltheseas
Copy link
Collaborator Author

Currently, while they are active we show them that their account is managed externally (through the website). When LN users' accounts expire they will be shown the option to purchase via IAP.

I could change the logic to make the IAP buttons show up a few days before expiry, or when the user comes from this notification. @alltheseas, @jb55 what do you think is the best way?

In the case of expiring website subscriptions we could leave as notification only for now. If they have subscribed previously on the site, they can do so again. If I made a purchase a certain way, I would expect the same as user.

If needed we can modify IAP buttons showing early as a follow on, as not to add more complexity and scope prior to the appstore push.

@danieldaquino
Copy link
Contributor

In the case of expiring website subscriptions we could leave as notification only for now. If they have subscribed previously on the site, they can do so again. If I made a purchase a certain way, I would expect the same as user.

I see, so just display the notification, but not add any actions when they click?

If needed we can modify IAP buttons showing early as a follow on, as not to add more complexity and scope prior to the appstore push.

Good point

@alltheseas
Copy link
Collaborator Author

In the case of expiring website subscriptions we could leave as notification only for now. If they have subscribed previously on the site, they can do so again. If I made a purchase a certain way, I would expect the same as user.

I see, so just display the notification, but not add any actions when they click?

Do you think apple will catch a deeplink to the website for expiring website subscriptions?

@danieldaquino
Copy link
Contributor

@alltheseas, @jb55, I will go for the in-app screen method for now. Because:

  • It's safer that way in terms of Apple guidelines
  • The in-app screen already shows them that they can manage their billing on the website
  • Users who bought through the website already know they can buy it from the website again
  • We can always change this later (I will leave the code for deep-linking in there to make switching just a matter of flipping a value)

@jb55, @alltheseas, please let me know if you want to revert this decision

@danieldaquino
Copy link
Contributor

Pushed code changes to the release branch (v1.7-madeira-release)

Sent patches via email to get it reviewed before merging to master

@jb55
Copy link
Collaborator

jb55 commented Feb 29, 2024 via email

@jb55 jb55 closed this as completed in 3569919 Feb 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
notifications purple Damus purple membership
Projects
Status: No status
Development

No branches or pull requests

3 participants