Skip to content

Dashboard

  • The dashboard tab’s title now carries the embedded LiveChat console’s pending count — waiting visitors plus unread messages — as a (n) prefix while the Live Chat page is open. The count comes from the console itself (origin-checked message from the iframe; LiveChat v0.6.1 or newer) and clears when the page is left. An agent reading another tab can now see work arrive.
  • The embedded LiveChat console actually renders now. The dashboard’s own Content-Security-Policy had no frame-src, so the iframe on the Live Chat page was blocked by default-src 'self'. The policy now carries an explicit frame-src, extensible at deploy time with the NUXT_CSP_FRAME_SRC environment variable (comma-separated origins — set it to the LiveChat instance’s origin); unset, it stays at 'self' and frames nothing external.
  • The LiveChat card on the Integrations page showed raw translation keys (Apps.live-chat.Name, ConnectedApps:LiveChat:BaseUrl) instead of text; the card and its two fields are now properly named in both languages.
  • Live Chat in the sidebar (Operations): the embedded LiveChat agent console, signed in automatically as the current user — one server round trip exchanges their email for a LiveChat session over the integration’s stored service key, and the console opens inside the dashboard with no login screen. Visible to every signed-in user; the page renders the API’s own sentence when LiveChat is not connected or the user has no LiveChat agent account.
  • LiveChat appears on the Integrations page as the second connected app (address + service key, with a working Test button) — no changes here, the marketplace lists whatever the API’s registry returns.
  • A brief hiccup while the session was being renewed — a network drop, the backend restarting — could log the user out even though the session was still perfectly valid. Signing out now only happens when the backend actually rejects the session; a transient failure is reported as such and the next attempt carries on with the same session. A renewal request arriving without its cookie no longer clears the cookies of an otherwise healthy session either.
  • The first of the three views on a mail body editor is now called Text rather than Visual. It is the same editor with the same buttons; the old name suggested it was where images go.
  • Every mail body editor — e-mail templates, a reply to a request, the message that goes out with a status change — now has Visual, HTML and Preview views. HTML written or pasted into the source view is kept exactly as written, so a table layout or a block lifted out of a real mail survives instead of being rewritten into what the toolbar can draw, and the preview shows it the way the recipient will see it before anything is sent. Bodies written as markup may now run to 32,000 characters, since a layout is mostly tags.
  • A formatted e-mail arriving on a request lost its formatting when opened from the Conversation tab: it was shown as bare text, without its layout, links or signature. The formatted version was there all along and simply was not being read. Related: a plain-text message that happened to carry an address in angle brackets — <destek@example.com>, the way a signature writes one — was mistaken for markup, which swallowed the address and ran the whole message into a single line. Both now render as sent.

  • The variable-highlight colouring the editor uses to mark {{variables}} could travel into a real outgoing e-mail on one of the two paths that send one from a status change.

  • Download in an attachment’s preview did nothing at all — no file, no error, no sign the button had been pressed. Downloading every attachment as a ZIP was unaffected, and still is.

  • Opening a message from a request’s Conversation tab showed the mail with a footer saying it carried an attachment, but the file itself never appeared: no list to expand, nothing to click, no download. Attachments are stored under a dated path, and the dashboard’s download route only accepted a key without one, so every request for a file came back empty and the failure was swallowed silently. The route now takes the whole key. This also restores attachment previews on documents, e-mail template documents and announcement covers, which resolve through the same route. An attachment whose file is genuinely missing now reports itself as missing straight away, instead of leaving the download hanging until the browser gives up.

  • E-mail addresses on an e-mail template and on a queue are now chosen from a list instead of typed, and every entry says what it is, so it is clear at a glance whether a reply to that address comes back into a request or lands nowhere:

    • A queue’s incoming address lists the configured mailboxes, marked IMAP or webhook. This is the value that binds a queue to a mailbox, and it binds by matching the address exactly — an address typed by hand that matched no mailbox produced a queue that silently never received anything.
    • A queue’s outgoing address lists only mailboxes collected over IMAP, because that address is what a customer replies to and only a mailbox we poll carries that reply back onto the request.
    • A template’s sender lists the mailboxes and the system e-mail identity.

    A record saved with some other address keeps it, listed as a saved address, until someone picks a different one.

  • SMS settings no longer appears in the navigation. System messages go out over e-mail for the time being; the page and everything behind it are untouched and the entry comes back by itself once SMS is in use again. The settings page it used to sit beside is now called E-mail settings, since e-mail is all it covers.

  • On a request’s E-mail content tab, the message body started hard against the left edge of the card while the From and Subject labels above it were inset, so an HTML mail — and any signature block in it — looked pasted onto the panel rather than laid out in it. Senders do not pad their own mail, so the padding now comes from the frame around it and lines up with the header above. Applies to parsed .eml messages as well.
  • The Regulatory reports page opened with the period set to January, whatever the date, so downloading without changing it produced a report for a month that on most instances has no activity in it — an empty file that reads as a broken report rather than as the wrong month. The month and quarter now default to the current one, as the year always did.
  • Four tabs on a request detail — Previous requests, Complaint calls, Critical requests and History — showed nothing and carried no count, however much history the request actually had. Each of those tabs only loads its list once its counter says there is something to load, and the counter was arriving in the wrong shape, so it always read as zero. The same fault emptied the region counter. Counts and lists are back on all of them.
  • The knowledge base site address field on the Integrations settings form showed its raw translation key instead of a label. The field itself worked; only its caption was missing. The two address fields are now also named apart on the form (“Knowledge base API address” and “Knowledge base site address”), which is what tells you which one you are filling in.
  • The Integrations card now shows the knowledge base’s site address as well, above the API address. These are separate hosts: the API answers JSON and is not useful in a browser, so the link that was there before sent anyone who clicked it to a raw API response. Fill the new field in under Edit settings. (Needs FlowDesk API v0.2.1 or later; without it the field does not appear and the card looks the same as before.)
  • The Integrations page now shows the address of a connected knowledge base as a link on the card, so you can open it without going into the settings form to read the value.
  • Reworded the Turkish text on the Integrations page. “Sınama” is replaced by “test” throughout, which is the word the rest of the product uses for the same action.
  • The Audit Logs page never loaded and the list stayed empty. The page asked the API for records using a request the API rejected outright, so every attempt failed before any record was read. The page now lists records again, and filtering by date, by record type and by record number works.
  • The ⋯ row menu was invisible on a table with only a few rows. The menu opened below the last row, past the edge of the table’s own scrolling area, which cut it off. It is now drawn above the page instead of inside the table, and flips above the row when there is no room below.
  • The copy button next to a request number overlapped the number’s last digit as request numbers grew longer. Long values in this kind of cell are now shortened with an ellipsis rather than running under the button. The same fault affected the report tables and the user list, which are fixed as well.
  • On the API Tokens page the token prefix was listed in its own column, labelled “Önek”, and the row menu offered to copy it. Neither is left: the prefix identifies a token in the audit trail but is not the token, and a token’s plaintext value is shown once when it is created and never again. The row menu now carries only Revoke.
  • On the Integrations page the enable/disable button wrapped onto two lines, which pushed the other buttons in the row out of alignment.
  • On the Complaint Calls, Critical Requests and Previous Requests tabs, the Message Subject column header showed the translation key instead of the text. A translation-key rename that shipped with v0.4.0 affected all three tabs. Move to this version if you are on v0.4.0.

