• Contact Sales
    • Open web app
    • Management Console
    • Ticket
    • Customer Portal
TeamViewer
  • Personal use and SMB TeamViewer Remote

    Fast and secure remote access and IT support.

    Learn more

    • Remote support Deliver instant, secure support
    • Remote management Monitor and manage devices
    View plans and pricing

    Enterprise TeamViewer Tensor

    Remote connectivity built for secure operations.

    Learn more

    • Remote IT support Secure, flexible, integrated
    • Operational technology Remote shop floor access

    Real-time troubleshooting TeamViewer DEX

    Resolve issues before they affect users.

    Learn more

    • Endpoint Troubleshooting Identify and resolve issues
    • Endpoint Automation Automate routine IT tasks

    Connected worker TeamViewer Frontline

    Drive efficiency with industrial augumented reality.

    Learn more

    • Logistics and warehousing Hands-free material handling
    • Training and onboarding Fast onboarding and upskilling
    AI capabilities as seen in the TeamViewer client

    TeamViewer ONE

    Get the full power of TeamViewer, unified in one platform.

    • Learn more

    Key integrations

    • Microsoft Intune

    • ServiceNow

    • Freshworks

    • Jira

    • Salesforce

    • Slack

    • Microsoft Teams

    View all integrations
  • TeamViewer ONE Platform

    Proactively manage and optimize your digital workplace combined in one platform.

    • For lean IT teams Proactive device management
    • Frictionless experience Smooth and uninterrupted digital experience
    • Seamless IT operations Proactive remediations and exceptional service
    • Talk to our team Ready to transform?
    Explore the platform

    Core capabilities

    • TeamViewer AI
    • Digital Employee Experience
    • Remote support and control
    • Asset and patch management
    View all capabilities

    Gartner Report 2025

    TeamViewer named a leader in DEX

    TeamViewer named leader in 2025 Gartner® Magic Quadrant™ DEX tools.

    Key integrations

    • Microsoft Intune

    • ServiceNow

    • Freshworks

    • Jira

    • Salesforce

    • Zendesk

    • Slack

    • Microsoft Teams

    View all integrations
  • Popular use cases Most popular TeamViewer use cases

    • Remote access and support Manage people, devices, and applications – from anywhere.
    • Digital Employee Experience (DEX) Proactively solve IT issues before they impact productivity.

    Other use cases Popular solutions for further use cases

    • Remote access Improve access with secure connection
    • Remote control Control device platform-independent
    • Remote desktop Enhance productivity from anywhere
    • Wake-on-LAN Enable remote device activation
    • Screen sharing Real-time visual communication
    • Smart Service Streamline after-sales operations

    By need Popular solutions for different requirements

    • Personal use Access devices from anywhere
    • Small businesses Simplify remote access and support
    • Large businesses Scale and secure enterprise IT
    • Freelancers and digital nomads Work securely from any location
    • Managed service providers Manage and maintain client IT
    • OEMs Streamline support and operations
    • Non-profit and education 30% discount on TeamViewer technology

    By industries Popular solutions sorted by industry

    • Automotive
    • Agriculture
    • Logistics
    • Manufacturing
    • Retail
    • Healthcare
    • Banking and finance
    • Financial services

    Talk to our sales team

    Need help choosing the right solution, placing and order, or upgrading your license?

    • Talk to us
  • Enterprise
  • Find out more about TeamViewer

    • About TeamViewer Connecting people, places, and things securely.
    • Contact Support Browse support articles or contact our team.
    • Become a Partner Join our global partner TeamUP program
    • Success Stories Explore results achieved by TeamViewer customers.
    NEWS

    TeamViewer reports rapid customer adoption of its Al offering.

    Resources

    • News and Insights
    • Success Stories
    • Events and Webinars
    • Trust Center
    • Why TeamViewer

    Partner

    • Become a Partner
    • Find a Partner
    • Integration Partners

    Support

    • Contact Support
    • Guides & Manuals
    • Knowledge Base
    • System Status
    • Custom Modules
    • For Developers
    • Community

    Company

    • About TeamViewer
    • Careers
    • Investors
    • Newsroom
    • Leadership
    • Sports Partnerships
    • Sustainability and CSR
    • Corporate Governance
  • Pricing
  • Free Download

