Guide agents with scripts

In the customer service industry, agents need to deal with continuous updates both to products and processes. Even after agents have been rigorously trained, recurrent human errors and delays in service delivery occur due to a lack of guidance in real-time customer scenarios. These issues lead to lower productivity and thus negatively affect customer satisfaction levels. To avoid errors and ensure that processes are adhered to, agents need guidance.

Agent scripts provide guidance to agents about what to do when they get a customer issue. The scripts ensure that only accurate, company-endorsed information is being shared, while also safeguarding the organization in regard to issues of legal compliance. Agent scripts help organizations to be unified, accurate, and effective while also being faster and more efficient in terms of customer handling.

Agent scripts reduce the human errors involved, because agents know which actions they need to perform next while they interact with a customer, enabling agents to adhere to the business process. This, in turn, leads agents to provide quick resolutions for the issue (low average handling time) and improve customer satisfaction.

Value propositions

Minimization of human errors

Adherence to business processes

Lower average handling time

Improved customer satisfaction

Prerequisites

Ensure that you have the Productivity tools administrator security role. To learn more, see Assign roles and enable users.

Ensure that agents and supervisors are assigned the Productivity tools user security role. To learn more, see Assign roles and enable users.

Create agent scripts

Create agent scripts in the Customer Service admin center, Omnichannel admin center, Omnichannel Administration, or Customer Service Hub app. The following procedure is an example of an agent script for a chat session. You can modify the procedure for other types of sessions your agents are likely to come across.

Sign in to Power Apps, and go to the app profile manager page.

In the left pane, under Productivity, select Agent scripts. The Unified Interface page opens on a new tab.

On the page that appears, select New.

On the New Agent script page, specify the following:
| Field | Description | Value |
|------------|------------------------------|-------------------|
| Name | A name for the agent script. | Chat session script |
| Unique Name | A unique identifier in the <prefix>_<name> format.Important: The following are required for the unique name: The prefix can only be alphanumeric and its length must be between 3 to 8 characters. An underscore must be there between the prefix and name. |Contoso_script|
| Language | A language from the list. The languages that are enabled in Microsoft Dataverse appear in the list. | English |
| Description | Description for the agent script. | This agent script is used for chat sessions. |

Select Save. The Agent script steps appears.

In the Agent script steps section, select New Agent script step. Quick Create: Agent script step appears.


Select Save. The Agent script steps appears.

In the Agent script steps section, select New Agent script step. Quick Create: Agent script step appears.

Specify the following fields in the quick-create form.
| Field | Description | Example Value |
|--------------------|------------------------------|-------------------------------------------|
| Name | Provide a name for the agent script step; this appears for the agent at runtime. You can use slugs for specifying the name of the step. To learn more, see Slugs. | Example 1: Greet the customer.  Example 2: Hi {customer}  |
|Unique Name |A unique identifier in the <prefix>_<name> format.Important: The following are required for the unique name: The prefix can only be alphanumeric and its length must be between 3 to 8 characters. An underscore must be there between the prefix and name.| Greet_script|
|Owner|By default, the signed in user is displayed as the owner.| Clay Roddy |
|Agent script | The agent script for which the script step is being created.| Chat session script|
| Order | Specify the order number based on which step is displayed to the agent. | 1 |
| Action Type | Select an action type from the list:   Text instruction   Macro   Script  |
| Description | Describe the step briefly for your reference. | This step opens a draft email to send the customer links to knowledge articles.  Note:  This field appears only when you select the Action Type value as Target Macro or Target script. |
| Text instruction | Specify the text instructions the agent needs to follow and execute. This is a text field. Additionally, you can pass parameter values by using the slugs and OData queries. More information: Pass parameter values Note:  This field appears only if you select the Text value for the Action Type field. | Greet the customer with the welcome message from the quick reply repository. |
| Target macro | Type the name of the configured macro in the text box, and then select the macro from the lookup results.  Note:  This field appears only if you select the Macro value for the Action Type field. | Email |
| Target script | Type the name of the configured script in the text box, and then select the script from the lookup results.  Note:  This field appears only if you select the Script value for the Action Type field. | Close the session |

Select Save and Close to add, save, and close the quick-create form.

Select Save to save the changes.

[!div class=mx-imgBorder]

The agent script is now configured.

Associate an agent script with a session template

After you configure the agent script and add the field to a form, you need to associate the agent script with a session template so that the agent script will load for agents based on the type of session they've opened.

Select one of the following apps, and perform the steps.

### Customer Service admin center

### Omnichannel Admin Center

Select a template from the list for which you want to associate the template. For example, select the Chat - Default Session template.

Select the Agent scripts tab.

In the Agent scripts section, select Add Existing Agent script. The Lookup Records pane appears.

In the Look for Records box, select the search icon. Select the agent script from the list, and then select Add.

[!div class=mx-imgBorder]

Select Save.

The agent script is associated with the session template.

Set the default agent script for agents

As an administrator, you can set different default agent scripts for agents who handle different services, customers, or products. You need a way to show these agents a script that's appropriate for the context of the conversation between them and the customer. With the agent script expression builder, you can define the conditions that define which script an agent is shown by default in Omnichannel for Customer Service.

Based on these conditions, when an agent accepts an incoming conversation, the agent script control selects a script from the different scripts that were made available for that particular session type and shows the script to the agent. In addition, agents can manually select a script from the list of available agent scripts if they need to switch between different scripts.

Enable and build the expression

You can build the expression in the Agent scripts tab in the sessions template.

Select one of the following appss, and perform the steps.

### Customer Service admin center

### Omnichannel Admin Center

Go to the Agent scripts tab.

Set the Enable build expression toggle to Yes, and then select Build Expression to define the expression. The Expression builder page is displayed.

[!div class=mx-imgBorder]

Select the Condition step, and then create the condition.


Set the Enable build expression toggle to Yes, and then select Build Expression to define the expression. The Expression builder page is displayed.

[!div class=mx-imgBorder]

Select the Condition step, and then create the condition.

In the If true step, select Add an action. The Condition step is displayed. To learn about conditions, see Use the automation dictionary to pass context data parameters.

Select the Customer Service tab, and then select Set default agent script.

[!div class=mx-imgBorder]

Select a script from the Agent script list.

[!div class=mx-imgBorder]

Follow steps 4 through 7 for the If false step.

Select Save and close to save the expression and close the builder.

Now, you've built the expression.

Use the automation dictionary to pass context data parameters

As an administrator, you need to configure the condition by using the automation dictionary based on the evaluation of the condition. A script is set as default, and this script is displayed to the agent at runtime.

The automation dictionary provides you certain data parameter keys that you can use to build your condition. These parameter keys are resolved and replaced by contextual values at runtime.

To learn about the slugs for productivity tools, see Slugs.

To learn more, see Use the automation dictionary to pass data parameter keys.

See also

Agent scripts
Macros
Smart assist
Session templates

[!INCLUDEfooter-include]


Create an app profile

[!INCLUDEcc-oc-admin-csh-deprecation.md]

Perform the following steps to create an app profile:

Sign in to Power Apps.

Select the environment in which you want to create the app profiles.

Do one of the following:

On the Home page, go to Your apps section.

In the left pane, select Apps.

Select More commands in Omnichannel for Customer Service or Customer Service workspace, and then select App profile manager on the menu that appears.

In the left pane, select App profiles.

On the App profile manager page, select New profile.

On the New profile pane, specify the following:

Name: The app profile name.

Unique name: A unique identifier in the <prefix>_<name> format.
     > [!IMPORTANT]
     > The following are required for the unique name:
     > - The prefix can only be alphanumeric and its length must be between 3 to 8 characters.
     > - An underscore must be used between the prefix and name.

Description: A description for the profile.

Assign templates and enable productivity pane and channels

For an app profile, you can add only one session template for each entity type. Typically, you'll add one session template for each entity type, such as one each session template for accounts, contacts, and cases.

The settings that you enable for the app profile will be available for agents and supervisor only when you configure the corresponding templates and settings in the Customer Service Hub or Omnichannel admin center app. For example, channels must be provisioned in Omnichannel for Customer Service and channel instances must be configured.

In the App profiles section, select the app profile to which you want to assign templates.

On the Session templates, select Add entity session template.

Search for the template you want to add and select it. Make sure that the selected template is based on Entity type. More information: Manage session templates

[!div class=mx-imgBorder]

Do the following on the Productivity pane tab:

If you want to enable productivity tools, set the toggle to on for Turn on productivity pane.

Select the default mode as collapsed or expanded.

In the Productivity tools section, set the toggle to on for the following:
Smart assist tool configuration
Knowledge search tool configuration
Agent scripts to allow access to smart assist configuration and agent scripts.

On the Channels tab, set the toggle to on for All active channels. The channels configured in Omnichannel for Customer Service will be available for the user to whom the profile is assigned.

[!NOTE]
The toggle for channels will be enabled in the out-of-the-box app profile for Omnichannel for Customer Service.

To add a third-party channel provider, in the Voice channels section, select Add channel providers, search for the configured channel, and select it.

