microsoft / microsoft/BotFramework-WebChat

Using Web Chat with ACS

Open
#3,792 0 comments 1 reaction 1 assignee View on GitHub

@Kaiqb is already working on this.

Since Mar 12, 2021.

feature-request p0
Dominant language
HTML
Stars
1.8k
Forks
1.6k
Avg merge
22h 58m
Merged PRs (30d)
2

Description

Feature Request

Enable Web Chat to work with ACS

Feature details

Implement the following:

  • Sending/receiving text messages
  • Typing indicator (needs design)
    • Today's typing indicator is a dot-dot-dot animation and shown when anyone type
    • Should we provide a sentence based typing indicator to cater multiuser support? E.g. "Corina and William is typing." or "Bot is typing."
    • May need to talk to localization team on how to glue names, e.g. "Typing: Corina, William" is easy and recommended way to glue but UX is not great
  • Handle conversation w/ 2+ users using text (needs design)
    • Move from botAvatarInitials/userAvatarInitials to something else?
  • Enable speech to work with Web Chat and ACS (needs design)
    • How to turn on/off speech? Today, we turn on based on last input. But other users may send a message few minutes later that will trigger speech synthesis all in a sudden
  • Read receipts (needs design)
    • Design of read receipt icon, this is the icon from Fluent UI: image
    • Where to put the read receipt icon? Next to the timestamp may not be great because of grouping, but we can alter grouping if needed
    • WhatsApp/Telegram/Signal all have timestamp on every message. Web Chat group timestamp for messages within X minutes
    • image
    • (Optional) Can we hover/click to see who read the message? Discoverability?
  • Backcompat story for end-dev who use Redux store to call Web Chat
    • P0: dispatch POST_ACTIVITY, intercept CONNECT_FULFILLED (these are available in our samples)
    • P0: update our samples
      • Should we move to hooks, or prefer them to call chat adapter props directly?
    • P2: dispatch STOP_SPEAKING
  • Translations
    • Instead of "Send failed. Retry", we are adding "Send failed." for non-retryable scenario
    • How to write the string for multiple users are typing? For example, "John and Mary are typing" or "John is typing"
      • Gluing names in translation may not be trivial, need to talk to translation team for opinions
      • "Typing: John, Mary" is the easiest one, but not great on UX

Additional details

Design by 4/1. Code complete by 4/23.
Feature will be in a private branch for now.

[feature-request]

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.