Repository navigation
Conversation
A new e-mail in a department of the operator bot opens a forum topic with a card (customer, subject, text without quoted history, attachment names, back-office link); next e-mails of the conversation are posted into it. Text an operator writes in the topic is sent to the customer as a reply e-mail through erLhcoreClassMailconvValidator::sendReply, like a reply from the back office (threaded, sent from the mailbox, copied to Sent). A pending conversation becomes active and is assigned to the operator. Topics are lhc_telegram_chat rows with type = 2 (chats keep type = 1), so existing chat topics and commands are not affected. Off by default.
…veHelperChat#102) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ce reply form
{operator}, {department} and {operator_chat_name} are filled in as in mailconv/getreplydata,
and the signature goes in a gmail_signature block like a reply written in the back office.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks for merging #97, #98, #100, #101 and #104! I merged master into this branch and resolved the overlap with #97 (both |
|
Quick follow-up on the pending Telegram PRs: GitHub currently reports #99 (command menu), #102 (mail topics), #103 (topic icons), #105 (429 handling), #107 (visitor location/language) and #108 (widget voice messages) as individually mergeable. I have not found an unanswered review request on them. We updated our installation to core master #99 and #102 both extend the one-line bot-table CREATE statement. Once either is accepted, I can refresh the other branch to keep both fields. These remain independent proposals, so you can review whichever fits the extension first; #105 is a small reliability fix if you would like a starting point. |
What
A new operator-bot option Create topics for mail conversations of the selected departments (
lhc_telegram_bot.mail_topics, off by default). With it, mail conversations of the bot departments are handled in forum topics the same way as chats:mail.conversation_started) opens a topic with a card: customer, subject, text (quoted history cut, long e-mails shortened), attachment names and a link to the conversation in the back office;mail.conversation_reply) are posted into the same topic;erLhcoreClassMailconvValidator::sendReply— threaded, sent from the mailbox, copied to Sent — and a pending conversation becomes active and is assigned to that operator. The operator gets a short confirmation (or the error) as a reply in the topic.The customer is the
Reply-Toaddress when an e-mail comes from the mailbox's own domain (typical for web forms), otherwise the sender.How
providers/TelegramMailTopics.php— listeners, card/message text, reply.lhc_telegram_chatrows withtype = 2andchat_id= mail conversation id; all existing lookups filtertype = 1, so chat topics and commands are untouched.GenericmessageCommand: when the topic is not a chat topic,TelegramMailTopics::operatorReply()is tried; it returnsnullfor anything that is not a mail topic of this bot.doc/structure.json,doc/install.sql; README section.Only text is mailed for now; files and commands (
/…,!…) are not sent to the customer.Tested
On a production install with three mailboxes: new e-mail → topic with the card; replies from the customer (also arriving in another mailbox of the same conversation) → posted into the topic; operator text → e-mail delivered to the customer, conversation active and assigned.
🤖 Generated with Claude Code