Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
06f602b
docs(chatbot): Adds design guidelines.
edonehoo Nov 11, 2024
878e3e7
Merge branch 'main' into iss289
edonehoo Nov 11, 2024
dbf6497
Trying to fix nav issue
edonehoo Nov 11, 2024
87bfcb5
Merge branch 'iss289' of https://github.com/edonehoo/virtual-assistan…
edonehoo Nov 11, 2024
428db3f
Merge branch 'main' into iss289
edonehoo Nov 13, 2024
0fe2024
Merge branch 'main' into iss289
edonehoo Nov 15, 2024
7ad0b94
Adds images
edonehoo Nov 15, 2024
53e4136
Fix build and move css file
edonehoo Nov 15, 2024
bb28a18
Content edits and image updates.
edonehoo Nov 18, 2024
3c454a5
Merge branch 'main' into iss289
edonehoo Nov 19, 2024
0029ee8
feat(ResponseActions): Allow for custom response actions
rebeccaalpert Nov 2, 2024
484630d
fix(docs): Update per Erin's suggestions
rebeccaalpert Nov 4, 2024
dbb12ca
fix(ChatbotHeader): Shrink size of dropdown
rebeccaalpert Nov 4, 2024
e784849
fix(ChatbotFooter): Make divider full width
rebeccaalpert Nov 4, 2024
0ef82dc
feat(SkipToContent): Add SkipToContent to demos
rebeccaalpert Nov 5, 2024
c3d0146
Address Eric's feedback
rebeccaalpert Nov 5, 2024
8d1b3fa
Address additional feedback
rebeccaalpert Nov 6, 2024
a772720
Update packages/module/patternfly-docs/content/extensions/virtual-ass…
rebeccaalpert Nov 7, 2024
4f5a231
Update packages/module/patternfly-docs/content/extensions/virtual-ass…
rebeccaalpert Nov 7, 2024
a4a87cd
chore(SkipToContent): Add direct example
rebeccaalpert Nov 8, 2024
ea77de2
fix(Chatbot): Should retain focus if no drawer
rebeccaalpert Nov 10, 2024
11c74ac
fix(ChatbotConversationHistoryNav): Fix borders
rebeccaalpert Nov 10, 2024
f630476
chore(docs): For fullscreen and embedded, change focus
rebeccaalpert Nov 10, 2024
a72eab9
chore(docs): Update docs
rebeccaalpert Nov 11, 2024
323dd3f
chore(docs): Address feedback
rebeccaalpert Nov 11, 2024
d6171c4
docs: bump a11y and docs-framework deps (#309)
nicolethoen Nov 13, 2024
990f67f
Update pr-preview.yml to try and fix a11y tests
nicolethoen Nov 14, 2024
64fefbe
docs: update documentation side bar nav organization (#310)
nicolethoen Nov 14, 2024
1ac842a
fix(Message): Truncate very long names
rebeccaalpert Nov 5, 2024
5ca001e
Address feedback
rebeccaalpert Nov 7, 2024
1fd09ab
Fix typo
rebeccaalpert Nov 7, 2024
3c67cec
Update pr-preview.yml
nicolethoen Nov 14, 2024
1de4cc5
Update build-lint-test.yml
nicolethoen Nov 14, 2024
9ac8335
Adds images
edonehoo Nov 15, 2024
7970806
Fix build and move css file
edonehoo Nov 15, 2024
f2cb2dd
Content edits and image updates.
edonehoo Nov 18, 2024
382326e
fix(Chatbot): Change box shadow
rebeccaalpert Nov 15, 2024
e6da0ba
feat(Message): Allow for multiple attachments
rebeccaalpert Nov 13, 2024
08834df
chore(docs): Add more info on how to change file upload
rebeccaalpert Nov 18, 2024
6e6ed4a
fix(MessageBar): Swap out textarea
rebeccaalpert Nov 4, 2024
155a121
fix(MessageBar): Accept markdown input
rebeccaalpert Nov 18, 2024
ab5ca6c
feat(ChatbotModal): Add style-able modal for general use
rebeccaalpert Nov 11, 2024
0757bde
chore(docs): Update example for modal
rebeccaalpert Nov 18, 2024
7fe6608
Update images.
edonehoo Nov 20, 2024
bdfb093
Fixing more merge issues
edonehoo Nov 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
---
section: PatternFly-AI
subsection: Chatbot
id: Overview
sortValue: 1
source: design-guidelines
---

import "./images.css"

## Elements

<div class="ws-docs-content-img">
![Main elements of a ChatBot.](./img/chatbot-elements.svg)
</div>

1. **Container:** The window that contains the entire ChatBot experience and all of its components.
1. **Header:** A persistent region at the top of the ChatBot window that contains navigation, branding, and actions.
1. **Navigation:** A menu that contains navigational options, including access to the conversation history.
1. **Messages:** Elements of the conversation between a ChatBot and user. For more details, refer to the [ChatBot message guidelines](#messages).
1. **Attachments:** Details about files that a user has uploaded to the ChatBot.
1. **Footer:** A persistent region at the bottom of the ChatBot window that contains the message bar and the footnote.
1. **Footnote (optional):** A persistent, short message that contains any legal disclaimers or important information about the ChatBot. Footnotes are optional, but strongly recommended. For more information, refer to the [ChatBot footnote guidelines](#footnotes).
1. **Toggle:** The button that allows users to open and close the ChatBot window. When the ChatBot is opened, the toggle should appear below the ChatBot window.

### Toggle

Users can toggle a ChatBot open and closed, so that conversations can persist over time and be revisited as needed. The toggle is a floating button that's placed in the bottom corner of the UI.

In addition to this floating button, you can place an icon in the masthead that acts as a toggle.

### Messages

<div class="ws-docs-content-img">
![A basic user message, bot message, and quick reply buttons.](./img/message-elements.svg)
</div>

1. **Bot message:** Messages from the ChatBot, which are marked with an "AI" label to communicate the use of AI to users. You should choose a descriptive name for your ChatBot.
1. **User message:** Messages that the user has sent to the ChatBot.
1. **Avatar:** Representative image for your ChatBot and the user. ChatBot avatars should align with your product's brand, adhering to any brand standards that exist.
1. **Name:** Identifier for your ChatBot and the user. Choose a name for your ChatBot that users can easily identify as a bot.
1. **Label:** Labels ChatBot messages as "AI."
1. **Timestamp:** The relative or absolute time that a message was sent.
1. **Quick responses:** Programmable, clickable actions that allow users to quickly answer questions from the ChatBot.

### Footnotes

The footnote provides a persistent space to display messaging about your product's Terms and Conditions, which focus on the rules of using the service, and Privacy Policy, which focuses on the handling of personal data.

Though footnotes are not required, they are highly recommended to ensure legal compliance, establish user trust, and clearly define the usage guidelines and data handling practices.

When users select the footnote, you can display a popover that provides more information than would fit in the footnote:

<div class="ws-docs-content-img">
![Selected footnote, with an informative popover.](./img/footnote.svg)
</div>

## Usage

When ChatBots are designed to meet the needs of your users, they can improve the overall UX of your product by offering convenient, efficient, and persistent support. When your ChatBot cannot find an answer for your users, you must provide them with a method to contact human support.

Before building a ChatBot, make sure that you have justified it as an appropriate solution by asking yourself these questions:
- What are the users’ goals?
- How in-depth is the assistance the user will need?
- Does human assistance better serve your users?
- How is a ChatBot superior to online documentation, contextual support or wizards?
- What data sources or abilities can this ChatBot leverage to assist your users?

Do not create a ChatBot simply for the sake of novelty.

### When to use a ChatBot

Use a ChatBot to offer your users on-demand help at any time, including:
- Technical support and troubleshooting.
- Product information and documentation.
- Sales and product recommendations.
- Training and onboarding.
- System monitoring and alerts.
- Community engagement .
- Feedback collection and surveys.

### When not to use a ChatBot

Do not use a ChatBot when:
- A task could be accomplished more efficiently through the UI.
- A process is very complex or could take a long time.
- A real human is needed for sensitive or emotional topics.

## Behavior

### Accessing a ChatBot

Users can enter a conversation with a ChatBot by clicking on the toggle. Once the ChatBot window opens, the toggle will change to display an "angle down" icon to indicate that clicking the toggle again will minimize the ChatBot. Users can select the toggle at any point in their journey to open and close the ChatBot as needed.

<div class="ws-docs-content-img">
![2 toggles with open and closed icons.](./img/chatbot-toggle.svg)
</div>

When there is an unread message from the ChatBot, a notification badge should be placed on the toggle.

<div class="ws-docs-content-img">
![Toggle with notification badge.](./img/chatbot-toggle-notification.svg)
</div>

### Sending messages and attaching files

To message the ChatBot, users can type directly into the message bar in the footer or click any included actions.

<div class="ws-docs-content-img">
![Elements of a message bar, including input actions.](./img/message-bar-elements.svg)
</div>

1. **Attach button:** Allows users to upload files from their computer.
1. **Use microphone button:** Supports speech recognition to allow users to use voice input.
1. **Send button:** Allows users to send a typed message. This button should be disabled until a user has input text.

### Using the navigation menu

The ChatBot navigation menu primarily contains a users' conversation history with the ChatBot. Clicking the menu icon opens a side drawer in the ChatBot window.

<div class="ws-docs-content-img">
![Conversation history with an options menu opened on a previous conversation.](./img/conversation-history.svg)
</div>

By clicking into the navigation menu, users can search through previous conversations and perform additional actions, such as sharing a conversation with others.

## Variations

There are a few display modes that users can choose when interacting with a ChatBot.

<div class="ws-docs-content-img">
![Menu of display options.](./img/display-menu.svg)
</div>

- **Overlay:** The default display mode, which places the ChatBot window on top of a product's UI. In overlay mode, the ChatBot can be closed and opened through the toggle.

<div class="ws-docs-content-img">
![ChatBot in overlay mode.](./img/overlay.svg)
</div>

- **Docked:** Anchors the ChatBot in the UI as a side drawer. When docked, the ChatBot window is persistent, and cannot be toggled.

<div class="ws-docs-content-img">
![ChatBot in docked mode.](./img/docked.svg)
</div>

- **Full screen:** The ChatBot window takes up the whole screen.

<div class="ws-docs-content-img">
![ChatBot in full-screen mode.](./img/fullscreen.svg)
</div>

- **Embedded:** The ChatBot is embedded within a product as its own page.

## Placement

Your users will expect your ChatBot to be in a reliable, permanent location. By default, this will be in the bottom right of the screen.

## Content considerations

For guidance on writing ChatBot content, refer to our [conversation design guidelines](/patternfly-ai/conversation-design).

## Accessibility

Although accessibility has been integrated into the design of our ChatBot components, it is important to ensure that your implementation is inclusive of all users. For more guidance, refer to [our accessibility guidelines](/accessibility/about-accessibility).
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.ws-docs-content-img {
text-align: center;
margin-inline: auto;
width: 100%;
max-width: 700px;
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading