Expensify / App

Welcome to New Expensify: a complete re-imagination of financial collaboration, centered around chat. Help us build the next generation of Expensify by sharing feedback and contributing to the code.
https://new.expensify.com
MIT License
3.33k stars 2.76k forks source link

[$250] Update beginningOfChatHistory for certain cases with fresh copy #47427

Open jamesdeanexpensify opened 1 month ago

jamesdeanexpensify commented 1 month ago

Problem

New users often write in confused about how to use New Expensify. Key points of confusion still seem to be “How do I submit expenses?” or “How do I use this?” or are just unclear why they are looking at a chat platform. They then become frustrated or just leave us all together.

Solution

Update the beginningOfChatHistory copy in all rooms to be clearer and more concise, as well as remove any noise around features that don’t lead to conversion.

P/S is also here in Slack.

Copy updates

Type
Current example Proposed copy
Concierge This is the beginning of your chat with Concierge. This chat is with Concierge. Ask questions and get 24/7 realtime support.
DM (aka beginningOfChatHistory) This is the beginning of your chat with Daniel Vidal. You can also use the + button to split an expense, submit an expense, pay expenses, or assign a task! This chat is with [recipient]. Use the + button to split, submit, or pay an expense.
Group chat (can’t find this in the code) This is the beginning of your chat with Anu, Daniel and James. This chat is with [recipients that don't include you]. Use the + button to split an expense.
Workspace chat (aka beginningOfChatHistoryPolicyExpenseChat) Collaboration between James Dean (Marketing/PR) and NewDot Test - Expensify US starts here! 🎉 This is the place to chat, submit expenses and settle up. You can also use the + button to split an expense, submit an expense, track an expense, or assign a task! This is where [submitter] will submit expenses to the [workspaceName] workspace. Just use the + button.
#announce room (aka beginningOfChatHistoryAnnounceRoom) Collaboration between all Expensify's Workspace 6 members starts here! 🎉 Use #announce to chat about anything Expensify's Workspace 6 related. This chat is with everyone in the [workspaceName] workspace. Use it for the most important announcements.
#admins room (aka beginningOfChatHistoryAdminRoom) Collaboration among james@expensify.com Small Business Expo admins starts here! 🎉 Use #admins to chat about topics such as workspace configurations and more. This chat is with [workspaceName] workspace admins. Use it to chat about workspace setup and more.
Domain room (aka beginningOfChatHistoryDomainRoom) Collaboration with everyone at #expensify.com starts here! 🎉 Use #expensify.com to chat with colleagues, share tips, and ask questions. This chat is with all Expensify members on the [domain] domain. Use it to chat with colleagues, share tips, and ask questions.
User-created room (aka beginningOfChatHistoryUserRoom) Collaboration starts here! 🎉 Use this space to chat about anything #bravo-clubhouse related. This chat room is for anything #[roomName] related. It was created by [displayName].
Invoice room (aka beginningOfChatHistoryInvoiceRoom) Collaboration starts here! 🎉 Use this room to view, discuss, and pay invoices. This chat is for invoices between [invoice sender/bill payer workspaceName] and [invoice/paid bill receiver workspaceName OR displayName]. Use the + button to send an invoice.

Important

We need to make sure that the beginningOfChatHistory never gets replaced by a custom roomDescription if someone sets one. The roomDescription will instead be included/updated elsewhere (in the subheader).

Upwork Automation - Do Not Edit
Issue OwnerCurrent Issue Owner: @ikevin127
danielrvidal commented 1 month ago

@jamesdeanexpensify, what do you think is still needed for this? Just to get an engineer to pick it up or do we need to keep fleshing out the proposal?

jamesdeanexpensify commented 1 month ago

Just left you a comment in the doc, and then it would be great to get an engineer to pick it up and ask any remaining questions. I just thought you wanted to wait to house it under the F1 deadline.

jamesdeanexpensify commented 3 weeks ago

@danielrvidal I think this is ready for an engineer whenever!

danielrvidal commented 3 weeks ago

@jamesdeanexpensify now that this is in a whatsnext room/project, I imagine you should be able to recruit an engineer. I'm going to drop an update in the room but I think you should be good to go.

jamesdeanexpensify commented 3 weeks ago

Posted here as a next step!

jamesdeanexpensify commented 1 week ago

Renewed the convo here.

melvin-bot[bot] commented 1 week ago

Job added to Upwork: https://www.upwork.com/jobs/~021831355584440701165

melvin-bot[bot] commented 1 week ago

Triggered auto assignment to Contributor-plus team member for initial proposal review - @ikevin127 (External)

mariapeever commented 1 week ago

Proposal

Please re-state the problem that we are trying to solve in this issue.

Update beginningOfChatHistory for certain cases with fresh copy #47427

What is the root cause of that problem?

Current copy is not clear enough for new Expensify users.

What changes do you think we should make in order to solve the problem?

Update the current copy to match the proposed copy. Updates to the language file (en.ts):

https://github.com/Expensify/App/blob/dc1407a56bfe70ee72e471c3733da9faa552590c/src/libs/SidebarUtils.ts#L593

What alternative solutions did you explore? (Optional)

N/A
nkdengineer commented 1 week ago

Proposal

Please re-state the problem that we are trying to solve in this issue.

Update beginningOfChatHistory for certain cases with fresh copy

What is the root cause of that problem?

This is a new feature

What changes do you think we should make in order to solve the problem?

https://github.com/Expensify/App/blob/cb2bdf28addd44c3f0c265f55b8df948c2f9cfc8/src/components/ReportWelcomeText.tsx#L178

https://github.com/Expensify/App/blob/cb2bdf28addd44c3f0c265f55b8df948c2f9cfc8/src/languages/en.ts#L603

https://github.com/Expensify/App/blob/cb2bdf28addd44c3f0c265f55b8df948c2f9cfc8/src/languages/en.ts#L613

OPTIONAL: We can remove or assign a task text.

beginningOfChatHistoryPolicyExpenseChatPartOne: 'This is where ',
beginningOfChatHistoryPolicyExpenseChatPartTwo: ' will submit expenses to the ',
beginningOfChatHistoryPolicyExpenseChatPartThree: ' workspace. Just use the + button.',

https://github.com/Expensify/App/blob/cb2bdf28addd44c3f0c265f55b8df948c2f9cfc8/src/languages/en.ts#L604-L607

https://github.com/Expensify/App/blob/cb2bdf28addd44c3f0c265f55b8df948c2f9cfc8/src/languages/en.ts#L595-L599

https://github.com/Expensify/App/blob/cb2bdf28addd44c3f0c265f55b8df948c2f9cfc8/src/languages/en.ts#L593-L594

https://github.com/Expensify/App/blob/cb2bdf28addd44c3f0c265f55b8df948c2f9cfc8/src/languages/en.ts#L600-L601

For all translations, we should update the all places that we use this translation if the param is changed.

We need to make sure that the beginningOfChatHistory never gets replaced by a custom roomDescription if someone sets one. The roomDescription will instead be included/updated elsewhere (in the subheader).

We already have handled this in getRoomWelcomeMessage function

What alternative solutions did you explore? (Optional)

AsfandSoomro commented 1 week ago

Proposal

Please re-state the problem that we are trying to solve in this issue.

Update beginningOfChatHistory for certain cases with fresh copy

What is the root cause of that problem?

Chat header message is not clear to new users

What changes do you think we should make in order to solve the problem?

First of all we need to re-code all beginningOfChatHistory(all) data in reportActionsView object in a clear and consistent way. They all need to accept arguments if they need dynamic message so we can pass (e.g workspace name, recipient name, or multiple recipients names etc) rather than the current PartOne PartTwo PartThree different keys. This will be more flexible and easier to change the message in future. Something like this: welcomeToRoom: ({roomName}: WelcomeToRoomParams) => `Welcome to ${roomName}!`,

Files that will be affected

My approach to solve the problem

Similar approach in all others. This way I think messages will be more flexible and easy to change in future as well.

P.S I have only explored Expensify code now and have not contributed to Open Source before. Still reading the contribution.md file

What alternative solutions did you explore? (Optional)

melvin-bot[bot] commented 1 week ago

📣 @AsfandSoomro! 📣 Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork. Please follow these steps:

  1. Make sure you've read and understood the contributing guidelines.
  2. Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
  3. Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
  4. Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details. Screen Shot 2022-11-16 at 4 42 54 PM Format:
    Contributor details
    Your Expensify account email: <REPLACE EMAIL HERE>
    Upwork Profile Link: <REPLACE LINK HERE>
AsfandSoomro commented 1 week ago

Contributor details Your Expensify account email: asfandsoomro13@gmail.com Upwork Profile Link: https://www.upwork.com/freelancers/~0184a98fdca35057cc

melvin-bot[bot] commented 1 week ago

✅ Contributor details stored successfully. Thank you for contributing to Expensify!

ikevin127 commented 1 week ago

Given this is a copy update issue I'd say we can go with the first come, first served method here and assign @mariapeever based on the posted proposal given the RCA is obvious and the solution is straight-forward.

🎀👀🎀 C+ reviewed

melvin-bot[bot] commented 1 week ago

Triggered auto assignment to @roryabraham, see https://stackoverflow.com/c/expensify/questions/7972 for more details.

melvin-bot[bot] commented 1 week ago

📣 @ikevin127 🎉 An offer has been automatically sent to your Upwork account for the Reviewer role 🎉 Thanks for contributing to the Expensify app!

Offer link Upwork job

melvin-bot[bot] commented 1 week ago

📣 @mariapeever You have been assigned to this job! Please apply to the Upwork job and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑‍💻 Once you apply to this job, your Upwork ID will be stored and you will be automatically hired for future jobs! Keep in mind: Code of Conduct | Contributing 📖

ikevin127 commented 1 week ago

👋 Hey @mariapeever, please leave a comment letting us know when we can expect a PR to be ready for review 🧑‍💻

Otherwise, if there's no response in ~48h (2 days) from time of assignment (https://github.com/Expensify/App/issues/47427#issuecomment-2332987965, 1 day already passed) we'll have to reassign the task to the contributor next in line, as per the guidelines (if I recall correctly).

[!note] If you have any questions regarding your first assignment, how does this work, or any other information feel free to ask.

@roryabraham Please correct me if the 'no response' rule has different timelines as I wasn't able to find info on this specific case.

mariapeever commented 6 days ago

@ikevin127 I have submitted a proposal on Upwork and have been waiting for it to get approved. I can submit a PR by the end of today.

ikevin127 commented 6 days ago

@mariapeever Thanks for getting back. I understand the worry of contributing for the first time, allow me to explain how the process works:

  1. Contributor posts proposal.
  2. Proposal is selected (your case here).
  3. If contributor contributes for the first time, they have to apply to the Upwork job because they are not in the offer sending automation system yet (first job).
  4. Contributor opens PR, pr is reviewed and if all good - merged.
  5. PR will be deployed to staging and QA runs tests.
  6. If no issues are reported, PR gets deployed to production ~1-2 days after staging deploy.
  7. As soon as PR hits production, a 7-day regression period ensues and a HOLD for Payment {date} is added to the issue's title.
  8. If no issues are reported at the end of the 7-day regression period, a BZ tram member will issue the payment for both Contributor and C+ | so you will get paid, no worries - it just has to follow this process.

[!note] In case at any stage of the deploy process, a regression is found coming from the deployed PR changes, the issue's bounty will be cut in half (-50%) for both controbutor and C+, and the regression period extends to when the follow-up fix PR is deployed to production.

mariapeever commented 6 days ago

@ikevin127 Thanks! Does this mean that I can create a PR before my Upwork proposal has been approved?

ikevin127 commented 6 days ago

@mariapeever For sure, as mentioned - when the payment is due date, the BZ team member which handles the payments will make sure you accept your offer and you get paid.

Given the whole deploy and 7-days regression period process can take several days, the sooner the PR is opened, the better - but keep in mind that rushing to open the PR can lead to regressions if not tested thoroughly.

ikevin127 commented 3 days ago

@mariapeever Any updates on the PR or whether you plan on working on this issue ? Asking because there's been 7+ days from assignment and we're looking at fixing this issue. Please let us know!

ikevin127 commented 1 day ago

⌛ I think we should consider moving on with the 2nd proposal and assign @nkdengineer as contributor since they are the next in line. @roryabraham @jamesdeanexpensify What do you think ?

mariapeever commented 1 day ago

@ikevin127 Sorry for the delay. I was busier than usually the last few days. I will create a PR today.