Auto-Generated Documentation for the Flex UI is now available. The auto-generated documentation is accurate and comprehensive, and may differ from what you see in the official Flex UI documentation. Includes a complete listing of customizable Strings.
You can override any string by editing the strings
object on the Flex Manager instance:
_10flex.Manager.getInstance().strings.TaskLineCallAssigned = "I am a content string!";
Language strings can technically contain any HTML tag like h1
, h2
, p
or even iframe
. The Flex UI will not filter these values.
Flex uses Handlebars for templating and supports Mustache-style syntax and expressions within content strings, ie. embedding value placeholders between double braces. Here's an example:
_16manager.strings.TaskInfoPanelContent = `_16<h1>TASK CONTEXT</h1>_16<h2>Task type</h2>_16<p>1{{task.attributes.title}}</p>_16<p>2{{task.title}}</p>_16<h2>Task created on</h2>_16<p>{{task.dateCreated}}</p>_16<h2>Task priority</h2>_16<p>{{task.priority}}</p>_16<h2>Task queue</h2>_16<p>{{task.taskQueueName}}</p>_16<hr />_16<h1>CUSTOMER CONTEXT</h1>_16<h2>Customer name / phone number</h2>_16<p>{{task.attributes.name}}</p>_16`;
Within the context of each component and string, additional dynamic content is available: for example, by accessing Task properties or attributes.
The following strings support Task context.
TaskInfoPanelContent
TaskHeaderLine
TaskHeaderComplete
TaskHeaderWrapup
TaskExtraInfo
TaskLineCallReserved
TaskLineCallAssigned
TaskLineCallWrapup
TaskLineChatReserved
TaskLineChatAssigned
TaskLineWebChatAssigned
TaskLineSmsReserved
TaskLineSmsAssigned
LiveCommsMonitoringMessage
LiveCommsOngoingCallMessage
LiveCommsIncomingCallMessage
SupervisorTaskCardHeader
SupervisorTaskHeaderLine
SupervisorTaskViewContentHeader
SupervisorTaskInfoPanelContent
Depending on the channel type, TaskRouter Tasks may contain any of the following properties and attributes. Each is listed with an example.
Voice-related Task attributes
account_sid
: "ACxxxx"
api_version
: "2010-04-01"
call_sid
: "CAxxxx"
called
: "+181xxxx"
called_city
: "CITY"
called_country
: "COUNTRY"
called_state
: "STATE"
called_zip
: "60xxxx"
caller
: "+372xxxx"
caller_city
: "CITY"
caller_country
: "COUNTRY"
caller_state
: "STATE"
caller_zip
: "ZIP"
conference
:
{sid: "CFxxxx", participants: {customer: "CAxxxx", worker: "CAxxxx"}}
direction
: "inbound"
from
: "+372xxxx"
from_city
: "CITY"
from_country
: "COUNTRY"
from_state
: "STATE"
from_zip
: "ZIP"
name
: "+372xxxx"
to
: "+181xxxx"
to_city
: "CITY"
to_country
: "COUNTRY"
to_state
: "STATE"
to_zip
: "60xxxx"
type
: "inbound"
Chat-related Task attributes
channelSid
: "CHxxxx"
channelType
: "sms"
name
: "+372xxxx"
Task Properties
age
: 3248
channelType
: "voice"
dateCreated
: "Mon Jun 10 2018 16:41:12 GMT+0100 (British Summer Time)"
defaultFrom
: "Anonymous"
priority
: 0
queueName
: "Sample Queue"
queueSid
: "WQxxxx"
reason
: null
sid
: "WRxxxx"
source
: (Object)
sourceObject
: (Object)
taskChannelSid
: "TCxxxx"
taskChannelUniqueName
: "sms"
taskSid
: "WTxxxx"
taskStatus
: "reserved"
workerSid
: "WKxxxx"
workflowName
: "Default Fifo Workflow"
workflowSid
: "WWxxxx"
Here's an example of the use in a template of a couple of the properties and attributes listed above:
_10manager.strings.TaskExtraInfo = "My task {{task.attributes.name}} was created on {{task.dateCreated}}";
Helper functions provide you with a way to customize text with dynamic information. All of these functions are called using dot syntax on the object helper
, as shown in the example after the list of functions.
lastChatMessage
— returns
a Twilio Chat SDK message object
.
durationSinceUpdate
— returns the time since the Task was last updated, in the format
MM:SS
.
durationSinceUpdateShort
—returns the time since the Task was last updated in the largest major time unit. For example, for a Task lasting 0 days 3 hours 49 minutes 17 seconds, the function will return
3h
.
jsonString
— returns a string representation of a Task.
isLiveCall
— returns
true
if the specified Task is an Accepted Call Task.
isCallOnHold
— returns
true
if the specified Task is an Accepted Call Task that belongs to a current worker and is currently on hold.
isLiveChat
— returns
true
if the specified Task is an Accepted Chat-based Task.
isIncomingCall
— returns
true
if the specified Task is pending, ie. waiting to be accepted.
isChatBasedTask
— returns
true
if the specified Task has chat capabilities.
isCallTask
— returns
true
if the specified Task has callcapabilities.
isVideoCallTask
— returns
true
if the specified Task has video capabilities.
getTaskChatChannelSid
— retrieve the Channel SID of the Chat Task.
isPending
— returns
true
if the the specified Task is pending.
isInWrapupMode
— returns
true
if the specified Task is in wrapup.
isCompleted
— returns
true
if the specified Task has been completed.
isMyTask
— returns
true
if the specified Task is assigned to a current user.
getTaskByTaskSid
— retrieves the Task object associated with the specified Task SID.
isTaskAccepted
— returns
true
if the specified Task has been accepted by an agent, or is in a wrapup or completed state.
chat.isCustomerOnline
— returns
true
if customer is online,
false
if not.
Here is an example of the use of a helper function to enable dynamic updates:
_10manager.strings.TaskExtraInfo = "Time since last update: {{helper.durationSinceUpdate}}";
The following is a partial list of available content strings. For a more up-to-date list, see the latest version of the Flex UI Strings documentation.
RuntimeLoginWithTwilio
link in the runtime login view
The following template code shows the default values assigned to the above strings:
_310{_310infoPanelContent: "`_310<h1>TASK CONTEXT</h1>_310<h2>Task type</h2>_310<p>{{task.channelType}}</p>_310<h2>Task created on</h2>_310<p>{{task.dateCreated}}</p>_310<h2>Task priority</h2>_310<p>{{task.priority}}</p>_310<h2>Task queue</h2>_310<p>{{task.queueName}}</p>_310<h2>Task Sid</h2>_310<p>{{task.taskSid}}</p>_310<h2>Reservation Sid</h2>_310<p>{{task.sid}}</p>_310<hr />_310<h1>CUSTOMER CONTEXT</h1>_310<h2>Customer name / phone number</h2>_310<p>{{task.defaultFrom}}</p>_310<h2>Country</h2>_310<p>{{task.attributes.caller_country}}</p>_310<hr />_310<h1>ADDONS</h1>_310<p>_310 No add-ons enabled._310 To expand your experience, visit_310</p>_310<a href="https://www.twilio.com/marketplace/add-ons" target="blank">Twilio Marketplace</a>`",_310_310 SetYourStatus: "Set your status",_310 LogOut: "Log out",_310 SigningIn: "Signing in",_310 SessionExpired:_310 "Your session has expired. " + "<a href='#' onClick='window.location.reload()'>Click here to log in again</a>",_310 NoTasksTitle: "Status",_310 NoTasks: "No active tasks",_310 NoTasksHintNotAvailable: "Change activity state to start receiving tasks.",_310 NoTasksHintAvailable: "You are ready to start receiving tasks.",_310_310 NoCRMConfigured: "No CRM configured",_310 NoCRMConfiguredAction: "HOW TO CONFIGURE",_310 NoCRMTitle: "CRM config",_310 NoCRMHint: "Our docs can help you get started.",_310 LoginWelcome: "Hi there, welcome to Flex!",_310 LoginContinue: "Continue anyway",_310 LoginAgain: "Login again",_310 LoginLaunch: "Launch",_310 LoginTitle: "Twilio Flex",_310 LoginErrorDomain: "Oops! Your runtime domain is incorrect.",_310 LoginErrorDomainDetails:_310 "Find your runtime domain " + "<a href='https://www.twilio.com/console/runtime/overview'>here</a>",_310 LoginErrorSso: "Hmm, Single Sign-On has not been configured.",_310 LoginErrorSsoDetails:_310 "Find out how to configure Single Sign-On " +_310 "<a href='https://www.twilio.com/console/flex/users/single-sign-on'>here</a>",_310 LoginErrorPopupBlocked: "Sorry, pop-ups are blocked.",_310 LoginErrorPopupBlockedDetails:_310 "<a href='https://support.google.com/chrome/answer/95472'>" +_310 "Find out how to enable pop-ups in your browser</a>",_310 LoginErrorInvalidCertificate: "Invalid SSO Settings",_310 LoginErrorInvalidCertificateDetails:_310 "This may be caused by malformed urls or missing/invalid certificates. Please reconfigure the " +_310 "<a href='https://www.twilio.com/docs/api/errors/70251' target='_blank'>" +_310 "SSO settings" +_310 "</a>" +_310 " and retry.",_310 LoginErrorGeneric: "Oops! Well, that didn't work :( Please double check your configuration.",_310 LoginIsAdmin: "Flex Admin?",_310 LoginWithTwilio: "Login with Twilio.",_310 TaskHeaderLeaveCall: "LEAVE CALL",_310 TaskHeaderEndCall: "HANG UP",_310 TaskHeaderWrapup: "WRAP UP",_310 TaskHeaderComplete: "COMPLETE",_310 TaskHeaderEndChat: "END CHAT",_310 TaskHeaderStatusPending: "",_310 TaskHeaderStatusAccepted: "Live | {{helper.durationSinceUpdate}}",_310 TaskHeaderWebChatStatusAccepted:_310 "{{#if helper.chat.isCustomerOnline}} {{{icon name='GreenIndicator'}}} {{else}} {{{icon name='GreyIndicator'}}} {{/if}} Live | {{helper.durationSinceUpdate}}",_310 TaskHeaderGroupCallAccepted:_310 "Live | {{helper.durationSinceUpdate}} | {{{icon name='Participant'}}} " +_310 "{{task.conference.liveParticipantCount}}",_310 TaskHeaderStatusWrapup: "Wrap up | {{helper.durationSinceUpdate}}",_310 TaskHeaderStatusCompleted: "Completed | {{helper.durationSinceUpdate}}",_310 SideNavTaskView: "Agent Desktop",_310 SideNavTeamsView: "Teams",_310 SideNavAgentDashboard: "Agent Dashboard",_310 SideNavSupervisorInspections: "Supervisor Inspections",_310 SideNavSupervisorDashboard: "Supervisor Dashboard",_310 SideNavSupervisorReports: "Supervisor Reports",_310 SideNavSettings: "Settings",_310 SideNavQueuesStatsView: "Queue Stats",_310 TaskHeaderLine: "{{task.defaultFrom}}",_310 TaskExtraInfo:_310 "Lorem ipsum dolor sit amet, consectetur adipiscing elit, " +_310 "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. " +_310 "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip " +_310 "ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit " +_310 "esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non " +_310 "proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",_310 TaskLineCallIncomingTitle: "Incoming call",_310 TaskLineCallTransferTitle: "Transfer request",_310 TaskLineCallEndedTitle: "Call ended",_310 TaskLineQueue: "Queue: {{task.queueName}}",_310 TaskLineCallDuration: "{{helper.durationSinceUpdate}}",_310 TaskLineCallReserved: "Incoming call from queue {{task.queueName}}",_310 TaskLineCallAssigned: "Live | {{helper.durationSinceUpdate}}",_310 TaskLineCallWrapup: "Wrap up | {{helper.durationSinceUpdate}}",_310 TaskLineGroupCallAssigned:_310 "Live | {{helper.durationSinceUpdate}} | {{{icon name='Participant'}}} " +_310 "{{task.conference.liveParticipantCount}}",_310 TaskLineCallTransferWorker: "Request from {{task.incomingTransferObject.worker.fullName}} (direct)",_310 TaskLineCallTransferWorkerDetail:_310 "From: {{task.incomingTransferObject.worker.fullName}} (direct)<br />" + "Queue: {{task.queueName}}",_310 TaskLineCallTransferQueue:_310 "Request from {{task.incomingTransferObject.worker.fullName}} ({{task.incomingTransferObject.queue.name}})",_310 TaskLineCallTransferQueueDetail:_310 "From: {{task.incomingTransferObject.worker.fullName}}<br />" + "Queue: {{task.queueName}}",_310 TaskLineChatReserved: "Incoming chat request",_310 TaskLineChatLineReserved: "Incoming Line request",_310 TaskLineChatMessengerReserved: "Incoming Messenger request",_310 TaskLineChatWhatsAppReserved: "Incoming WhatsApp request",_310 TaskLineSmsReserved: "Incoming SMS request",_310 TaskLineChatAssigned:_310 "{{helper.durationSinceUpdate}} | {{#if helper.chat.typers.length}} typing … {{else}} {{#if helper.chat.lastMessage}} " +_310 "{{helper.chat.lastMessage.authorName}}: {{helper.chat.lastMessage.body}}" +_310 "{{else}}No messages{{/if}}{{/if}}",_310 TaskLineWebChatAssigned:_310 "{{#if helper.chat.isCustomerOnline}} {{{icon name='GreenIndicator'}}} {{else}} {{{icon name='GreyIndicator'}}} {{/if}}" +_310 "{{helper.durationSinceUpdate}} | {{#if helper.chat.typers.length}} typing … {{else}} {{#if helper.chat.lastMessage}} " +_310 "{{helper.chat.lastMessage.authorName}}: {{helper.chat.lastMessage.body}}" +_310 "{{else}}No messages{{/if}}{{/if}}",_310 TaskLineTitle: "",_310 TaskReserved: "Reserved",_310 TaskAssigned: "Assigned",_310 TaskWrapup: "In wrap up",_310 TaskCompleted: "Completed",_310 TaskCanceled: "Canceled",_310 TaskFilterAll: "ALL TASKS",_310 TaskFilterActive: "ACTIVE TASKS",_310 TaskFilterWrapping: "TASKS IN WRAP UP",_310 TaskInfoPanelContent: infoPanelContent,_310 ColumnHeaderAgent: "AGENT",_310 ColumnHeaderCalls: "CALLS",_310 ColumnHeaderTasks: "OTHER TASKS",_310 SupervisorUserCardFirstLine: "{{worker.fullName}}",_310 SupervisorUserCardSecondLine: "{{worker.activityName}} | {{worker.activityDuration}}",_310 SupervisorTaskViewContentHeader: "{{worker.fullName}}, {{task.defaultFrom}}",_310 SupervisorTaskHeaderLine: "{{task.defaultFrom}}",_310 SupervisorTaskLive: "{{helper.durationSinceUpdateShort}}",_310 SupervisorTaskGroupCall: "{{helper.durationSinceUpdateShort}} | ({{task.conference.liveParticipantCount}})",_310 SupervisorTaskWrapUp: "Wrap up | {{helper.durationSinceUpdateShort}}",_310 SupervisorTaskCompleted: "Completed | {{helper.durationSinceUpdateShort}}",_310 SupervisorTaskCardHeader: "{{task.defaultFrom}}",_310 SupervisorTaskInfoPanelContent: infoPanelContent,_310 LiveCommsMonitoringMessage: "You are listening to a call with {{task.defaultFrom}} and {{worker.fullName}}",_310 LiveCommsMonitoringMessageMoreWorkers:_310 "You are listening to a call with {{task.defaultFrom}} and {{workers.length}} workers",_310 LiveCommsMonitoringMessageNoWorkers: "You are listening to a call with {{task.defaultFrom}}",_310 LiveCommsOngoingCallMessage: "You are on a call with {{task.defaultFrom}}",_310 LiveCommsIncomingCallMessage: "Incoming call from {{task.defaultFrom}}",_310 LiveCommsBarAccept: "accept",_310 LiveCommsBarDeny: "reject",_310 LiveCommsBarReturnToCall: "RETURN",_310 LiveCommsBarStopListening: "STOP LISTENING",_310 LiveCommsBarHold: "HOLD",_310 LiveCommsBarUnHold: "UNHOLD",_310 WorkerDirectoryTitle: "Transfer",_310 WorkerDirectoryItemFirstLine: "{{worker.fullName}}",_310 WorkerDirectoryItemSecondLine: "{{worker.activityName}}",_310 WorkerDirectoryAgentsTabLabel: "AGENTS",_310 WorkerDirectoryQueuesTabLabel: "QUEUES",_310 WorkerDirectoryQueueItemText: "{{queue.name}}",_310 WorkerDirectorySearchPlaceholder: "Search",_310 ChatInputDisabledText: "Conversation ended",_310 WorkerCanvasHeader: "Profile",_310 WorkerCanvasDetailsHeader: "Agent Details",_310 WorkerCanvasSkillsHeader: "Skills",_310 WorkerSkillLevelInvalid: "Please select a skill level between {{min}} - {{max}}",_310 WorkerSkillPleaseSelect: "Add skill",_310 WorkerSkillsNoSkills: "No skills attributed",_310 WorkerSkillsSchemaMismatch: "Worker skills schema mismatch",_310 WorkerSkillsSaved: "Changes saved successfully",_310 WorkerSkillsError: "Failed to save changes",_310 WorkerSkillsReverted: "Changes reverted",_310 ChatWelcomeText: "Conversation started with customer",_310 UiVersionDeprecated: "{{message}}",_310 RuntimeLoginLabel: "Runtime domain",_310 RuntimeLoginPlaceholder: "Your Runtime Domain",_310 RuntimeLoginLaunch: "Launch",_310 RuntimeLoginWithTwilio: "Login with Twilio.",_310 RuntimeLoginIsAdmin: "Flex Admin?",_310 RuntimeLoginErrorDomain: "Oops! Well, that didn't work :( Check your <b>domain</b>.",_310 RuntimeLoginErrorSso: "Oops! Well, that didn't work :( Check your <b>SSO</b> setup.",_310 TransferFailedNotification: "Agent unavailable",_310 TaskCannotBeTransferredNotification: "Task cannot be transferred",_310 SupervisorTaskCanvasHeader: "TASK DETAILS",_310 TaskTabAgentIncomingLabel: "Incoming",_310 TaskTabAgentCallLabel: "Call",_310 TaskTabAgentChatLabel: "Chat",_310 TaskTabAgentInfoLabel: "Info",_310 TaskTabSupervisorOverviewLabel: "Overview",_310 TaskTabSupervisorCallLabel: "Call",_310 TaskTabSupervisorChatLabel: "Chat",_310 TaskTabSupervisorInfoLabel: "Info",_310 MicNotAvailableNotification: "Unable to access microphone, please check browser settings.",_310 BrowserVoiceDisabledNotification: "Call cannot be accepted. Twilio Voice SDK has been disabled.",_310 MessageSizeExceeded: "The entered character number exceeds the limit - {{currentCharCount}}/{{maxCharCount}}",_310 UserControlWorkerSecondLine: "{{worker.activityName}} | {{worker.activityDuration}}",_310 UserLoggedOutSuccess: "You have logged out successfully!",_310 CannotChangeOtherWorkerActivity:_310 "You cannot change an agent's activity while they have a pending task/reservation.",_310 CallCanvasWorkerOnHold: "You are on hold",_310 CallCanvasUnholdWorker: "Unhold",_310 CallParticipantStatusOnHold: "On Hold",_310 CallParticipantStatusLive: "Live",_310 CallParticipantStatusConnecting: "Calling...",_310 CallParticipantStatusLeft: "Caller left",_310 CallParticipantStatusTransferFailed: "No Answer",_310 CallParticipantStatusKickConfirmation: "Remove from call?",_310 LiveCommsIncomingDirectCallTransfer: "Request from {{task.incomingTransferObject.worker.fullName}} (direct)",_310 LiveCommsIncomingQueueCallTransfer:_310 "Request from {{task.incomingTransferObject.worker.fullName}} ({{task.incomingTransferObject.queue.name}})",_310 CallParticipantCustomerName: "{{task.defaultFrom}}",_310 MonitoringFailedNotification: "Monitoring attempt has failed",_310 PredefinedChatMessageAuthorName: "Bot",_310 PredefinedChatMessageBody: "Hi there! How can we help you today?",_310 AgentStatusAvailable: "Available",_310 AgentStatusBusy: "Busy",_310 AgentStatusUnavailable: "Unavailable",_310 AgentStatusOffline: "Offline",_310 ActiveTasksTileTitle: "Active tasks",_310 WaitingTasksTileTitle: "Waiting tasks",_310 AgentsByActivityTileTitle: "Agents",_310 LongestWaitTimeTileTitle: "Longest wait",_310 QueuesNoDataHeading: "Queues",_310 QueuesNoDataBodyForAdmin: "You have no Queues set up. Please configure your Queues.",_310 QueuesNoDataBodyForSupervisor: "There are no Queues set up. Please contact your Administrator.",_310 QueuesNoDataLinkLabelForAdmin: "Add Queue",_310 PendingReservationsOnLogoutNotification: "You cannot logout while you have a pending task/reservation",_310 PendingReservationsOnActivityStateChangeNotification:_310 "You cannot update your activity while you have a pending task/reservation",_310 AcceptTaskTooltip: "Accept",_310 RejectTaskTooltip: "Reject",_310 HangupCallTooltip: "Hang up",_310 LeaveCallTooltip: "Leave",_310 MuteCallTooltip: "Mute",_310 HoldCustomerTooltip: "Hold Customer",_310 UnholdCustomerTooltip: "Unhold Customer",_310 HoldAgentTooltip: "Hold {{worker.fullName}}",_310 UnholdAgentTooltip: "Unhold {{worker.fullName}}",_310 CancelTransferTooltip: "Cancel Consult",_310 KickAgentTooltip: "Hang up {{worker.fullName}}",_310 ColdTransferTooltip: "Transfer",_310 WarmTransferTooltip: "Consult",_310 MonitorCallTooltip: "Monitor Call",_310 LogToFileStartLoggingText: `<div>_310 <h2>Capture logs</h2>_310 <ul>_310 <li>When you enable logging, your browser will be refreshed and logs capturing will start.</li>_310 <li>Once you are ready to finish - stop logging. All captured logs will be saved to a text file.</li>_310 </ul>_310 </div>`,_310 LogToFileStartLoggingLabel: "Refresh and start",_310 LogToFileStopLoggingText: `<div>_310 <h2>Logging is active</h2>_310 <p>_310 If you've repeated your actions and reproduced the issue, stop logging to download the file with captured logs._310 </p>_310 </div>`,_310 LogToFileStopLoggingLabel: "Finish and download",_310 ChatOrchestrationAddToChatChannelFailed: "Failed to add worker to the chat channel.",_310 ChatOrchestrationDeactivateChatChannelFailed: "Failed to deactivate the chat channel.",_310 ChatOrchestrationLeaveChatChannelFailed: "Failed to remove worker from the chat channel.",_310 TeamsViewFilterAction: "Filter{{#if filterCount}} ({{filterCount}}){{/if}}",_310 TeamsViewClearSearchAction: "Clear search result",_310 TeamsViewClearSearchPlaceholder: "Search Agents",_310 TeamsViewResultsSummaryNoWorkersDisplayed: "No agents matched your criteria. Refine results via search or filter.",_310 TeamsViewResultsSummaryMaxWorkersDisplayed: "Showing maximum number of agents. Refine results via search or ",_310 TeamsViewResultsSummaryFilterCTA: "filter",_310 TeamFiltersPanelTitle: "Filters",_310 TeamFiltersPanelSingularLabel: "Viewing <strong>{{number}}</strong> agent",_310 TeamFiltersPanelPluralLabel: "Viewing <strong>{{number}}</strong> agents",_310 TeamFiltersApply: "Apply",_310 TeamFiltersReset: "Reset",_310 InputPlaceHolder: "Type message",_310 TypingIndicator: "{0} is typing … ",_310 Connecting: "Connecting …",_310 Disconnected: "Connection lost",_310 Read: "Read",_310 MessageSendingDisabled: "Message sending has been disabled",_310 Today: "TODAY",_310 Yesterday: "YESTERDAY",_310 MessageCanvasTrayContent: `_310 <h6>Complete</h6>_310 <p>This chat is no longer active.</p>`,_310 MessageCanvasTrayButton: "START NEW CHAT",_310 WelcomeMessage: "Welcome to customer service",_310 NotificationMessage: "Unable to perform action: {{message}}",_310 Save: "SAVE",_310 Reset: "RESET",_310 MessageCharacterCountStatus: "{{currentCharCount}} / {{maxCharCount}}",_310 MessageCharacterCountReached: "Character count reached - {{currentCharCount}} / {{maxCharCount}}",_310 SendMessageTooltip: "Send Message",_310 FieldValidationRequiredField: "Field required",_310 FieldValidationInvalidEmail: "Please provide a valid email address",_310 ChatInputUserNotMemberDisabledText: "You are not a participant of this chat",_310 FilterItemAny: "Any",_310 FilterItemAmountSelected: "{{amount}} selected",_310 FilterItemOnly: "{{item.label}} only"_310};