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

Help Center: Support Experience to 50% of ALL users #97119

Merged
merged 8 commits into from
Dec 6, 2024

Conversation

escapemanuele
Copy link
Contributor

@escapemanuele escapemanuele commented Dec 5, 2024

Proposed Changes

This removes the experiment and shows the new Support Experience to 50% of ALL users, so now including wp-admin and the editor.

Testing Instructions

  • Checkout branch
  • yarn start and test it in Calypso.
  • Sandbox Public API, Widget API, and your site
  • Sync to sandbox ( cd apps/help-center -> yarn dev --sync)
  • Verify the HC flag, flags=help-center-experience, is still working on Calypso, WP-Admin, and Editor.
  • Remove the flag from your query params
  • You should try with a user whose last two digits are less than 75. You should see the new experience.
  • You should not be seeing the new experience otherwise.
  • Test atomic site.

@escapemanuele escapemanuele requested a review from a team as a code owner December 5, 2024 14:42
@matticbot matticbot added the [Status] Needs Review The PR is ready for review. This also triggers e2e canary tests and wp-desktop tests automatically. label Dec 5, 2024
@escapemanuele escapemanuele self-assigned this Dec 5, 2024
@matticbot
Copy link
Contributor

matticbot commented Dec 5, 2024

This PR modifies the release build for the following Calypso Apps:

For info about this notification, see here: PCYsg-OT6-p2

  • help-center
  • notifications

To test WordPress.com changes, run install-plugin.sh $pluginSlug hc-experiment-over on your sandbox.

@matticbot
Copy link
Contributor

matticbot commented Dec 5, 2024

Here is how your PR affects size of JS and CSS bundles shipped to the user's browser:

App Entrypoints (~2269 bytes removed 📉 [gzipped])

name                   parsed_size           gzip_size
entry-login                -6823 B  (-0.3%)    -2251 B  (-0.4%)
entry-stepper              -6784 B  (-0.3%)    -2269 B  (-0.4%)
entry-main                 -6715 B  (-0.3%)    -2221 B  (-0.4%)
entry-subscriptions          +43 B  (+0.0%)      +13 B  (+0.0%)
entry-domains-landing        +43 B  (+0.0%)      +13 B  (+0.0%)
entry-browsehappy            +43 B  (+0.0%)      +13 B  (+0.0%)

Common code that is always downloaded and parsed every time the app is loaded, no matter which route is used.

Sections (~35647 bytes added 📈 [gzipped])