If a channel doesn't exist, select Create a new channel provider in Unified Interface. The channel configuration page opens on a new tab. More information: Configure channel provider using app profile manager

[!NOTE]
- Only telephony or voice channels are supported.
- A number of voice channel providers can be configured at a time.

Configure the inbox view

For an app profile, you can enable the inbox view in the Customer Service workspace or Omnichannel for Customer Service apps. From the inbox, users can view their conversations and cases.

On the App profiles page, select the profile for which you want to enable the inbox.
[!div class=mx-imgBorder]

Select the Inbox tab, and then toggle Turn on inbox view to On.
[!div class=mx-imgBorder]

Assign profiles to users

On the App profiles page, select the profile that you want to assign to a user.

On the  page, select Assign users on the command bar, and select OK on the message dialog box. The profile opens on a new tab.
[!div class=mx-imgBorder]

On the General tab, select Add Existing User.

On the Lookup Records pane, search and select the user.

[!NOTE]
You can select Assign users on the  page to view the list of users who have been assigned to the profile.

Default profile assignment

When users are assigned roles corresponding to Customer Service workspace or Omnichannel for Customer Service, the default app profiles are assigned as follows.

Customer Service workspace: Users with the CSR Manager and Customer Service Representative roles.

Omnichannel for Customer Service: Users with the Omnichannel administrator, Omnichannel supervisor, and Omnichannel agent roles.

More information: Roles and privileges associated with app profile manager

See also

Get started with Customer Service admin center
Configure agent experience profiles
Manage session templates
Configure channels
Manage agent scripts

[!INCLUDEfooter-include]


Manage application tab templates

An application tab template in Customer Service lets you specify the type of applications that can be opened when agents start a session in the Customer Service workspace or Omnichannel for Customer Service app.

The vertical bar on the left panel shows the list of sessions. The panel will always show the Home session that can't be closed or customized.

Every session has at least one application tab, called the "Anchor tab", that can't be closed or customized. When you start a session, the corresponding application page and any other additional pages are opened based on your configuration settings.

Using the application tab template, you can define applications that are available for a session, and then associate those applications with the session. For example, you can create the Customer Summary page tab and associate it with a chat or SMS session. Now, when an agent accepts a notification from the chat or SMS channels, a session starts and the Customer Summary page opens.

As an administrator, you can create multiple application tab templates.

[!Note]
You can't customize the out-of-the-box templates, but can create your own custom templates.

Create application tab templates

Select one of the following tabs, and perform the steps.

### Customer Service admin center

### Power Apps

Select New on the Active Application Tab Templates page.

Specify the following on the New Application Tab Template page.
| Tab | Name | Description | Example |
|-----------|-------------------|-----------------------------------|-------------------------------------|
| General | Name | Specify the name of the application tab. This name won't be visible for the agents at runtime. | Knowledge article search |
| General | Unique name | Provide a unique identifier in the <prefix>_<name> format. IMPORTANT The following are required for the unique name: The prefix can only be alphanumeric and its length must be between 3 and 8 characters. An underscore must be added between the prefix and name. You can select the light bulb icon, and then select Apply to verify whether the name you've entered meets the requirements. | contoso_application_tab |
| General | Title | Provide a title for the application that you want the agents to see at runtime. | Knowledge article search |
| General | Page type | Select a page type from the list. |  Web resource |
| General | Description | Provide a description for your reference. | The page type is used to display a knowledge base search page. |

Select Save. The Parameters section displays the parameters for the page type that you selected.

[!Note]
Whenever you edit the application tab template, save the changes so you see the corresponding fields in the Parameters section.

Select the Value field of a parameter that you want to edit and provide the value.

Select Save.

Page types

The following page types are available.

Dashboard

Entity list

Entity record

Search

Third-party website

Web resource

Control (for internal use only)

Custom (preview)

Dashboard

This page type is used to display the dashboard as an application. The following parameter is available for the dashboard page type.

|Parameter | Description | Required  | Supported values | Example |
|---------|--------------|------------------|--------- | --------|
| dashboardId | GUID of the dashboard | Yes  | String    | d201a642-6283-4f1d-81b7-da4b1685e698 |

[!NOTE]
If the target dashboard is not included in the app module definition, the default dashboard is displayed instead.

Entity list

This page type is used to display an entity view that defines how a list of records for a specific entity is displayed. The following parameters are available for the entity view page type.

|Parameter | Description | Required | Supported values | Example |
|---------|--------------|------------------|--------- |---------|
| entityName| Logical name of the entity | Yes | String  Slugs | account  {anchor._customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname} |
| viewId | GUID of the view | No | String | 00000000-0000-0000-00aa-000010001031 |

[!NOTE]
If the target view does not exist or is not included in the app module definition, the default entity view is displayed instead.

Entity record

This page type is used to display an existing record or open a form to create a new record.

The following parameters are available for the entity record page type when an existing record is opened.

The following parameters are available for the entity record page type when an entity form is opened to create a new record:

Search

The following parameters are available for the entity search page type.


The following parameters are available for the entity record page type when an entity form is opened to create a new record:

Search

The following parameters are available for the entity search page type.

|Parameter | Description | Required | Supported values | Example |
|---------|--------------|------------------|--------- |---------|
| searchType | Define to use Relevance search or Categorized search. The possible values are:

0 for Relevance search

1 for Categorized search

Third-party website

This page type is used to display third-party websites as an application. You can use this type to host only those websites that are compatible with iframe hosting. The application tab template parses the URL and data parameters to format the URL address to be displayed.

[!Note]
When an agent switches from the third-party website type of tab template to another tab, and then switches back to the third-party website tab template, the page will be refreshed to the initial state. For more information, see the "Third-party application tab refreshes when focus is changed" section in the Known issues document.

How parsing works

These examples are based on a scenario where the case was opened as the Anchor tab in a new session with ticket number: CAS-01003-P3B7G1.

url parameter: https://www.bing.com/search?q=
data parameter using slugs: {anchor.ticketnumber}
Expected URL: https://www.bing.com/search?q=CAS-01003-P3B7G1

url parameter: https://www.bing.com/search?q=
data parameter using OData: {$odata.incident.ticketnumber.?$filter=incidentid eq'{anchor.incidentid}'&$select=ticketnumber}
Expected URL: https://www.bing.com/search?q=CAS-01003-P3B7G1

[!NOTE]
The url parameter requires the correct URL format using 'https://'.

Web resource

This page type is used to display web resources that represent files, which are used to extend the web application such as HTML files, JavaScript, CSS, and several image formats. The following parameters are available for the web resources page type.

[!Note]
When an agent switches from the web resource type of tab template to another tab, and then switches back to the web resource type of tab template, the page will be refreshed to the initial state. For more information, see the "Third-party application tab refreshes when focus is changed" section in the Known issues document.

Custom (Preview)

[!IMPORTANT]
[!INCLUDEcc-preview-feature]
[!INCLUDEcc-preview-features-definition]
[!INCLUDEcc-preview-features-expect-changes]
[!INCLUDEcc-preview-features-no-ms-support]

This page type is used to display custom pages on the application tab. You can use this tab template type to host custom pages that are available in the corresponding app module. For more information about custom pages, see Overview of custom pages for model-driven apps.

The following parameters are available for custom pages.

Out-of-the-box application tab templates

The following out-of-the-box application tab templates are available.

| Template name                       | Description                                    | Application type |
| --------------                      | --------------------------------------         | -----------------|
| Customer Summary                    | Displays the Customer Summary page in the tab. | Entity Record |
| Entity record                       | Displays an entity record in the tab.          | Entity Record |
| Knowledge Search                    | Displays the knowledge article search page in the tab.          | Web Resource |
| Omnichannel Conversations Dashboard | Displays the Omnichannel Conversations Dashboard in the tab. | Dashboard |
| Omnichannel Intraday Insights       | Displays a Power BI report in the tab.         | Control  |
| Quick Reply Preview                 | Displays a quick reply in the tab.             | Control  |
| Rich Message Preview                | Displays a rich message in the tab.            | Control |
| Search                              | Displays the Omnichannel search page in the tab.                    | Control |

See also

Get started with Customer Service admin center
Manage session templates
Manage notification templates
Associate templates with workstreams

[!INCLUDEfooter-include]


Associate templates with workstreams

The session, notification, and application tab templates that you create need to be associated with a workstream so that the Omnichannel system uses the corresponding templates for an incoming conversation.

After an agent accepts the conversation request, a session starts for which the session template is used. In the session, certain application tabs are required such as dashboard, knowledge article search, and case pages. These application tabs are configured using the application tab templates and are associated with a session.

Associate templates with workstreams in Omnichannel admin center

After you create a workstream, you can modify the default templates that are attached to the workstream.

Perform the following steps:

Go to the workstream for which you want to modify the template, and expand the Advanced settings section.

Select Edit beside Sessions, and on the Sessions panel that appears, select a template in the Default template list.

Select Save and close.

Select Edit beside Agent notifications, and on the Agent notifications panel that appears, select a template for each of the following types of notifications:

Incoming unauthenticated
Incoming authenticated
Consult
Transfer
Supervisor assign

Select Save and close.

Associate templates with workstreams in Omnichannel Administration

[!INCLUDEcc-omnichannel-administration-deprecation-note.md]

You can attach only generic type of templates to work streams. By default, the out-of-the-box templates are associated based on the channel. However, you can replace the default templates with the ones that you create.

Sign in to the Omnichannel Administration app.

Select Work Streams under Work Distribution Management.

Select a work stream for which you want to associate the templates.

Select the Templates tab in the work stream. You can see the Sessions and Notifications sections.

You can accept the default session template or select the search icon in Look for Session Templates.

In the list of templates that you created, select a template.

In the Notifications section, for each of the following fields, you can accept the default notification template or select the search icon in Look for Notification Templates, and select a template.

Incoming authenticated
Incoming unauthenticated
Consult
Transfer
Supervisor Assign

Select Save to save the changes to the work stream.

See also

Manage session templates
Manage application tab templates
Manage notification templates

[!INCLUDEfooter-include]


Use automation dictionary to pass parameter keys

[!INCLUDEcc-omnichannel-administration-deprecation-note.md]

The automation dictionary maintains the contextual data for sessions. You can use the keys from the automation dictionary to pass the parameter in an action.

While creating templates and macros in the admin app, you can pass parameter keys such as title of a session, title of notification, title of an application tab template, and custom parameter values for application tab types. These keys are replaced based on the contextual information available at the time of execution.

Pass data parameter in templates

Let's take a scenario for templates with the notifications.

The notification shows certain fields and values, which are called Field header and Value, respectively.

Kenny Smith, a customer, initiated a conversation and when the agent sees the notification, it displays Customer Name as Kenny Smith.

Here, Field header is Customer Name and the Value is Kenny Smith.

For templates to identify the name of the customer as Kenny Smith, you (the administrator) must pass the parameter as keys.

Similarly, for session and notification titles, you can pass the data parameters. More information: Automation dictionary formats to data parameter keys

The system replaces these parameter keys with the actual values based on the context of the session, channel provider, Microsoft Dataverse, and user actions. More information: Types of context data parameters

Pass data parameter in macros and agent scripts

Macros are a set of configured sequential actions that are run on demand by the user. As an administrator, you need to configure the actions that a macro must perform. To configure the actions, you need to pass the data parameters. More information: Automation dictionary formats to pass data parameter keys

When the agent runs the macro, the system replaces these parameter keys with the actual values based on the context of the session, channel provider, Dataverse, and user actions.

When the context is from a session, the macro action is run based on the information for a current session, where the information is obtained from an Anchor tab or current tab that's in focus. For example, to create a case, you need to define the actions that contain the incident entity form and the GUID of the form (optional). More information: Types of context data parameter

Types of context data parameters

The automation dictionary uses the context data parameters that are available from the following sources:

Context data from the channel provider

Context data from user actions

Context data from Dataverse

Context data from other macro actions

[!div class=mx-imgBorder]

Context data from the channel provider

This context data is from the first-party channel provider such as Omnichannel for Customer Service or a third-party channel provider that uses the widget exposed by Dynamics 365 Channel Integration Framework. The context data from Omnichannel for Customer Service are pre-conversation survey, visitor portal navigation, and so on.

Context data from user actions

This data is populated as and when agents perform some activities in the session. An example is opening a new customer record, case, and so on.

Context data from Dataverse

The organizational data is stored in Dataverse, and you can fetch the data with the use of OData queries. More information: OData queries

Context data from other macro actions

An action in a macro generates context data that is consumed by other actions in that macro.

For example, there are two action steps in the following order:

Open a new form to create a record.

Open an email form with a predefined template.

While creating the Open an email form with predefined template action, you can get the context data parameter keys from the Open a new form to create a record macro action step.

The context data parameter from the first macro action are as follows:

Entity Logical Name

Page Type

Tab Id

[!NOTE]
The context data parameters from other macro actions are specific to macros, and aren't applicable to templates.

Automation dictionary formats to pass data parameter keys

The automation dictionary maintains the contextual data for sessions. The keys in the automation dictionary can be passed as parameters to the action in macros. The system replaces these parameter keys with the actual value based on the context of the session, channel provider, Dataverse, and user actions.

The automation dictionary supports the following formats:

Slugs

OData queries

Static values

Slugs

A slug is a replacement parameter that the system populates at runtime based on context. Use the following list of slugs only for macros and agent scripts, and to set an agent script as the default by using the agent script expression builder. More information: Productivity tools

Slugs for productivity tools (macros and agent scripts)

Macros and agent scripts support the following slugs:

Entity records routing |
|


Slugs for productivity tools (macros and agent scripts)

Macros and agent scripts support the following slugs:

Entity records routing |
|

[!NOTE]
Only the ${anchor.<attribute_name>} slug is supported in the macros and scripts for Customer Service workspace.

Slug for reconnection link

The following slug is used to generate a reconnection link that can be shared with customers to connect back to the same agent and conversation. More information: Configure a reconnection to a previous chat

| Slug | Description |
|------------|-----------------------------------|
|{ReconnectUrl{ReconnectID}}| Used in quick replies to generate the reconnect link. |

Format for slugs for productivity tools

The ${Slug} parameter format that retrieves the context from the channel provider, current user session, output of other macro actions, or Dataverse.

Productivity automation context

When you want to execute a slug in the productivity automation context, which is used to perform operations related to model-driven apps in Dynamics 365, use the ${} format. For example: ${customerName}

Session connector context

When you want to execute a slug in the session context, you must use the ${$session.<slug>} format. For example: ${$session.customerName}

Slugs that are available for session context include:

${$session.visitorDevice}

${$session.visitorDevice}

${$session.entityRoutingLogicalName}

${$session.entityRoutingRecordId}

