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

Odie Client: add Zendesk conversation to chat #95330

Merged
merged 18 commits into from
Oct 16, 2024

Conversation

arcangelini
Copy link
Contributor

@arcangelini arcangelini commented Oct 12, 2024

Proposed Changes

  • Add Smooch hook to Odie
  • Add support provider state to manage chat between Odie and Zendesk
  • Add feature flag to hide behind

Why are these changes being made?

We are unifying the support chat experience. This involves merging the AI conversation (odie) and the human conversation (zendesk) into a singular chat window (odie-client). This is a very raw version of the chat experience. There are some known bugs and upgrades that need to be made. We are deploying in this state to allow others to work asynchronously.

Testing Instructions

The main thing to test is for regression. All of the changes should exist behind the feature flag, but we need to make sure that the experience without the flag is the exact same as production. We should also be sure there are no additional requests to Zendesk.

To test the new chat experience add ?flags=help-center-experience to the URL. It would be easiest using the Live Link probably.
Then start a conversation with odie and ask to talk to a human.
Click the Get Support button and you should get a new conversation within the Help Center.

@matticbot
Copy link
Contributor

matticbot commented Oct 12, 2024

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

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

  • blaze-dashboard
  • help-center
  • notifications
  • odyssey-stats
  • wpcom-block-editor

To test WordPress.com changes, run install-plugin.sh $pluginSlug help-center/add-smooch-to-odie on your sandbox.

@matticbot
Copy link
Contributor

matticbot commented Oct 12, 2024

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

App Entrypoints (~55 bytes added 📈 [gzipped])

name           parsed_size           gzip_size
entry-stepper       +208 B  (+0.0%)      +55 B  (+0.0%)
entry-main          +208 B  (+0.0%)      +55 B  (+0.0%)
entry-login         +208 B  (+0.0%)      +55 B  (+0.0%)

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

Sections (~536 bytes added 📈 [gzipped])

name                               parsed_size           gzip_size
site-purchases                          +576 B  (+0.0%)     +116 B  (+0.0%)
purchases                               +576 B  (+0.0%)     +116 B  (+0.0%)
import-hosted-site-flow                 +576 B  (+0.1%)      +98 B  (+0.0%)
email                                   +576 B  (+0.1%)     +111 B  (+0.1%)
domains                                 +576 B  (+0.0%)     +116 B  (+0.0%)
update-design-flow                      +375 B  (+0.0%)     +102 B  (+0.0%)
plans                                   +375 B  (+0.0%)      +82 B  (+0.0%)
link-in-bio-tld-flow                    +375 B  (+0.0%)      +37 B  (+0.0%)
jetpack-connect                         +375 B  (+0.0%)      +82 B  (+0.0%)
jetpack-cloud-pricing                   +375 B  (+0.0%)      +82 B  (+0.0%)
jetpack-cloud-features-comparison       +375 B  (+0.1%)      +82 B  (+0.0%)
copy-site-flow                          +375 B  (+0.1%)      +72 B  (+0.0%)
checkout                                +375 B  (+0.0%)      +82 B  (+0.0%)

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 (~14436 bytes added 📈 [gzipped])

name                                                            parsed_size           gzip_size
async-load-automattic-help-center                                  +25707 B  (+4.5%)   +14080 B  (+8.3%)
async-load-signup-steps-woocommerce-install-transfer                 +375 B  (+1.2%)     +102 B  (+1.0%)
async-load-signup-steps-woocommerce-install-step-store-address       +375 B  (+0.6%)     +102 B  (+0.5%)
async-load-signup-steps-woocommerce-install-step-business-info       +375 B  (+0.4%)     +102 B  (+0.4%)
async-load-signup-steps-woocommerce-install-confirm                  +375 B  (+0.7%)     +102 B  (+0.6%)
async-load-signup-steps-website-content                              +375 B  (+0.3%)     +102 B  (+0.3%)
async-load-signup-steps-user                                         +375 B  (+0.2%)     +102 B  (+0.2%)
async-load-signup-steps-theme-selection                              +375 B  (+0.1%)     +102 B  (+0.1%)
async-load-signup-steps-test-step                                    +375 B  (+1.8%)     +102 B  (+1.4%)
async-load-signup-steps-subscribe-email                              +375 B  (+0.2%)     +102 B  (+0.2%)
async-load-signup-steps-store-features                               +375 B  (+0.9%)     +102 B  (+0.8%)
async-load-signup-steps-starting-point                               +375 B  (+1.0%)     +102 B  (+0.9%)
async-load-signup-steps-social-profiles                              +375 B  (+1.4%)     +102 B  (+1.2%)
async-load-signup-steps-site-picker                                  +375 B  (+0.3%)     +102 B  (+0.2%)
async-load-signup-steps-site-or-domain                               +375 B  (+0.9%)     +102 B  (+0.8%)
async-load-signup-steps-site-options                                 +375 B  (+0.9%)     +102 B  (+0.8%)
async-load-signup-steps-site                                         +375 B  (+0.9%)     +102 B  (+0.8%)
async-load-signup-steps-rewind-were-backing                          +375 B  (+1.7%)     +102 B  (+1.3%)
async-load-signup-steps-rewind-form-creds                            +375 B  (+0.5%)     +102 B  (+0.5%)
async-load-signup-steps-reader-landing                               +375 B  (+1.5%)     +102 B  (+1.3%)
async-load-signup-steps-page-picker                                  +375 B  (+0.1%)     +102 B  (+0.1%)
async-load-signup-steps-p2-site                                      +375 B  (+0.7%)     +102 B  (+0.7%)
async-load-signup-steps-p2-join-workspace                            +375 B  (+1.2%)     +102 B  (+1.0%)
async-load-signup-steps-p2-details                                   +375 B  (+1.5%)     +102 B  (+1.2%)
async-load-signup-steps-p2-confirm-email                             +375 B  (+1.4%)     +102 B  (+1.2%)
async-load-signup-steps-p2-complete-profile                          +375 B  (+0.4%)     +102 B  (+0.3%)
async-load-signup-steps-new-or-existing-site                         +375 B  (+0.9%)     +102 B  (+0.7%)
async-load-signup-steps-intent                                       +375 B  (+1.0%)     +102 B  (+0.8%)
async-load-signup-steps-initial-intent                               +375 B  (+0.4%)     +102 B  (+0.4%)
async-load-signup-steps-hosting-decider                              +375 B  (+1.7%)     +102 B  (+1.4%)
async-load-signup-steps-emails                                       +375 B  (+0.6%)     +102 B  (+0.5%)
async-load-signup-steps-difm-site-picker                             +375 B  (+0.3%)     +102 B  (+0.2%)
async-load-signup-steps-design-picker                                +375 B  (+0.7%)     +102 B  (+0.6%)
async-load-signup-steps-creds-permission                             +375 B  (+0.7%)     +102 B  (+0.6%)
async-load-signup-steps-creds-confirm                                +375 B  (+0.7%)     +102 B  (+0.6%)
async-load-signup-steps-courses                                      +375 B  (+1.1%)     +102 B  (+0.9%)
async-load-signup-steps-clone-start                                  +375 B  (+1.4%)     +102 B  (+1.1%)
async-load-signup-steps-clone-ready                                  +375 B  (+0.7%)     +102 B  (+0.6%)
async-load-signup-steps-clone-point                                  +375 B  (+0.2%)     +102 B  (+0.2%)
async-load-signup-steps-clone-destination                            +375 B  (+1.1%)     +102 B  (+1.0%)
async-load-signup-steps-clone-credentials                            +375 B  (+0.5%)     +102 B  (+0.4%)
async-load-signup-steps-clone-cloning                                +375 B  (+1.4%)     +102 B  (+1.1%)
async-load-calypso-signup-step-wrapper                               +375 B  (+2.5%)     +102 B  (+2.0%)
async-load-calypso-my-sites-checkout-modal                           +375 B  (+0.0%)      +81 B  (+0.0%)
async-load-calypso-components-jetpack-portal-nav                     +375 B  (+0.8%)      +86 B  (+0.6%)
async-load-calypso-blocks-editor-checkout-modal                      +375 B  (+0.0%)      +87 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.

@arcangelini arcangelini changed the title Odie Client: consolidate logic into odie Odie Client: add Zendesk conversation to chat Oct 14, 2024
@arcangelini arcangelini self-assigned this Oct 14, 2024
@arcangelini
Copy link
Contributor Author

arcangelini commented Oct 15, 2024

Issues to address:

  • Make sure we are talking to the right ticket. I have seen inconsistencies in retrieving the wrong conversation and replying to a closed ticket.
  • Make sure we are listening to the right conversation. If the user gets a reply from an HE on ticket B while the chat is open to ticket A the response is picked up.
  • Unify types across Odie and Zendesk. Currently Messages, Chats, and Conversation data types are all slightly different. This is confusing to follow in the logic. We should model the AI data off the Zendesk message/conversation.
  • Potentially add Conversation ID to the OdieContext
  • Find a better way to manage the message array

@arcangelini arcangelini force-pushed the help-center/add-smooch-to-odie branch 2 times, most recently from 03c4b4f to bec817a Compare October 16, 2024 08:50
@arcangelini arcangelini marked this pull request as ready for review October 16, 2024 12:20
@arcangelini arcangelini requested a review from a team as a code owner October 16, 2024 12:20
@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 Oct 16, 2024
@arcangelini arcangelini added the [Feature] Help Center The new integrated Help Center in Calypso that provides support tools on all screens. label Oct 16, 2024
@arcangelini arcangelini merged commit ef6955b into trunk Oct 16, 2024
12 checks passed
@arcangelini arcangelini deleted the help-center/add-smooch-to-odie branch October 16, 2024 14:06
@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 Oct 16, 2024
@a8ci18n
Copy link

a8ci18n commented Oct 16, 2024

This Pull Request is now available for translation here: https://translate.wordpress.com/deliverables/16912202

Some locales (Hebrew, Japanese) have been temporarily machine-translated due to translator availability. All other translations are usually ready within a few days. Untranslated and machine-translated strings will be sent for translation next Monday and are expected to be completed by the following Friday.

Hi @arcangelini, could you please edit the description of this PR and add a screenshot for our translators? Ideally it'd include all of the following strings:

  • AI profile picture
  • Type a message…

Thank you in advance!

@manzoorwanijk
Copy link
Member

This PR seems to have broken the local yarn install - p1729157088800809-slack-C02DQP0FP

@manzoorwanijk manzoorwanijk mentioned this pull request Oct 17, 2024
7 tasks
id="image0_351_8437"
width="120"
height="120"
xlinkHref="data:image/png;base64,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"
Copy link
Member

Choose a reason for hiding this comment

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

This image should be extracted to a .png file. What if I want to see how the PNG image looks like?

Webpack has capabilities (with file-loader and url-loader) to import such a file and convert it into an inline data URL. The output of the build can be identical to the current state, but the source can be managed in a much nicer way where JavaScript is in .js files and images are in .png files.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks for pointing this out @jsnajdr I honestly didn't even inspect the SVG much. This was copied directly from the Figma. We have a follow-up PR to work on the stylings and will take this into account and address this.

@a8ci18n
Copy link

a8ci18n commented Oct 20, 2024

Translation for this Pull Request has now been finished.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Help Center The new integrated Help Center in Calypso that provides support tools on all screens.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants