From 6a926a647b120c73372a5888ea76e7a17b7672cd Mon Sep 17 00:00:00 2001 From: Mohammed Bashir Date: Fri, 24 Apr 2026 09:18:26 +0300 Subject: [PATCH 1/4] internal-chat : add doc --- .../internal-chat/administration.md | 90 +++++++++++++++++++ .../internal-chat/collaboration-features.md | 79 ++++++++++++++++ .../conversations-and-messaging.md | 69 ++++++++++++++ .../espocrm-extensions/internal-chat/index.md | 65 ++++++++++++++ 4 files changed, 303 insertions(+) create mode 100644 docs/espocrm-extensions/internal-chat/administration.md create mode 100644 docs/espocrm-extensions/internal-chat/collaboration-features.md create mode 100644 docs/espocrm-extensions/internal-chat/conversations-and-messaging.md create mode 100644 docs/espocrm-extensions/internal-chat/index.md diff --git a/docs/espocrm-extensions/internal-chat/administration.md b/docs/espocrm-extensions/internal-chat/administration.md new file mode 100644 index 000000000..9b049d867 --- /dev/null +++ b/docs/espocrm-extensions/internal-chat/administration.md @@ -0,0 +1,90 @@ +--- +icon: material/cog +title: Administration - Internal Chat +description: Access modes, feature toggles, limits, integrations, and user settings for Internal Chat. +--- + +# Administration + +Most extension behavior is controlled from `Administration => Internal Chat`. + +[Image placeholder: Administration settings] + +--- + +## Settings Layout + +The administration screen is organized into these areas: + +- Access +- Editing & Deletion +- Polling +- User Search +- Limits +- Conversation Features +- Message Features +- General Features + +This keeps access rules, limits, and feature toggles in one place without spreading configuration across multiple screens. + +--- + +## What You Can Control + +From `Administration => Internal Chat`, administrators can control: + +- who can access the chat internally and in the portal +- whether user and team lookups follow EspoCRM ACL or use the extension's ignore-ACL lookup mode +- edit and delete grace periods +- room and room-list polling intervals +- message length and attachment limits +- allowed attachment types and insert-from-source options +- conversation features such as pinning, hiding, muting, deleting, and team-based group creation +- message features such as reactions, reply, forward, stars, threads, quick reactions, and broadcast mentions +- general features such as emoji button, attachments, GIF picker, custom statuses, typing indicators, read receipts, polls, scheduled messages, record previews, and portal support + +--- + +## Access and Permissions + +If **Access Mode** or **Portal Access Mode** is left on EspoCRM ACL, access follows the `InternalChat` scope permission in roles. + +The lookup settings also matter for how the new conversation screen behaves: + +- internal user lookup +- portal user lookup +- team lookup + +These options determine whether chat selection follows normal EspoCRM ACL visibility or uses the extension's ignore-ACL lookup mode. + +--- + +## User Settings + +Users can open the chat settings screen and adjust: + +- sound notifications +- popup notification mode +- floating widget visibility +- notification badge pulsation +- conversation list mode +- emoji skin tone + +These are personal preferences, separate from the admin feature toggles. + +--- + +## Integrations and Operational Notes + +- `Administration => Integrations => Klipy` is used only for the GIF picker. +- The installer creates the required Internal Chat scheduled jobs automatically. +- Scheduled jobs must be running if you want scheduled messages and automatic custom-status expiry to work. +- The Event action depends on both the chat setting and the user's calendar create permission. + +--- + +## See Also + +- [Internal Chat Overview](index.md) +- [Conversations & Messaging](conversations-and-messaging.md) +- [Collaboration Features](collaboration-features.md) diff --git a/docs/espocrm-extensions/internal-chat/collaboration-features.md b/docs/espocrm-extensions/internal-chat/collaboration-features.md new file mode 100644 index 000000000..9be0f86fb --- /dev/null +++ b/docs/espocrm-extensions/internal-chat/collaboration-features.md @@ -0,0 +1,79 @@ +--- +icon: material/account-group +title: Collaboration Features - Internal Chat +description: Threads, polls, scheduled messages, previews, presence, notifications, and portal chat support in Internal Chat. +--- + +# Collaboration Features + +Beyond basic messaging, Internal Chat adds a set of collaboration tools that keep follow-up work inside EspoCRM instead of moving it to another system. + +--- + +## Threads + +Internal Chat supports **Google-Chat-style threads**. Replies live under a root message, while the main room shows the root message together with its reply count. + +This keeps side discussions attached to the original message without filling the main timeline. + +--- + +## Polls and Scheduled Messages + +- Create poll messages with single-answer or multiple-answer voting. +- Schedule messages for later using quick presets or a custom date and time. +- Review scheduled items from the dedicated **Scheduled** shortcut. +- Edit, reschedule, send now, or cancel scheduled messages before they are sent. + +These workflows are controlled from `Administration => Internal Chat`. + +[Image placeholder: Threads polls and scheduled messages] + +--- + +## Record and Link Previews + +- Internal EspoCRM record links can render preview cards inside chat. +- External `http` and `https` links can render preview cards from page metadata. +- The composer can also offer an **Event** action that opens the EspoCRM calendar dialog and posts the saved event link back to the room. + +Record previews respect ACL. Users without access do not see the record details. + +[Image placeholder: Record and link previews] + +--- + +## Presence and Notifications + +- Presence states: **online**, **busy**, **away**, and **offline** +- Custom emoji + text statuses with optional expiry +- Typing indicators +- Read receipts +- Sound notifications +- Browser notifications +- In-app popup notifications + +Users can also adjust floating-widget visibility, badge animation, list density, popup mode, and emoji skin tone from the chat settings screen. + +[Image placeholder: Presence and notification settings] + +--- + +## Portal Support and Notes + +Portal users can access Internal Chat when portal support is enabled in `Administration => Internal Chat`. + +Notes: + +- GIF search requires a configured Klipy API key. +- Scheduled sending and automatic custom-status expiry depend on EspoCRM scheduled jobs. +- The Event action also depends on the user having permission to create calendar events. +- The code clearly supports portal chat access, but popup notifications are defined separately and are not documented here as a portal-specific feature. + +--- + +## See Also + +- [Internal Chat Overview](index.md) +- [Conversations & Messaging](conversations-and-messaging.md) +- [Administration](administration.md) diff --git a/docs/espocrm-extensions/internal-chat/conversations-and-messaging.md b/docs/espocrm-extensions/internal-chat/conversations-and-messaging.md new file mode 100644 index 000000000..394f14c81 --- /dev/null +++ b/docs/espocrm-extensions/internal-chat/conversations-and-messaging.md @@ -0,0 +1,69 @@ +--- +icon: material/forum +title: Conversations & Messaging - Internal Chat +description: Direct chat, group chat, composer tools, attachments, message actions, and room navigation in Internal Chat. +--- + +# Conversations & Messaging + +Internal Chat uses the same room model in both the floating widget and the full-page `/#InternalChat` view, so users can move between quick chat and full-screen work without changing context. + +[Image placeholder: Main chat room] + +--- + +## Conversations + +- Start **direct chats** from the new conversation screen. +- Create **group chats** with selected members. +- When enabled, the new group flow can include **portal users** and a **Teams** tab for bulk-adding team members. +- Group chats support rename, member management, admin assignment, and leave actions. +- Rooms can be pinned, muted, hidden, marked unread, unhidden, or deleted where permitted. +- Hidden rooms reappear automatically when a new message arrives. + +Most conversation controls are managed from `Administration => Internal Chat`. + +[Image placeholder: New conversation and group creation] + +--- + +## Composer + +- Rich-text controls for bold, italic, underline, strikethrough, lists, quotes, links, and code. +- Attachments by file picker, drag-and-drop, and paste. +- Emoji picker, emoji autocomplete, and quick reactions. +- Optional GIF picker. +- Optional insert-from-source menu for configured attachment sources. +- In-room message search with result navigation and highlighting. + +Attachment limits, allowed file types, and related toggles are configured from `Administration => Internal Chat`. + +--- + +## Message Actions + +- React to messages with emoji. +- Reply with a quoted preview. +- Forward messages to another conversation. +- Copy message text. +- Star messages for quick access later. +- Pin important messages inside a room. +- Edit or delete your own messages within the configured grace period. + +These actions can be enabled or disabled from `Administration => Internal Chat`, and edit or delete limits are enforced by the backend. + +--- + +## Room List + +The room list supports shortcut views for **Mentions**, **Starred**, **Unread**, **Groups**, **Archive**, and **Scheduled**. It also shows unread counts, mention badges, pinned rooms, muted rooms, and conversation search. + +Pinned conversations are limited per user, and the code currently enforces a maximum of 3 pinned rooms. + +--- + +## See Also + +- [Internal Chat Overview](index.md) +- [Collaboration Features](collaboration-features.md) +- [Administration](administration.md) diff --git a/docs/espocrm-extensions/internal-chat/index.md b/docs/espocrm-extensions/internal-chat/index.md new file mode 100644 index 000000000..a50066851 --- /dev/null +++ b/docs/espocrm-extensions/internal-chat/index.md @@ -0,0 +1,65 @@ +--- +icon: material/chat +title: Internal Chat - EspoCRM +description: Add direct and group chat, attachments, threads, polls, scheduled messages, presence, and portal chat support to EspoCRM. +--- + +# Internal Chat + + + +## Overview + +**Internal Chat** adds an embedded chat workspace to EspoCRM with a floating widget and a full-page view at `/#InternalChat`. It supports direct and group conversations, attachments, reactions, replies, forwards, threads, polls, scheduled messages, presence, and optional portal access, while keeping the data inside EspoCRM. + +The extension works without an external chat service. Klipy is optional and only used for GIF search. The package also includes translations for 26 languages. + +[Image placeholder: Internal Chat overview] + + + +--- + + + +## Key Features + +- **Direct and Group Chat**: Start one-to-one conversations, create group chats, and optionally build groups from EspoCRM teams. +- **Chat Workspace**: Use the floating widget from anywhere or switch to the full-page `/#InternalChat` view. +- **Rich Messaging**: Send formatted messages with attachments, emoji, mentions, replies, forwards, pins, and message search. +- **Collaboration Tools**: Use threads, polls, scheduled messages, record previews, and link previews inside chat. +- **Presence and Notifications**: Track presence, custom statuses, typing indicators, read receipts, and message notifications. +- **Admin Control**: Manage access, limits, polling, and feature toggles from `Administration => Internal Chat`. + + + +--- + + + +## Table of Contents + +- [Conversations & Messaging](conversations-and-messaging.md) - Main chat UI, direct and group conversations, group management, composer behavior, attachments, and message actions. +- [Collaboration Features](collaboration-features.md) - Threads, polls, scheduled messages, previews, presence, notifications, and portal support notes. +- [Administration](administration.md) - Access modes, settings groups, limits, user preferences, optional integrations, and operational notes. + + + +--- + +## Requires + +- EspoCRM >= 8.0.0 +- PHP >= 8.1 + +--- + +## Installation + +1. Download the extension package. +2. Upload it from `Administration => Extensions`. +3. Open `Administration => Internal Chat` to review access, limits, and enabled features. +4. If you want GIF search, configure `Administration => Integrations => Klipy`. +5. Make sure EspoCRM scheduled jobs are running for scheduled messages and automatic custom-status expiry. + +The installer registers the required Internal Chat scheduled jobs automatically. From f928d02b5dc23b773bc3c875ee88037c2f9dce29 Mon Sep 17 00:00:00 2001 From: Eymen Elkum Date: Wed, 6 May 2026 13:24:00 +0300 Subject: [PATCH 2/4] Update docs/espocrm-extensions/internal-chat/collaboration-features.md Co-authored-by: Andrew Fontana <32223252+Kharg@users.noreply.github.com> --- .../internal-chat/collaboration-features.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/espocrm-extensions/internal-chat/collaboration-features.md b/docs/espocrm-extensions/internal-chat/collaboration-features.md index 9be0f86fb..1f6bb2bd5 100644 --- a/docs/espocrm-extensions/internal-chat/collaboration-features.md +++ b/docs/espocrm-extensions/internal-chat/collaboration-features.md @@ -27,7 +27,9 @@ This keeps side discussions attached to the original message without filling the These workflows are controlled from `Administration => Internal Chat`. -[Image placeholder: Threads polls and scheduled messages] + +Image + --- From 65c48e27a2d38fd76ebe478d7d8a9e65cbc9f65c Mon Sep 17 00:00:00 2001 From: Eymen Elkum Date: Wed, 6 May 2026 13:24:16 +0300 Subject: [PATCH 3/4] Update docs/espocrm-extensions/internal-chat/collaboration-features.md Co-authored-by: Andrew Fontana <32223252+Kharg@users.noreply.github.com> --- .../internal-chat/collaboration-features.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/espocrm-extensions/internal-chat/collaboration-features.md b/docs/espocrm-extensions/internal-chat/collaboration-features.md index 1f6bb2bd5..5aab92fe2 100644 --- a/docs/espocrm-extensions/internal-chat/collaboration-features.md +++ b/docs/espocrm-extensions/internal-chat/collaboration-features.md @@ -41,7 +41,9 @@ These workflows are controlled from `Administration => Internal Chat`. Record previews respect ACL. Users without access do not see the record details. -[Image placeholder: Record and link previews] + +Image + --- From 1079d81af4dc5954cfa44d680ea5ead6221ac5c3 Mon Sep 17 00:00:00 2001 From: Eymen Elkum Date: Wed, 6 May 2026 13:24:32 +0300 Subject: [PATCH 4/4] Update docs/espocrm-extensions/internal-chat/conversations-and-messaging.md Co-authored-by: Andrew Fontana <32223252+Kharg@users.noreply.github.com> --- .../internal-chat/conversations-and-messaging.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/espocrm-extensions/internal-chat/conversations-and-messaging.md b/docs/espocrm-extensions/internal-chat/conversations-and-messaging.md index 394f14c81..2db66d3dd 100644 --- a/docs/espocrm-extensions/internal-chat/conversations-and-messaging.md +++ b/docs/espocrm-extensions/internal-chat/conversations-and-messaging.md @@ -23,7 +23,9 @@ Internal Chat uses the same room model in both the floating widget and the full- Most conversation controls are managed from `Administration => Internal Chat`. -[Image placeholder: New conversation and group creation] + +Image + ---