${$session.<name of the pre-chat survey questions>

Omnichannel connector context

When you want to execute a slug in the Omnichannel for Customer Service context, you must use the ${$oc.<slug>} format. For example: ${$oc.customerName}

The Session.CurrentTab.<Attribute> and Session.AnchorTab.<Attribute> parameters provide context data based on the current session and the anchor tab or the current tab in focus. The following are the supported attribute types:

EntityName

EntityId

Examples:
- Session.CurrentTab.<EntityName>
- Session.CurrentTab.<EntityId>
- Session.AnchorTab.<EntityName>
- Session.AnchorTab.<EntityId>

[!NOTE]
The Session.CurrentTab.<Attribute> and Session.AnchorTab.<Attribute> parameters are only applicable to macros and aren't applicable to templates.

Slugs for templates

The list of supported slugs are:

Entity records routing |
|

Format for slugs for templates

The {Slug} parameter format that retrieves the template context from the channel provider, current user session, or Dataverse. For example: {caseId}

OData queries

You can use OData queries to get the contexts that are available from Dataverse.

The OData query format is:

{$odata.<entityName>.<entityAttributeName>.<?options>}

Examples:

{$odata.account.name.?$filter=accountid eq '{customerRecordId}'}

{$odata.incident.prioritycode.?$filter=incidentid eq '{caseId}'&$select=prioritycode}

{$odata.incident.title.?$filter=incidentid eq '{caseId}'&$select=title}

Static values

These are hard-coded values that you update based on your business requirements. For every hard-coded attribute you choose, follow the format type for the particular attribute.

Example (Macro):

You want a case title to always be appended with Contoso -. You use the Open a new form to create a record action with following fields.

| Parameter | Value |
|----------------------|----------------------------|
| Entity Logical Name | incident |
| Attribute Name | Case title |
| Attribute value | Contoso - {caseTitle} |

Here, Contoso - is the hard-coded static value.

Example (Templates):

For an incoming chat request, you want to provide the static title to the session and notification template that agents see at runtime.

Notification title = New chat request

Session title = Chat conversation

See also

Manage session templates
Manage application tab templates
Manage notification templates
Associate templates with workstreams

[!INCLUDEfooter-include]


Create and use agent experience profiles

[!INCLUDEcc-omnichannel-administration-deprecation-note.md]

By default, the following agent experience profiles are available out of the box for Customer Service workspace and Omnichannel for Customer Service. These profiles can't be deleted or modified.  When you don't assign a custom profile to an agent, the default profile is assigned.

Omnichannel for Customer Service - default profile

Customer Service workspace - default profile

Customer Service workspace + channels - default profile

You can configure agent experience profiles in Customer Service admin center or app profile manager. The app profile manager can be accessed through Power Apps.

Prerequisites

Make sure you have the App Profile Manager Administrator role. More information: Security roles

The Basic User role is also required to create profiles in Customer Service admin center.

Create agent experience profiles in Customer Service admin center

By using agent profiles, you can create targeted app experiences for agents and supervisors. Profiles help access the features that your agents and supervisors can use in their daily tasks to resolve customer issues.

Go to  Agent experience profiles in Agent experience > Workspaces.

Select New, and enter the following details on the Create a new agent experience profile dialog.

Name: The app profile name.

Unique name: A unique identifier in the <prefix>_<name> format.

Description: A description for the profile.

Select Create. An agent experience profile is created.

Assign users, templates, configure productivity pane, channels

For the profile that you created, you can add users and configure option such as specific session templates, conversation channels, and productivity tools.

Go to Agent experience profiles and select the required agent experience profile. You can perform the following actions:

In the Users section, specify the agents this profile must be associated with. Select Add Users to select users from the available users, or search for and add users to the profile.

Select Add entity session template to link a session template to the profile. On the Entity session templates pane, you can select an existing template or create a new entity session template.

In the Productivity pane, select Turn on to enable the productivity tools that the agents can access when they work on their assigned tasks. The following productivity tool options are available:

Default mode

Smart assist

Agent scripts

Microsoft Teams

Knowledge search

:::image type="content" source="../customer-service/media/agent-experience-profile.png" alt-text="The agent experience profile with configured settings in Customer Service admin center.":::

See also

Manage session template
Overview of Dynamics 365 Productivity Tools
Overview of channels in Omnichannel for Customer Service
Overview of agent experience profiles

[!INCLUDEfooter-include]


Experience for accessing templates and productivity tools

[!INCLUDEcc-oc-admin-csh-deprecation.md]

The app profile manager is an easy-to-use interface that helps you get started with what you can do on the page.

[!div class=mx-imgBorder]

[!IMPORTANT]
[!INCLUDEcc-use-with-omnichannel]

The options to access and manage the following entities are available on the left pane of the app profile manager:

Settings

Channel provider

Templates

Session templates

Application tabs

Notifications

Productivity

Smart assist

Agent scripts

Macros

All these options are available in Unified Interface. Select any of the option to open it in  a new tab.

Irrespective of the path from where you navigate to any of the components, such as session templates or application tab templates, the templates that you've defined for Customer Service workspace and Omnichannel for Customer Service will be displayed because they're stored in a common library.

Settings

Select Settings in Customer Service workspace to open the Queues page on a new tab.

Select Settings in Omnichannel Administration to open the Entity Records page on a new tab.

Channel provider

The Channel provider option in Customer Service workspace or Omnichannel Administration opens the channels view on a new tab where you can configure a new channel or update the settings of the existing providers.

Templates

The following template types can be accessed:

Session templates: Opens the Session templates page where the out-of-the-box templates and custom templates created by you're listed.

Application tabs: Opens the application tab templates page to create and manage application tab templates.

Notifications: Opens the notifications templates page to manage the templates.

Productivity

You can access the following options in the Productivity area:

Smart assist: Opens the settings for AI-based suggestions for similar cases, knowledge articles, and ongoing conversations.

Agent scripts: Opens the agent scripts page for you to create and manage scripts.

Macros: Opens the macros page for you to create and manage macros.

Upgrade experience for existing Omnichannel for Customer Service

When you upgrade your existing environments, the settings for templates, productivity tools, and channels configuration in the out-of-the-box app profile will reflect the existing state of your environment. For example, if productivity pane is enabled and smart assist is configured, the settings will be retained in the out-of-the-box app profile.

See also

Create and use agent experience profiles
Manage session templates
Configure channels

[!INCLUDEfooter-include]


Set up Omnichannel for Customer Service channels in Customer Service workspace

When your agents are working on cases, there may be times when you want them to also be able to have conversations with customers. Using Omnichannel for Customer Service add-on licensing, you can set up your Customer Service workspace environment so that agents are able to work on both cases and conversations without having to leave the Customer Service workspace app.

Enable channel conversations in Customer Service workspace

To enable agents to be able to have conversations in Customer Service workspace, do the following:

Obtain Omnichannel for Customer Service add-on licenses and set up your Omnichannel environment. More information: Provision Omnichannel.

Configure the following in the Omnichannel administrator app:
a. Channels
b. Queues and users
c. Work streams

Assign the Omnichannel agent and/or Omnichannel supervisor roles to your users. More information: Assign roles and enable users for Omnichannel for Customer Service.

Set up profiles in app profile manager

Once you've completed the configurations above, go to App profile manager and complete the following:

Create a new app profile or use the default, out-of-box Customer Service workspace + Channels profile. More information: Create and use app profiles to manage apps.

Assign the app profile you created to the agents and supervisors you want to work on both cases and conversations. More information: Roles and permissions.

Verify that you've assigned Omnichannel for Customer Service-related roles to the agents and supervisors you want to work on both conversations and cases.

Access Omnichannel for Customer Service dashboard views

When configured, the following dashboards are available in Customer Service workspace:

For agents:
- Omnichannel Agent Dashboard
- Customer Service Representative Dashboard

For supervisors:
- Omnichannel Agent dashboard
- Omnichannel Ongoing Conversations Dashboard
- Intraday Insights
- Customer Service Representative Dashboard
- Customer Service Manager Dashboard

Agent experience

After you have configured the Omnichannel for Customer Service and app profile manager features, agents will have a user experience in Customer Service workspace that is similar to the following:

The agent signs in to Customer Service workspace and can view the Omnichannel agent dashboard from the dashboard view.

The agent can work on conversations by accepting or selecting a conversation from the dashboard, and all the functionality of Omnichannel for Customer Service is available to them, including:
a.  Notifications - More information: View notifications
b.  Customer summary - More information: View a customer summary to get information about a customer
c.  Notes – More information: Take notes specific to a conversation
d.  Conversation and session forms – More information: View conversation and session forms
e.  Transcripts – More information: Search transcripts
f.  Viewing customer summaries for conversation requests – More information: View customer summaries for incoming conversation requests
g.  Presence status – More information: Manage presence status

Supervisor experience

When a supervisor signs in to Customer Service workspace, they can select a dashboard to do the following:

Monitor agent conversations - More information: Monitor and assign conversations

Monitor ongoing conversations - More information: View and understand Omnichannel Ongoing Conversations conversations dashboard

View intraday insights - More information: View and understand Omnichannel intraday insights dashboard

View customer satisfaction levels - More information: Sentiment monitoring

See also

App profile manager overview
Roles and privileges associated with app profile manager
Customer Service workspace overview
Omnichannel agent overview
Introduction to intraday supervisor experiences

[!INCLUDEfooter-include]


Automate tasks with macros

In the customer service industry, agents have to click often to perform simple tasks, such as open a form, fill, and save it, and many repetitive and monotonous actions, such as greeting and verifying a customer, sending acknowledgment mail, and taking notes. These clicks and repetitive tasks can lead to human errors when agents copy and paste the data across different operations.

Macros are a set of sequential actions that are performed by a user. They enable users to perform daily operations efficiently in a fast and process-compliant manner. You can reuse macros with different sessions based on the context parameters that are specific to the session.

The value propositions of the macros are as follows:

Automate repetitive and monotonous tasks with a single click.

Minimize human errors.

Adhere to business processes.

Lower average handling time.

Improve customer satisfaction.

Create contextual and reusable macros.

The macros in Customer Service workspace have the following:

Predefined automation actions

Built-in control

Prerequisites

Install Dynamics 365 Productivity Tools solution.

Ensure that you have the Productivity tools administrator security role. More information: Assign roles and enable users

Ensure that agents and supervisors are assigned the Productivity tools user security role. More information: Assign roles and enable users

Predefined automation actions

In Customer Service, macros provide three connectors:

Productivity automation: Provides actions to perform model-driven app operations.

Session connector: Provides actions to perform session-related operations.

Omnichannel connector: Provides actions to perform Omnichannel for Customer Service–related operations.

Productivity automation

As an administrator, you can use the actions any number of times across different macros to automate and perform model-driven app operations.

The following screenshot shows the actions that are explained in the subsequent sections.

[!div class=mx-imgBorder]

Open a new form to create a record

This action is used to open a new form to create a record. The action contains the following fields.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Entity logical name |  Specify the logical name of the entity that you want to open. This is a mandatory field. | incident |
   | Entity form ID | Specify the form ID. This is an optional field. |
   | Attribute Name | Specify the attribute logical name. You need to provide the attribute name to prepopulate the field with a value.| |
   | Attribute Value | Specify the attribute value. You need to provide the attribute value to prepopulate the attribute field. | |

Open an existing record

This action is used to open an existing record form. The action contains the following fields.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Entity logical name |  Specify the logical name of the entity that you want to open.  This is a mandatory field. | incident |
   | Entity record ID| Specify the entity record ID. This is a mandatory field.| |
   | Entity form ID | Specify the form ID. This is an optional field. | |

Open a record grid

This action is used to open a record grid. The action contains the following fields.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Entity logical name |  Specify the logical name of the entity for which you want to open the grid.  This is a mandatory field. | incident |
   | View ID| Specify the ID of the view that you want to open. This is a mandatory field. | |
   | View type | Specify the view type. This is a mandatory field. | |
   |||

Search the knowledge base for the populated phrase

This action is used for searching knowledge articles based on the populated phrase. The action contains the following field.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Search string |  Provide the phrase based on which you want to search for knowledge articles. You can provide the context data. For example, the context data parameter can be a case title. |  |
   |Tab Label| Specify the tab label.|

Do a relevance search based on the phrase

This action is used for searching knowledge articles based on the populated phrase. The action contains the following field.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Search string |  Provide the phrase based on which you want to do a relevance search. You can provide the context data. For example, the context data parameter can be a case title.  This is a mandatory field.  |  |

Update an existing record

This action is used to update an existing record. The action contains the following fields.


Update an existing record

This action is used to update an existing record. The action contains the following fields.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Entity logical name |  Specify the logical name of the entity that you want to update.  This is a mandatory field. | incident |
   | Entity record ID| Specify the entity record ID. This is a mandatory field.| |
   | Attribute Name | Specify the attribute logical name you want to update.| |
   | Attribute Value | Specify the attribute value that will be updated for the above-mentioned attribute. | |

Open an email form with predefined template

This action is used to open an email with a predefined template. The action contains the following fields.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Entity logical name |  Specify the logical name of the entity.  This is a mandatory field. | incident |
   | Entity record ID| Specify the entity record ID. This is a mandatory field.| |
   | Email recipients | Specify the recipients to whom you want the mail to be sent.  This is a mandatory field. | |
   | Template ID | Specify the ID of the template that must displayed in the email.  This is a mandatory field. | |

Resolve a case

This action is used to resolve a case. The action contains the following fields.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Billable time |  Specify the time that is billable.  This is a mandatory field. | incident |
   | Incident ID| Specify the ID of the case that you want to close. This is a mandatory field.| |
   | Resolution | Specify the reason to resolve the case.  This is a mandatory field. | |

Autofill form fields

This action is used for updating the form attribute (field). The action updates the attribute of a form if that form is currently in focus and has the same entity type as mentioned in action. If the action is run for any other entity, then the action will fail. Also, the action only updates the field and doesn't save the record. The action contains the following field.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Entity logical name | Specify the logical name of the entity that you want to update.  This is a mandatory field. | incident |

Clone current record

This action is used for cloning an existing record that is open in the current tab. The action only copies the fields and does not save the record. The action contains the following field.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Record title | Specify the title of the record that you want to clone.  This is a mandatory field. | |

Open knowledge base article

This action is used to open the knowledge base article. The action contains the following field.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Entity record ID  | Specify the entity ID of the knowledge base article that you want to open.  This is a mandatory field.|  |

Save the record

This action saves the record after you've entered data in all the mandatory fields. The action fails if the mandatory fields aren't entered or are left blank.

Clone input record

This action clones an existing record. The action only copies the fields and does not save the record. The action contains the following fields.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Entity logical name | Specify the logical name of the entity that you want to clone.  This is a mandatory field. |
   | Entity record ID | Specify the ID of the entity record.  This is a mandatory field.|
   |Record title| Specify the record title.

Session connector

As an administrator, you can use the actions any number of times across different macros to automate and perform operations related to a session in Customer Service workspace.

[!div class=mx-imgBorder]

Get the current tab

This action gets the details of the current tab in Omnichannel for Customer Service. The action retrieves the Tab ID that could be used in the Refresh tab and Focus tab actions.

Open application tab

This action opens the specified application in a new tab with the attributes that you define. The action contains the following fields.


Open application tab

This action opens the specified application in a new tab with the attributes that you define. The action contains the following fields.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Page type | Specify  the application type to be opened. More information: Page types  This is a mandatory field.  |
   | Application Template ID  | Specify the ID of the application template.  This is a mandatory field. |
   | Attribute Name | Specify the attribute logical name you want to update.| |
   | Attribute Value | Specify the attribute value that will be updated for the above-mentioned attribute. | |

Refresh the session context

This action refreshes the session context in Customer Service workspace for entity sessions. For example, if you launch an entity session for a case record, the session context variables will be defined when the session starts. However, if you update the case title, the session context will not be updated. Therefore, macros will use the cached information. You can add the Refresh the session context step after starting the macro run to use the latest information.

Refresh the tab

This action refreshes a tab in the Customer Service workspace session. This action contains the following field.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Tab ID | Specify the ID of the tab that you want to refresh.  This is a mandatory field.|

Focus on the tab

This action focuses on a tab in the Customer Service workspace session. This action contains the following field.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Tab ID | Specify the identifier of the tab that you want to give focus to.  This is a mandatory field.|

Omnichannel connector

As an administrator, you can use the actions any number of times across different macros to automate and perform operations related to Omnichannel for Customer Service.

[!NOTE]
Macro actions for the Omnichannel connector is available if Customer Service workspace in Omnichannel for Customer Service is installed.

[!div class=mx-imgBorder]

Send KB article in chat

This action pastes a knowledge base article in the conversation chat window. It must be used with the Search knowledge base for the populated phrase action. The action contains the following field.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Entity record ID  | Specify the ID of the entity record.  This is a mandatory field. |

Link record to the conversation

This action links a record to the conversation when the customer is communicating with the agent in the Omnichannel for Customer Service session. This action contains the following fields.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Entity Logical Name |  Specify the logical name of the entity that you want to link.  This is a mandatory field. | incident |
   | Entity record id| Specify the entity record ID of the entity that you want to link. This is a mandatory field.| |
   | Entity primary Name | Specify the primary name of the entity that you want to link. This is a mandatory field.| |

Unlink record from the conversation

This action unlinks a record from the conversation when the customer is communicating with the agent in the Omnichannel for Customer Service session. This action contains the following fields.

| Field | Description | Parameter |
   |-----------------|-----------------------------|--------------------------|
   | Entity Logical Name |  Specify the logical name of the entity that you want to unlink.  This is a mandatory field. | incident |
   | Entity record id| Specify the entity record ID of the entity that you want to unlink. This is a mandatory field.| |
   | Entity primary Name | Specify the primary name of the entity that you want to unlink. This is a mandatory field.| |

Flow connector

As an administrator, you can use the actions any number of times across different macros to automate and perform operations related to Omnichannel for Customer Service and Customer Service workspace.

[!div class=mx-imgBorder]

Run Flow

This action triggers Power Automate flows using macros in agent scripts. This action contains the following fields.


[!div class=mx-imgBorder]

Run Flow

This action triggers Power Automate flows using macros in agent scripts. This action contains the following fields.

| Field                | Description                             | Parameter  |
|----------------------|-----------------------------------------|------------|
| Entity logical name    | Specify the logical name of the entity that you want to link. This is a mandatory field. Any Microsoft Dataverse entity, such as Account, can be used based on business needs. | account   |
| Entity record id     | Specify the entity record ID of the entity that you want to link. This is a mandatory field. Ids or slugs, such as {customerRecordId}, can be used. While this field is labeled as entity record id, any value to be processed can be passed. While the field is required, values do not have to be functional unless required for the flow logic. | {customerRecordId}   |
| Select flow            | Specify or select the Power Automate flow to be run by this action. Requires instant cloud flows with When a record is selected flow triggers. Existing flows with proper permissions will be detected and displayed in the drop-down list. |    |

Power Automate flow permissions

Referenced flows require valid connection and run permissions for the Omnichannel for Customer Service and Customer Service workspace tenant and agents that run the flow from within agent scripts.

[!div class=mx-imgBorder]

When you run the Run flow action, flows are run within the embedded flow widget on Omnichannel for Customer Service.

[!div class=mx-imgBorder]

Built-in

The Built-in control allows you to run a macro action step based on the conditions. The Built-in category connector has a Condition action.

[!div class=mx-imgBorder]

To use the Built-in category, you first need to have a trigger (predefined automation actions). That is, select a predefined automation action first, and before or after a step, you can define the condition. You can also create nested conditions as per your requirements.

Using the View run history option for a particular macro, you can see the condition that was run and whether it succeeded.

For example, you want to open a new form and save it after entering the fields. If the Product field in the form has Surface as the value, evaluate it as true and then perform the knowledge base article search with the search phrase as Surface. If it is evaluated as false, don't perform any further actions.

[!div class=mx-imgBorder]

Use the automation dictionary to pass macro context data parameters

Macros are a set of configured actions that are run on demand by users. As an administrator, you need to configure the actions that a macro must perform. To configure the actions, you need to provide certain data parameters keys. When an agent runs the macro, these data parameters keys are replaced by contextual values.

To learn about the slugs for productivity tools, see Slugs.

To learn more, see Use automation dictionary to pass data parameter keys.

Create a macro

To create a macro

In Dynamics 365, go to one of the apps, and perform the following steps.

### Customer Service admin center

### Omnichannel admin center

### App profile manager

On the page that appears, select New.

On the Macros page, specify the following.
| Field | Description | Example value |
|-------------|-----------------------------------|------------------------------------|
| Name | Provide a name to the macro. The name is displayed to the agent at runtime. | Create case |
| Description | Describe the purpose of the macro. The description is displayed to the agent at runtime. | This macro action is used to create a case. |
|||

On the Preferred automation actions tab, select Start macro execution, and then select New step.

[!div class=mx-imgBorder]

Select a connector from the list. The following connectors are available:

Productivity Automation
Session Connector
Omnichannel Connector

Select an action from the list of actions. You can add as many actions as you need, based on your business requirements.
If you select Productivity Automation, you'll see the following actions.
| Purpose | Action name |
  |-----------------------------|---------------------------------------------|
  | Open a new form to create a record | Create new |
  | Open an existing form | Open form |
  | Open a record grid | Open grid |
  | Search the knowledge base for the populated phrase | Search knowledge articles |
  | Do a relevance search based on the phrase | Search |
  | Update an existing record | Update record |
  | Open an email form with predefined template | Open email |
  | Resolve a case | Resolve case |

[!div class=mx-imgBorder]


[!div class=mx-imgBorder]

For example, select Open a new form to create a record, and the step appears. More information: Productivity automation.
If you select Session connector, you'll see the following actions.
| Purpose | Action name |
  |-----------------------------|---------------------------------------------|
  | Refresh the application tab | Refresh tab |
  | Focus on a particular application tab from another application tab| Focus tab |
  | Get the details of the current application tab | Get current tab |

[!div class=mx-imgBorder]

More information: Session connector
If you select Omnichannel connector, you'll see the following actions.
| Purpose | Action name |
  |-----------------------------|---------------------------------------------|
  | Link a record to the conversation while interacting with the customer | Link record to the conversation |
  | Unlink a record from the conversation while interacting with the customer | Unlink record from the conversation |

[!div class=mx-imgBorder]

More information: Omnichannel connector

[!Note]
Omnichannel connector is not available in Customer Service workspace.

Specify the values in the fields. To learn how to specify the values, see Use automation dictionary to pass data parameters keys.

If you selected Open a new form to create a record, you can select Show advanced options to add the attributes and values you want. If required, you can select Add new item to add more attributes.

[!div class=mx-imgBorder]

After you add an action step, to define conditions, select the Built-in tab, and select Control.

Select Condition to define the conditions. The condition has If true or If false. Define the condition as per your requirement.

To add another action step, repeat step 7 and optionally step 8.

Select Save and close.

Now, when the agent runs the macro, the actions will be run by fetching the data parameter keys according to the context available from the sources. More information: Use automation dictionary to pass data parameters keys.

View macro run history

[!INCLUDEcc-omnichannel-administration-deprecation-note.md]

As an administrator, you can view the macro run history, which shows how many times a macro has been run, along with the success or fail status. When you select a macro that failed, you can view the exact action step at which the failure occurred.

Go to the Macros page, and select the macro for which you want to view the history.

Select View run history.

[!div class=mx-imgBorder]

Select the macro that failed from the list.

[!div class=mx-imgBorder]

See the macro action step that caused the failure. Review the previous step for any issue in the slug data parameters that might've been passed incorrectly or slug data parameters that were updated incorrectly.

[!div class=mx-imgBorder]

For example, when you select on the Open a new form to create a record step, select Show more, and you can view that the mandatory fields don't have values, which are mandatory to save the record. Due to this reason, the macro run failed at the Save the record step.

[!div class=mx-imgBorder]

Fix the macro step action that you think might have caused the failure, and then try running it again. For example, since the values are not resolved, go to the macro designer and then check on the slugs, and then try running the macro again.

[!Note]
If the issue persists, contact Microsoft support.

See also

Use automation dictionary to pass data parameters keys
Agent scripts
Smart Assist

[!INCLUDEfooter-include]


Manage notification settings and templates

When a notification is sent to an agent, it displays certain information, such as the customer from who the conversation request is coming, the timeout period after which the notification will disappear, and accept and reject buttons. Each organization has varied business requirements and wants the notifications to show relevant information to the agents.

As an administrator, system integrator, or partner, you can use the out-of-the-box templates for notifications or create your own. A notification template is a combination of notification-related, reusable information. The template is used to configure what information needs to be displayed to the agents and supervisors for an incoming conversation, escalation, transfer, or consult.

Desktop notifications

For optimal functioning of desktop notifications, make sure that you are using the latest supported browsers as specified in the system requirements.

[!Note]

The legacy version of Microsoft Edge is not supported for desktop notifications.

Desktop notifications when the app is in the background

Agents can receive desktop notifications when the Customer Service workspace or Omnichannel for Customer Service app is not in focus. These notifications help ensure that agents won't miss any conversation requests. Some scenarios where the app isn't in focus might include:

The agent has minimized the app.

The agent is working in another browser window.

The agent is working on another tab of the browser.

[!div class=mx-imgBorder]

Agents can accept or reject the conversation request by selecting a button on the desktop notification. When an agent accepts the conversation, the app is made active and displayed to the agent, and a session is started.

If the agent selects the notification message body and not a button, the app is made active and the notification is displayed to the agent in the app. Then the agent can choose to accept or reject the conversation by selecting the appropriate button.

You can configure the wait time and the notification is displayed for the agent according to this time, but wait time isn't displayed on the notification. The desktop notification theme is based on the Windows operating system theme and settings.

[!Note]

Desktop notifications will not work when the browser is opened in incognito mode or if focus assist is turned on in your Windows 10 operating system.

If the native browser notification option is disabled, the notification will be shown in a different user interface.

Allow a browser to show notifications

To get desktop notifications, agents need to allow their browser (Microsoft Edge or Google Chrome) to show them. When an agent gets a browser notification, they need to select Allow. Based on your requirements, you can enable or disable notifications in the browser settings.

Also, as an administrator, you can set the browser notification permission by using group policy.

[!div class=mx-imgBorder]

Notification fields

The fields that are shown in the notification are based on the notification template configuration. To learn more, see Slug for notification field header and Create a notification template.

Slugs for notification field header

A slug is a replacement parameter that is populated at runtime based on the context variables.

The notification shows certain fields and values, called Field header and Value respectively.

For example, a customer Kenny Smith initiates a conversation. When the agent sees the notification, it displays Customer Name as Kenny Smith.

Here, Field header is Customer Name and the Value is Kenny Smith.

For the application to identify the name of the customer as Kenny Smith, as an administrator, you must configure slugs as the value. The Omnichannel system replaces the slug with the actual value that is extracted based on the context variables.

The application supports the following slugs.

Entity records routing. |
|

Manage templates

Out-of-the-box notification templates

For the supported channels, Customer Service provides you with out-of-the-box notification templates that you can use in your environment. When you attach the out-of-the-box notification template, the default settings are used in the notifications. For customers whose record exists in Dynamics 365, the settings in the authenticated template for notifications are used. If the customer details are not available in Dynamics 365, the settings in the unauthenticated template are used for displaying the notifications. For information on the notifications behavior and what the notifications display for agents, see notifications for agents.

The out-of-the-box templates are as follows.


The out-of-the-box templates are as follows.

| Channel/Entity | Consult | Authenticated | Unauthenticated | Transfer | Other
|---------|--------------------|-----------------------|------------------------|--------------------|--------------------|
| Chat | Chat - consult - default | Chat - incoming authenticated - default | Chat - incoming unauthenticated - default | Chat - transfer - default |
| Custom messaging | Custom messaging - consult - default | Custom messaging - incoming authenticated - default | Custom messaging - incoming unauthenticated - default | Custom messaging - transfer - default |
| Facebook | Facebook - consult - default | Facebook - incoming authenticated - default | Facebook - incoming unauthenticated - default | Facebook - transfer - default |
| LINE | LINE - consult - default | LINE - incoming authenticated - default | LINE - incoming unauthenticated - default | LINE - transfer - default |
| SMS | SMS - consult - default | SMS - incoming authenticated - default | SMS - incoming unauthenticated - default | SMS - transfer - default |
| Microsoft Teams | Teams - consult - default | Teams - incoming authenticated - default | Teams - incoming unauthenticated - default | Teams - transfer - default |
| Twitter | Twitter - consult - default | Twitter - incoming authenticated - default | Twitter - incoming unauthenticated - default | Twitter -  transfer - default |
| WeChat | WeChat - consult - default | WeChat - incoming authenticated - default | WeChat -  incoming unauthenticated - default | WeChat - transfer - default |
| CDS entity |||||CDS entity - Default assigned |
| Customized ||||| Customized notification template |
| Sentiment ||||| Sentiment threshold alert - supervisor |
|Voice|Voice call - consult - default|Voice call - incoming authenticated - default|Voice call - incoming unauthenticated - default|Voice call - transfer - default|Voice call - supervisor assign - default|
|||||||

[!Note]

You can't customize the out-of-the-box notification templates; instead, you'll need to create your own custom templates.

If you use custom notification templates for record routing, we recommend that you do not add a reject option. By design, the record will be assigned to the routed agent even if you provide the option to the agent to reject the assignment.

Create a notification template

To create the notification template

In Dynamics 365, go to one of the apps, and perform the following steps.

### Customer Service admin center

### Omnichannel admin center

On the Templates tab, select New Notification Template in the Active Notifications Templates area.


In Dynamics 365, go to one of the apps, and perform the following steps.

### Customer Service admin center

### Omnichannel admin center

On the Templates tab, select New Notification Template in the Active Notifications Templates area.

Specify the following in the New Notification page.
| Tab | Name | Value, description | Example |
|---------|--------------------|-----------------------------------------------|--------------------|
| General | Name | Specify the name for the notification. This name wouldn't be visible for the agents at the run-time. | Authenticated chat notification |
| General | Title | Provide a title to the notification that you want the agents to see at the run-time. | Incoming chat  conversation |
| General | Icon | Select web resource path to add an icon. | /webresources/msdyn_chat_icon_zfp.svg  Note: - This is the default value. You can change the icon as your requirement.  - If you enable the Show desktop notifications option, and if you use svg icon format, then the svg icon won't be shown in the desktop notifications.  |
| General |Show timeout| Yes |Set Yes to show the timer in the notification, or No to hide the timer in the notification for the agents.  Note:  - Irrespective of whether you set Yes or No to show or to hide the timeout value for the agent, the timer runs, and after the timeout duration, the notification disappears.  - Yes is the default value for the templates when you get the latest release of Omnichannel for Customer Service.  - When you upgrade from previous to the latest release of Omnichannel for Customer Service, then existing notification templates will show no value for this field in the user interface. However, the notification templates consider the values as Yes, and display the timer to the users at the runtime. - If you enable the Show desktop notifications option, then the timer won't be shown in the desktop notifications. |
   | General | Timeout (seconds) | Provide a duration in seconds; after this duration, the notification disappears. | 120.  Note: This is the default value. You can change the duration as per your requirement.
   | General|Auto-assign work items| Set to Yes to automatically assign the incoming conversation.| The default value is No.  Note: This setting is in preview.  More information: Enable automatic acceptance of conversations.|
   | General | Accept Button | Specify a text for the accept button. This text appears for the agents to accept a conversation request. | The default value is Accept that changes to Open when the Auto-assign work items value is Yes. You can change the text as per your requirement. |
   | General | Reject Button | Set the toggle to yes if you want to show the reject button to agents.  After you set the toggle to Yes, the default label for the button appears. | Reject  Note: This is the default value. You can change the text as per your requirement. The Reject Button is disabled when the Auto-assign work items value is Yes. |
   | General | Show desktop notifications | Specify whether you want to show notifications to the agents when the Omnichannel for Customer Service app not in focus. | When app is in background  Note:  The default value is Never.  To learn more, see Desktop notification when app is in background and Receive notifications when app is in background. |

[!div class=mx-imgBorder]

Select Save. The template is saved, and the Notification Fields section appears on the page.

Select Add Existing Notification Field in the Notification Fields section. The Lookup Records pane appears.

Select the search icon in the Look for Records box. If no records are available, you will see a message: No records found. Create a new record..

Select New to create a notification field. A confirm dialog box appears, asking whether you want to leave the page. Select OK.

Specify the following in the New Notification Field page.
| Tab | Name | Value, description | Example |
|---------|--------------------|-----------------------------------------------|--------------------|
| General | Name | Specify the name for the notification. This name won't be visible to the agents at the runtime. | Name of the customer |
| General | Field header | Provide a name to the field header. This appears in the notification that agents see at the runtime. | Name |
| General | Value | Provide a slug value that appears against Field header in the notification.  To learn more, see Slug for notification field header. |{customerName} |

[!div class=mx-imgBorder]

Select the back arrow on the browser to go to the notification template you created. Alternatively, you can select Notifications in the sitemap, and then select the template you created.

Select Add Existing Notification Field in the Notification Fields section. The Lookup Records pane appears.


Select Add Existing Notification Field in the Notification Fields section. The Lookup Records pane appears.

Select the name of the notification field you created, and then select Add. For example, Name of the customer.

Repeat steps 6 through 12 to add more notification fields.

Select Save.

After saving the notification, sign in to the Omnichannel for Customer Service app as an agent, and you can view the notification as per your configuration when a work item is routed.

To learn more, see View notification.

Edit a notification field

As an administrator, you can edit the value of a notification field header in the grid.

Select the notification you want to edit on the Active Notifications page.

Select a notification field you want to edit and then select the record to edit it.

Select the save icon in the grid.

Customize a notification

Let's see a scenario: In the Contoso Pvt Ltd customer service center, every case notification that is shown to an agent needs to have the following:

Title of the notification: A new case is assigned.

Notification fields:

Case priority: Priority of the case such high or low.

Case title: Title of the case.

Device: Device from which the case was created by the customer.

Language: Language of the customer.

As an administrator, you need to customize the notification template to show the title and notification fields.

Step 1: Create a notification template with the following values

Step 2: Create the notification fields with the following values

| Name | Field header | Value |
|---------|--------------------|-----------------------------------------------|--------------------|
| Case priority | Case priority | {$odata.incident.prioritycode.?$filter=incidentid eq '{caseId}'&$select=prioritycode} |
| Case title | Case title | {$odata.incident.title.?$filter=incidentid eq '{caseId}'&$select=title} |
| Device | Device | {visitorDevice} |
| Language | Language | {visitorLanguage} |

[!div class=mx-imgBorder]

Step 3: Save the changes

See also

Get started with Customer Service admin center
Manage session templates
Manage application tab templates
Associate templates with workstreams

[!INCLUDEfooter-include]


Agent experience profiles

[!INCLUDEcc-omnichannel-administration-deprecation-note.md]

Agent experience profiles enable you to create targeted app experiences for agents and supervisors, and are an alternative to building and maintaining custom apps.
With the agent experience profiles, administrators can create custom profiles with specific session templates, conversation channels, and productivity tools. These profiles can then be assigned to users.

Agent productivity tools use intelligence and automation to enable agents to find answers to customer questions and help resolve customer issues quickly, improving satisfaction in service delivery. The productivity tools help in easy knowledge base search, suggestions for similar knowledge articles and cases, and agent scripts with macros to automate tasks in common workflows.

The profiles are available for agents and supervisors who use the Customer Service workspace or Omnichannel for Customer Service apps.

The system requirements for agent profiles and Customer Service workspace are the same. More information: System requirements for Customer Service workspace

How the agent experience profile works

Managing the agent experience profiles is as follows. The tasks in every step will be done by administrators who have different roles. It could be one administrator or a set of administrators.

Create users in Microsoft Dynamics 365 admin center.

Assign security roles, such as Customer Service Representative or Omnichannel agent.

Create business processes, such as work streams, queues, sessions, and productivity tools.

Create agent experience profiles.

Assign agent experience profiles to users.

For existing orgs, only steps 4 and 5 are required.

Thereafter, users with the required agent or supervisor role will be able to see and use the settings that are made available through the assigned agent experience profile. If you don't assign an agent experience profile, by default, the out-of-the-box agent experience profile will be assigned.

You can create and manage agent experience profiles in the Customer Service admin center app or in Power Apps.

See also

Create and use agent experience profiles
Create app profiles
System requirements

[!INCLUDEfooter-include]


Overview of productivity tools

The Dynamics 365 Productivity Tools app provides capabilities that help users perform day-to-day operations in a fast, efficient, and process-compliant manner and deliver value to customers.

The Dynamics 365 Productivity Tools app contains the following functionality to help with repetitive and monotonous tasks, such as greet customers and fill forms. The tool also helps with displaying AI-based suggestions for knowledge articles and similar cases to agents, and thereby helps users perform day-to-day operations in a fast, efficient, and process-compliant manner.

[!NOTE]

The productivity pane and productivity tools are not available in Omnichannel for Customer Service on Unified Service Desk.

Macros

With macros, agents can perform repetitive, monotonous tasks—Open model-driven app forms, pre-populate fields with details, send an email to a customer, take notes, and much more—all in a single click. A macro is a set of sequential actions that tells the system how to complete a task. When an agent runs a macro, the system performs each action, and this helps save time and gives agents the freedom to handle more customer issues. Also, macros provide preciseness, clarity, and consistency to the tasks that agents perform.

Agent scripts

Agent scripts provide guidance to agents about what to do when they get a customer issue. The scripts ensure that only accurate, company-endorsed information is being shared, while also safeguarding the organization in regard to legal-compliance issues. Agent scripts help organizations to be unified, accurate, and effective while being quick and efficient in handling customer needs.

Smart assist

Smart assist is an intelligent assistant that provides real-time recommendations to agents, helping them take actions while interacting with customers. You can use the AI-based suggestions for knowledge articles and similar cases by enabling the feature. You can also build a custom bot to interpret the conversation context and provide suggestions to agents. These recommendation cards are displayed on the agent user interface based on the context of the current conversation.

The smart assist feature can be enabled across all channels like Chat for Dynamics 365 Customer Service, SMS, and Facebook, except entity records, making it a consistent experience for agents.

Microsoft Teams

Microsoft Teams is a tool that can help agents more easily collaborate with colleagues by using the capabilities of Teams within Dynamics 365. Agents can view their chats, and with admin setup, can view chats that are relevant to certain records, also known as connected chats. Connecting all of their chats in one place helps agents work without switching context or leaving the application. Admins can also configure an optional introduction note that agents can use to provide further context when collaborating on Teams.

See also

Macros
Agent scripts
Smart assist
Microsoft Teams

[!INCLUDEfooter-include]


Roles and privileges associated with app profile manager

The following roles are available with the app profile manager:

App Profile Manager Administrator

App profile user

If your organization uses custom roles, and you want a user with the custom role to manage app profiles, then you can either assign the App Profile Manager Administrator role or manually add the privileges pertaining to the App Profile Manager Administrator role to the custom role.

Roles for Customer Service workspace

By default, the privileges pertaining to the App Profile User role have been added to the Customer Service Representative and CSR Manager roles out of the box. You need to manually provide the App Profile Manager Administrator role to the user who will create app profiles, templates, productivity tools, and channel provider configurations.

Roles for Omnichannel for Customer Service

Out of the box, for the Omnichannel administrator role, the privileges pertaining to the App Profile Manager Administrator role have been added, and for the Omnichannel agent and Omnichannel supervisor roles, the privileges pertaining to the App Profile User role have been added.

Roles and their privileges

The actions and privileges for the roles in app profile manager are as follows.

Role: App Profile Manager Administrator

The App Profile Manager Administrator has the following privileges.

| Action | Privileges|
|----|--------|
|Read/Append user|prvAppendUser prvReadUser |
|Read/Assign role|prvAssignRole  prvReadRole |
|Read/Write/Create/Delete channel provider|prvWritemsdyn_channelproviderprvReadmsdyn_channelproviderprvDeletemsdyn_channelprovider prvCreatemsdyn_channelprovider |
|Read/Write/Create/Delete/Append/Appendto application configuration|prvReadmsdyn_appconfiguration  prvWritemsdyn_appconfiguration prvCreatemsdyn_appconfiguration prvDeletemsdyn_appconfiguration  prvAppendmsdyn_appconfiguration prvAppendTomsdyn_appconfiguration |
|Read/Write/Create/Delete/Append/Appendto application extension| prvCreatemsdyn_applicationextension  prvReadmsdyn_applicationextension prvWritemsdyn_applicationextension  prvDeletemsdyn_applicationextension prvAppendmsdyn_applicationextension prvAppendTomsdyn_applicationextension |
|Read/Write/Create/Delete/Append/Appendto application tab template| prvReadmsdyn_applicationtabtemplate   prvWritemsdyn_applicationtabtemplate  prvCreatemsdyn_applicationtabtemplate prvDeletemsdyn_applicationtabtemplate prvAppendmsdyn_applicationtabtemplate prvAppendTomsdyn_applicationtabtemplate |
|Read/Write/Create/Delete/Append/Appendto notification field| prvReadmsdyn_notificationfield  prvCreatemsdyn_notificationfield  prvWritemsdyn_notificationfield  prvDeletemsdyn_notificationfield  prvAppendmsdyn_notificationfield  prvAppendTomsdyn_notificationfield |
|Read/Write/Create/Delete/Append/Appendto notification template| prvReadmsdyn_notificationtemplate  prvCreatemsdyn_notificationtemplate  prvWritemsdyn_notificationtemplate  prvDeletemsdyn_notificationtemplate  prvAppendmsdyn_notificationtemplateprvAppendTomsdyn_notificationtemplate |
|Read/Write/Create/Delete/Append/Appendto session template| prvReadmsdyn_sessiontemplate prvCreatemsdyn_sessiontemplateprvWritemsdyn_sessiontemplate  prvDeletemsdyn_sessiontemplate  prvAppendmsdyn_sessiontemplate  prvAppendTomsdyn_sessiontemplate|
|Read/Write/Create/Delete/Append/Appendto template parameter| prvReadmsdyn_templateparameter prvWritemsdyn_templateparameter prvCreatemsdyn_templateparameter  prvDeletemsdyn_templateparameter prvAppendmsdyn_templateparameter  prvAppendTomsdyn_templateparameter |
| Read/Write solution |  prvReadSolutionprvWriteSolution |
| Publish/Read/Write customization| prvPublishCustomizationprvReadCustomizationprvWriteCustomization  |
|Read/Write Query| prvReadQueryprvWriteQuery |
|Read saved query visualizations| prvReadSavedQueryVisualizations |
|Read system form|prvReadSystemForm|
|Write entity|prvWriteEntity|
|Write attribute|prvWriteAttribute|
|Write relationship|prvWriteRelationship|
|Write/Read application module|prvWriteAppModuleprvReadAppModule  |
|| |

Role: App Profile User

The App Profile User has the following privileges.


Role: App Profile User

The App Profile User has the following privileges.

|Action|Privileges|
|-------|-----|
|Read application module|prvReadAppModule|
|Read channel provider| prvReadmsdyn_channelprovider|
|Read application configuration|prvReadmsdyn_appconfiguration |
|Read application extension| prvReadmsdyn_applicationextension |
|Read application tab template|prvReadmsdyn_applicationtabtemplate|
|Read notification field| prvReadmsdyn_notificationfield |
|Read notification template| prvReadmsdyn_notificationtemplate |
|Read session template|prvReadmsdyn_sessiontemplate|
|Read template parameter|prvReadmsdyn_templateparameter|
|Read user|prvReadUser |
|Read role|prvReadRole |
|| |

See also

An overview of app profile manager
Users and roles in Omnichannel for Customer Service

[!INCLUDEfooter-include]


Manage session templates

A session template is a combination of attributes and application tab information that can be reused.

In Omnichannel for Customer Service app, when an agent accepts an incoming conversation request from a customer, a session is started. The system opens the Customer Summary application that you (an administrator) defined as an Anchor Tab in the application tab panel. The Anchor Tab can't be closed. Simultaneously, the system expands the communication panel for you to exchange messages with the customer.

Session templates are used to define the aforementioned session experience, such as:

which application must be opened as an anchor tab in the application tab panel;

what are the additional application tabs that must be opened when a session is started;

what must be the default mode of the communication panel when a session is started.

You can create session templates in Omnichannel admin center or use the out-of-the-box templates. In your environment, as an administrator, you can create multiple session templates.

[!Note]
You can't customize the out-of-the-box session templates; instead, you'll need to create your own custom templates.

The out-of-the-box session template for using in Customer Service workspace is Case entity session - default template.

The following out-of-the-box session templates are of the generic type and are for use in the Omnichannel for Customer Service app:

Case entity session - default template

Chat session - default

Voice call session - default

Custom messaging session - default

Entity records session - default

Facebook session - default

LINE session - default

SMS session - default

Teams session - default

Twitter session - default

WeChat session - default

WhatsApp session - default

Create a session template

Select one of the following tabs, and perform the steps.

### Customer Service admin center

### Power Apps

[!INCLUDEcc-omnichannel-administration-deprecation-note.md]

Select New on the Active Session Templates page.

Specify the following on the New Session Templates page.
| Tab | Name | Value description | Example |
|-----------|-------------------|-----------------------------------|-------------------------------------|
| General | Name | Specify the name of the session. This name won't be visible to the agents at the runtime. | Chat session |
| General | Unique Name | A unique identifier in the <prefix>_<name> format. IMPORTANT The following are required for the unique name: The prefix can only be alphanumeric and its length must be between 3 to 8 characters. An underscore must be there between the prefix and name. You can select the light bulb icon, and then select Apply to verify whether the name you've entered meets the requirements. | msdyn_chat_custom |
| General | Type | Select one of the following:  Entity: If you select entity, the Entity field is displayed.Generic: Select when the template is  required to be assigned to any channel. | Entity|
| General | Entity | Select an entity from the list. Note: The option is displayed only when Type is entity. | Case |
| General | Title | Provide the title of the session that you want agents to see at the runtime. | {customerName} |
| General | Communication panel mode | Select the default mode of the panel when a session is started. Choose one of the following:   Docked: The panel will be in expanded mode.   Minimized: The panel will be in minimized mode.  Hidden: The panel will be hidden.   Note: For an entity routing session—that is, for a case session—the communication panel mode is hidden. | Docked |
| General | Description | Provide a description for your reference. | The session template is used for a conversation request from Chat channel. |
| General | Owner | Search and select an owner. By default, the user who is creating the template is set as the owner | Alan Steiner |
| General | Anchor tab | Select an application from the list. The application is opened by default when the session starts and can't be closed.  Note: The anchor tab option is displayed only when Type is generic. | Customer summary |

Select Save.

Associate application tabs, agents scripts with session templates

You can associate application tabs that need to open when a session is started. Agents can't close these application tabs. You can also associate agents scripts; however, you must first configure the agent scripts. More information: Agent scripts

Go to the session template that you want to modify.

In the Additional Tab section, Select Add Existing Application Tab Template. The Lookup Records pane appears.

Type the application tab names in the search box and select the search icon. A list of records appears. Select the application tabs, and then select Add. The application tabs are added to the session template.


Type the application tab names in the search box and select the search icon. A list of records appears. Select the application tabs, and then select Add. The application tabs are added to the session template.

Select the Agent scripts tab, and set the Enable build expression toggle to Yes to define the expression to set an agent script as default for a particular session template.

Build the expression, and then select Save and close. To learn more, see Set default agent script for agents.

Select Save.

[!div class=mx-imgBorder]

The session template is configured. Now, you must associate the session template with a workstream. To learn more, see Associate templates with workstreams.

See also

Get started with Customer Service admin center
Manage application tab templates
Manage notification templates
Associate templates with workstreams

[!INCLUDEfooter-include]