name                                parsed_size           gzip_size
signup                                  +7095 B  (+2.5%)    +2673 B   (+4.1%)
update-design-flow                      +7088 B  (+0.6%)    +2387 B   (+0.7%)
link-in-bio-tld-flow                    +7061 B  (+0.4%)    +2310 B   (+0.4%)
site-setup-wg                           +6912 B  (+6.3%)    +2665 B  (+12.2%)
site-setup-flow                         +6912 B  (+6.4%)    +2665 B  (+12.7%)
jetpack-cloud-pricing                   +6836 B  (+0.9%)    +2660 B   (+1.2%)
pages                                   +6831 B  (+1.4%)    +2656 B   (+1.8%)
jetpack-app                             +6831 B  (+1.7%)    +2656 B   (+2.0%)
plugins                                 +6805 B  (+0.2%)    +2360 B   (+0.3%)
staging-site                            +6792 B  (+0.4%)    +2366 B   (+0.5%)
site-tools                              +6792 B  (+0.4%)    +2356 B   (+0.5%)
site-settings                           +6792 B  (+0.4%)    +2378 B   (+0.5%)
site-marketing                          +6792 B  (+0.4%)    +2351 B   (+0.5%)
hosting                                 +6792 B  (+0.4%)    +2356 B   (+0.5%)
plans                                   +6743 B  (+0.5%)    +2318 B   (+0.6%)
jetpack-connect                         +6743 B  (+0.6%)    +2208 B   (+0.7%)
checkout                                +6743 B  (+0.4%)    +2343 B   (+0.5%)
sites-dashboard                         +6738 B  (+0.5%)    +2356 B   (+0.7%)
site-performance                        +6738 B  (+0.4%)    +2350 B   (+0.5%)
site-overview                           +6738 B  (+0.4%)    +2349 B   (+0.5%)
site-monitoring                         +6738 B  (+0.5%)    +2349 B   (+0.6%)
site-logs                               +6738 B  (+0.5%)    +2349 B   (+0.6%)
hosting-features                        +6738 B  (+0.5%)    +2312 B   (+0.6%)
github-deployments                      +6738 B  (+0.5%)    +2365 B   (+0.6%)
with-theme-assembler-flow                 +81 B  (+0.1%)      +10 B   (+0.1%)
update-options-flow                       +81 B  (+0.1%)       +9 B   (+0.1%)
trial-wooexpress-flow                     +81 B  (+0.1%)      +10 B   (+0.1%)
tailored-ecommerce-flow                   +81 B  (+0.1%)      +10 B   (+0.1%)
site-migration-flow                       +81 B  (+0.1%)      +10 B   (+0.1%)
readymade-template-flow                   +81 B  (+0.1%)      +10 B   (+0.0%)
migration-signup                          +81 B  (+0.1%)      +10 B   (+0.1%)
migration-flow                            +81 B  (+0.1%)      +10 B   (+0.1%)
import-flow                               +81 B  (+0.1%)       +9 B   (+0.1%)
hosted-site-migration-flow                +81 B  (+0.1%)      +10 B   (+0.1%)
free-post-setup-flow                      +81 B  (+0.1%)      +10 B   (+0.2%)
entrepreneur-flow                         +81 B  (+0.1%)       +8 B   (+0.0%)
assembler-first-flow                      +81 B  (+0.1%)      +10 B   (+0.1%)
ai-assembler-flow                         +81 B  (+0.1%)       +9 B   (+0.1%)
domains                                   +59 B  (+0.0%)      +11 B   (+0.0%)
write-flow                                +54 B  (+0.0%)       +8 B   (+0.0%)
themes                                    +54 B  (+0.0%)       +8 B   (+0.0%)
settings-security                         +54 B  (+0.0%)       +7 B   (+0.0%)
settings-podcast                          +54 B  (+0.0%)       +7 B   (+0.0%)
settings-performance                      +54 B  (+0.0%)       +8 B   (+0.0%)
settings                                  +54 B  (+0.0%)       +9 B   (+0.0%)
posts-custom                              +54 B  (+0.0%)       +8 B   (+0.0%)
posts                                     +54 B  (+0.0%)       +8 B   (+0.0%)
marketing                                 +54 B  (+0.0%)       +8 B   (+0.0%)
jetpack-cloud-plugin-management           +54 B  (+0.0%)       +7 B   (+0.0%)
earn                                      +54 B  (+0.0%)       +8 B   (+0.0%)
build-flow                                +54 B  (+0.0%)       +8 B   (+0.0%)
activity                                  +54 B  (+0.0%)       +7 B   (+0.0%)
start-writing-flow                        +27 B  (+0.1%)       +8 B   (+0.1%)
reblogging-flow                           +27 B  (+0.4%)       +5 B   (+0.3%)
onboarding-flow                           +27 B  (+0.1%)       +8 B   (+0.1%)
newsletter-flow                           +27 B  (+0.1%)       +9 B   (+0.2%)
new-hosted-site-flow-user-included        +27 B  (+0.4%)       +8 B   (+0.4%)
new-hosted-site-flow                      +27 B  (+0.3%)       +8 B   (+0.3%)
gutenberg-editor                          +27 B  (+0.0%)       +9 B   (+0.0%)
design-first-flow                         +27 B  (+0.1%)       +9 B   (+0.1%)
connect-domain                            +27 B  (+0.1%)      +10 B   (+0.1%)

Sections contain code specific for a given set of routes. Is downloaded and parsed only when a particular route is navigated to.

Async-loaded Components (~2748 bytes added 📈 [gzipped])

name                                                                              parsed_size           gzip_size
async-load-signup-steps-page-picker                                                   +6836 B  (+1.9%)    +2659 B  (+2.3%)
async-load-calypso-my-sites-checkout-modal                                            +6836 B  (+0.6%)    +2660 B  (+0.8%)
async-load-calypso-blocks-editor-checkout-modal                                       +6836 B  (+0.6%)    +2660 B  (+0.8%)
async-load-signup-steps-plans-theme-preselected                                       +6831 B  (+1.8%)    +2656 B  (+2.1%)
async-load-signup-steps-plans                                                         +6831 B  (+1.8%)    +2656 B  (+2.1%)
async-load-purchase-modal-wrapper                                                     +6831 B  (+1.9%)    +2656 B  (+2.3%)
async-load-my-sites-checkout-purchase-modal-is-eligible-for-one-click-checkou...      +6831 B  (+1.9%)    +2656 B  (+2.4%)
async-load-design-blocks                                                                +54 B  (+0.0%)       +8 B  (+0.0%)
async-load-calypso-reader-sidebar                                                       +54 B  (+0.1%)       +6 B  (+0.0%)
async-load-calypso-my-sites-stats-summary                                               +54 B  (+0.1%)       +7 B  (+0.0%)
async-load-calypso-my-sites-current-site-notice                                         +54 B  (+0.1%)       +7 B  (+0.0%)
async-load-calypso-components-web-preview-component                                     +54 B  (+0.0%)       +8 B  (+0.0%)
async-load-calypso-blocks-jitm-templates-sidebar-banner                                 +54 B  (+0.1%)       +8 B  (+0.0%)
async-load-calypso-blocks-jitm-templates-notice                                         +54 B  (+0.1%)       +9 B  (+0.1%)
async-load-calypso-blocks-jitm-templates-default                                        +54 B  (+0.1%)       +7 B  (+0.0%)
async-load-signup-steps-design-picker                                                   +32 B  (+0.1%)      +10 B  (+0.1%)
async-load-automattic-help-center                                                       +18 B  (+0.0%)      +26 B  (+0.0%)

