Cloudkibo / KiboPush

0 stars 1 forks source link

simplifying individual signup #1814

Closed sojharo closed 6 years ago

sojharo commented 6 years ago

dayem and I had discussed on simplification of individual account signup and I am thinking through the design now on how we should do this and what it would take. I would open issues for this. He says that in order to make the product viral we need to reduce sign up steps for individual account. Team account can have these steps as it is something a person would think before creating. Individual sign up should be quick.

sojharo commented 6 years ago

I have thought through this and we can do this with help of cookies. One problem with cookies is that cookies are not supported on native mobile applications. This basically is having two authentication systems. Facebook auth for individual account and local auth (email and password) for team account.

There is one problem in this. So if we ever think to go for kibopush mobile version then we would have to think of any workaround or just ask user that you can't signup on mobile application but you can just login on mobile application.

There would be some tasks to be done on both server and client side for this change. Most of the task would be done on server side and on client side we would just change the login screen for individual account. Following tasks will require work:

  1. Server side authentication change for individual (check facebook method)
  2. client Side authentication screen and logic change (i have discussed with dayem)
  3. Reopen #1304 as it would require some adjustments for individual and team accounts
  4. Reopen #1598 as it would require some adjustments for individual and team accounts
  5. Rework on #1355 as it would require some adjustments for individual and team accounts
  6. Client after individual sign up should ask for email address (or we ask this in settings screen)
  7. Server should have endpoint to save this email address (emails are mandatory so that we can contact our customers, other option is we force them to subscribe to our page for news, we can also use our facebook group to inform our users)
  8. Settings screen should not show the Change password option for individual account now
  9. Remove validations on server side as it doesn't allow new user record on db level if it doesn't have password, email and workspace information
  10. It is not easy for us to allow individual user account to upgrade to team account (Think later about this)

This would save our existing customers on production and they will not have to migrate.

Alternate Solution:

In this, we would use same email auth for both individual and team account which we are doing on our current staging code. This would require migration of current customers on production. Basically, what we need for marketing and simplification is reducing the number steps required for signup of individual. Currently, on both individual and team we have following steps:

  1. Fill Signup form
  2. Connect facebook account (optional for team account buyer)
  3. Verify email address
  4. Connect facebook pages (optional for team account buyer)

Verify email address screen is the show blocker on both types of accounts. It stops the signup process and asks the user to go and verify the email address first. After this, he is able to use the product.

So what we can do is that we should not show the email verification screen immediately after the signup for both team and individual account. Let the user use the system without verifying email. However, on important screens like Settings and others we should ask user that your email is not verified and you can't continue on this screen. First verify your email address. This will reduce our signup steps to:

  1. Fill signup form
  2. Connect Facebook account
  3. Connect facebook pages

Point 2 is mandatory for user else he won't be able to continue with software.

jekram commented 6 years ago

Why change the team process? It is working and that is the same process used by hundreds of application. In the future team buyer would be asked for credit card and other information.

sojharo commented 6 years ago

Which change you are referring to in my comment? I have discussed changes in individual process only. Let me read again I don't think any change is required in the team process.

jekram commented 6 years ago

Before we make any change I would like to see the current and proposed process. Would like to understand number of steps user has to enter for signup.

sojharo commented 6 years ago

I think you are referring to this point:

So what we can do is that we should not show the email verification screen immediately after the signup for both team and individual account.

I thought to make the signup simple for both team and individual by moving the email verification screen to only certain screens. We can leave the team process as it is and only do this for individual account. This is for alternate solution and is quickest because all our current staging code is easy to work with this alternate solution

sojharo commented 6 years ago

Before we make any change I would like to see the current and proposed process. Would like to understand number of steps user has to enter for signup.

I have proposed two solutions above. First one is exactly what dayem wants to do. I have listed tasks that should be done for that. Other is alternate solution that is very easy to do with what code we already have in staging.

Current individual account signup steps:

  1. Fill Signup form
  2. Connect facebook account
  3. Verify email address
  4. Connect facebook pages

Steps in first solution discussed above (for individual account only):

  1. Sign up using facebook account
  2. Connect Facebook pages

Steps in alternate solution which decreases changes in current staging code but requires migration (for individual account only)

  1. Fill Signup form
  2. Connect facebook account
  3. Connect facebook pages

One step less here is of verification screen which is the show stopper and doesn't let use the application until email is verified. We can just put this email verification on certain parts of application i.e. on settings screen it would ask please verify your screen.

Above are two proposed solutions. I have discussed them in details in this comment https://github.com/Cloudkibo/KiboPush/issues/1814#issuecomment-362229154 above.

jekram commented 6 years ago

@sojharo @dayemsiddiqui

I have more thought to it. We need to have userd /password for a number of reasons:

  1. We need to have mobile and we cannot depend on cookies. More and more people are using Mobile not just from the phone but also from tablet and iPad.
  2. In the long term besides Facebook Messenger, we would be doing WhatsApp for sure or some other service. So we would be better off with userid /password.
  3. We would be able to capture email address for Marketing and operational communication.
sojharo commented 6 years ago

Ok, so alternate solution to simplify setup would work here.

  1. Fill Signup form
  2. Connect facebook account
  3. Connect facebook pages

Email verification screen would be shown later in other parts of application. I would work on this today.

sojharo commented 6 years ago

I have applied the alternate solution to the individual account. On sign up, the individual account user would not be blocked by email verification screen, he would be able to use the system and on settings screen he would be asked that your email address is not verified.

The following screen will be shown to individual account on settings page if he has not verified email. We can show this different places as well.

screen shot 2018-02-02 at 4 01 18 pm
jekram commented 6 years ago

Thnaks