Docs

Chats

Use direct chats and requests, group chats, connected Workspace channels, attachments, mentions, reactions, browser calls, and screen sharing.

chatcommunicationchannelsmentionscallsfiles

Chats

Chats cover direct messages, group chats, Workspace channels, file sharing, record links, mentions, reactions, unread tracking, browser calls, and screen sharing. The inbox lives at Chats.

What a chat is

  • A direct chat is a 1:1 conversation. Its title and avatar come from the other participant.
  • If the other participant's account has been deleted, the direct chat stays visible and shows a deleted-account placeholder instead of the old profile.
  • A group chat has three or more participants, or is explicitly created as a group. It can have a custom title.
  • A channel is a Workspace-owned conversation. Channels have a title, optional description, and public or private visibility.
  • Public channels can be discovered and joined by Workspace members. Private channels are only visible to people who have been added.
  • A chat request is a direct chat with someone outside your existing Workspace and chat context. It becomes a normal direct chat when the recipient accepts.
  • Creating a direct chat with someone you already message does not create a duplicate. Einblick reuses the existing 1:1 chat.
  • Group titles are auto-generated from the selected members if you do not enter one.

Who you can chat with

  • The new-chat picker lists active account-backed members from every Workspace you share, plus people from existing direct chats, group chats, and connected channels. The label below a person shows the shared Workspace or chat that makes them reachable.
  • Members without accounts are excluded because they cannot open chats, receive mentions, or join calls. Very large channels are not expanded into the people picker; open the channel to work with its members instead.
  • To reach someone outside that context, enter their full primary or verified email address. Einblick returns a match only when the active account has Findable by email address enabled in Account Settings. Partial names and email addresses do not search a public people directory.
  • A person found only by email can receive a direct-chat request. They cannot be added to a group until they accept; an accepted request then counts as shared chat context.
  • The inbox search finds existing conversations, reachable people, exact-email matches, and public channels you can join.
  • Only participants can open a direct chat or group chat. Channel access comes from channel membership, public channel visibility, and any connected Workspace access.

Chat requests

  • The sender can write the opening messages immediately. The recipient sees the conversation under Requests and can accept or decline it.
  • While a request is pending, the sender does not receive the recipient's read receipts. Accepting enables normal read receipts; replying also accepts the request automatically.
  • Declining prevents the sender from sending more messages. The recipient can reopen the chat later by replying.
  • Pending and declined requests cannot start or join calls and do not expose chat-management actions such as changing the title, image, or membership. Those actions become available after acceptance.
  • One account can open up to 20 new outside-context chat requests in 24 hours. Existing direct chats are reused and do not create another request.

Inbox behavior

  • Direct chats, group chats, and joined channels appear in one list sorted by latest activity.
  • Requests received from people outside your context appear in a separate Requests group until you answer them. Requests you sent remain in the normal conversation list with their current state.
  • Direct and group chats show unread counts for messages you have not read yet.
  • Channels show an unread dot for new activity after your read cursor. Mention counts appear as a badge and take priority over the dot.
  • Your own messages never count as unread for you.
  • Call-control and WebRTC signaling messages do not increase unread counts.
  • Opening a chat starts at the first unread message when one is available.
  • Messages are marked as read when they become visible in the conversation view. Reading a message also clears your unread mentions in that chat up to that message.

Sending messages

  • Press Enter to send.
  • Press Shift+Enter for a new line.
  • You can send Markdown-formatted text, files, screenshots pasted from the clipboard, and browser-recorded voice memos. Lists, links, quotes, and code are rendered in the conversation.
  • The composer toolbar opens the mention picker, attaches a file, inserts an app record, and applies bold, italic, strikethrough, or inline-code formatting.
  • Images, audio, video, and common document formats are supported in the composer.
  • Starting a chat audio attachment or podcast episode pauses any other audio currently playing in Einblick.
  • In a direct chat, the reply action quotes the message in your next message. In a group chat or channel, it opens a thread for that message.
  • Your own messages show a sent/read indicator. Read means at least one other participant has read the message.
  • Compact is the default message layout when you have not saved a preference. Choose it or Bubbles under Account → Appearance.

Files and storage

  • Each direct chat, group chat, and channel gets its own folder under the system Chats area in Files.
  • New attachments are stored in that chat folder.
  • If a group chat or channel title changes, the linked folder name is updated too.
  • Deleting a direct or group chat archives the chat record and removes its chat folder recursively.
  • Group admins and users with channel-management rights can change the chat or channel image from the info sheet.
  • Open the @ picker to choose a participant or the Einblick Assistant immediately. After two typed characters, it also searches app records available through your current Workspace access.
  • Supported link targets include chats, users, organizations, contacts, projects, tasks, work orders, inquiries, quotes, invoices, boards, and other core records.
  • Choosing a participant inserts an explicit mention with reliable unread tracking. Plain typed @ names are still matched to participants when the name or email is unambiguous.
  • In Workspace-owned groups, channels, and their threads, permitted users can mention Einblick Assistant. It answers from the recent conversation and can use permission-aware, read-only Workspace tools. If a response reaches a usage limit or fails, the message shows that state and you can mention the assistant again to retry.
  • Readable internal record links render as clickable preview cards. Without access in the current Workspace, the card is not clickable, hides the record details, and shows the missing access instead.
  • External URLs render as link previews after Open Graph metadata is fetched and cached. Stale preview data is refreshed in the background, and broken preview images fall back to the plain link card.