React components that are loaded lazily, when a certain part of UI is displayed for the first time.

Legend

What is parsed and gzip size?

Parsed Size: Uncompressed size of the JS and CSS files. This much code needs to be parsed and stored in memory.
Gzip Size: Compressed size of the JS and CSS files. This much data needs to be downloaded over network.

Generated by performance advisor bot at iscalypsofastyet.com.

@robfelty
Copy link
Contributor

robfelty commented Dec 5, 2024

Why don't we go straight to 100%?

Copy link
Member

@alshakero alshakero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems this logic doesn't run in the editor, would that break chats when people switch from Calypso to the editor?

@escapemanuele escapemanuele changed the title Help Center: Support Experience to 75% of Calypso users Help Center: Support Experience to 50% of ALL users Dec 6, 2024
@escapemanuele escapemanuele changed the title Help Center: Support Experience to 50% of ALL users Help Center: Support Experience to 75% of ALL users Dec 6, 2024
@escapemanuele
Copy link
Contributor Author

Why don't we go straight to 100%?

@robfelty it is just because when we switched to 50% of users, we saw a surge in Zendesk API usage and we had to work a bit to improve how we handle the calls. So I want to see how API usage reacts to this increment first ✌️
But it will be only for a few days.

Copy link
Contributor

@AllTerrainDeveloper AllTerrainDeveloper left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey! I see title and description differs (50% and 75%) I know it's 75% but for the records, we should update the description 😆

Secondly, this is not using any AB test, is that intended? If that's intended, then I'm fine with this code, but if we have set up and experiment to be run in the backend, then this is not the correct way to run an AB test :)

@@ -139,3 +139,10 @@ export const matchSupportInteractionId = (
return foundMatch;
}
};

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this way, but are we sure, we don't do anything in the backend?

I mean, this will enable the frontend, but are we using any different treatment in the backend?

Example, like users being assigned in the backend to use a different version (if so, we can do also in Calypso by adding a new version parameter in the sendMessage hook stating a different version when user is assigned to the experiment)

Secondly, this is not using a real A/B experiment, is just balancing users to be using either one experience or the other. Is that intended?

Copy link
Contributor Author

@escapemanuele escapemanuele Dec 6, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey Daniel!
This is not using an experiment! It simply shows it to 75% of users 👍

to use a different version

Yes, we already do this here :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And thanks, I updated the description!

Copy link
Contributor

@AllTerrainDeveloper AllTerrainDeveloper left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@escapemanuele escapemanuele changed the title Help Center: Support Experience to 75% of ALL users Help Center: Support Experience to 50% of ALL users Dec 6, 2024
@escapemanuele escapemanuele merged commit c13354e into trunk Dec 6, 2024
12 of 13 checks passed
@escapemanuele escapemanuele deleted the hc-experiment-over branch December 6, 2024 15:26
@github-actions github-actions bot removed the [Status] Needs Review The PR is ready for review. This also triggers e2e canary tests and wp-desktop tests automatically. label Dec 6, 2024
Copy link
Member

@alshakero alshakero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works in Calypso, wp-admin, and the editor. It makes sense to keep it at 50% since we include the editor now, which is 40% more Help Center users! This is already a huge bump.

Comment on lines 144 to 147
if ( ! userId || userId % 100 > 75 ) {
return false;
}
return true;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if ( ! userId || userId % 100 > 75 ) {
return false;
}
return true;
return userId && userId % 100 < 75

@escapemanuele
Copy link
Contributor Author

@AllTerrainDeveloper @robfelty, we only shipped to 50% since this PR also introduces the changes to wp-admin and the editor, so already a lot of users.
We'll keep things monitored!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants