Menu

Localization and UI Templating

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.

What can you do with templated UI strings?

Overriding language strings

You can override any string by editing the strings object on the Flex Manager instance:

flex.Manager.getInstance().strings.TaskLineCallAssigned = "I am a content string!";

Override Flex templated string 'TaskLineCallAssigned'

Language strings can technically contain any HTML tag like h1, h2, p or even iframe. The Flex UI will not filter these values.

Templating support with Mustache-style syntax

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:

manager.strings.TaskInfoPanelContent = `
<h1>TASK CONTEXT</h1>
<h2>Task type</h2>
<p>1{{task.attributes.title}}</p>
<p>2{{task.title}}</p>
<h2>Task created on</h2>
<p>{{task.dateCreated}}</p>
<h2>Task priority</h2>
<p>{{task.priority}}</p>
<h2>Task queue</h2>
<p>{{task.taskQueueName}}</p>
<hr />
<h1>CUSTOMER CONTEXT</h1>
<h2>Customer name / phone number</h2>
<p>{{task.attributes.name}}</p>
`;

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

Accessing Task context: properties and attributes

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)"
  • dateUpdated: "Mon Jun 10 2018 16:43:12 GMT+0100 (British Summer Time)"
  • defaultFrom: "Anonymous"
  • priority: 0
  • queueName: "Sample Queue"
  • queueSid: "WQxxxx"
  • reason: null
  • sid: "WRxxxx"
  • source: (Object)
  • sourceObject: (Object)
  • status: "assigned"
  • taskChannelSid: "TCxxxx"
  • taskChannelUniqueName: "sms"
  • taskSid: "WTxxxx"
  • taskStatus: "reserved"
  • timeout: 3600
  • 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:

manager.strings.TaskExtraInfo = "My task {{task.attributes.name}} was created on {{task.dateCreated}}";

Helper functions

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:

manager.strings.TaskExtraInfo = "Time since last update: {{helper.durationSinceUpdate}}";

List of available content strings

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.

  • SetYourStatus — shown in the right top menu as a label to set your status
  • LogOut — shown in the menu for log out item
  • SessionExpired — notification for an expired session
  • SideNavTaskView — left side navigation, task view link
  • SideNavTeamsView - sidebar link that navigates to Teams view
  • TaskHeaderLine - shown in the task list on the first line
  • TaskExtraInfo - shown in the task list on separate section as bigger text
  • TaskLineCallReserved - describes an incoming call in the call canvas, task canvas and task list
  • TaskLineCallWrapup - describes a call in wrapup status in the call canvas, task canvas and task list
  • TaskLineChatReserved - describes an incoming chat in the task canvas and task list
  • TaskLineSmsReserved - describes an incoming SMS chat in the task canvas and task list
  • TaskLineChatLineReserved - describes an incoming Line chat in the task canvas and task list
  • TaskLineChatMessengerReserved - describes an incoming Facebook Messenger chat in task canvas and task list
  • TaskLineChatWhatsAppReserved - describes an incoming WhatsApp chat in task canvas and task list
  • TaskLineChatAssigned - describes an assigned chat task (except webchat) and any chat task in wrapup status at the task list
  • TaskLineWebChatAssigned - describes an assigned webchat task at the task list
  • TaskReserved - describes an incoming default generic task in the call canvas, task canvas and task list from the agent perspective
  • TaskAssigned - describes an assigned default generic task in task card and task list from the agent perspective
  • TaskWrapup - describes a default generic task in wrapup status in the call canvas, task canvas and task list
  • TaskCompleted - describes a completed default generic task in call canvas, task canvas and task list
  • TaskCanceled - describes a canceled default generic task in call canvas, task canvas and task list
  • TaskPending - describes a pending default generic task in call canvas, task canvas and task list
  • TaskFilterAll - shown in the task list filter to include all tasks
  • TaskFilterActive - shown in the task list filter to include only active tasks
  • TaskFilterWrapping - shown in the task list filter to include only tasks in wrap up state
  • TaskInfoPanelContent - task-related information displayed on a task information tab
  • NoTasks - main text on the "No Tasks" panel
  • NoTasksTitle - string to be shown on the placeholder view when there are no tasks for the agent
  • NoTasksHintNotAvailable - small hint on the "No Tasks" panel for not available worker
  • NoTasksHintAvailable - small hint on the "No Tasks" panel for available worker
  • NoCRMTitle - header shown on the placeholder view when there is no CRM configured
  • NoCRMConfigured - main text to be shown on the placeholder view when there is no CRM configured
  • NoCRMConfiguredAction - caption of the button on the "No CRM Configured" panel
  • NoCRMHint - small hint on the "No CRM Configured" panel
  • TaskHeaderComplete - button caption to Complete a task in wrapup
  • TaskHeaderEndCall - button label on Task Header to end call
  • TaskHeaderWrapup - button to take a task to wrapup
  • TaskHeaderEndChat - button label on Task Header to end chat and move the task to wrapup
  • ColumnHeaderAgent - column name for "agents" column in Supervisor table in the Teams view
  • ColumnHeaderCalls - column name for "live calls" column in Supervisor table in the Teams view
  • ColumnHeaderTasks - column name for tasks different from calls in Supervisor table in the Teams view
  • SupervisorUserCardFirstLine - first line displayed for a user card in Supervisor table in the Teams view
  • SupervisorUserCardSecondLine - second line displayed for a user card in Supervisor table in the Teams view
  • SupervisorTaskHeaderLine - header of the task detail view in Supervisor UI in the Teams view
  • SupervisorTaskViewContentHeader - first line of inner content area of task detail view in Supervisor UI in the Teams view
  • SupervisorTaskLive - default string used by "helper" when calculating detail string for task in live state in the Teams view
  • SupervisorTaskWrapUp - default string used by "helper" when calculating detail string for task in wrapping up state in the Teams view
  • SupervisorTaskCompleted - default string used by "helper" when calculating detail string for task in completed state in the Teams view
  • SupervisorTaskCardHeader - first line of task details card in the Teams view
  • SupervisorTaskInfoPanelContent - task-related information displayed on a task information tab in the Teams view
  • LiveCommsMonitoringMessage - text used in Live Comms bar when monitoring a call
  • LiveCommsOngoingCallMessage - text used in Live Comms bar when on a call
  • LiveCommsBarReturnToCall - text in Live Comms bar button to return to a call
  • LiveCommsBarStopListening - text in Live Comms bar button to return to stop monitoring a call
  • LiveCommsBarHold - text in Live Comms bar button to return to hold a call
  • LiveCommsBarUnHold - text in Live Comms bar button to return to unhold a call
  • LiveCommsIncomingCallMessage - text used in Live Comms bar for incoming call task
  • LiveCommsBarAccept - text used in Live Comms bar to on button to accept incoming call task
  • LiveCommsBarDeny - text used in Live Comms bar to on button to reject incoming call task
  • WorkerDirectoryItemFirstLine - first line in an item of a Worker Directory
  • WorkerDirectoryItemSecondLine - second line in an item of a Worker Directory
  • WorkerDirectoryTitle - title of the Worker Directory popup
  • WorkerDirectoryAgentsTabLabel - label of the agents tab in the worker directory popup
  • WorkerDirectoryQueuesTabLabel - label of the queues tab in the worker directory popup
  • WorkerDirectoryQueueItemText - displayed info about a queue item in the list of queues on the queues tab in the worker directory popup
  • WorkerDirectorySearchPlaceholder - placeholder text for the search input
  • ChatInputDisabledText - text displayed inside a disabled chat input
  • WorkerCanvasHeader - header for the worker canvas in Supervisor UI in the Teams view
  • WorkerCanvasDetailsHeader - header for the Worker Details section of the worker canvas in Supervisor UI in the Teams view
  • WorkerCanvasSkillsHeader - header for the Skills section of the worker canvas in Supervisor UI in the Teams view
  • WorkerSkillLevelInvalid - message displayed due to failed validation of a provided skill level of the worker canvas in Supervisor UI in the Teams view
  • WorkerSkillPleaseSelect - text displayed as a placeholder in the skills dropdown menu of the worker canvas in Supervisor UI in the Teams view
  • WorkerSkillsNoSkills - message displayed in case there are no skills specified within the worker canvas in Supervisor UI in the Teams view
  • WorkerSkillsSchemaMismatch - message displayed in case skills couldn't be parsed due to schema mismatch within the worker canvas in Supervisor UI in the Teams view
  • WorkerSkillsSaved - message indicating that the skills has been successfully saved at the worker canvas in Supervisor UI in the Teams view
  • WorkerSkillsError - message indicating that saving changes to skills have failed at the worker canvas in Supervisor UI in the Teams view
  • WorkerSkillsReverted - message indicated that the skills were successfully reset
  • Save - label for a save button displayed in the worker skills section
  • Reset - label for a reset button displayed in the worker skills section
  • ChatWelcomeText - chat welcome text for agent
  • InputPlaceHolder - Text shown in the edit box when no content has been entered
  • TypingIndicator - Text used for typing indicator, user name is denoted by {0}. For example "{0} is typing"
  • Read - Text below last message that has been read by other party
  • MessageSendingDisabled - Text shown if sending messages has been disabled
  • Today - Text shown in message list to group messages from today's date
  • Yesterday - Text shown in message list to group messages from yesterday's date
  • UiVersionDeprecated - notification indicating that the current version of Flex is deprecated
  • RuntimeLoginLabel - header for the runtime login view
  • RuntimeLoginPlaceholder - placeholder for the runtime login view input field in the runtime login view
  • RuntimeLoginLaunch - label for the action button in the runtime login view
  • RuntimeLoginWithTwilio - label in the runtime login view for the link that leads to Twilio login page
  • RuntimeLoginIsAdmin - a text prepending `RuntimeLoginWithTwilio` link in the runtime login view
  • RuntimeLoginErrorDomain - an error displayed in case runtime domain couldn't be resolved in the runtime login view
  • RuntimeLoginErrorSso - an error displayed in the runtime login view in case SSO isn't properly configured for the Flex project within Twilio Console
  • TransferFailedNotification - a notification displayed in case of failed task transfer to another agent
  • SupervisorTaskCanvasHeader - a header for the task card in Supervisor UI in the Teams view
  • TaskTabSupervisorCallLabel - Call task tab label in Supervisor task canvas.
  • TaskTabSupervisorChatLabel - Chat task tab label in Supervisor task canvas.
  • TaskHeaderStatusPending - Describes task that is in pending state. It's used in TaskCanvasHeader.
  • TaskHeaderGroupCallAccepted - Describes conference call task that is in accepted state. It's used in TaskCanvasHeader.
  • TaskHeaderStatusAccepted - Describes task (except webchat) that is in accepted state. It's used in TaskCanvasHeader.
  • TaskHeaderWebChatStatusAccepted - Describes WebChat task that is in accepted state. It's used in TaskCanvasHeader.
  • TaskHeaderStatusWrapup - Describes task that is in wrapup state. It's used in TaskCanvasHeader.
  • TaskHeaderStatusCompleted - Describes task that is in completed state. It's used in TaskCanvasHeader.

