mirror of
https://gh.wpcy.net/https://github.com/seven-io/FreeScout.git
synced 2026-07-15 12:58:36 +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.5 KiB
JSON
Executable file
55 lines
No EOL
3.5 KiB
JSON
Executable file
{
|
|
"bulkSmsTitle": "Bulk SMS via :vendor",
|
|
"bulkSmsHeading": "Bulk SMS",
|
|
"bulkSmsTeaser": "Use this form to send SMS to all your users at once.",
|
|
"bulkSmsHistoryHeading": "History",
|
|
"bulkSmsHistoryCaption": "This table represents the sent messages.",
|
|
"bulkSmsHistoryEmpty": "It seems that no messages have been sent yet.",
|
|
"bulkSmsHistoryId": "Message ID",
|
|
"bulkSmsHistoryTo": "To",
|
|
"bulkSmsHistoryText": "Text",
|
|
"bulkSmsHistoryApiResponse": "API Response",
|
|
"settingSectionGeneral": "General",
|
|
"settingSectionEvents": "Events",
|
|
"settingEventConversationStatusUpdated": "Conversation Status Update",
|
|
"settingEventConversationActive": "Active",
|
|
"settingEventConversationText": "Text",
|
|
"settingApiKeyLabel": "API Key",
|
|
"settingApiKeyHelp": "Can be created in your dashboard - <a href='https://help.seven.io/en/api-key-access' target='_blank'>read more</a>.",
|
|
"settingSmsFromLabel": "From",
|
|
"settingSmsFromHelpIntro": "Displayed as the sender.",
|
|
"settingSmsFromHelpLimits": "Must not exceed :maxAlphanumeric alphanumeric or :maxNumeric numeric characters.",
|
|
"settingSmsFromHelpCountryRestrictions": "Country specific restrictions may apply.",
|
|
"settingSmsFromHelpMoreInfo": "Read more about it in our <a href='https://help.seven.io/en/set-sender-id' target='_blank'>helpdesk</a>.",
|
|
"smsFormSettingsLegend": "SMS Settings",
|
|
"smsFormTextPlaceholder": "Dear :placeholders",
|
|
"smsFormTextRequiredMessage": "Please enter a text",
|
|
"smsFormTextLabel": "Text",
|
|
"smsFormTextSubmit": "Send SMS",
|
|
"smsFormFlashLabel": "Flash",
|
|
"userSmsLabel": "Send SMS",
|
|
"userSmsTitle": "Send SMS to :firstName :lastName",
|
|
"flashSentSms": "Sent :msgCount SMS to :receivers recipient(s) for :cost €",
|
|
"flashNoRecipients": "No recipients found for given filters.",
|
|
"flashBalanceFail": "Failed to retrieve balance - did you enter the correct API key?",
|
|
"flashBalance": "Balance: :balance",
|
|
"settingEventNotifications": "Event Notifications",
|
|
"settingEventNotificationsEnabled": "Activate",
|
|
"settingEventNotificationsEvents": "Trigger Events",
|
|
"settingEventNotificationsEventsHelp": "Select which events should trigger SMS notifications",
|
|
"settingEventNotificationsEventConversationCreated": "New ticket created",
|
|
"settingEventNotificationsEventConversationAssigned": "Ticket assigned",
|
|
"settingEventNotificationsEventCustomerReply": "Customer replied",
|
|
"settingEventNotificationsEventUserReply": "Agent replied",
|
|
"settingEventNotificationsText": "Message Text",
|
|
"settingEventNotificationsTextHelp": "Message sent when an event occurs",
|
|
"settingEventNotificationsPlaceholders": "Available placeholders: {{event.type}}, {{conversation.id}}, {{conversation.subject}}, {{conversation.status}}, {{customer.name}}, {{customer.email}}, {{mailbox.name}}, {{mailbox.email}}, {{user.name}}",
|
|
"settingEventNotificationsRecipientMode": "Send To",
|
|
"settingEventNotificationsRecipientModeHelp": "Choose who should receive the SMS notification",
|
|
"settingEventNotificationsRecipientModeAssignedUser": "Assigned User",
|
|
"settingEventNotificationsRecipientModeFixedNumbers": "Fixed Phone Numbers",
|
|
"settingEventNotificationsFixedNumbers": "Phone Numbers",
|
|
"settingEventNotificationsFixedNumbersHelp": "Comma-separated list of phone numbers in international format (e.g. +491234567890,+491234567891)",
|
|
"settingEventNotificationsMailboxes": "Mailboxes",
|
|
"settingEventNotificationsMailboxesHelp": "Select mailboxes to monitor. Leave empty to monitor all mailboxes."
|
|
} |