This version requires FlowDesk API v0.2.0 or later. Upgrade the API first: the Conversation tab in this version uses the conversation endpoint that was renamed in API v0.2.0. Run it against API v0.1.x and the tab stays empty. The API v0.2.0 upgrade needs a short outage, see the API’s release notes.

  • The Conversation tab on a request now shows which channel each row arrived through. The icon to the left of the sender’s name says whether the message came in by e-mail or through the integration from the customer’s own system, and hovering it names the channel. Now that a conversation carries both channels, how a reply arrived had to be readable from the screen.
  • A message’s attachments were not shown at all on the Conversation tab. The tab read a field that was missing from the response, so the attachment list was always empty, and the key needed to download the file was absent from the response as well. Both are fixed: attachments are now listed and open in the preview.
  • The Sender and Recipient columns were empty for messages that arrived through the integration. Those messages have no e-mail address; the sender is now shown as the requester’s name, or for outgoing messages the name of the agent who wrote the reply, and the recipient is shown as “—” to mark it empty. Searching within a conversation now works over these names too.
  • An Order field on the create and update forms for request statuses. It sets how columns are laid out left to right in lists and in the kanban view; a smaller number comes first. The field cannot be left empty and cannot be less than 0. (Requires the order field in the API.)
  • Kanban columns came back in reverse order (“New” last). When statuses had equal order values, the ordering fell through to the API’s newest-first list; ties are now resolved by the status’s creation order (id), so the sequence is both correct and stable across refreshes. An explicit order still wins.
  • Request kanban view (drag and drop). A segmented control on the Requests page switches between list and kanban; the kanban choice is kept in the URL as ?view=kanban and survives a page refresh.
  • Status columns arrive in their defined order, with the total request count in the header; each column runs its own paged query and pulls the rest with “Load more”.
  • Every filter in the toolbar (search, date, pool, status) applies to the kanban columns unchanged.
  • As a card starts being dragged, the columns allowed by the defined transition rules are highlighted with a green dashed border; columns that are not allowed fade out and refuse the drop.
  • A card dropped on an allowed column turns semi-transparent “pending” and the action form opens with the target status preselected; on save the card moves to the new column permanently and the column counters update.
  • Clicking a card (without dragging) opens the request detail.
  • The “Take Action” form on a request detail opens with the request’s current status and sub-status preselected, so a user who is not changing them does not have to pick both fields again.
  • The action form showed the preselected status and sub-status as empty (“Select”). The option lists were lazily loaded so the label could not be resolved; the lists are now fetched up front when there is a preselection.
  • A card stayed in the target column when the action modal was cancelled, because the query data returned the same reference when the server state had not changed, so the column list was not rebuilt.
  • The kanban view refetched every column unnecessarily when the tab regained focus.

See GitHub Releases for older versions.