mirror of
https://gh.wpcy.net/https://github.com/seven-io/FreeScout.git
synced 2026-07-15 15:20:56 +08:00
This commit extends the seven.io SMS module for FreeScout with automatic
SMS notifications for various conversation events. The implementation provides
a unified configuration interface for managing multiple event types.
Features:
- Support for 4 conversation events: conversation.created, conversation.assigned,
customer.reply.created, user.reply.created
- Shared configuration with event selection checkboxes
- Flexible recipient options: assigned user or fixed phone numbers
- Mailbox filtering to target specific mailboxes
- Rich placeholder system including {{event.type}} for universal templates
- Phone number validation and JSON encoding for array settings
- Bilingual support (English and German)
Technical implementation:
- Added handleEventNotification() helper method in SevenServiceProvider
- Registered 4 event hooks using Eventy
- Extended Config class with 6 new getter methods
- Added settings UI with on/off toggle, event checkboxes, and form fields
- Implemented validation rules and sanitization in beforeSave hook
- Added 18 translation keys per language
All changes are backward compatible and follow existing code patterns.
55 lines
No EOL
3.8 KiB
JSON
Executable file
55 lines
No EOL
3.8 KiB
JSON
Executable file
{
|
|
"bulkSmsTitle": "Massen-SMS über :vendor",
|
|
"bulkSmsHeading": "Massen-SMS",
|
|
"bulkSmsTeaser": "Dieses Formular ermöglicht den SMS-Versand an alle Benutzer auf einmal.",
|
|
"bulkSmsHistoryHeading": "Verlauf",
|
|
"bulkSmsHistoryCaption": "Diese Tabelle repräsentiert die gesendeten Nachrichten.",
|
|
"bulkSmsHistoryEmpty": "Es wurden scheinbar noch keine Nachrichten versendet.",
|
|
"bulkSmsHistoryId": "Nachrichten-ID",
|
|
"bulkSmsHistoryTo": "An",
|
|
"bulkSmsHistoryText": "Text",
|
|
"bulkSmsHistoryApiResponse": "API-Antwort",
|
|
"settingSectionGeneral": "Allgemein",
|
|
"settingSectionEvents": "Ereignisse",
|
|
"settingEventConversationStatusUpdated": "Update von Konversation-Status",
|
|
"settingEventConversationActive": "Aktiv",
|
|
"settingEventConversationText": "Text",
|
|
"settingApiKeyLabel": "API-Schlüssel",
|
|
"settingApiKeyHelp": "Kann im Dashboard erstellt werden - <a href='https://help.seven.io/de/api-key-zugriff' target='_blank'>mehr erfahren</a>.",
|
|
"settingSmsFromLabel": "Von",
|
|
"settingSmsFromHelpIntro": "Wird als Absenderkennung angezeigt.",
|
|
"settingSmsFromHelpLimits": "Darf :maxAlphanumeric alphanumerische bzw. :maxNumeric numerische Zeichen nicht übersteigen.",
|
|
"settingSmsFromHelpCountryRestrictions": "Länderspezifische Restriktionen können gegeben sein.",
|
|
"settingSmsFromHelpMoreInfo": "Mehr Info im <a href='https://help.seven.io/de/absenderkennung-setzen' target='_blank'>Helpdesk</a>.",
|
|
"smsFormSettingsLegend": "SMS-Einstellungen",
|
|
"smsFormTextPlaceholder": "Hallo :placeholders",
|
|
"smsFormTextRequiredMessage": "Bitte Text eingeben",
|
|
"smsFormTextLabel": "Text",
|
|
"smsFormTextSubmit": "SMS versenden",
|
|
"smsFormFlashLabel": "Flash",
|
|
"userSmsLabel": "SMS senden",
|
|
"userSmsTitle": "SMS senden an :firstName :lastName",
|
|
"flashSentSms": ":msgCount SMS versendet an :receivers Nummer(n) für :cost €",
|
|
"flashNoRecipients": "Keine Rufnummern gefunden mit gegebenen Filtern.",
|
|
"flashBalanceFail": "Fehler bei Guthaben-Abfrage - wurde der korrekte API-Schlüssel angegeben?",
|
|
"flashBalance": "Guthaben: :balance",
|
|
"settingEventNotifications": "Event-Benachrichtigungen",
|
|
"settingEventNotificationsEnabled": "Aktivieren",
|
|
"settingEventNotificationsEvents": "Auslösende Events",
|
|
"settingEventNotificationsEventsHelp": "Wählen Sie aus, welche Events SMS-Benachrichtigungen auslösen sollen",
|
|
"settingEventNotificationsEventConversationCreated": "Neues Ticket erstellt",
|
|
"settingEventNotificationsEventConversationAssigned": "Ticket zugewiesen",
|
|
"settingEventNotificationsEventCustomerReply": "Kunde hat geantwortet",
|
|
"settingEventNotificationsEventUserReply": "Agent hat geantwortet",
|
|
"settingEventNotificationsText": "Nachrichtentext",
|
|
"settingEventNotificationsTextHelp": "Nachricht, die bei einem Event versendet wird",
|
|
"settingEventNotificationsPlaceholders": "Verfügbare Platzhalter: {{event.type}}, {{conversation.id}}, {{conversation.subject}}, {{conversation.status}}, {{customer.name}}, {{customer.email}}, {{mailbox.name}}, {{mailbox.email}}, {{user.name}}",
|
|
"settingEventNotificationsRecipientMode": "Senden an",
|
|
"settingEventNotificationsRecipientModeHelp": "Wählen Sie aus, wer die SMS-Benachrichtigung erhalten soll",
|
|
"settingEventNotificationsRecipientModeAssignedUser": "Zugewiesener Benutzer",
|
|
"settingEventNotificationsRecipientModeFixedNumbers": "Feste Telefonnummern",
|
|
"settingEventNotificationsFixedNumbers": "Telefonnummern",
|
|
"settingEventNotificationsFixedNumbersHelp": "Kommagetrennte Liste von Telefonnummern im internationalen Format (z.B. +491234567890,+491234567891)",
|
|
"settingEventNotificationsMailboxes": "Postfächer",
|
|
"settingEventNotificationsMailboxesHelp": "Wählen Sie Postfächer zur Überwachung aus. Leer lassen, um alle Postfächer zu überwachen."
|
|
} |