Threads and reactions

  • Every message can receive emoji reactions.
  • Clicking your own reaction removes it.
  • A group or channel message can have one thread. It opens beside the conversation when the chat pane is at least 1,024 pixels wide and in a sheet when the pane is narrower; direct chats keep inline quoted replies instead.
  • The parent message shows the first reply and the number of additional replies. Opening that preview returns to the same thread.
  • Thread replies support the normal composer, attachments, mentions, reactions, and read state. Replies cannot start another nested thread.

Chat info sheet

  • The info sheet shows participants, shared media, shared files, and shared links.
  • Group chat admins can add or remove participants from this sheet.
  • Channel participants are managed through Workspace chat permissions, not the per-chat admin flag.
  • Channel members can leave a channel from the inbox context menu.
  • Channel creation, updates, visibility changes, member changes, and Workspace-connection decisions are recorded as Workspace activity.
  • Direct chats do not expose group management actions.
  • In group chats, if the last admin leaves or is removed, another remaining participant is promoted automatically.

Connected Workspace channels

  • A channel manager in the owning Workspace can open Connected Workspaces in the channel info sheet. Search the Workspace directory or invite a person at another Workspace by email.
  • Directory requests are available only when both Workspaces support Workspace sharing and the target is listed in the Workspace directory. A target user with unrestricted Chat review access accepts or rejects the request from the Chat sidebar or Workspace Settings → Sharing.
  • Email invitations do not require the target Workspace to be listed. The invitation is matched to the recipient's primary or verified email address, expires after 14 days, and can be withdrawn by the sender. The recipient chooses an eligible Workspace where they have unrestricted Chat review access; accepting activates the connection immediately.
  • Once connected, active members of the other Workspace can discover and join a public channel when their role grants Chat access. Private channels still require each person to be added explicitly. External channel members are labeled with the Workspace through which they joined.
  • Either side can disconnect with the required channel-management access. Einblick removes memberships that depended only on that connection and keeps people who still have access through the owner or another connected Workspace.
  • Connection requests, invitations, decisions, and disconnects create the corresponding notifications or Workspace activity entries.

Calls

  • Calls run in the browser with WebRTC and use camera/microphone permissions.
  • Supported browsers can also share a screen during a call.
  • On the full chat page, the header shows the call action.
  • Direct chats use phone-style ringing. If nobody answers within about 30 seconds, the outgoing call times out.
  • Group chats and channels use a shared room. Starting one creates an active session immediately, and other participants can join while it is running.
  • Shared screens appear as their own call stage.
  • The floating call window can be dragged and resized while you keep working elsewhere in the app.
  • Fullscreen mode supports grid and spotlight layouts, and you can pin a participant or shared screen while presenting.
  • Incoming calls create in-app call UI and notification events.
  • Stale participants and stale sessions are cleaned up automatically if a browser disconnects without leaving cleanly.

Notifications

  • New chat messages use the chat.message notification event.
  • Incoming calls use the call.incoming notification event.
  • Both events are account-scoped because chats can cross Workspace boundaries.
  • A channel connection invitation addressed to an email is account-scoped. Workspace connection requests and decisions are scoped to the affected Workspace.
  • Direct and group messages notify active participants except the sender. Channel and thread messages notify mentioned users; unmentioned channel activity is shown as unread activity in the inbox.
  • Personal delivery channels are managed in Notification Settings.
  • Workspace defaults do not control chat messages or incoming calls.
  • Incoming call delivery is enforced at the platform level, so users cannot fully disable ring delivery.

Data model

  • chats: the chat record itself, including type (direct, group, channel, or thread), optional request state and sender, title, image, description, visibility, owning Workspace, parent chat/message, archive time, and root folder.
  • chatUsers: participants, their status, whether they are admins, and the Workspace path that added a channel member.
  • chatMessages: the message body, created date, optional reply target, and thread activity counters.
  • chatMessageFiles, chatMessageReads, chatMessageReactions: attachments, read receipts, and emoji reactions.
  • chatReadState: each user's latest read cursor per chat.
  • chatMentions: unread and read mention records per user, chat, and message.
  • chatWorkspaceConnections: pending, active, or revoked Workspace connections for shared channels.
  • chatWorkspaceInvites: email invitations to connect a Workspace to a channel, including recipient, expiry, response, and resulting connection.
  • linkPreviews: cached external URL preview metadata.
  • chatUnreadMessages: per-user unread tracking still used for direct and group unread counts.
  • chatCallSessions, chatCallParticipants, chatCallSignals: the call session, active call presence, and signaling layer.