Current default values

The following template code shows the default values assigned to the above strings:

{
infoPanelContent: "`
<h1>TASK CONTEXT</h1>
<h2>Task type</h2>
<p>{{task.channelType}}</p>
<h2>Task created on</h2>
<p>{{task.dateCreated}}</p>
<h2>Task priority</h2>
<p>{{task.priority}}</p>
<h2>Task queue</h2>
<p>{{task.queueName}}</p>
<h2>Task Sid</h2>
<p>{{task.taskSid}}</p>
<h2>Reservation Sid</h2>
<p>{{task.sid}}</p>
<hr />
<h1>CUSTOMER CONTEXT</h1>
<h2>Customer name / phone number</h2>
<p>{{task.defaultFrom}}</p>
<h2>Country</h2>
<p>{{task.attributes.caller_country}}</p>
<hr />
<h1>ADDONS</h1>
<p>
    No add-ons enabled.
    To expand your experience, visit
</p>
<a href="https://www.twilio.com/marketplace/add-ons" target="blank">Twilio Marketplace</a>`",

    SetYourStatus: "Set your status",
    LogOut: "Log out",
    SigningIn: "Signing in",
    SessionExpired:
        "Your session has expired. " + "<a href='#' onClick='window.location.reload()'>Click here to log in again</a>",
    NoTasksTitle: "Status",
    NoTasks: "No active tasks",
    NoTasksHintNotAvailable: "Change activity state to start receiving tasks.",
    NoTasksHintAvailable: "You are ready to start receiving tasks.",

    NoCRMConfigured: "No CRM configured",
    NoCRMConfiguredAction: "HOW TO CONFIGURE",
    NoCRMTitle: "CRM config",
    NoCRMHint: "Our docs can help you get started.",
    LoginWelcome: "Hi there, welcome to Flex!",
    LoginContinue: "Continue anyway",
    LoginAgain: "Login again",
    LoginLaunch: "Launch",
    LoginTitle: "Twilio Flex",
    LoginErrorDomain: "Oops! Your runtime domain is incorrect.",
    LoginErrorDomainDetails:
        "Find your runtime domain " + "<a href='https://www.twilio.com/console/runtime/overview'>here</a>",
    LoginErrorSso: "Hmm, Single Sign-On has not been configured.",
    LoginErrorSsoDetails:
        "Find out how to configure Single Sign-On " +
        "<a href='https://www.twilio.com/console/flex/users/single-sign-on'>here</a>",
    LoginErrorPopupBlocked: "Sorry, pop-ups are blocked.",
    LoginErrorPopupBlockedDetails:
        "<a href='https://support.google.com/chrome/answer/95472'>" +
        "Find out how to enable pop-ups in your browser</a>",
    LoginErrorInvalidCertificate: "Invalid SSO Settings",
    LoginErrorInvalidCertificateDetails:
        "This may be caused by malformed urls or missing/invalid certificates.<br><br>Please reconfigure the " +
        "<a href='https://www.twilio.com/docs/api/errors/70251' target='_blank'>" +
        "SSO settings" +
        "</a>" +
        " and retry.",
    LoginErrorGeneric: "Oops! Well, that didn't work :( Please double check your configuration.",
    LoginIsAdmin: "Flex Admin?",
    LoginWithTwilio: "Login with Twilio.",
    TaskHeaderLeaveCall: "LEAVE CALL",
    TaskHeaderEndCall: "HANG UP",
    TaskHeaderWrapup: "WRAP UP",
    TaskHeaderComplete: "COMPLETE",
    TaskHeaderEndChat: "END CHAT",
    TaskHeaderStatusPending: "",
    TaskHeaderStatusAccepted: "Live | {{helper.durationSinceUpdate}}",
    TaskHeaderWebChatStatusAccepted:
        "{{#if helper.chat.isCustomerOnline}} {{{icon name='GreenIndicator'}}} {{else}} {{{icon name='GreyIndicator'}}} {{/if}} Live | {{helper.durationSinceUpdate}}",
    TaskHeaderGroupCallAccepted:
        "Live | {{helper.durationSinceUpdate}} | {{{icon name='Participant'}}} " +
        "{{task.conference.liveParticipantCount}}",
    TaskHeaderStatusWrapup: "Wrap up | {{helper.durationSinceUpdate}}",
    TaskHeaderStatusCompleted: "Completed | {{helper.durationSinceUpdate}}",
    SideNavTaskView: "Agent Desktop",
    SideNavTeamsView: "Teams",
    SideNavAgentDashboard: "Agent Dashboard",
    SideNavSupervisorInspections: "Supervisor Inspections",
    SideNavSupervisorDashboard: "Supervisor Dashboard",
    SideNavSupervisorReports: "Supervisor Reports",
    SideNavSettings: "Settings",
    SideNavQueuesStatsView: "Queue Stats",
    TaskHeaderLine: "{{task.defaultFrom}}",
    TaskExtraInfo:
        "Lorem ipsum dolor sit amet, consectetur adipiscing elit, " +
        "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. " +
        "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip " +
        "ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit " +
        "esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non " +
        "proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
    TaskLineCallIncomingTitle: "Incoming call",
    TaskLineCallTransferTitle: "Transfer request",
    TaskLineCallEndedTitle: "Call ended",
    TaskLineQueue: "Queue: {{task.queueName}}",
    TaskLineCallDuration: "{{helper.durationSinceUpdate}}",
    TaskLineCallReserved: "Incoming call from queue {{task.queueName}}",
    TaskLineCallAssigned: "Live | {{helper.durationSinceUpdate}}",
    TaskLineCallWrapup: "Wrap up | {{helper.durationSinceUpdate}}",
    TaskLineGroupCallAssigned:
        "Live | {{helper.durationSinceUpdate}} | {{{icon name='Participant'}}} " +
        "{{task.conference.liveParticipantCount}}",
    TaskLineCallTransferWorker: "Request from {{task.incomingTransferObject.worker.fullName}} (direct)",
    TaskLineCallTransferWorkerDetail:
        "From: {{task.incomingTransferObject.worker.fullName}} (direct)<br />" + "Queue: {{task.queueName}}",
    TaskLineCallTransferQueue:
        "Request from {{task.incomingTransferObject.worker.fullName}} ({{task.incomingTransferObject.queue.name}})",
    TaskLineCallTransferQueueDetail:
        "From: {{task.incomingTransferObject.worker.fullName}}<br />" + "Queue: {{task.queueName}}",
    TaskLineChatReserved: "Incoming chat request",
    TaskLineChatLineReserved: "Incoming Line request",
    TaskLineChatMessengerReserved: "Incoming Messenger request",
    TaskLineChatWhatsAppReserved: "Incoming WhatsApp request",
    TaskLineSmsReserved: "Incoming SMS request",
    TaskLineChatAssigned:
        "{{helper.durationSinceUpdate}} | {{#if helper.chat.typers.length}} typing ... {{else}} {{#if helper.chat.lastMessage}} " +
        "{{helper.chat.lastMessage.authorName}}: {{helper.chat.lastMessage.body}}" +
        "{{else}}No messages{{/if}}{{/if}}",
    TaskLineWebChatAssigned:
        "{{#if helper.chat.isCustomerOnline}} {{{icon name='GreenIndicator'}}} {{else}} {{{icon name='GreyIndicator'}}} {{/if}}" +
        "{{helper.durationSinceUpdate}} | {{#if helper.chat.typers.length}} typing ... {{else}} {{#if helper.chat.lastMessage}} " +
        "{{helper.chat.lastMessage.authorName}}: {{helper.chat.lastMessage.body}}" +
        "{{else}}No messages{{/if}}{{/if}}",
    TaskLineTitle: "",
    TaskReserved: "Reserved",
    TaskAssigned: "Assigned",
    TaskWrapup: "In wrap up",
    TaskCompleted: "Completed",
    TaskCanceled: "Canceled",
    TaskFilterAll: "ALL TASKS",
    TaskFilterActive: "ACTIVE TASKS",
    TaskFilterWrapping: "TASKS IN WRAP UP",
    TaskInfoPanelContent: infoPanelContent,
    ColumnHeaderAgent: "AGENT",
    ColumnHeaderCalls: "CALLS",
    ColumnHeaderTasks: "OTHER TASKS",
    SupervisorUserCardFirstLine: "{{worker.fullName}}",
    SupervisorUserCardSecondLine: "{{worker.activityName}} | {{worker.activityDuration}}",
    SupervisorTaskViewContentHeader: "{{worker.fullName}}, {{task.defaultFrom}}",
    SupervisorTaskHeaderLine: "{{task.defaultFrom}}",
    SupervisorTaskLive: "{{helper.durationSinceUpdateShort}}",
    SupervisorTaskGroupCall: "{{helper.durationSinceUpdateShort}} | ({{task.conference.liveParticipantCount}})",
    SupervisorTaskWrapUp: "Wrap up | {{helper.durationSinceUpdateShort}}",
    SupervisorTaskCompleted: "Completed | {{helper.durationSinceUpdateShort}}",
    SupervisorTaskCardHeader: "{{task.defaultFrom}}",
    SupervisorTaskInfoPanelContent: infoPanelContent,
    LiveCommsMonitoringMessage: "You are listening to a call with {{task.defaultFrom}} and {{worker.fullName}}",
    LiveCommsMonitoringMessageMoreWorkers:
        "You are listening to a call with {{task.defaultFrom}} and {{workers.length}} workers",
    LiveCommsMonitoringMessageNoWorkers: "You are listening to a call with {{task.defaultFrom}}",
    LiveCommsOngoingCallMessage: "You are on a call with {{task.defaultFrom}}",
    LiveCommsIncomingCallMessage: "Incoming call from {{task.defaultFrom}}",
    LiveCommsBarAccept: "accept",
    LiveCommsBarDeny: "reject",
    LiveCommsBarReturnToCall: "RETURN",
    LiveCommsBarStopListening: "STOP LISTENING",
    LiveCommsBarHold: "HOLD",
    LiveCommsBarUnHold: "UNHOLD",
    WorkerDirectoryTitle: "Transfer",
    WorkerDirectoryItemFirstLine: "{{worker.fullName}}",
    WorkerDirectoryItemSecondLine: "{{worker.activityName}}",
    WorkerDirectoryAgentsTabLabel: "AGENTS",
    WorkerDirectoryQueuesTabLabel: "QUEUES",
    WorkerDirectoryQueueItemText: "{{queue.name}}",
    WorkerDirectorySearchPlaceholder: "Search",
    ChatInputDisabledText: "Conversation ended",
    WorkerCanvasHeader: "Profile",
    WorkerCanvasDetailsHeader: "Agent Details",
    WorkerCanvasSkillsHeader: "Skills",
    WorkerSkillLevelInvalid: "Please select a skill level between {{min}} - {{max}}",
    WorkerSkillPleaseSelect: "Add skill",
    WorkerSkillsNoSkills: "No skills attributed",
    WorkerSkillsSchemaMismatch: "Worker skills schema mismatch",
    WorkerSkillsSaved: "Changes saved successfully",
    WorkerSkillsError: "Failed to save changes",
    WorkerSkillsReverted: "Changes reverted",
    ChatWelcomeText: "Conversation started with customer",
    UiVersionDeprecated: "{{message}}",
    RuntimeLoginLabel: "Runtime domain",
    RuntimeLoginPlaceholder: "Your Runtime Domain",
    RuntimeLoginLaunch: "Launch",
    RuntimeLoginWithTwilio: "Login with Twilio.",
    RuntimeLoginIsAdmin: "Flex Admin?",
    RuntimeLoginErrorDomain: "Oops! Well, that didn’t work :( Check your <b>domain</b>.",
    RuntimeLoginErrorSso: "Oops! Well, that didn’t work :( Check your <b>SSO</b> setup.",
    TransferFailedNotification: "Agent unavailable",
    TaskCannotBeTransferredNotification: "Task cannot be transferred",
    SupervisorTaskCanvasHeader: "TASK DETAILS",
    TaskTabAgentIncomingLabel: "Incoming",
    TaskTabAgentCallLabel: "Call",
    TaskTabAgentChatLabel: "Chat",
    TaskTabAgentInfoLabel: "Info",
    TaskTabSupervisorOverviewLabel: "Overview",
    TaskTabSupervisorCallLabel: "Call",
    TaskTabSupervisorChatLabel: "Chat",
    TaskTabSupervisorInfoLabel: "Info",
    MicNotAvailableNotification: "Unable to access microphone, please check browser settings.",
    BrowserVoiceDisabledNotification: "Call cannot be accepted. Twilio Voice SDK has been disabled.",
    MessageSizeExceeded: "The entered character number exceeds the limit - {{currentCharCount}}/{{maxCharCount}}",
    UserControlWorkerSecondLine: "{{worker.activityName}} | {{worker.activityDuration}}",
    UserLoggedOutSuccess: "You have logged out successfully!",
    CannotChangeOtherWorkerActivity:
        "You cannot change an agent’s activity while they have a pending task/reservation.",
    CallCanvasWorkerOnHold: "You are on hold",
    CallCanvasUnholdWorker: "Unhold",
    CallParticipantStatusOnHold: "On Hold",
    CallParticipantStatusLive: "Live",
    CallParticipantStatusConnecting: "Calling...",
    CallParticipantStatusLeft: "Caller left",
    CallParticipantStatusTransferFailed: "No Answer",
    CallParticipantStatusKickConfirmation: "Remove from call?",
    LiveCommsIncomingDirectCallTransfer: "Request from {{task.incomingTransferObject.worker.fullName}} (direct)",
    LiveCommsIncomingQueueCallTransfer:
        "Request from {{task.incomingTransferObject.worker.fullName}} ({{task.incomingTransferObject.queue.name}})",
    CallParticipantCustomerName: "{{task.defaultFrom}}",
    MonitoringFailedNotification: "Monitoring attempt has failed",
    PredefinedChatMessageAuthorName: "Bot",
    PredefinedChatMessageBody: "Hi there! How can we help you today?",
    AgentStatusAvailable: "Available",
    AgentStatusBusy: "Busy",
    AgentStatusUnavailable: "Unavailable",
    AgentStatusOffline: "Offline",
    ActiveTasksTileTitle: "Active tasks",
    WaitingTasksTileTitle: "Waiting tasks",
    AgentsByActivityTileTitle: "Agents",
    LongestWaitTimeTileTitle: "Longest wait",
    QueuesNoDataHeading: "Queues",
    QueuesNoDataBodyForAdmin: "You have no Queues set up. Please configure your Queues.",
    QueuesNoDataBodyForSupervisor: "There are no Queues set up. Please contact your Administrator.",
    QueuesNoDataLinkLabelForAdmin: "Add Queue",
    PendingReservationsOnLogoutNotification: "You cannot logout while you have a pending task/reservation",
    PendingReservationsOnActivityStateChangeNotification:
        "You cannot update your activity while you have a pending task/reservation",
    AcceptTaskTooltip: "Accept",
    RejectTaskTooltip: "Reject",
    HangupCallTooltip: "Hang up",
    LeaveCallTooltip: "Leave",
    MuteCallTooltip: "Mute",
    HoldCustomerTooltip: "Hold Customer",
    UnholdCustomerTooltip: "Unhold Customer",
    HoldAgentTooltip: "Hold {{worker.fullName}}",
    UnholdAgentTooltip: "Unhold {{worker.fullName}}",
    CancelTransferTooltip: "Cancel Consult",
    KickAgentTooltip: "Hang up {{worker.fullName}}",
    ColdTransferTooltip: "Transfer",
    WarmTransferTooltip: "Consult",
    MonitorCallTooltip: "Monitor Call",
    LogToFileStartLoggingText: `<div>
    <h2>Capture logs</h2>
    <ul>
        <li>When you enable logging, your browser will be refreshed and logs capturing will start.</li>
        <li>Once you are ready to finish - stop logging. All captured logs will be saved to a text file.</li>
    </ul>
  </div>`,
    LogToFileStartLoggingLabel: "Refresh and start",
    LogToFileStopLoggingText: `<div>
    <h2>Logging is active</h2>
    <p>
    If you've repeated your actions and reproduced the issue, stop logging to download the file with captured logs.
    </p>
  </div>`,
    LogToFileStopLoggingLabel: "Finish and download",
    ChatOrchestrationAddToChatChannelFailed: "Failed to add worker to the chat channel.",
    ChatOrchestrationDeactivateChatChannelFailed: "Failed to deactivate the chat channel.",
    ChatOrchestrationLeaveChatChannelFailed: "Failed to remove worker from the chat channel.",
    TeamsViewFilterAction: "Filter{{#if filterCount}} ({{filterCount}}){{/if}}",
    TeamsViewClearSearchAction: "Clear search result",
    TeamsViewClearSearchPlaceholder: "Search Agents",
    TeamsViewResultsSummaryNoWorkersDisplayed: "No agents matched your criteria. Refine results via search or filter.",
    TeamsViewResultsSummaryMaxWorkersDisplayed: "Showing maximum number of agents. Refine results via search or ",
    TeamsViewResultsSummaryFilterCTA: "filter",
    TeamFiltersPanelTitle: "Filters",
    TeamFiltersPanelSingularLabel: "Viewing <strong>{{number}}</strong> agent",
    TeamFiltersPanelPluralLabel: "Viewing <strong>{{number}}</strong> agents",
    TeamFiltersApply: "Apply",
    TeamFiltersReset: "Reset",
    InputPlaceHolder: "Type message",
    TypingIndicator: "{0} is typing ... ",
    Connecting: "Connecting ...",
    Disconnected: "Connection lost",
    Read: "Read",
    MessageSendingDisabled: "Message sending has been disabled",
    Today: "TODAY",
    Yesterday: "YESTERDAY",
    MessageCanvasTrayContent: `
        <h6>Complete</h6>
        <p>This chat is no longer active.</p>`,
    MessageCanvasTrayButton: "START NEW CHAT",
    WelcomeMessage: "Welcome to customer service",
    NotificationMessage: "Unable to perform action: {{message}}",
    Save: "SAVE",
    Reset: "RESET",
    MessageCharacterCountStatus: "{{currentCharCount}} / {{maxCharCount}}",
    MessageCharacterCountReached: "Character count reached - {{currentCharCount}} / {{maxCharCount}}",
    SendMessageTooltip: "Send Message",
    FieldValidationRequiredField: "Field required",
    FieldValidationInvalidEmail: "Please provide a valid email address",
    ChatInputUserNotMemberDisabledText: "You are not a participant of this chat",
    FilterItemAny: "Any",
    FilterItemAmountSelected: "{{amount}} selected",
    FilterItemOnly: "{{item.label}} only"
};
Rate this page:

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.

Thank you for your feedback!

Please select the reason(s) for your feedback. The additional information you provide helps us improve our documentation:

Sending your feedback...
🎉 Thank you for your feedback!
Something went wrong. Please try again.

Thanks for your feedback!

thanks-feedback-gif