Knowledge Base

  • TeamViewer ONE
  • TeamViewer Remote
  • TeamViewer (Classic)
  • TeamViewer Tensor
  • TeamViewer Tensor (Classic)
  • TeamViewer Frontline
  • Other products
Back to support overview
  • Frontline Help & Learning
  • Frontline Command Center
    • Dashboard
    • Assist
      • Dashboard
      • Call History
      • Service Report
      • Call Templates
      • Phonebook
      • Call Management
      • User Types
      • Mobile Browser
      • Incoming and Outgoing Calls
      • Live Video Features
      • Multi-Stream Calls
      • Whiteboard
      • Show Info
      • Chat
      • Show Files
      • Transcription
      • Call Settings
    • Inspect / Make
      • Task List
      • Templates
      • Workflow Approval
      • Live Screen View
      • Scanners
      • Code Generator
    • Pick
      • Templates
      • Picking Orders
      • Article Image Upload
      • Article Image Gallery
      • Picking KPIs
      • Live Screen View
      • Scanners
      • Code Generator
      • Gamification
    • Vision Picking Workflow
      • Introduction
      • Set-Up Guide
      • Workflow Configuration
      • Custom Translations
      • Execution on Smart Glasses
    • Creator
      • Home Screen
      • Workspace Overview
      • Creator Basics
      • Step Templates
      • Component Catalogue
      • Extra Components
      • Transitions
      • Expression Editor
      • Reporting
      • Preview Workflows
      • Keyboard Shortcuts
    • Administration
      • Introduction
      • User Management
      • Application Management
      • Roles and permissions
      • Device Management
      • Live Screen View
      • Scanners
      • Wi-Fi QR Codes
      • System Information
      • Audit Trail
      • System Preferences
      • Custom Themes
      • Licenses
      • Third Party Copyrights
      • Error Reporting
      • Code Generator
  • Frontline Workplace
    • Frontline Workplace App for Smart Glasses
    • Frontline Workplace App for iOS
    • Frontline Workplace App for Android Smartphone
  • Frontline Spatial
    • Starting With Frontline Spatial
    • Spatial Editor
      • Spatial Editor Conversion Manual
      • Getting Started with Spatial Editor
      • Exploring the Home Screen
      • Introduction to Workspace Overview
      • Get to Know the Menu Bar
      • Models
      • 3D Model Manipulation
      • Workflows
      • Organize your 3D workflows
      • Tracking - Integrating Models into Workflows
      • Tracking recommendations
      • Adding content to your workflows
      • How to highlight your models
      • Adding a new view to your workflow
      • How to visualize your workflow in the Connector
      • Creating new connections
      • Modifying workflows in the Scene
      • Manual reality BOP import
      • Shortcuts and Navigation
      • Task Reporting and Log Files
    • Spatial Workplace
    • Quick Guide
      • Spatial Onboarding Introduction
      • The Frontline Spatial Software
      • Downloading the Editor
      • Loading a 3D Model
      • Using Scene States to Make the Model Visible
      • Placing Pins
      • Downloading Spatial Workplace
      • Uploading and Viewing a Workflow
    • Data Encryption Overview
    • Troubleshooting
      • Spatial Editor Troubleshooting
      • Spatial Workplace Troubleshooting
  • Installation and Configuration
    • Frontline Architecture
    • Frontline System Requirements
    • System Requirements
      • Frontline Command Center Requirements
      • Frontline Spatial Requirements
      • Frontline Workplace Requirements
      • Network Requirements
      • Assist Requirements
      • Pick Bandwidth Requirements
    • Frontline Command Center
      • Prerequisites
      • Installation Guide
      • Configuration
      • Configuration Properties
      • Updating
    • Frontline Connector
      • Windows
      • Linux
      • Multiple Domain Setup
      • Vision Picking Workflow - On Prem Setup
      • Properties
    • Frontline Workplace
      • xSetup
      • Connecting to Wi-Fi & Setting Up Frontline Workplace
      • Google Glass Enterprise Edition 2
      • RealWear Devices
      • Vuzix M400 / M4000
      • Rokid X-Craft
      • Hyco W563
      • Discovery Mini
      • Zebra ZQ620
      • Inspectron Devices - Borescope Cameras
      • ProGlove Mark Display Templates
      • iPhone
      • Android Smartphone
    • Frontline Spatial
      • Spatial Editor
      • Spatial Workplace
      • Siemens Teamcenter Integration Documentation for Frontline Spatial
    • Third party integrations
      • SAP FSM Assist extension
        • SAP Field Service Manager Assist Technical Product Profile
        • Installation Guide
        • User Guide
      • SAP SAM Inspect/Assist extension
        • Technical Product Profile
        • Installation
        • User Guide
    • Downloads
  • Release Notes
    • Release Notes | Frontline 4.39 | Spring Release
    • Release Notes | Frontline 4.38 | Winter Release
    • Hotfix | Frontline 4.37.1
    • Release Notes | Frontline 4.37 | Autumn Release
    • Hotfix | Frontline 4.36.1
    • Release Notes | Frontline 4.36 | Summer Release
    • Release Notes | Frontline 5.1
    • Hotfix | Frontline 4.35.1
    • Release Notes | Frontline 4.35
    • Release Notes | Frontline 4.34
    • Release Notes | Frontline 4.33
    • Release Notes | Frontline 4.32
    • Release Notes | Frontline 4.31
    • Release Notes | Frontline 4.30
    • Release Notes | Frontline 4.29
    • Release Notes | Frontline 4.28
    • Release Notes | Frontline 4.27
    • Release Notes | Frontline 4.26
    • Release Notes | Frontline 4.25
    • Release Notes | Frontline 4.24
    • Release Notes | Frontline 4.23
    • Release Notes | Frontline 4.22
    • Release Notes | Frontline 4.21
    • Release Notes | Frontline 4.20
    • Release Notes | Frontline 4.19
    • Release Notes | Frontline 4.18
    • Release Notes | Frontline 4.17
    • Release Notes | Frontline 4.16
    • Release Notes | Frontline 4.15
    • Release Notes | Frontline 4.14
    • Release Notes | Frontline 4.13
    • Release Notes | Frontline 4.12
    • Release Notes | Frontline 4.11
    • Release Notes | Frontline 4.10
    • Release Notes | Frontline 4.9
    • Release Notes | Frontline 4.8
    • Release Notes | Frontline 4.7
    • Release Notes | Frontline 4.6
    • Hotfix | Frontline 4.5.1
    • Release notes | Frontline 4.5
    • Release notes | Frontline 4.4
    • Release notes | Frontline 4.3
    • Release notes | Frontline 4.2
    • Release notes | Frontline 4.1
    • Release notes | Frontline 4.0
    • Release notes | Frontline 3.0.15
    • Release notes | Frontline 3.0.14
    • Release notes | Frontline 3.0.13
    • Release notes | Frontline 3.0.12
    • Release notes | Frontline 3.0.11
    • Release notes | Frontline 3.0.10
    • Release notes | Frontline 3.0.9
    • Release notes | Frontline 3.0.8
    • Release notes | Frontline 3.0.7
    • Release notes | Frontline 3.0.6
    • Release notes | Frontline 3.0.4
    • Release notes | Frontline 3.0
  • Video Guide
    • Frontline Command Center
    • Assist
    • Frontline Creator
    • Make / Inspect
    • Pick
    • Frontline Workplace
    • Frontline Spatial
  • Developer Guide | Creator Developer Training
    • Introduction to Creator Developer Training
    • Component Structure
    • Scopes and Referencing
    • Context Variables
    • Rules and Expressions
    • JavaScript & Functions
    • Layouts and Mapping
    • Component Configuration
    • Handlers
    • Translation
    • Cheat Sheet
  • Developer Guide | Workflow Engine Reference
    • Actions
      • Transitions
      • UI
      • Speech
      • Sound
      • General
      • External Device
      • Camera
      • Picking
      • Data Integration
      • xAssist Related
    • Handlers
      • General
      • Picking
    • UI
      • Elements
      • UI Concept
      • Color Map
      • Layout Sharing
    • Component Configuration
      • Input Types
      • Sharing Configuration Parameter
      • Configuration Helpers
      • Grouping Configuration Parameters
    • Resources
      • Media
      • Barcode Settings
  • Developer Guide | Backend Integration
    • Frontline Connector Template
    • Integration Examples
      • Task Details API
      • Login API
      • xAssist Call Creation
  • Troubleshooting
  • Service & Support
  • Component Structure

    Last Modified: Apr 22, 2026

Components are written in XML and you can implement desired behavior by writing down its rules, which are if A then B statements.

For example, the requirement is that while inspecting a machine, if the user presses the button Camera, then the device's internal camera starts.

The same rule could be expressed a bit closer to the implementation as:

If we are in the step inspect_machine and an event occurs with the command ''Camera" then execute the start_camera action.

Structural Frame of a Component

The typical structural frame of a component is as follows:

<workflow [ATTRIBUTES]>
    <context> [...] </context> // Data variables, optional
    <rules> [...] </rules> // If [Expression] then [actions]; optional
    <actions> [...] </actions> // optional
    <steps> 
        <step [ATTRIBUTES]>
            <states>
                <onresume> [...] </onresume> // optional
                <onevent> [...] </onevent> // optional
                [...]
            </states>
            <mapping> [...] </mapping>
        </step>
        [...] 
    </steps>
</workflow>

Before going forward with an example, below is an overview of the XML tags:

  • <context>: Defines variables (data) to work with
  • <rules>: Defines under which condition a set of actions is executed. Consists of an expression and one more action
  • <actions>: Pre-defined actions we want to use in the workflow (e.g., start the device camera).
  • <step>: Screen on the device that contains the data (context) and logic (rules and actions) of the screen and is linked to a user interface template
  • <states>: Determines when a rule will be checked (e.g., When an event occurs, upon entering or leaving a step)
  • <mapping>: Maps the data (context variables) to the user interface (which is defined in a different file)

Example of a Component

To better understand the structure of components, we will use an example of an Image Choice component.

The user selects between the two options, "Apple" and "Pear". The same component will be used for this training and will be improved as we go forward.

Download Component

The UI below displays how this component would appear while executing on the Frontline Workplace smart glass application.

The workflow is:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<workflow xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" wfd_version="1.0" reporting="false"
          id="choice" name="choice" descriptor="Choice component" startstep="choose"
          xsi:noNamespaceSchemaLocation="../../../configuration/workflow.xsd">

    <steps>
        <step id="choose" descriptor="the user selects between two options" uitemplate="ChoiceScreen">
            <states>
                <onevent>
                    <rule id="menu_button_selection">
                        <expression>#{event:command} == 'APPLE' || #{event:command} == 'PEAR'</expression>
                        <actions>
                            <finish_workflow id="finish_workflow">
                                <output>
                                    <param name="selected_button" type="string">#{event:command}</param>
                                </output>
                            </finish_workflow>
                        </actions>
                    </rule>
                </onevent>
            </states>
        </step>
    </steps>
</workflow>

Explanation of the workflow

1. The workflow tag contains an attribute startstep="choose". This is used to select which step will be performed first after initializing the component.

2. <step id="choose"... is used to refer to a choice that will be further displayed using uitemplate="ChoiceScreen". ChoiceScreen is a file that defines what is displayed on the screen while we are in this step.

As explained, the behavior of a component is defined using rules. A rule consists of an expression (or condition) and which action to take when that condition is True. Each rule is assigned to one of the states <onenter>,  <onresume>,  <onleave> , <onevent> or  <onpause> . Rules will only be checked when the component is in that state (e.g., onenter - when the component is first started).

3.  The <rule id="menu_button_selection"> is assigned to the <onevent> state. Whenever an event occurs, all rules given to this state will be checked. Here, <expression>#{event:command} == 'APPLE' || #{event:command} == 'PEAR'</expression> checks whether the event contains a specific command. Such an event would be activated when a button with the name "APPLE" or "PEAR" is triggered either by voice command or pressing it on the screen.

4. If a rule expression evaluates to true, the set of actions in the rule's <actions> tag is executed. In this example, the finish_workflow action is used. This immediately leaves the component once the user has chosen one of the two options, and passes on which choice was made in a <output> parameter so that we can create different transitions in the workflow diagram based on that choice.

Assignment

Suppose you want to extend our choice component to send a message containing the user's choice back to the Frontline Connector (which could in turn communicate this information to a backend system). Think about the following questions:

  • Which step/s would your component have?
  • Take a look at the Actions catalogue: Which actions would you probably need?

Help and Resources

Actions are the basic building blocks we can use. They range from changing what the user sees (colours, text, notifications,...) to controlling the flow of the program (transition to the next step) by managing data and communicating with the Frontline Connector or external devices.

Solution Notes

First of all, you might argue that communicating with the Frontline Connector is a separate functionality and should have its own component. You would be absolutely right: separating the communication aspect into its own components would make both components more reusable. On the other hand, sometimes you want to simplify the process flow shown in the Frontline Creator Interface for your customer by keeping multiple functionalities together in a single component. For now, let's assume we combine both functionalities in one component.

Which steps could your Component have?

Previously, you were told that steps are equivalent to screens. So why would you have more than one step if the additional functionality is just backend communication?

The answer is maintainability and reusability. Maintainability, because when making changes to the communication aspect, you will only have to look at that step and not read any of the other code. Reusability, because you could also send different messages using the same step if the component becomes even more complex.

In the same way, it would be a good idea to make two separate components of these two functionalities. It is a good idea to at least create separate steps if you combine them into one component. Just make the screen look the same or add a progress notification acknowledgement from the Connector. As such we suggest having 2 steps here, e.g., "choice" and "message_connector".

Which actions would you probably need?

The main purpose of this question is to make you familiar with the Actions catalogue. Here are examples of actions you might use in the implementation process:

  • send_commit_message: Communicates with the Frontline Connector
  • ui_progress_notification: Informs the user that we are currently communicating with the backend (in case we wait for acknowledgement)
  • setvar: Used to save an input that can later be returned to both the connector and an output parameter of our component

With this, you have now finished the first lesson. The next lesson will be about scopes and encompass your first practical assignment.

Please choose your region

Selecting a region changes the language and/or content on teamviewer.com


SUGGESTED REGION

  • Americas

    • Americas - English
    • América Latina - Español
    • Brasil - Português
    • Canada - English
    • Canada - Français
    • United States - English
  • Asia Pacific

    • Asia Pacific - English
    • Australia - English
    • 中国 - 中⽂(简体)
    • 香港 - 繁體中文
    • India - English
    • 日本 - ⽇本語
    • New Zealand - English
    • 대한민국 - 한국어
    • 台灣-繁體中文
    • ประเทศไทย - ภาษาไทย
  • Commonwealth of Independent States

    • CIS - English
    • СНГ - Русский
  • Europe

    • Europe - English
    • Belgique - Français
    • België - Nederlands
    • Bulgaria - English
    • Croatia - English
    • Cyprus - English
    • Czechia - Čeština
    • Denmark - English
    • Deutschland - Deutsch
    • España - Español
    • Estonia - English
    • Finland - English
    • France - Français
    • Greece - English
    • Ireland - English
    • Italia - Italiano
    • Latvia - English
    • Liechtenstein - Deutsch
    • Liechtenstein - Français
    • Liechtenstein - Italiano
    • Lithuania - English
    • Luxembourg - Français
    • Magyarország - Magyar
    • Malta - English
    • Nederland - Nederlands
    • Norway - English
    • Österreich - Deutsch
    • Polska - Polski
    • Portugal - Português
    • Romania - English
    • Schweiz - Deutsch
    • Suisse - Français
    • Svizzera - Italiano
    • Slovakia - English
    • Slovenia - English
    • Sweden - English
    • Türkiye - Türkçe
    • United Kingdom - English
  • Middle East Africa

    • Middle East Africa - English
    • Middle East Africa - Français
  • Products
    • TeamViewer Remote
    • TeamViewer Tensor
    • TeamViewer DEX
    • TeamViewer Frontline
    • Pricing
  • ONE Platform
    • TeamViewer ONE
    • Capabilities
    • Talk to our team
  • Solutions
    • By Industries
    • By Use Cases
    • By Roles
    • Enterprise
  • Partner
    • Become a Partner
    • Find a Partner
    • Integration Partners
  • Resources
    • News and Insights
    • Success Stories
    • Events and Webinars
    • Trust Center
    • Why TeamViewer
  • Support
    • Contact Support
    • Guides & Manuals
    • Knowledge Base
    • System Status
    • Custom Modules
    • For Developers
    • Community
  • Company
    • About TeamViewer
    • Careers
    • Investors
    • Newsroom
    • Leadership
    • Sports Partnerships
    • Sustainability and CSR
    • Corporate Governance
  • Additional Links
    • Contact Sales
    • TeamViewer User Focus Program
    • Make work work better
    • Research Projects
    • Newsletter
  • Product Descriptions
  • Imprint
  • Contact
  • EULA / DPA
  • Privacy & Cookies
Cookie Settings