Search
Shift Synchronization
Setup - Social Messaging
Queues
Shift Synchronization

The Shift Synchronization feature integrates Microsoft Teams' Shifts with the Formal Agents of Social Queues on the ROGER365.io platform.

When the Shift Sync feature is enabled, and an Agent in a Social Queue is matched to a corresponding Microsoft Teams user with a defined Shifts schedule, Microsoft Shifts becomes the primary source for managing that agent’s availability during their scheduled shift times.This means that when the agent is On Shift, their availability is controlled by Microsoft Shifts and not by manual status changes in ROGER365.io.

Synchronization of the Shifts runs each 10 minutes.

Prerequisites:

  1. Create a Team in Microsoft Teams (or use an existing Team where you have Owner permissions).
  2. In Microsoft Shifts, create a Scheduling Group and define Shift records for the assigned users - Microsoft reference.
    NOTE: Remember to share the created Shift records with the assigned users!
  3. Authorize the Shift Synchronization Application on the General admin page.

How to enable Shift Sync?

After confirming that all prerequisites have been met, in ROGER365.io admin portal navigate to "Queues" page (under Social Messaging section) and open settings of desired Social Queue where Shift Sync feature has to be enabled.

 

Scrolling down through Queue's configuration items will expose Shift Sync section:

  • Switch “Enabled” toggle
  • Select created Team
  • Select Scheduling Group (each Team can have multiple scheduling groups)
  • The optional "Enable Verbose logging" switch enables detailed logging that can help the ROGER365.io support team investigate potential issues with the Shift Synchronization feature.

Save Queue's configuration to apply Shift feature, afterwards open Queue settings again and press "Sync Now" to make it effective.

Once synchronization is complete, you will be able to see which agents are managed by Microsoft Shifts:

Formal Agents who are not part of the Scheduling Group will not be managed by Shifts.

Behavior in Contact Center application

When an agent’s shift starts, they are automatically signed in to the Social Queue that has the Shift Sync feature enabled. Neither Agents nor Supervisors can manually log out from the Queue while their Shift is active (On-Shift flag).

After shift ends, the On-Shift flag is disabled, causing the agent to be automatically logged-out from the Queue. Once logged out, agents regain the ability to manually manage their Formal status:

Read more
SocialConversationInfo Export
API
Social Messaging
SocialConversationInfo Export

SocialConversationInfo Export

This API endpoint retrieves main details of social conversations for a given time range.

To extract data from this section you have to create API Key with DataExport scope.

/v1.0/contactcenter/export/SocialConversationInfoExport

Parameters Description
startFromDate filters the output on lastModified
batchSize value of amount of entries per batch

Example

{
  "items": [
    {
      "tenantId": 9999,
      "id": 2135,
      "orchestratorConversationId": "b3cfd762-1234-9876-b3f6-3b2d7e9794db",
      "assignedToAgentId": 93,
      "firstAssignedAt": "2026-07-06T06:52:45.9654328",
      "teamsLink": "https://teams.microsoft.com/l/message/19:22229675d5bc1111ab12bf49acedf9a2@thread.tacv2/2137321069874",
      "activeWithAgent": false,
      "inQueue": "2026-07-06T06:52:15.9129548",
      "socialQueueId": 81,
      "waitForAgent": false,
      "lastMessageReceived": "2026-07-06T07:29:02.6543291",
      "lastQueueActivity": "2026-07-06T07:29:02.9644125",
      "queuePrio": 5,
      "lastMessage": "Thanks for your support!",
      "lastMessageRead": true,
      "teamsEndpointConfigId": 4503,
      "picUrl": "https://admin.roger365.io/Content/Teams/images/AdaptiveCard/Email.svg",
      "participantId": "user@company.com",
      "participantUri": "mail:user@company.com",
      "ended": "2026-07-13T07:30:02.5878251",
      "note": null,
      "firstAgentMessageAt": "2026-07-06T06:56:49.9654328",
      "agentMessageCount": 8,
      "userMessageCount": 12,
      "useAutoAssignment": true,
      "isDeleted": false,
      "lastModified": "2026-07-13T07:30:02.5879886+00:00"
    }
  ]
}

Model

Field Type Description
tenantId int id of tenant registration (R365)
id int internal id of the record (R365)
orchestratorConversationId string Id (GUID) of conversation, can be matched with Conversations API
assignedToAgentId int Id of the agent to whom the social conversation has been assigned
firstAssignedAt datetime date and time of when the social conversation was first assigned to an agent
teamsLink string URL pointing to created in Microsoft Teams channel social conversation
activeWithAgent bool true when the social conversation is currently active with an agent
inQueue datetime date and time of when the social conversation has arrived to a Social Queue
socialQueueId int Id of the Social Queue, can be retrieved using SocialQueue Export API
waitForAgent bool true when the social conversation awaits an agent’s response
lastMessageReceived datetime date and time of last message received
lastQueueActivity datetime date and time of last social queue activity
queuePrio int priority of the Teams TouchPoint assigned to a Social Queue
lastMessage string last sent message
lastMessageRead bool true when the last message has been read
teamsEndpointConfigId int Id of the Teams TouchPoint
picUrl string picture URL representing the Teams touchpoint’s channel (Webchat, WhatsApp, Email, SMS, etc.)
participantId string name, phone number, email or GUID of the social participant
participantUri string null, name, phone number, email of the social participant
ended datetime date and time when the social conversation has ended
note string note associated with the conversation, reserved for future use
firstAgentMessageAt datetime date and time of first agent message sent to a user
agentMessageCount int number of sent agent messages
userMessageCount int number of sent user messages
useAutoAssignment bool true if Auto Assignment feature is enabled at Social Queue settings
isDeleted bool True if the item was soft-deleted (for synchronization purposes). Soft-deleted items are permanently deleted after a retention period.
lastModified datetime Last time the record was saved

Read more
SocialQueue Export
API
Social Messaging
SocialQueue Export

SocialQueue Export

This API endpoint lists all currently configured (or past) Social Queues.

To extract data from this section you have to create API Key with DataExport scope.

/v1.0/contactcenter/export/SocialQueueExport

Parameters Description
startFromDate filters the output on lastModified
batchSize value of amount of entries per batch

Example

{
  "items": [
    {
      "tenantId": 9999,
      "isDeleted": false,
      "lastModified": "2026-04-09T07:02:27.115628+00:00",
      "id": 81,
      "queueName": "Social Queue",
      "statisticsResetAt": "0002-01-01T02:00:00",
      "powerFrameUrl": "https://PowerFrameURL.com/?PhoneNumber={phonenumber}&Company={company}",
      "powerFrameLabel": "PWF-1",
      "secondPowerFrameUrl": " https://SecondPowerFrameURL.com/?Name={displayname}&Email={mail}",
      "secondPowerFrameLabel": "PWF-2",
      "useAutoAssignment": true,
      "lastAssignedAgentId": 64
    }
  ]
}

Model

Field Type Description
tenantId int id of tenant registration (R365)
isDeleted bool True if the item was soft-deleted (for synchronization purposes). Soft-deleted items are permanently deleted after a retention period.
lastModified datetime Last time the record was saved
id int internal id of the record (R365)
queueName string name of the Social Queue
statisticsResetAt datetime date and time of when the social queue statistics are being reset at
powerFrameUrl string URL of the Powerframe
powerFrameLabel string label for the first Powerframe
secondPowerFrameUrl string URL of the secondary Powerframe
secondPowerFrameLabel string label of the secondary Powerframe
useAutoAssignment bool true if Auto Assignment feature is enabled at Social Queue settings
lastAssignedAgentId int Id of an agent who was last assigned to a social conversation via Auto Assignment feature

Read more
Virtual Call Info
API
Contact Center
Virtual Call Info

To extract data from this section you have to create API Key with ‘DataExport‘ scope.

This API allows to retrieve information regarding calls that has been set to Virtual state either by Make Call Virtual action or Outbound Call Campaign API.

Virtual Call Info Export

GET /v1.0/contactcenter/export/VirtualCallInfoExport HTTP/1.1
Host: api.roger365.io
Auth-Key: <authorization key>
Content-Type: application/json

Parameters Description
startFromDate export calls from a specific date until now (eg. 2022-01-01)
batchSize value of amount of entries per batch

Example

{
    "items": [
        {
            "tenantId": ,
            "id": 279,
            "virtualDateTime": "2026-05-22T08:29:00.8547471",
            "callId": 30452,
            "requestId": 20813,
            "originalCallId": "b3f3641b-c684-4894-be53-a0327a47509b",
            "callOutDateTime": "2026-05-22T08:29:21.7001162",
            "connectedDateTime": "2026-05-22T08:29:32.7152562",
            "target": null,
            "isDeleted": false,
            "lastModified": "2026-05-22T08:29:32.7152973+00:00"
        },
        {
            "tenantId": ,
            "id": 280,
            "virtualDateTime": "2026-05-22T08:32:29.1374994",
            "callId": 30453,
            "requestId": 20814,
            "originalCallId": "9ba66067-2213-4d6b-a320-03d022f3d2f5",
            "callOutDateTime": "2026-05-22T08:34:16.3830255",
            "connectedDateTime": null,
            "target": null,
            "isDeleted": false,
            "lastModified": "2026-05-22T08:34:16.3830716+00:00"
        },
        {
            "tenantId": ,
            "id": 281,
            "virtualDateTime": "2026-05-22T08:54:38.3463646",
            "callId": 30455,
            "requestId": 20816,
            "originalCallId": "02005180-61a1-4985-99d9-6cf04534a0e1",
            "callOutDateTime": "2026-05-22T08:54:46.419894",
            "connectedDateTime": "2026-05-22T08:54:55.0994419",
            "target": null,
            "isDeleted": false,
            "lastModified": "2026-05-22T08:54:55.0995076+00:00"
        }
    ]
}

Model

Field Type Description
tenantId int id of tenant registration (R365)
id int internal id of the record (R365)
virtualDateTime datetime date and time of when the call became set as virtual
callId int internal id of the record (R365), can be matched using Calls API
requestId int internal id of the record (R365), can be matched using Request API
originalCallId string the id of the call, used in Teams Phone System, can be matched using Calls API
callOutDateTime datetime date and time when the invite has been sent to a virtual wait target
connectedDateTime datetime date and time when the agent has been connected with a target of virtual wait
target string target of virtual wait record
isDeleted bool true if the item was 'soft-deleted' (for synchronization purposes). Items that are soft-deleted, will be permanently deleted after a retention period
lastModified datetime last time the record was saved
Read more
Quality Assurance
API
AI Flow
Quality Assurance

To extract data from this section you have to create API Key with DataExport scope.

This API allows to check results of Quality Assurance Action of the AI Flow feature.

GET /v1.0/AI/export/QualityAssurance HTTP/1.1
Host: api.roger365.io
Parameters: startFromDate
Auth-Key: <authorization key>
Content-Type: application/json

Example

{
    "items": [
        {
            "tenantId": ,
            "id": 258,
            "createdAt": "2025-02-26T14:47:18.2736993+00:00",
            "isDeleted": false,
            "lastModified": "2025-03-10T16:14:25.3073564+00:00",
            "result": {
                "total_score": 2,
                "pass": "No",
                "flagged_for_review": "Yes",
                "detailed_feedback": [
                    {
                        "question": "Did the agent greet the customer appropriately at the start of the interaction? (Yes/No)",
                        "answer": "No",
                        "comment": "The greeting was unclear and informal."
                    },
                    {
                        "question": "Did the agent introduce themselves and their role clearly? (Yes/No)",
                        "answer": "No",
                        "comment": "The introduction was vague and lacked clarity."
                    },
                    {
                        "question": "Did the agent correctly understand the customer’s issue or request? (Yes/No/Partially)",
                        "answer": "Partially",
                        "comment": "The agent acknowledged the request but did not confirm understanding."
                    },
                    {
                        "question": "Did the agent provide a clear and complete resolution to the customer’s issue? (Yes/No/Partially)",
                        "answer": "No",
                        "comment": "The interaction did not lead to a clear resolution."
                    },
                    {
                        "question": "Was the agent’s language clear, professional, and free of jargon? (Yes/No)",
                        "answer": "No",
                        "comment": "The language used was informal and unclear."
                    },
                    {
                        "question": "Did the agent maintain a positive and empathetic tone throughout the interaction? (Yes/No/Needs Improvement)",
                        "answer": "Needs Improvement",
                        "comment": "The tone was somewhat positive, but lacked empathy."
                    },
                    {
                        "question": "Did the agent follow the correct process and company guidelines? (Yes/No)",
                        "answer": "No",
                        "comment": "The agent did not follow a clear process."
                    },
                    {
                        "question": "Did the agent properly verify the customer’s identity, if required? (Yes/No/N/A)",
                        "answer": "N/A",
                        "comment": "Identity verification was not applicable."
                    },
                    {
                        "question": "Did the agent summarize the solution before closing the interaction? (Yes/No)",
                        "answer": "No",
                        "comment": "There was no summary provided."
                    },
                    {
                        "question": "Did the agent close the conversation with a proper closing statement (e.g., thanking the customer)? (Yes/No)",
                        "answer": "No",
                        "comment": "The closing was abrupt and lacked a proper farewell."
                    }
                ]
            }
        }
   ]
}

Model

Field Type Description
tenantId int id of tenant registration (R365)
id int Id of the record, can be matched with AI Flow API export
createdAt datetime datetime of when this record has been created
isDeleted bool true if the item was 'soft-deleted' (for synchronization purposes). Items that are soft-deleted, will be permanently deleted after a retention period
lastModified datetime last time the record was saved
total_score int total number of answered questions (where answer was either 'Yes', 'Partially', 'Needs improvement')
pass string does the call passed quality assurance; either Yes/No
flagged_for_review string whether a call should be reviewed; either Yes/No
question string question – coming from used Quality Assurance Form
answer string is the question has been answered; either Yes/No/Partially/Needs improvement
comment string comment for entire question & answer
Read more
Sentiment
API
AI Flow
Sentiment

To extract data from this section you have to create API Key with DataExport scope.

This API allows to check results of Sentiment Action of the AI Flow feature.

GET /v1.0/AI/export/Sentiment HTTP/1.1
Host: api.roger365.io
Parameters: startFromDate
Auth-Key: <authorization key>
Content-Type: application/json

Example

{
    "items": [
        {
            "tenantId": ,
            "id": 201,
            "createdAt": "2025-02-05T12:18:44.2156091+00:00",
            "isDeleted": false,
            "lastModified": "2025-03-10T16:14:24.9948296+00:00",
            "result": {
                "id": "0",
                "sentiment": 0,
                "confidenceScores": {
                    "positive": 0.58,
                    "neutral": 0.4,
                    "negative": 0.01
                },
                "sentences": [
                    {
                        "sentiment": 0,
                        "confidenceScores": {
                            "positive": 0.58,
                            "neutral": 0.4,
                            "negative": 0.01
                        },
                        "offset": 0,
                        "length": 7,
                        "text": "Thank you!",
                        "warnings": null,
                        "opinions": []
                    },
                    {
                        "sentiment": 1,
                        "confidenceScores": {
                            "positive": 0.07,
                            "neutral": 0.92,
                            "negative": 0.01
                        },
                        "offset": 7,
                        "length": 3,
                        "text": "you",
                        "warnings": null,
                        "opinions": []
                    }
                ]
            }
        }
   ]
 }

Model

Field Type Description
tenantId int id of tenant registration (R365)
id int Id of the record, can be matched with AI Flow API export
createdAt datetime datetime of when this record has been created
isDeleted bool true if the item was 'soft-deleted' (for synchronization purposes). Items that are soft-deleted, will be permanently deleted after a retention period
lastModified datetime last time the record was saved

Read more
Summary
API
AI Flow
Summary

To extract data from this section you have to create API Key with DataExport scope.

This API allows to check results of Summary Action of the AI Flow feature.

GET /v1.0/AI/export/Summary HTTP/1.1
Host: api.roger365.io
Parameters: startFromDate
Auth-Key: <authorization key>
Content-Type: application/json

Example

{
    "items": [
        {
            "tenantId": ,
            "id": 732,
            "createdAt": "2025-05-13T07:52:36.4952292+00:00",
            "isDeleted": false,
            "lastModified": "2025-05-13T07:52:36.5065838+00:00",
            "results": [
                {
                    "aspect": "recap",
                    "text": "The customer reported an issue with their system not updating."
                },
                {
                    "aspect": "issue",
                    "text": "The customer inquired about problems with various statistics used all over the system."
                },
                {
                    "aspect": "resolution",
                    "text": "The agent confirmed that there's a problem which has to be solved as soon as possible"
                },
                {
                    "aspect": "narrative",
                    "text": "Agent and customer were discussing an issue where something was not working, specifically, it was not updating."
                },                
                {
                    "aspect": "Follow-Up Tasks",
                    "text": "The customer will share more details via WhatsApp."
                },
                {
                    "aspect": "Follow-Up Tasks",
                    "text": "Agent will take care of this case via text messages."
                }
            ],
            "editedByUserId": 47,
            "editedResults": [
                {
                    "aspect": "resolution",
                    "text": "The agent identified problem which recently introduced by the solution provider and notified the customer about it."
                },
                {
                    "aspect": "narrative",
                    "text": "Agent and customer were discussing topic of problem with various statistics data, specifically, it was often incorrect."
                }
            ]
        }
   }
}

Model

Field Type Description
tenantId int id of tenant registration (R365)
id int Id of the record, can be matched with AI Flow API export
createdAt datetime datetime of when this record has been created
isDeleted bool true if the item was 'soft-deleted' (for synchronization purposes). Items that are soft-deleted, will be permanently deleted after a retention period
lastModified datetime last time the record was saved
aspect string summary aspect coming from Analyze Conversations API (Cognitive Services) endpoint
editedByUserId int AgentId of the agent who did edit results of summarization
editedResults array array containing changed summarization results by specific Agent

Read more
Transcript
API
AI Flow
Transcript

To extract data from this section you have to create API Key with DataExport scope.

This API allows to check results of Transcript Action of the AI Flow feature.

GET /v1.0/AI/export/Transcript HTTP/1.1
Host: api.roger365.io
Parameters: startFromDate
Auth-Key: <authorization key>
Content-Type: application/json

Example

{
    "items": [
        {
            "tenantId": ,
            "id": 1161,
            "createdAt": "2025-10-15T14:09:03.6995424+00:00",
            "isDeleted": false,
            "lastModified": "2025-10-15T14:09:03.6942848+00:00",
            "results": [
                {
                    "language": "nl",
                    "id": "1",
                    "role": "Agent",
                    "participantId": "1",
                    "text": "Hallo hallo wat voor soort probleem heb je?"
                },
                {
                    "language": "en",
                    "id": "2",
                    "role": "Customer",
                    "participantId": "2",
                    "text": "Hello! Recently I have some strange issues with my printer."
                }
            ]
        }
    ]
}

Model

Field Type Description
tenantId int id of tenant registration (R365)
id int Id of the record, can be matched with AI Flow API export
createdAt datetime datetime of when this record has been created
isDeleted bool true if the item was 'soft-deleted' (for synchronization purposes). Items that are soft-deleted, will be permanently deleted after a retention period
lastModified datetime last time the record was saved
language string detected language spoken by the participant of a call
id int id of the record
role string either Agent/Customer
Note: For inbound calls Agent is treated as the first speaking participant, for outbound calls it is opposite.
participantId int Id of the participant
text string spoken text by the participant of a call
Read more
MCP Server Setup
API
General
MCP Server Setup

The MCP integration relies on API Key based authentication, API keys are available from the Business subscription and above.

Prerequisites:

  • A Copilot Agent already set up in Microsoft Copilot Studio.
  • API Key with scope “Conversations” (created earlier in ROGER365.io admin portal)

Disclaimers:

  • The ROGER365.io does not supply the Copilot Agent configuration and is not responsible for unexpected results or being flagged as a violator of Terms of Use.
  • Please be aware of the cost-aspect for utilizing your Copilot Agent configuration used in this integration – Pricing.

Overview

The Model Context Protocol (MCP) Integration is an open standard for connecting AI agents to external tools and data sources through a consistent, secure interface. Instead of building a separate integration for every action you want an agent to perform, the agent talks to an MCP server, which exposes a ready-made set of tools.

ROGER365.io provides such an MCP server. When you connect it to a Copilot Agent, the server’s available tools, their descriptions, and their input requirements are pulled in automatically – there is no per-action wiring to maintain. If ROGER365.io adds or updates a tool on the server, your agent picks up the change without extra configuration.

Once connected, a Copilot Agent can answer questions and take actions against your Contact Center using the tools the server exposes – for example retrieving call summaries, looking up queue statistics, or checking an agent’s current status. The agent decides which tool (or sequence of tools) best matches each request and calls it through the MCP server.

Authentication of the Copilot Agent

Before connecting the MCP server, configure your Copilot Agent’s authentication.
Navigate to its settings, then open the “Security” section followed by “Authentication”:

Set the authentication option to ‘Authenticate with Microsoft’.

Since the MCP server exposes tools that can retrieve Contact Center data, access must be restricted to identified users rather than left open. Authenticate with Microsoft applies Entra ID sign-in automatically across the Teams, Power Apps, and Microsoft 365 Copilot channels, so no separate authentication setup is required. Each user still completes a one-time sign-in to authorize the MCP server connection itself, covered later in First-time sign-in.

Connecting the MCP server in the Copilot Studio portal

In the Copilot Studio portal, open your Agent configuration and go to the Tools tab. Select “+ Add a tool“, then choose “Add new MCP“:

Server name A descriptive name for the server (this is how it appears in your connection list).
Server description A short note about what the server provides.
Server URL mcp-xtend.roger365.io
Authentication API Key
Type Header
Header name Auth-Key

After entering the required information for the MCP Server, press Create.In the “Connection” drop-down list, choose Create new connection. You will be prompted to provide an API key from the ROGER365.io admin portal to authenticate your user account with the newly created MCP server.

Enter an API key, then select Create, followed by Add and configure.

Once configured, the MCP server becomes available as a tool within Microsoft Copilot Studio. Administrators can use the configured MCP server when creating new agents and can reuse the same connection across multiple agents as needed.

First-time sign-in

The first time a Copilot Agent uses the MCP server, Copilot Studio asks each user to verify their credentials. This is a one-time sign-in that authorizes the connection on that user’s behalf; afterwards the agent reuses it without prompting again. Each new user is asked to sign in once before their first conversation.

To complete it, open the Test pane and send a message to the agent. If a sign-in is required, you’ll see a prompt with an Open connection manager link.

Press on the “Open connection manager” link, locate the created MCP server (by its name) and press “Connect”:

From the drop-down list, press “Create new connection” and authenticate your user account to MCP server using API Key from ROGER365.io admin portal. Afterwards, press “Create” followed by “Submit”.

Once the status becomes Connected, the user account ready for the first conversation with the Copilot Agent (with MCP server as its tool)!

MCP Server Tools

At the Tools tab of the Copilot Agent, you can find list of all existing at the moment tools that the MCP Server provides. Based on the user’s question or request, the Copilot Agent selects the most appropriate tool (or chain of tools) and invokes it through the MCP Server, which executes the action and returns the result.

If ROGER365.io adds or updates a tool on the server, your agent picks up the change without extra configuration.

Depending on the use case, there’s possibility to disable the “Allow all” switch and selectively enable or disable individual Tools that a given Copilot Agent does not need. This allows for maintaining multiple Copilot Agent configurations, each tailored to a specific task or scenario.

Read more
Customer data
API
General
Customer data

Customer data

To extract data from this section you have to create API Key with Conversations scope.

This API returns the found contacts in a conversation, and shows which contact is selected by the user in the Teams adaptive Card

/v1.0/CustomerData/foundContacts/<conv-id>

output

{
    "crmResult": {
        "id": ,
        "conversationId": "",
        "replicatorReferenceId": "",
        "contactId": ,
        "originalContactUri": "",
        "dataSources": ""
    },
    "contacts": [
        {
            "contact": {
                "id": ,
                "firstName": "",
                "lastName": "",
                "displayName": "",
                "email": "",
                "sipAddress": null,
                "street": "",
                "zip": "",
                "city": "",
                "country": "",
                "company": "",
                "phoneNumber0": null,
                "phoneNumber1": null,
                "phoneNumber2": null,
                "phoneNumber3": null,
                "phoneNumber4": null,
                "phoneNumber5": null,
                "custom0": null,
                "custom1": null,
                "custom2": null,
                "mobileData0": null,
                "mobileData1": null,
                "mobileData2": null,
                "type": null,
                "contactUrl": "",
                "contactId": "",
                "companyId": ""
            },
            "replicatorId": ""
        }
    ]
}

CRM Results in bulk

This API allows for returning CRM results in bulk.

POST option to:

/v1.0/Crm/CrmResults

with Auth-Key (Conversations key scope), Content-Type – application/json, and an array of call GUIDs or Conversation GUIDs

[
     "00000000-0000-0000-0000-000000000000"
    ,"10000001-1001-1001-1001-100000000001"
]

output

[
    {
        "id": 12345,
        "conversationId": "00000000-0000-0000-0000-000000000000",
        "replicatorReferenceId": null,
        "contactSourceId": null,
        "originalContactUri": "sip:user@mail.com",
        "dataSources": "00000000-1111-2222-3333-444444444444",
        "created": "2023-12-06T13:42:51.2812911"
    },
    {
        "id": 12346,
        "conversationId": "10000001-1001-1001-1001-100000000001",
        "replicatorReferenceId": "20000002-2002-2002-2002-200000000002",
        "contactSourceId": "30000003-3003-3003-3003-300000000003",
        "originalContactUri": "tel:+31123456789",
        "dataSources": "00000000-1111-2222-3333-444444444444",
        "created": "2023-12-17T09:09:35.5164645"
    }
]

With this information you can get the data from the replicators by doing a POST to

https://admin.roger365.io/v1.0/Crm/00000000-1111-2222-3333-444444444444/Contacts

where 00000000-1111-2222-3333-444444444444 = ID of the replicator (from output of the bulk results)

[
     "tel:+31123456789"
    ,"mail:user@mail.com"
]

Output has the found data from the replicator

[
    {
        "sourceId": "40000004-4004-4004-4004-400000000004",
        "firstName": "Name",
        "lastName": "Surname",
        "displayName": "Surname, Name",
        "email": "name.surname@mail.com",
        "sipAddress": null,
        "street": "Edison Street 10",
        "zip": "00-123",
        "city": "City",
        "country": "Country",
        "company": "ROGER's Family Donuts",
        "phoneNumber0": "1071",
        "phoneNumber1": null,
        "phoneNumber2": null,
        "phoneNumber3": null,
        "phoneNumber4": null,
        "phoneNumber5": null,
        "custom0": null,
        "custom1": null,
        "custom2": null,
        "mobileData0": null,
        "mobileData1": null,
        "mobileData2": null,
        "type": null,
        "contactUrl": "https://website.xyz.net/xxx/yyyyy/zzzzzzz/melon/callercard?action=new&field0=persoonid&value0=40000004400440044004400000000004",
        "contactId": "40000004400440044004400000000004",
        "companyId": "50000005-5005-5005-5005-500000000005"
    },
    {
        "sourceId": "60000006-6006-6006-6006-600000000006",
        "firstName": "Peter",
        "lastName": "Giraffe",
        "displayName": "Giraffe, Peter",
        "email": "pgiraffe@mail.com",
        "sipAddress": null,
        "street": "Tall 10",
        "zip": "NY 10053-2713",
        "city": "New York",
        "country": "United States",
        "company": "Zoo",
        "phoneNumber0": "+11234567789",
        "phoneNumber1": "+19876543210",
        "phoneNumber2": null,
        "phoneNumber3": null,
        "phoneNumber4": null,
        "phoneNumber5": null,
        "custom0": null,
        "custom1": null,
        "custom2": null,
        "mobileData0": null,
        "mobileData1": null,
        "mobileData2": null,
        "type": null,
        "contactUrl": "https://website.xyz.com/xxx/yyyyy/zzzzzzz/leaves/callercard?action=new&field0=persoonid&value0=60000006600660066006600000000006",
        "contactId": "60000006600660066006600000000006",
        "companyId": "70000007-7007-7007-7007-700000000007"
    }
]
Read more
General
How to use
Contact Center
General

Native Microsoft Teams Integrated

The ROGER365.io Contact Center solution is fully integrated within your Teams application. That means that you don’t have to install any additional software except adding the ROGER365.io app from the Teams App store.

Azure AD Sign in

ROGER365.io makes use of you existing Azure Active Directory, that means that you don’t get another usermanagement environment. From our admin portal you can select and assign roles to your existing users.

Interactive Voice Response / Automated Attendant

Interactive Voice Response (or Auto attendant) let people call your organization and navigate a menu system by pressing a digit to speak to the right department, call queue, person, or an operator. You can also use a callers’ input to validate against a database.

Graphical Callflow Editor

Use the graphical callflow to create how callers are routed to the correct queue. You can add actions like audio prompts, provide an IVR option and insert music on hold. By drag-and-drop all actions you’re very flexible in creating your own custom flow.

Queuing / Multiple Routing Methods

The contact center solution provides multiple methods to route incoming calls to your agents:

  • Longest Idle: routes each call to the agent who has been idle the longest time. An agent is considered idle if their presence state is Available.
  • Serial: rings all call agents one by one in the order specified in the agent list. If an agent dismisses or does not pick up a call, the call will ring the next agent and will try all agents until it is picked up or times out.
  • Round Robin: balances the routing of incoming calls so that each call agent gets the same number of calls from the queue.
  • Parallel: Rings all agents in the queue at the same time. The first call agent to pick up the call gets the call.
  • Skill based routing: routes the call from a queue to an agent, who has the highest skill in a certain subject (eg. language)

Neural Text to Speech

Audio prompts for callers can be uploaded from a file to the platform, but you can also use the text-to-speech option. With this you can enter de text, select the language and your preferred voice and the audio is automatically generated. Because we are using a ‘neural’ text-to-speech engine, the audio result is really amazing. Alternatively you can also upload your own WAV files.

Music on Hold

While your callers are in the queue, you can let them listen to some music. You can easily upload your own provided music files and there are some examples available on the configuration pages.

CRM Integration

With CRM Integration you can utilize your CRM to recognize callers. While they are in the queue and offered to an agent, ROGER365.io displays their name and company name. You can also use CRM information for more advanced functionalities, like routing a caller to a specific queue based on their contract or extract details like open support calls or invoices when answered by an agent. ROGER365.io has default connectors with several well known CRM systems, but we also provide an API for you to create a custom connection. Importing a CSV file is also an option.

Schedule Based Routing

A schedule can be configured to define open and closed hours. Based on that schedule callers can get the correct audio prompts and can be routed to an alternative destination, for example a voicemailbox. Also holiday’s can be configured.

Webhooks

Webhooks can be triggered during several different events like when a new call arrives. These webhooks can trigger your own applications for example a logic/power automate application.

Powerframe for Custom Apps

The powerframe can be used to create your own applications which are opened when a new call is offered to an agent. The powerframe can trigger an url which included variables like the calling phone number, but also variables from the CRM Integration. You can, for example, create an application which shows information from your CRM system, but you could also open a Microsoft Form or a PowerBI report.

* Some features are not available in every subscription. Here you can find an overview

Read more
Create App Registration for Email TouchPoint
Setup - Social Messaging
Email Touchpoint
Create App Registration for Email TouchPoint

Disclaimer: Before proceeding, please make sure you have good knowledge about your own Microsoft Office 365 and Entra ID situation before continuing.

To enable the Email integration, you must first create an App Registration in the Azure Portal: Download PowerShell Script (preferred way, execute as Global Admin)

General steps (manual method):

  1. Create an App Registration in Entra ID environment for Email integration (with API permissions: Mail.ReadWrite – Application, Mail.Send – Application, MailboxSettings.ReadWrite – Application, User.Read – Delegated).
  2. Create a Secret for the App Registration.
  3. Configure an application access policy and limit the scope of application permissions according to your environment’s situation – Microsoft documentation.
Disregarding point 3 will cause the Email App Registration to have an access to every mailbox within tenant which brings potential security risk.

After successful creation of an App Registration, you can proceed with creating the Email TouchPoint.

Read more
Module settings
Setup - General
Insights & Analytics
Module settings

Insights & Analytics module settings

In the R365_Settings table, records can be created to change the default settings. The default settings can be overwritten by creating the records in this database:

Setting Description
TimeZone1 All times are in UTC by default when being exported to the database. With this setting you can convert the data being written to the data tables to your time zone. The setting should be a value which is supported by your Azure SQL database.
All available time zone can be queried from the database with this sql statement:
select * from sys.time_zone_info
QuickDropCalls Define the amount of seconds which should be seen as a quick drop. In this way you can exclude calls with a low call duration
SLA-AgentHuntingASR Set the answer-seizure ratio (ASR) service level agreement of the agents taking calls. This should be set in a percentage like 0.75 for 75%.
The value should be between 0 and 1.
SLA-CallASR Set the answer-seizure ratio (ASR) service level agreement of the voice calls. This should be set in a percentage like 0.75 for 75%.
The value should be between 0 and 1.
SLA-QueueVoiceASR Set the answer-seizure ratio (ASR) service level agreement of the voice queues. This should be set in a percentage like 0.75 for 75%.
The value should be between 0 and 1.
SLA-QueueSocialASR Set the answer-seizure ratio (ASR) service level agreement of the social. This should be set in a percentage like 0.75 for 75%.
The value should be between 0 and 1.
SLA-QueueASR Needed for workforce management to set the answer seizure ratio for queued voice calls. This should be set in a percentage like 0.75 for 75%.
The value should be between 0 and 1.
ShrinkagePerc Needed for workforce management to set the shrinkage percentage (the time an agent is not handling customers interactions), the default is 30%. Setting this value should be like 0.25 for 25%
The value should be between 0 and 1.
TargetAnswerSec Time in seconds that the agent has for pickup the voice call. Default is 30 seconds. This should be an integer. For 20 seconds set the value to 20
PowerBi-TimeDisplay Set the time display format of the KPI cards in the Power BI template. Valid values are ss, mm:ss, and hh:mm:ss.
Read more
Examples
Setup - General
Permissions
Examples

Here you can check basic examples of how to setup some of the permissions group, with that you can base your future ideas. Before configuring any of these examples make sure that you setup everything correctly according to Setup Access documentation.

Queue Admin/Viewer

Suppose that you want to grant the Admin/Viewer permissions to Queues for selected group of people. Beside of adding Read or ReadWrite rights for Queues Functional Permission you might consider granting Read or ReadWrite rights to Skill Based Routing and CRM Replicator Functional Permissions. It will allow selected group of people to change or view crucial parts related to Queues.

Functional Permissions:

  • Queues – Read or ReadWrite
  • Skill Based Routing – Read or ReadWrite
  • CRM Replicator – Read or ReadWrite

This configuration will restrict an access to only Queues, Skill Based Routing and CRM Replicator sections of ROGER365.io admin portal. Depends on your rights configuration you are able to view the configuration or manage it. (it’s possible to mix rights)

CallFlow Admin/Viewer

Suppose that you want to grant the Admin/Viewer permissions to the CallFlow section. Beside of adding Read or ReadWrite rights, consider adding Read or ReadWrite rights to Audio Prompts, Schedules and CRM Replicator. It will allow selected group of people to change or view crucial parts related to CallFlows.

Functional Permissions:

  • CallFlows – Read or ReadWrite
  • Audio Prompts – Read or ReadWrite
  • Schedules – Read or ReadWrite
  • CRM Replicator – Read or ReadWrite

This configuration will restrict an access to only CallFlow, Audio Prompts, Schedules and CRM Replicator sections of ROGER365.io admin portal. Depends on your rights configuration you are able to view the configuration or manage it.

Read access for CallFlow Functional Permissions allows to check/edit configuration of callflow without possibility to Save any changes, users can use Import/Export functionality.

CallFlow Supervisor Admin/Viewer

CallFlow Supervisor Functional Permission works in slightly different way than CallFlow Functional Permission. User with this permission will see the CallFlows only when they’re containing the Queue action – Queue assigned to that action has to have the user assigned as a Supervisor. User is able to see the Subflows of the CallFlows which user have an access to. Consider adding Functional Permissions to Audio Prompts, Schedules and CRM Replicator which will allow the selected group of people to change or view crucial parts related to CallFlows.

Functional Permissions:

  • CallFlows Supervisor – Read or ReadWrite
  • Audio Prompts – Read or ReadWrite
  • Schedules – Read or ReadWrite
  • CRM Replicator – Read or ReadWrite

This configuration will restrict an access to only CallFlow, Audio Prompts, Schedules and CRM Replicator sections of ROGER365.io admin portal. Depends on your rights configuration you are able to view the configuration or manage it.

Note: Read access for CallFlow Supervisor Functional Permissions allows to edit configuration of callflow which users have an access to, and use Import/Export functionality. There is no possibility to Save any changes (case for Read right). Administrators can combine the CallFlow Read, and CallFlow Supervisor ReadWrite Functional Permissions together. It will allow selected users for seeing every callflow, but editing only those which they’re part of Queue’s Supervisor.

You can create new CallFlows and save them only with CallFlow ReadWrite Functional Permission.

Read more
Setup Access
Setup - General
Permissions
Setup Access

ROGER365.io only uses Microsoft industry standard technology. The ROGER365.io is an Enterprise Application within the Microsoft Entra ID. Via this Enterprise Application you can allow users to sign-in to ROGER365.io admin portal or not, and into which sections users can have an access to. It is strongly recommended to configure the ROGER365.io Enterprise Application within Microsoft Entra ID according to your own company policy.

Role reference can be found at this documentation page.

Disclaimer: The information in this document must be used as a guidance, please make sure you have good knowledge about your own Microsoft Office 365 and Microsoft Entra ID situation before continuing.

Azure / Microsoft Entra ID:

  1. Create a security group at Microsoft Entra ID tenant. Save the Object Id of a freshly created security group, it will be needed later.
  2. Assign selected users.
  3. Navigate to Enterprise Applications, and choose “ROGER365.io” application.
  4. Add created group to “ROGER365.io” application via “Users and groups” section from a Resource Menu. Group have to have “TeamsUser” role assigned.

Note: Assigning “Admin” role to a security group will grant Admin permissions to ROGER365.io admin portal for every member of a group!

ROGER365.IO admin portal:

  1. Navigate to “Permissions” tab.
  2. Press “+ Add Functional Permissions” button.
  3. Paste Object Id of a security group into “Group ID” field, from Azure’s step 1.
  4. Give a descriptive name to your group of Functional Permissions.
  5. Set proper rights for chosen Functional permissions (sections of a portal).

Examples of usage is described at this documentation page.


Important Notes:

  • General, Resource Accounts and Call Park pages are restricted only to Admin role.
  • Any permission changes are effective usually after ~10 seconds (requires re-login to admin portal).
  • You cannot combine user “Admin” permission with RBAC group permissions (restrictions) where a user is part of “Admin” permission will always have priority over RBAC group restrictions. Not respecting this will result with User having full access to admin portal.

Read more
Configure Teams client to enable Toastar
Setup - General
CRM Calling Integration (Toastar)
Configure Teams client to enable Toastar

Add TOASTAR app in Teams client

Follow these steps to enable the TOASTAR App in your Teams client:

  1. Go to Microsoft Teams and select the [Apps] icon in the left bottom of the navigation bar
  2. Search for [Toastar]
  3. Click the found application and select [Add]

Configure simultaneous ring

Final step is to configure simultaneous ring, so when a call arrives the call is also redirected to the TOASTAR app. Follow these steps:

  1. In de Microsoft Teams client, click your profile picture on the right top of your screen
  2. Select [Settings]
  3. Select [Calls]
  4. Select [New number or contact] in the list next to [Also ring]
  5. Enter the phone number which you configured in the step Create Teams Virtual User
  6. Close the window

Now when you receive an external phonecall, TOASTAR will search the selected CRM Replicator (Datasource) and display the found contact details.

Read more
Enable users
Setup - General
CRM Calling Integration (Toastar)
Enable users

Via the ROGER365 users can now be enabled to use the function. You can create multiple profiles with different settings. For example you can create a profile for users at a sales department and a different profile for the financial department. In this way you can connect seperate CRM sources to different users, or send them different adaptive cards.

Add a profile

To create a profile, you can follow the next steps:

  1. Go to the ROGER365 admin portal
  2. Select Toastar for Teams in the left navigation bar
  3. Click [+ Add Profile]
  4. Fill in a [Name] and [Description]
  5. At Data Sources you can select in which sources can be searched
  6. When a new call arrives, a webhook can be triggered for example to Microsoft Power Automate or a Logic App
  7. To search your Active Directory you can select Users Groups, you have to login with administrator credentials te retrieve these
  8. At [Available Users] select the users to add to the profile and click the arrow to move them to the [Assigned Users]
  9. Click [Save]

Read more
Webhook & Postback URL
Setup - General
CRM Calling Integration (Toastar)
Webhook & Postback URL

Webhook

When an incoming phonecall arrives, you can trigger a webhook to an external system (like Power Automate/Logic App) to perform certain actions. This can for example be a retrieval of extra CRM data, or create a phone note on the CRM contact card. To configure a webhook, follow the next steps:

  1. Go to the ROGER365 admin portal
  2. Click [Toastar for Teams] in the left naviagtion bar
  3. Select the Profile
  4. Enter the URL to your HTTP listener in the [Webhook] field
  5. Click [Save]

The JSON displayed underneath will be send. If multiple contacts in a dataSource (CRM Replicator) are found, a button appears to select the correct contact. After selecting another contact, the webhook will be send again with the new data in the “selectedContact” field.

{
  "conversationId": "8ecc770b-1685-4770-cffa-08d84434a9b2",
  "originalContactUri": "+31882757600",
  "lookupType": "phone",
  "dataSources": "ef4f1179-e890-44cb-9748-24f590c66b88",
  "selectedContact": {
    "id": 25001,
    "firstName": "John",
    "lastName": "Doe",
    "displayName": "Doe, John",
    "email": "john@doe.com",
    "sipAddress": null,
    "street": "Nieuwe Plantage 58",
    "zip": "2611 XK",
    "city": "Delft",
    "country": "The Netherlands",
    "company": "ROGER365.io",
    "phoneNumber0": null,
    "phoneNumber1": "+31882757600",
    "phoneNumber2": null,
    "phoneNumber3": null,
    "phoneNumber4": null,
    "phoneNumber5": null,
    "custom0": "Customer",
    "custom1": "Doe, John",
    "custom2": null,
    "mobileData0": null,
    "mobileData1": null,
    "mobileData2": null,
    "type": null,
    "contactUrl": "null",
    "contactId": "null",
    "companyId": "null"
  },
  "selectedContactDataSource": "ef4f1179-e890-44cb-9748-24f590c66b88",
  "userAadId": "c1f1a379-3075-461e-8456-193db13ade17",
  "type": "newIncomingCall"
}

Postback URL

After receiving the JSON via the Webhook you could, for example, retrieve extra CRM info. This new info can be posted back to the already displayed info in Microsoft Teams. You have to send this info in an adaptive card format. More information how to create an adaptive card, click here.

To make sure the info is posted back to the right user, you must include the “conversationId” in your postback url (https://api.roger365.io/v1.0/tft/postcard/<convid>). In this example the postback URL will be:

https://api.roger365.io/v1.0/tft/postcard/8ecc770b-1685-4770-cffa-08d84434a9b2

Read more
Add TOASTAR App to Teams
Setup - General
CRM Calling Integration (Toastar)
Add TOASTAR App to Teams

Add TOASTAR App to Microsoft Teams

There are two options to add the TOASTAR app to the Microsoft Teams client: 1) Distribute it globally in your tenant to all users via the Microsoft 365 Admin portal or 2) install it locally in the Microsoft Teams client. In case of the 2nd option this must be allowed by the Microsoft 365 Administrator.

Option 1: Install locally

  1. Login into https://admin.roger365.io with you Microsoft 365 account
  2. Go to [Toastar for Teams]
  3. Download the TOASTAR.ZIP manifest file
  4. In the Microsoft Teams client, click on the [Apps] icon. You can find it at the left bottom of the navigation bar
  5. Select the option [Upload a custom app] (If you don’t see this option, then this must be allowed by the Microsoft 365 Administrator) and select the TOASTAR.zip file


Option 2: Install globally

  1. Login into https://admin.roger365.io with you Microsoft 365 account
  2. Go to [Toastar for Teams]
  3. Download the TOASTAR.ZIP manifest file
  4. As a global Microsoft Teams go to the Microsoft Teams admin center:
  5. Choose [Teams Apps] > [Manage apps]
  6. Choose upload new app and choose select file.
  7. In the pop up browse and select the TOASTAR.ZIP file you and acknowledge the screen to get the upload started.

After a successful upload it could take op to 24 hours before the app is visible in the Teams Apps. You can also logout/login into Teams to have the TOASTAR app directly available.

Read more
Create Teams Virtual User
Setup - General
CRM Calling Integration (Toastar)
Create Teams Virtual User

This next step is to create a Microsoft Teams user, configure it with a phonenumber and connect it to the BOT channel created in the previous step.

Create user via Powershell

New-CsOnlineApplicationInstance -UserPrincipalName "username@yourdomain.com" -DisplayName "ToastarForTeams" -ApplicationId "App ID"
  • To check if this command is executed correctly, run the following command:
get-CsOnlineApplicationInstance -Identity "username@yourdomain.com"

You’ll see an output like this:

RunspaceId        : 55f3d4ff-5606-430d-81f9-************
ObjectId          : bde233d4-79cf-4d0a-a2bd-************
TenantId          : 5b98daa7-3f0e-4fb1-9ad0-************
UserPrincipalName : username@yourdomain.com
ApplicationId     : da0c3ed1-eeec-41cd-acb8-************
DisplayName       : ToastarForTeams
PhoneNumber       : tel:+5555
  • To sync between Azure and the Agent Provisioning Service run the command (you can find the ObjectId from the output of previous step):
Sync-CsOnlineApplicationInstance -ObjectId "<ObjectId>"
  • Add a Microsoft Teams license to the user via the Office 365 Admin Portal – >User management tab. You can use the free ‘Virtual-User’ license. It could take up to 24 hours before this has been processed.

Assign phonenumber to the user

Assign a phonenumber to the user. This can be an internal number, it does not have to be an external phonenumber

For DirectRouting environment

Set-CsPhoneNumberAssignment -Identity user@domain.com -PhoneNumber +5555 -PhoneNumberType DirectRouting

for CallingPlan environment:

Set-CsPhoneNumberAssignment -Identity user@domain.com -PhoneNumber +5555 -PhoneNumberType CallingPlan

Read more
Register Azure BOT Channel
Setup - General
CRM Calling Integration (Toastar)
Register Azure BOT Channel

Configure BOT Channel

Log into your Microsoft Azure environment by browsing to https://portal.azure.com. Make sure you have an Azure subscription active.

  • After logging in, choose [+ Create a resource]
  • Type [Azure Bot] in the search field and press [ENTER]
  • In the Azure Bot channel detail page, click [Create]
  • Enter a name for the Bot handle. You can choose your own name, but it has to be unique within Azure
  • Choose your Azure Subscription
  • Create a new Resource Group and select it
  • Choose a location near you
  • Select your pricing choice
  • Select Type of App ‘Single Tenant’
  • Select ‘Create a new Microsoft App ID’
  • Click [Review & Create]
  • In the next page click ‘Create’

After creation, go to the new created Azure Bot Channel by clicking ‘Go to Resource’.

  • Click [Channels] in the left menubar
  • Click the Microsoft Teams button
  • Select your Microsoft Teams Edition
  • Select the tab [Calling]
  • Enable the checkbox [Enable Calling]
  • Fill in at [Webhook] https://api.roger365.io/v1.0/tft/calls?id=<yourcompanyname>
  • Click [SAVE]

  • Select [Configuration] in the left navigation bar
  • Copy the string at Microsoft App ID. (You’ll need it in the next step ‘Create Teams Virtual User‘)
  • Next to [Microsoft App ID] click [Manage]
  • In the left navigation bar click[API Permissions]
  • Then click [+ Add a permission] and click the section [Microsoft Graph] on the right side
  • Choose [Application Permission]
  • Scroll down to [Calls] and check all options
  • Click [Add Permissions] to save

Last step is to grant the permissions by clicking the ‘Grant admin consent for….’ button:

Read more
Example PowerShell script
Setup - General
Custom CRM Connector
Example PowerShell script

We have created a Powershell example which uploads a CSV file to a custom replicator. In the example you have to fill in your connection URL and Authorization key in the Powershell script. In the attached CSV file you can add your own CRM data. Make sure you keep the correct columns in the example.

Click here to download the example ZIP

Step 1: Get connection URL and Authorization key

First you have to create a Custom CRM Replicator. How to do this, you can find here. In the configuration of the custom CRM replicator you can find the [connection url] and the [authorization key]. Copy these two values, you’ll need this in the next step.

Step 2: Change Powershell script

After you’ve downloaded the ZIP file above, extract in a directory (for example c:\temp\)  you’ll get two files:

  • SampleUploadCSV.ps1, this is the PowerShell script
  • SampleUploadCSV.csv, this contains a few example contacts

Open the file ‘SampleUploadCSV.ps1’ in Notepad or another script editor. Paste the Connection Url at:

$Url = “<paste your url here>”

and paste the Authorization Key at:

$AuthorizationKey = “<paste your key here>”

Save the file

Step 3: Fill the CSV file

In the file “SampleUploadCSV.csv” we have added a few dummy contacts. You can replace this list with an export of your own contacts, make sure to keep the columns and columns names. Keep in mind to define labels in the ROGER365.io admin portal for the CRM action buttons, in case ActionLink0-3 properties has been configured.

Step 4: Run the PowerShell script

Follow these steps to run the script and upload the contacts:

  • Open a command box
  • Go to the directory where you’ve extraced the files
  • Type: “Powershell” and press [Enter]
  • Type: “.\SampleUploadCSV.ps1” and press [Enter]
.\SampleUploadCSV.ps1

If the command was executed successfull you’ll see this:

-> If you get this errormessage after executing the powershell script:

.\SampleUploadCSV.ps1 : File C:\temp\SampleUploadCSV\SampleUploadCSV.ps1 cannot be loaded. The file
C:\temp\SampleUploadCSV\SampleUploadCSV.ps1 is not digitally signed. You cannot run this script on the current system.
For more information about running scripts and setting execution policy, see about_Execution_Policies at
https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\SampleUploadCSV.ps1
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess

then you can first execute this command:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

and answer [Y] to allow the script to run.

If then the script has ran succesfully you’ll see that the contacts are uploaded to the platform:

Read more
Phonebook
Setup - General
CRM Replicator
Phonebook

Phonebook

With the phonebook feature you can search your CRM Replicators for contacts and call, email or chat them directly from Teams. To use the feature you must have a business or enterprise subscription.

The following components are needed:

Configure phonebook settings

When you have succesfully created a CRM Replicator, click on the ‘edit’ icon next to the CRM Replicator. On the bottom you find the Phonebook Configuration. Here you can change the default labels of the replicated phonenumbers, these will show up in the search results and at the CRM contacts. If you enable the checkbox ‘searchable’ then this number is also used to lookup a contact for incoming phonecalls (Toastar / CRM Calling feature).

Contact Center

Now, searching for the CRM contact which is part of your replicator will make the labels for phoneNumber fields to be shown:

When searching for CRM contacts, the search will by default return results that begin with the text you enter. If you add an asterisk (*) as a wildcard, you can broaden the search to match your text anywhere within a result.

Place the asterisk at the beginning to include anything that comes before your search term, or at the end to include anything that comes after it.

Social Messaging

When you now click the ROGER icon in Teams, you can select ‘Search contact’.

Then you can search for a contact, company name or phonenumber. You can also use a wildcard like *smith or *12345

Read more
Webchat to Teams
Setup - Social Messaging
Examples
Webchat to Teams

Prerequisites

Before continuing make sure you have ROGER365.io connected to a Microsoft Teams channel and you have enabled Webchat TouchPoint.

Result

At the end of this document you have created your first ROGER365.io flowchart that handles webchat messages from a website to Microsoft Teams and back.

Create Webchat to Teams flowchart

1. Login into ROGER365.io admin portal, https://admin.roger365.io with your Microsoft 365 credentials

2. Choose in the left menu, [Social Messaging] > [- Messages] and choose option [+ Add Message] and click [Save]

For the name use the text below

Send Welcome Message

Enter this at the EN language

Hi! I’m Roger, how can I help you?

3. Choose in the left menu, [Social Messaging] > [Messageflows] and select option [+Add Flowchart]

4. Fill in flowchart properties in the right panel;

For the name use the text below

Webchat

Enter this for the description

My first flow

5. Choose the option [Variables] in the tool bar and create the variables below and press [Save]:

Name DataType Initial value
UserMessage JSON > SendMessageToOchestrator
AgentMessage JSON > SendMessageToOchestrator

6. Click the “Root” node and fill in the following “Node Properties”:

Webchat

1. Choose [SendMessageTo] action in the left panel, drag & drop it into the flow area and fill in the “Node Properties”;

For the name use the text below

Send Welcome Message

Enter this for the Message

PredefinedMessage["Welcome"]

Enter this for the touchpoint

Webchat

2. Connect both “Root” and “Send Welcome Message” actions with a link

3. Choose action “WaitInput” in the left panel and drag & drop into the flow area.

4. Set the following “Node Propeties” and link this node with the “Welcome” node;

For the name use the text below

Send user message to Teams

Enter this as the User input destination variable

UserMessage

5. Choose action “SendMessageTo” and drag & drop, fill in the following “Node Properties” and connect “WaitInputUser” with “SendToAgent”;

For the name use the text below

Send user message to Teams

Enter this as the User input destination variable

UserMessage

Enter this for the touchpoint

Teams

6. Choose the link between “Wait input User” and “Send user message to Teams” and make sure the “Link Properties” is set to “Input”.

7. Create a link from “Send user message to Teams” back to “Wait input User”

Create Teams to Webchat flowchart

1. Add action “Start” action into the flow area and give the following “Node Properties”;

  • Touchpoints: Teams
  • Add action “WaitInput”, fill in the “Node Properties” and link “Start” Teams with this action;

For the name use the text below

Wait input Agent

Enter this as the User input destination variable

AgentMessage

2. Add action “SendMessageTo” and fill in the following “Node Properties”;

For the name use the text below

Send agent message to Webchat

Enter this as the User input destination variable

AgentMessage

Enter this for the touchpoint

Webchat

3. Link “Wait input Agent” with the “Send agent message to Webchat” and make sure the “Link Properties” type to “Input”

4. Create a link from “Send agent message to Webchat” back to “Wait input Agent”

5. Add action “SendMessageTo” and fill in the following “Node Properties”;

For the name use the text below

Send error message

Enter this as the User input destination variable

LastErrorMessage

Enter this for the touchpoint

Teams

6. Create a Error link between the “Root Webchat” node and “Send error message”

7. Create a Error link between the “Start Teams” node and “Send error message”

8. Add action “End” and create a link between “Send error message” and “End”

9. Click [Save] to store the created flow

Assign new flow to Touchpoint

  1. Go to [TouchPoints], and choose the webchat touchpoint you want to connect the created flow.
  2. Choose option “Assign a flowchart…” and choose the just created flow.
  3. Click [Update] to confirm changes.

Read more
WhatsApp to Teams
Setup - Social Messaging
Examples
WhatsApp to Teams

Prerequisites

Before continuing make sure you have created a Whatsapp for Business Touchpoint  or configured a Test-Sandbox TouchPoint Also you should have configured a Microsoft Teams channel and installed the ROGER bot.

Configure flow between WhatsApp and Microsoft Teams

Log into the ROGER365.io admin portal. In the left navigation bar select [Social Messaging], [Messageflows]. On the top click [Add Flowchart from Library]:

  1. Enter a name for your Flow
  2. Enter a description
  3. Start TouchPoint: Select your earlier configured WhatsApp TouchPoint
  4. Details:
    1. Select a flow template, for example a simple ‘Whatsapp to Teams’
    2. Select Team TouchPoint: Select the earlier created Teams TouchPoint where the messages should be delivered.
  5. Click Create

After clicking create, a flow is designer for you. You can simply press Save.

Select flow on WhatsApp TouchPoint

Last step is to select the flow you just created on the WhatsApp Touchpoint. In the left navigation bar, browse to [TouchPoints], and select your earlier created WhatsApp TouchPoint.

On the top at ‘Assign a flowchart’, select the flow you’ve just created. Click UPDATE

Now you’re ready

Read more
Recognize customer by email
Setup - Social Messaging
Examples
Recognize customer by email

When using a Facebook or Webchat TouchPoint, you don’t always get the user’s information to perform CRM recognition. In case of webchat you could add a pre-form webchat to ask the user for an email address, but another solution is to automatically ask a user for their email address when they start a conversation.

You can use a regular expression to filter or validate the email address and then use the SetParticipant action in our flow designer to identify the customer. Underneath you can find a screenshot how this could look within a flow and the Regular Expression (REGEX) which you can use for validation:

Regex which you can use in the IF statement:

System.Text.RegularExpressions.Regex.IsMatch(emailRaw.Text, "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])")
Read more
Use webchat form to recognize customer
Setup - Social Messaging
Examples
Use webchat form to recognize customer

You can present webchat users a pre-webchat form. In this form it’s possible to ask the user to enter his/her email address. This information then can be used to perform a lookup in the CRM Replicator and show the webchat user data when the conversation is routed to a teams channel.

Start with creating a flow and add ‘GetFormInput’ from the menu on the left.

Click the ‘Edit Mappings’ button on the right.

Here you can create & assign variables to the inputboxes (Field1, Field2 etc.) from the pre-webchat form. Now that we have the webchat-user data in variables, we can set these variables to set the identity. For this, add the ‘SetParticipant’ component.

In this example we have inserted the email address into the variable ‘Form2’. By adding this variable at the property ‘Contact Uri’ and setting the ‘Type of Uri’ to mail we have assigned the email address to the user. We can also assign the name, which is in variable ‘Form1′, by entering that variable at Form1.

After assigning the variables to the webchat user, ROGER365.io will try to match the info with the data from a datasource in the CRM Replicator and will show the customers’ full information in the Teams channel.

Read more
Start voice call (Beta)
Setup - Social Messaging
Graphical Designer
Start voice call (Beta)
This feature is only available in the Business and Enterprise subscriptions.

Description

Component Description
Start voice call (Beta) Action to create Virtual Wait call (callback) record in the Contact Center queue based on phone number of social participant (target) and selected callflow.

Node Properties

Node Properties Description Input type
Target Phone Number Provide target phone number as a string or variable for creating callback record. String or variable
The Calling Resource Account Select from the list a Resource Account for creating callback record.
Note: Make sure that selected Resource Account is configured for outbound calling!
Select from List
Id Of The Callflow To Use Select from the list a callflow Id which will be used for placing callback record in the Queue.
Note: Selected callflow cannot contain Accept action!
Select from List

Mapping

Mapping Description Value
CallId Select integer variable to store information about the id of this call. Select from list
PosInQueue Select integer variable to store information about current position in the Queue. Select from list

Note: The value of CallId property can be used to terminate callback record from the Queue using the API (section – Delete).

Read more
CRM
Setup - Social Messaging
Graphical Designer
CRM
Before using this action in your Messageflows, the CRM Datasource(s) has to be assigned on your Social Messaging TouchPoint. (e.g., Webchat, WhatsApp, etc.).

Description

Component Description
CRM Action to retrieve the details of the contact resolved at the incoming TouchPoint (see Note above). You can use this data for advanced routing – for instance, based on CRM fields such as DisplayName, Country, or PhoneNumber.

Node Properties

Node Properties Description Input type
Amount of contacts Select the integer variable to store the amount of contacts. Select from List
Was the action successful? Select the boolean variable to receive an output if the action was successful. Select from List
Api Error Message Select the string variable for storing an API message in case of errors. Select from List

Read more
AddTranscript
Setup - Social Messaging
Graphical Designer
AddTranscript

Description

Component Description
Add Transcript Action to insert one row from Text field in the transcript as incoming message on the Touchpoint where it used. It requires the transcript option to be active for the Touchpoint.

Node Properties

Node Properties Description Input type
Text String or variable to insert it in the transcript as incoming message. String
Send To The Target Touchpoint Send configured transcript text as incoming message to selected from the list Touchpoint. Select from list

Read more
Translate
Setup - Social Messaging
Graphical Designer
Translate

This feature is only available in the Enterprise subscription.

Before configuring this action you have to create Translator resource in the Azure portal, you can find description how to do it in this Microsoft article – Create a Translator resource.

Be aware that images cannot be send through this action, translations can be not precise.

Description

Component Description
Translate This component translates provided text, and stores it in variable.

Node Properties

Node Properties Description Input type
Input Text Text to translate, or use variable for entering user’s message for translation. String
URL URL address to POST translate request to Microsoft service. String
API Key API Key of Translator resource created at Azure portal. String
Subscription region Azure region into which translator resource has been created. String

Mapping

Mapping Description Value
Result Select string variable to map the result of translated text. Select from list
Detected_Language Select string variable to map detected language. Select from list

Read more
OpenAI
Setup - Social Messaging
Graphical Designer
OpenAI

Edit JSON Content overview:

This feature is only available in the Enterprise subscription.

Before configuring this action you have to create Azure OpenAI resource at Microsoft Azure, you can find description in this Microsoft article – Create and deploy an Azure OpenAI Service resource.
Most of the configuration part must be done in Microsoft Foundry portal.

Microsoft Azure OpenAI is a preview feature, please be aware of unexpected results, and test thoroughly before implementing to production environment.

Description

Component Description
OpenAI This component uses advanced Microsoft Azure OpenAI features, and stores it in variable.

Node properties

Node Properties Description Input type
Azure OpenAI resource URL address (Endpoint) of your Azure OpenAI resource. Depending on used SDK, the URL address should look following:
Azure OpenAI SDK = “https://{ResourceName}.openai.azure.com/openai/deployments/{ModelDeploymentName}/chat/completions?api-version=2025-01-01-preview”
OpenAI SDK = “https://{ResourceName}.openai.azure.com/openai/v1/chat/completions”
Note: API version for “Azure OpenAI SDK” can always change, check out your OpenAI resource at Microsoft Foundry portal.
String
API Key API Key of your Azure OpenAI resource (without the quotes). String
Prompt The prompt(s) to generate completions for, or use variable for inputting user’s text which model will response to according to JSON Content. String
Evaluate Jsoncontent The value in JSON Content will be evaluated when this is checked. If the JSON Content is evaluated, it should also contain the prompt itself. Using evaluation, the resulting JSON can be altered in more ways than just the prompt field. Checkbox
Edit JSON Content Copy Samle JSON Code from Microsoft Foundry with configured Chat completion method. Preferably it should contain prompt (instruction) for OpenAI’s model. When evaluated, the resulting string should be valid JSON, thus, double quotes should be escaped and variables used, should not contain unescaped quotes as values. Ex: “{\”property\”:\””+variable.Text+”\”}”, where variable.Text should not contain any “.
Notes: In case of using “OpenAI SDK”, the JSON Content must include “model” property – for instance: \”model\”: \”gpt-5-nano\”.
JSON editor may show that provided JSON is incorrect, this message is informational and can be disregarded as far as the action itself does work.
String or variable*
Exclude Chat History If selected, interactions with the bot are one-on-one, with chat history excluded. The Azure OpenAI bot treats each user question as the first, regardless of conversation duration, ensuring freshness and independence in responses. Checkbox

* Variable in JSON Content can be used when Evaluate Jsoncontent option is enabled.

Mapping

Mapping Description Value
id Select string variable to request information about the unique identifier associated with this completions response. Select from list
model Select string variable to request information about OpenAI’s machine learning model. Select from list
result Select string variable for mapping model’s response. Select from list
finish_reason Select string variable for mapping model’s finish reason. Select from list

Setting up variable for result property is mandatory for action to work!
Read more
GetFormInput
Setup - Social Messaging
Graphical Designer
GetFormInput

Description

Component Description
GetTranscript This components retrieves the transcript from the conversation and stores it in a variable

Node Properties

Node Properties Description Input type
Get transcript as an adaptive card Choose between True or False. If True is selected, the transcript is placed in a JSON-formatted adaptive card. When False is selected, the transcript is plain text Select from list
Select Timezone Select the timezone which must be used in the transcript Select from list

Link Properties

Link Properties Description Input type
Any The default link to go the next step Label can be used to add a description to this link
Error The link to follow when an error occurs

Mapping

Mapping Description Value
transcripts transcript from the conversation (If retrieved as Adaptive card) variable (JSON/SendToOrchestrator)
transcripts transcript from the conversation (If NOT retrieved as Adaptive card) variable (string)

Read more
HttpAction
Setup - Social Messaging
Graphical Designer
HttpAction

Description

Component Description
HttpAction This component can do a HTTP request to set destination

Node Properties

Node Properties Description Input type
Url Expression String variable with a valid URL or a string value with a valid URL. String
Method Select from a list the HTTP request method. Select From list
Header Name Set a header, for instance validation header. String
Header Value Set a value for configured header. String
Body Data to include in the HTTP request (for instance, JSON payload). String
Timeout in Seconds Set timeout in seconds for your request. Integer

Link Properties

Link Properties Description Input type
Any The default link to go the next step Label can be used to add a description to this link
Timeout The link to follow after the specified timeout elapses
Error The link to follow when an error occurs

Example

This POST returns the feedback from a user (using the Choice action) to the chatbot – variable (string)

"https://r365-core-webapiconfig.azurewebsites.net/api/FaqResults/Feedback?faqRequestId="+FaqRequestId+"&answerIndex=1&feedback=true"

This returns the filled in values from a pre-webchat form. The values (Field1, Field2, Field3, etc) can be mapped to a variable – variable (string)

"https://r365-core-webapiconfig.azurewebsites.net/api/SiteVariables/ByConversation/" + Conversation.Id.ToString()

Read more
Convert Image
Setup - Social Messaging
Graphical Designer
Convert Image

Description

Component Description
Convert Image This component extracts a link to an image from a chatbot’s answer, and send it seperately from the text. This is usable if you want to send an answers with image to a WhatsApp user. For Webchat this is not necessary.

Node Properties

Node Properties Description Input type
In message Insert the variable with the Chatbot’s answer including the image variable (string)
User Input Destination Variable Variable to put the result in. This variable can then be used to send to the user. variable (JSON/SendMessageToOrchestrator)

Link Properties

Link Properties Description Input type
Any The default link to go the next step Label can be used to add a description to this link
Error The link to follow when an error occurs

Read more
SetAction
Setup - Social Messaging
Graphical Designer
SetAction

Description

Component Description
SetAction This component can set a variable to a specific value

Node Properties

Node Properties Description Input type
Expression Assign a value to a variable. Use the format: “<var1> = <expression>”, so the variable to assign on the left side, followed by an equal-sign and the expression to eveluate. Eg: varA = (varB + 2).ToString(). variableA = <expression>

Link Properties

Link Properties Description Input type
Any The default link to go the next step Label can be used to add a description to this link
Error The link to follow when an error occurs

* The expression evaluator is based on C# and supports a subset of C# functions, which we regulary extend. If you need help, or a function is not supported, please contact your partner.

Read more
GetPageVisits
Setup - Social Messaging
Graphical Designer
GetPageVisits

Description

Component Description
GetPageVisits This components retrieves the visited pages (where webchat is active) from the webchat conversation and stores it in a variable

Node Properties

Node Properties Description Input type
Get pagevisits as an adaptive card Choose between True or False. If True is selected, the pagevisits are placed in a JSON-formatted adaptive card. When False is selected, the pagevisits are plain text Select from list
Select Timezone Select the timezone which must be used in the pagevisits Select from list

Link Properties

Link Properties Description Input type
Any The default link to go the next step Label can be used to add a description to this link
Error The link to follow when an error occurs

Mapping

Mapping Description Value
pageVisits pagevisits from the conversation (If retrieved as Adaptive card) variable (JSON/SendToOrchestrator)
pageVisits pagevisits from the conversation (If NOT retrieved as Adaptive card) variable (string)

Read more
Sentiment
Setup - Social Messaging
Graphical Designer
Sentiment

Description

Component Description
Sentiment This components evaluates the user and/or agent inputtext and calculates the average sentiment score between 0 (very negative) and 100 (very positive)

Node Properties

Node Properties Description Input type
Choose transcript type to analyse Select which transcript must be analyzed. Incoming is the transcript from the external user, outgoing is the transcript from the Teams agent to the external user. Selecting All will return the average sentiment score of the whole conversation Select from list

Link Properties

Link Properties Description Input type
Any The default link to go the next step Label can be used to add a description to this link
Error The link to follow when an error occurs

Mapping

Mapping Description Value
Score Sentiment score from 0 (very negative) to 100 (very positive) variable (string)

Read more
Powerhook
Setup - Social Messaging
Graphical Designer
Powerhook

Description

Component Description
PowerHook This component send a JSON formatted webhook to an external http listener. This can, for example, be an Microsoft Logic App or Power Automate flow.

Node Properties

Node Properties Description Input type
URL Expression Insert the URL of the destination where the PowerHook should deliver the JSON. “url”

Link Properties

Link Properties Description Input type
Any The default link to go the next step Label can be used to add a description to this link
Error The link to follow when an error occurs

Read more
SendEmailAction
Setup - Social Messaging
Graphical Designer
SendEmailAction

   

Description

Component Description
SendEmailAction Sends an email with a subject and body. Variables can be used at the node properties

Node Properties

Node Properties Description Input type
Email Configuration Select created Email Configuration to use its email address as the sender. Select From List
To Here you can enter an email address message or a variable with an email address as (string) value “emailaddress” / variable (string)
Subject Here you can enter a subject or a variable with a subject as (string) value “subject” / variable (string)
Body Here you can enter the body or a variable with the body as (string) value “body” / variable (string)

Link Properties

Link Properties Description Input type
Any The default link to go the next step Label can be used to add a description to this link
Error The link to follow when an error occurs n/a

Read more
Chatbot
Setup - Social Messaging
Graphical Designer
Chatbot

   

Description

Component Description
Chatbot This component can be used to get an answer from a Chatbot knowledge base. You can send a user question and the chatbot will return an answer.

Node Properties

Node Properties Description Input type
Choose a knowledgebase Select the knowledgebase with question and answer pairs Select from list
Choose input text Enter the variable where the users’ input is stored variable (JSON/SendToOrchestrator)
Choose amount of answers Choose the amount of possible answers which the knowledgebase has to return. Select from list

Link Properties

Link Properties Description Input type
Any The default link to go the next step Label can be used to add a description to this link
Error The link to follow when an error occurs

Mapping

Mapping Description Value
faqRequestId Unique ID which can be used together with a HTTPAction to store the feedback from a user to a provided answer variable (string)
Answer1 Answer from the knowledge base with the highest score variable (string)
Answer2 Answer from the knowledge base with the second best score variable (string)
Answer3 Answer from the knowledge base with the third best score variable (string)
Score1 Answer 1 confidence Score between 0.0 and 100.0 variable (string)
Score2 Answer 2 confidence Score between 0.0 and 100.0 variable (string)
Score3 Answer 3 confidence Score between 0.0 and 100.0 variable (string)
Read more
Get Transcript
Setup - Social Messaging
Graphical Designer
Get Transcript

Description

Component Description
GetTranscript This components retrieves the transcript from the conversation and stores it in a variable

Node Properties

Node Properties Description Input type
Get transcript as an adaptive card Choose between True or False. If True is selected, the transcript is placed in a JSON-formatted adaptive card. When False is selected, the transcript is plain text Select from list
Select Timezone Select the timezone which must be used in the transcript Select from list

Link Properties

Link Properties Description Input type
Any The default link to go the next step Label can be used to add a description to this link
Error The link to follow when an error occurs

Mapping

Mapping Description Value
transcripts transcript from the conversation (If retrieved as Adaptive card) variable (JSON/SendToOrchestrator)
transcripts transcript from the conversation (If NOT retrieved as Adaptive card) variable (string)

Read more
Set Participant
Setup - Social Messaging
Graphical Designer
Set Participant

         

Description

Component Description
SetParticipant Uses variables to set the participants properties, for example it uses the values from the pre-webchat form to identify the webchat user

Node Properties

Node Properties Description Input type
Contact uri This variable contains the input which can be used to search a CRM Replicator for known contacts variable (string)
Type for uri Select the type of the contact uri:
Phone: Searches in columns PhoneNumber0, 1,2,3,4 amd Phonenumber5
Mail: Searches in column Email
SIP: Searches in column SipAddress
Select from list
Contact Name This value is used to define which variable contains the name of the participant, for example from a pre-webchat form. This name is shown on the adaptive card in Teams variable (string)
TouchPoint Select the TouchPoint for who the participant must be set Select from list

Link Properties

Link Properties Description Input type
Any The default link to go the next step Label can be used to add a description to this link
Error The link to follow when an error occurs

Read more
Schedule
Setup - Social Messaging
Graphical Designer
Schedule

   

Description

Component Description
Schedule This component can be used to retrieve the open/closed value from a configured Schedule and puts it in a variable.

Node Properties

Node Properties Description Input type
Choose a Schedule Select the configured Schedule Select from list

Link Properties

Link Properties Description Input type
Any The default link to go the next step Label can be used to add a description to this link
Error The link to follow when an error occurs

Mapping

Mapping Description Value
isOpen This value returns True is the Schedule is Open, and False if closed variable (boolean)
isHoliday This value returns True is the Schedule is Holiday, and False if not variable (boolean)
labels This value returns the associated label(s) in a comma separated form. variable (string)

Read more
Merge
Setup - Social Messaging
Graphical Designer
Merge

Description

Component Description
Merge Merges multiple links, for example when to need multiple links to the END node
Read more
Choice
Setup - Social Messaging
Graphical Designer
Choice

     

Description

This action is only possible with Webchat TouchPoints

Component Description
Choice Sends a message to a TouchPoint and waits for the user to make a choice

Node Properties

Node Properties Description Input type
Choice Message Here you can enter a message, select a variable or a PredefinedMessage which will be send to the user “text” / variable (string) / PredefinedMessage[“<namepredefinedmessage>”]
Choices Destination Input TouchPoint where the message and choice options must be sent to Select from list
User Input Destination Variable Variable to store user input (when no choice made, but text entered) variable (string)

Link Properties

Link Properties Description Input type
Input This link is followed when the user doesn’t select a choice but enters text Label can be used to add a description to this link
Choice Text which is displayed as a button. When the user clicks a button, the corresponding path will be followed Select from list
Event notused Select from list
Error The link to follow when an error occurs

Read more
IF
Setup - Social Messaging
Graphical Designer
IF

   

Description

Component Description
IF The if statement is a logical, conditional expression that evaluates a condition that should return a true or false value

Node Properties

Node Properties Description Input type
Statement Here you can use a method (like !String.IsNullOrEmpty(variable), which will return true if the variable contains a value) to get a true or false value <expression>

Link Properties

Link Properties Description Input type
Type The link to follow when the statement returns a TRUE/FALSE value TRUE or FALSE
Error The link to follow when an error occurs n/a

Read more
WaitInput
Setup - Social Messaging
Graphical Designer
WaitInput

   

Description

Component Description
WaitInput Waits for input from the user and stores it in a variable

Node Properties

Node Properties Description Input type
Timeout in Seconds Here you can enter the amount of seconds before the Timeout link is triggered integer (seconds)
User Input Destination Variable Here you can select a variable variable (JSON/SendMessageToOrchestrator)

Link Properties

Link Properties Description Input type
Input The default link to go the next step Label can be used to add a description to this link
Error The link to follow when an error occurs n/a
TimeOut* This link is executed (not followed) when there is no userinput received within the set timeout n/a
Interrupt** This link is followed when the action is triggered from a TimeOut link n/a

* The timeout link is special, because the flow itself will not continue from there. Use the timeout to trigger an interrupt on an action that supports interrupts.

** If a timeout is set on the action and expires and an interrupt is present, this will be followed. IE, you don’t have to draw a timeout arrow to the own action. If there is no interrupt link from the action, the timeout will only execute the Timeout link, but the flow remains on the WaitInput action.

Read more
The basics
Setup - Social Messaging
Graphical Designer
The basics

Next to various types of actions, there are a couple of basic elements you must or can use in every flow. Those are described underneath using this example.

1. Root Node

Every flow starts with a ‘Root’ node and it’s by default shown when you create a new flow. This node represents the starting point of the conversation flow, for example a webchat TouchPoint. On the root properties panel you can select the starting TouchPoint. From the node you can create three types of links:

  1. Any: This link is followed by default
  2. Closed: This link will be followed when a close event (for example user closed the webchat or a Teams agent closes the conversation) occurs.
  3. Error: This link will be followed when conversation broke due to issue in configuration.

2. End Node

When the conversation of flow is completed, the end node is reached. This is also a mandatory element to end the active flow. Sometimes the End node must be connected to multiple other actions, in such case you can use Merge action.

The End node allows you to configure AI-powered summarization based on the transcript of a social conversation. Available summary aspects include Recap, Narrative, Issue, Resolution, and Follow-up Tasks (availability depends on the API version; not all aspects may be supported). An administrator must complete the configuration using a previously created AI Service endpoint that supports AI summarization. A language code is required; if none is provided, Dutch will be used by default. Once the configuration is complete, set the “Enable Conversation Summarization” property should be changed from “false” to “true”. The generated AI summaries are available in the corresponding social interaction record in Agent Assist.

3. Start Node

A conversation is always initiated in the Root Node, but may touch (multiple) other TouchPoints. For example: the Root starts at a Webchat TouchPoint but can be routed to a Microsoft Teams Channel. This Channel/TouchPoint then will be a Start Node. You could have multiple Start Nodes, for example when you use a choice action to let the user select if he/she want to chat with a salesteam channel or a supportteam channel.

4. Error Node

When an action experiences an error, it will first look for a local error link. All actions can have an individual error link. If such a link is not found, it will look for a global error link (from the root/start node). Always define a global error as shown in the example above.

Read more
Webhooks for SMS Provider
Setup - Social Messaging
SMS TouchPoint
Webhooks for SMS Provider

If you connect a SMS number, you have to configure a Webhook in the portal of your SMS Provider. Underneath you’ll find the URL which you have to use:

Provider Content/Event Type URL Webhook Query string
CM.com Json https://api.roger365.io/api/sms/SmsListener ?cid=<SMS identifier>

The Query string is mandatory in the Webhook’s URL. Replace “SMS Identifier” with the one created at SMS TouchPoint.

The Webhook URL should look like this:

https://api.roger365.io/api/sms/SmsListener?cid=003112345678901

Read more
Sandbox cm.com
Setup - Social Messaging
WhatsApp for Business TouchPoint
Sandbox cm.com

If you connect a WhatsApp for Business number, you have to configure a webhook in the portal of your WhatsApp Business Provider. Underneath you’ll find the url which you have to use:

Provider Content/Event Type URL Webhook
CM.com Json https://api.roger365.io/api/whatsapp/CmListener
Zenvia Message https://api.roger365.io/api/whatsapp/ZenviaListener
Wireless Services Message https://api.roger365.io/api/whatsapp/WirelessServicesListener
MessageBird Will be automatically created after adding TouchPoint
Spotler message, postback, receipt https://api.roger365.io/api/whatsapp/SpotlerListener
Read more
WhatsApp OUT
Setup - Social Messaging
WhatsApp for Business TouchPoint
WhatsApp OUT

With the WhatsApp OUT functionality you can send ad-hoc WhatsApp messages to a user instead of only replying on an incoming WhatsApp messsage from a user. You can only send pre-defined template messages (WhatsApp charges you for sending a template). Directly after sending a message, a new conversation is created in the MS Teams channel. When the WhatsApp user responds to the template message, you can continue the conversation.

How you can use this feature is decribed here.

Getting a OPT IN

In order to initiate a WhatsApp message to a person, you must first receive opt-in permission confirming that they wish to receive future messages from you on WhatsApp. The opt-in must (a) clearly state that the person is opting in to receive messages from you over WhatsApp and (b) clearly state your business’ name. You may only initiate chats if you are sending a transactional notification, and only via approved Message Templates (as defined in Facebook’s documentation), subject to applicable pricing. Any Message Templates must comply with their terms and policies, and only be used for their designated purpose.

The ROGER365.io platform offers a solution to track the opt-in of a contact. When you try to send a WhatsApp message to a user, you’ll be notified if your have an opt-in of that user. You, as a business, are responsible to ask the user for permission. You can choose yourself how you ask this permission, as long as it complies with the regulations from WhatsApp (Facebook).

The ROGER365.io provides an API which you can use to add and delete opt-in confirmations from customers. Here you can find the description how to use it

Configure Message Flow

When you send a whatsapp out message, the system will send the contents of the templated message back, as if it was retrieved from the enduser. That way flows will be able to detect a message was send and a conversation in the Teams channel can be created. When using features like ‘autoreply’, additional steps must be taken to avoid the generated message will trigger additional messages to the whatsapp user.

Therefore, after the Root node of whatsapp, add an IF-statement, with SystemInitiated. If true, the message should be handled as the generated message; skip all auto reply features and move to the steps where the message is send to the Teams channel:

Configure Templates

You can only send ‘templated’ messages if you initiate a conversation with a WhatsApp user. You can find the description how to create/add templates here.

Enable WhatsApp OUT

Before you can use WhatsApp OUT, you have to configure a few settings. The country code is used to do the correct number formatting if you manual enter a number, and you can select a data source which is used to search your CRM for contacts.

  1. Open web browser and go to: https://admin.roger365.io
  2. Login with Microsoft 365 credentials
  3. Go to [Social Messaging], [TouchPoints]
  4. Click the edit button next to the WhatsApp TouchPoint
  5. Go to the section named ‘WhatsApp Out’
  6. Select your (default) country code
  7. Select the Data Sources for contact lookup
  8. Click [Update] to save

Read more
Adding templates
Setup - Social Messaging
WhatsApp for Business TouchPoint
Adding templates

Templates are predefined messages which you can sent to a WhatsApp user to send a notification (like ‘your item has been shipped’) or to trigger a user to send a message back. An example of a template message looks like this:

Hi, we would like to update you about {{1}}. Can you send me a message back, so we can continue our conversation?

In this example you can send the text above, with adding the subject at the {{1}} placeholder. Multiple templates in multiple languages can be added. You can also insert Rich media headers like icons or a document, or add buttons in the message as shown in the screenshot on the right.

The customer care window ends 24 hours after the last message is sent by the end-user. After 24 hours, you will only be able to send a notification via Message Templates. Each time the customer sends you a message, whether this is the conversation initiating message or another reply in the conversation, the 24hour customer care window will restart. So, from the last message your customer has sent you, you have 24 hours to send custom messages, free of charge unless you exceed your package.

Creating a template

Login at your WhatsApp for Business provider (for example cm.com) and create a template.

After creating the template it will be submitted to WhatsApp for approval. Once approved, you’ll get a ‘Facebook Namespace’. This will be the unique identifier which you have to use in the next step. You can create a single template in multiple languages, the namespace will be the same.

To add the template to ROGER365.io follow these steps:

  1. Open web browser and go to: https://admin.roger365.io
  2. Go to [Social Messaging], [TouchPoints]
  3. Click the edit icon right to the Whatsapp TouchPoint
  4. Go to the section named [Manage templates]
  5. Add the languages you would like to support
  6. Click ‘+’ in the titlebar of [Manage templates]
  7. Fill in a [Display name] for the template
  8. Fill in the [Name] exactly like in the portal of your WhatsApp Provider (like cm.com)
  9. Copy/Paste the [Namespace] which you obtained at your WhatsApp provider
  10. If you configured a header then select the type of header from the list and the required fields.
  11. Create the variable fields which you’ve created in the body, with the correct Type and Index
  12. If you’ve added buttons with a variable, then create the variables
  13. Finally insert the body text including any references to variables, for each selected language.
  14. Click [Add] to finish

This is an example of a configured template:

Read more
Webhooks for WhatsApp Providers
Setup - Social Messaging
WhatsApp for Business TouchPoint
Webhooks for WhatsApp Providers

If you connect a WhatsApp for Business number, you have to configure a webhook in the portal of your WhatsApp Business Provider. Underneath you’ll find the url which you have to use:

Provider Content/Event Type URL Webhook
CM.com Json https://api.roger365.io/api/whatsapp/CmListener
Zenvia Message https://api.roger365.io/api/whatsapp/ZenviaListener
Wireless Services Message https://api.roger365.io/api/whatsapp/WirelessServicesListener
MessageBird Will be automatically created after adding TouchPoint
Spotler message, postback, receipt https://api.roger365.io/api/whatsapp/SpotlerListener
Read more
Customize Layout
Setup - Social Messaging
Webchat TouchPoint
Customize Layout

How to customize the default layout to your own design

Download customWebchatOptions and change the extention into .js.

This is a copy of defaultWebchatOptions.js file and allows users to overwrite the styles by adding the ones they want.

The file must be hosted on your server and included before the defaultWebchatOptions.js file, like a JS script:

<script src="{customerBaseURL}/customWebchatOptions.js"></script>

Also, you can modify the file depending on how many facilities you want to give them. E.g. you can remove completely BotStyleOptions block meaning you will be able to change title and subtitle (text next to logo) and the look & feel for start and open buttons.

Tips how to complete the file for few items:

  • change title: uncomment title property and add the text wanted
  • change start button: there are 2 ways to do that
    • add an image: uncomment startWebchatImage property and add the absolute path of image
    • add HTML code: uncomment startWebchatHtml property and add your HTML code

(if both are filled in the image has priority)

  • change botAvatarImage: uncomment botAvatarImage property and add the absolute path of image
  • add initials instead of avatar: set the following options
botAvatarBackgroundColor: '#colorCode' //e.g.#FF0000
botAvatarImage: '', 
botAvatarInitials: 'AB', //only 2 letters
  • change look&feel for bubbleText: set the following options
bubbleFromUserBackground: '#BackgroundColorCode',
bubbleFromUserBorderRadius: 20,
bubbleFromUserTextColor: '#TextColorCode',

The image below shows which elements can be customized via customWebchatOptions.js file. All other components can be customized via CSS, for which you must write your own CSS files.

Customize Webchat Form

If you have added a pre Webchat form, you can also change the default layout. Underneath you’ll find the used CSS:

#wechatForm = preform
#webchatForm .message = headermessage
#webchatForm labels = input labels
#webchatForm Input = input veld
#webchatForm .button = send button

/* WebchatForm*/
#webchatForm {
    margin: 20px;
    border-radius: 15px;
    border: solid 1px grey;
    display: flex;
    flex-direction: column;
    background-color: rgb(240, 240, 240);
}

    #webchatForm .message {
        padding: 10px;
        margin-bottom: 5px;
        background: rgb(45,54,145);
        background: -moz-linear-gradient(135deg, rgba(45,54,145,1) 0%, rgba(77,214,176,1) 100%);
        background: -webkit-linear-gradient(135deg, rgba(45,54,145,1) 0%, rgba(77,214,176,1) 100%);
        background: linear-gradient(135deg, rgba(45,54,145,1) 0%, rgba(77,214,176,1) 100%);
        color: white;
        border-top-left-radius: 15px;
        border-top-right-radius: 15px;
        font-size: 14px;
    }

    #webchatForm .button {
        align-self: center;
        margin-top:auto;
        margin-bottom: 10px;
        font-size: 14px;
        padding: 6px 12px;
        color: white;
        display: inline-block;
        text-decoration: none;
        text-align: center;
        white-space: nowrap;
        vertical-align: middle;
        -ms-touch-action: manipulation;
        touch-action: manipulation;
        cursor: pointer;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        background-image: none;
        border: 1px solid transparent;
        border-radius: 5px;
        background-color: #4dd6b0;
    }

    #webchatForm .formInput{
        margin: 0px 10px;
    }

Read more
Add status message
Setup - Social Messaging
Webchat TouchPoint
Add status message

Status message

On the top of the webchat window, you can show users a status message. This can be a persistent message, which you can change on-the-fly, but also a message based on a schedule. Then you can show a message based on the schedule ‘open’ or ‘closed’.

You can configure messages in multiple languages. The language is automatically detected based on the language setting of the users’ browser. If the language cannot be detected, the default message will be displayed.

To configure the status messages:

  1. Open web browser and go to: https://admin.roger365.io
  2. Login with Microsoft 365 credentials
  3. Go to [Social Messaging], [TouchPoints]
  4. Click the edit icon right to website touchpoint (by default you have 1 Webchat TouchPoint available, but you can add more if you like)
  5. Select [+ Status Messages for Webchat] and select the Language
  6. Enter the Status Messages during closed hours en open hours.
  7. Click Save and Close

-> If you want to use a schedule to show an ‘open’ or ‘closed’message, make sure you have created a schedule and assign the schedule to the Webchat TouchPoint. You can select the schedule on the Webchat configuration page under the option “Assign a schedule…”

Read more
Webchat Parameters
Setup - Social Messaging
Webchat TouchPoint
Webchat Parameters

Load options

There are a couple of load options available for the webchat. To enable, declare an object on the page: “r365_webchat_options”. This object has the following properties:

fullScreen: boolean.
Opens webchat area with bigger height if true. False is default height.

conversationVariables: object.
When defined, this object is uploaded as conversation data for this conversation. This can be usefull when no startform is displayed, but you still want to have data from the client available in the flow.

startDirect: boolean.
When true, the startchat button is not displayed, but instead the chat proceeds to the next stage as if the enduser clicked the start chat button.

formCustomization: object (formCustomizationOptions).
Options to extend the pre chat form as you please.

Form Customization Options

addInputs: function(area).
Area is a jquery object to append the inputs to. This function is called when the prechatform is generated.

onValidate: function(conversationVariables).
This function is called when the user clicks the accept button on the prechatform. Use this function to validate your customizations. Return true if all validations pass, return false if not.

Also, update the conversationVariables object with the values you want to have available in your flow. Its your responsibility to generate error messages etc, if applicable.

Example load options

var r365_webchat_options = {
  'fullScreen': true,
  'conversationVariables': {'UserId': 'someusername'}
  'startDirect': true,
  'formCustomization': {
    'addInputs': function(area){
      area.append("<input id="myPrechatFormInput"… />");
    },
    'onValidate': function(conversationVariables) {
      var input = $('#myPrechatFormInput').val();
      if (input) {
        conversationVariables.myPrechatFormInput = input;
        return true;
      } else {
        //update your UI with an error message
        return false;
      }
    }
  }
};

Cookie Consent

To respect cookie consent, declare a function on the page: “r365_cookie_consent”, that returns either true (consent given) or false (consent not given)

example cookie consent

function r365_cookie_consent() {
  if ( /*cookies accepted*/ )
    return true;
  else
    return false;
}

Read more
Create adaptive card
Setup - Social Messaging
Microsoft Teams
Create adaptive card

What is an Adaptive Card?

When a new conversation arrives in a Microsoft Teams channel information about the conversation and the available action buttons are shown in an adaptive card. Based on your subscription you can configure which elements should be available on the card. This includes features but also in which datasource must be search to display CRM data in the adaptive card.

Create and assign an Adaptive Card

  1. In the ROGER365 portal go to [Social Messaging], [Microsoft Teams] and choose [-AdaptiveCards]
  2. On the right-top choose [+ Add AdaptiveCard]
  3. Choose the configured TouchPoint (available features will be displayed)
  4. Type in a description
  5. Select de desired features/components
  6. Click Save

Now assign the adaptivecard to the Microsoft Teams TouchPoint

  1. Go to [Social Messaging], [Microsoft Teams] and find your channel
  2. Edit the channel by clicking the blue edit button
  3. Select your created AdaptiveCard in the menu item named “Assign a AdaptiveCard…”
  4. Click Update to save the new setting

Read more
Connect Teams Channel
Setup - Social Messaging
Microsoft Teams
Connect Teams Channel

Connect Microsoft Teams channel to the ROGER365 Teams TouchPoint

You can watch the steps described underneath in this tutorial video

NOTE
:The admin portal menu has recently been updated and the video underneath doesn’t reflect all new changes

  1. Login into https://admin.roger365.io with your Microsoft 365 account
  2. Go to [Social Messaging], [Microsoft Teams] and choose +Add Teams Endpoint


Copy the Activation code to the clipboard by clicking the green square icon


In Microsoft Teams select the created channel and type [@ROGER] followed by a space (make sure ROGER changes into blue) and paste the Activation code and press [ENTER]. ROGER will answer you that the channel is connected succesfully and gives you the name of the TouchPoint.

Now go back to the ROGER365 .io admin portal to [Social Messaging],  [Microsoft Teams] and choose the new created Teams channel
Give the new channel a friendly name by selecting the blue edit icon from the Actions column
Click [Update] to confirm

Read more
Add ROGER365 app to Teams
Setup - Social Messaging
Microsoft Teams
Add ROGER365 app to Teams

Add ROGER365.io App to Microsoft Teams

There are two options to add the ROGER App to the Microsoft Teams client: 1) Distribute it globally in your tenant to all users via the Microsoft 365 Admin portal or 2) install it locally in the Microsoft Teams client. In case of the 2nd option this must be allowed by the Microsoft 365 Administrator.

You can watch the steps described underneath in this tutorial video

Option 1: Install locally

  1. Login into https://admin.roger365.io with you Microsoft 365 account
  2. Go to [Microsoft Teams] and choose [Add Teams Channel]
  3. Download the ROGER.ZIP manifest file
  4. In the Microsoft Teams client, click on the [Apps] icon. You can find it at the left bottom of the navigation bar
  5. Select the option [Upload a custom app] (If you don’t see this option, then this must be allowed by the Microsoft 365 Administrator) and select the ROGER.zip file
  6. Then (important!) don’t click Add, but select the arrow to see the pulldown menu and select ‘Add to Team’. Select the Team or channel which you would like to use for ROGER365

Option 2: Install globally

  1. Login into https://admin.roger365.io with you Microsoft 365 account
  2. Go to [Microsoft Teams] and choose [Add Teams TouchPoint]
  3. Download the ROGER.ZIP manifest file
  4. As a global Microsoft Teams go to the Microsoft Teams admin center:
  5. Choose [Teams Apps] > [Manage apps]
  6. Choose upload new app and choose select file.
  7. In the pop up browse and select the ROGER.ZIP file you and acknowledge the screen to get the upload started.
  8. Then go to your Microsoft Teams client, click on the [Apps] icon. You can find it at the left bottom of the navigation bar
  9. Search for the ROGER app and click it
  10. Then (important!) don’t click Add, but select the arrow to see the pulldown menu and select ‘Add to Team’. Select the Team or channel which you would like to use for ROGER365

After a successful upload it could take op to 24 hours before the app is visible in the Teams Apps. You can also logout/login into Teams to have the ROGER app directly available.

Updating the app

If you have to update the ROGER app, go to the Teams admin portal, find the ROGER app and click update.

Read more
AI Endpoints
Setup - Contact Center
AI Flow (Beta)
AI Endpoints
This feature is only available in the Enterprise subscription.

The AI Flow feature for Contact Center application of ROGER365.io enables powerful AI actions such as Transcript, Summary, Quality Assurance or Classification into your daily work. Recorded calls will be later processed by various AI action in the configured by portal admins manner.

The Audio Provider and Transcript Actions are mandatory to use AI Flow feature.

Disclaimers:

  • ROGER365 platform does not use its own bots in this feature, you can only use AI bots created by Microsoft (OpenAI and other AI services)!
  • All Microsoft AI services do have a cost aspect (including transcription).
  • ROGER365 does not have an influence on the quality of used model. Results may vary.
There might be situations where your AI model will be blocked by Microsoft if the conversation contains violent content or other factors that violate the Microsoft Terms of Service.

To use AI Flow feature, portal administrators must first:

  1. Create Audio Provider Action – Audio Providers
  2. Create Speech to Text Endpoint for Transcript Action – AI Endpoints
    1. Optionally you can create endpoints for Summary, Sentiment, Quality Assurance and Classification Actions – AI Endpoints.
    2. (optional) Create Quality Assurance Form – Quality Assurance Forms
    3. (optional) Create Classfication Action Config – Classfication Action Configurations
  3. Create AI Flow – Flows
Processing of each AI Flow action is starting up around 1 minute after call has ended.

AI Flow errors are logged on the Logging admin page. If an AI Flow instance fails, it can be rerun on the Flows admin page. After three unsuccessful attempts the record is marked as Abandoned and won’t be rerun again.

You can retrieve results of AI Flow and/or each Action, using AI Flow API documentation.

Note: Results of Summary action can be seen (and/or edited) in Customer Jounery tab inside of Agent Assist’s Last Interaction section.

Read more
Classification Action Configurations
Setup - Contact Center
AI Flow (Beta)
Classification Action Configurations

Prerequisite: Deploy text embedding model within created earlier Foundry resource group (used in Azure OpenAI Endpoint). Keep in mind the cost aspect for using text embedding model.

The Classification Action Configurations (part of the AI Flow enterprise feature) enables portal administrators to define clear instructions (descriptions) for selected Classification items (labels). These instructions are passed to created earlier text-embedding model, which evaluates completed call transcripts and automatically assigns the appropriate classifications. This AI powered action reduces the need for manual call classification, shortens processing time, and helps teams stay focused on their primary responsibilities by automating repetitive labeling tasks.

The AI Classification configuration must be assigned to created earlier Flow.

To create configuration for Classification action, navigate to “Classification Action Configurations” page in ROGER365.io admin portal and press “+Add” button.

  • Name: Provide a name for the AI Classification config which will be visible at Flows admin page.
  • Azure Open AI Endpoint: Select from list created earlier Azure Open AI Endpoint.
  • Deployment Name: Provide deployment name of the text embedding model (unique within your Foundry resource group). If not altered, it’s the name of the text embedding model, for example – “text-embedding-ada-002”.
  • Api Version: Provide API version generated by the deployed model, version can be found in Endpoint’s URL within Microsoft Foundry portal.
  • Options: This section allows to select created earlier Classification items, upon selection portal admins can provide instructions (descriptions) for each Classification item.
    • Providing clear and relevant details is crucial for the AI model to accurately classify the customer call interactions!

For maximum accuracy of the model, portal administrators must avoid high similarity levels between each classification item. Alike descriptions will be pointed out at the top of the configuration window, also marking relevant text in red for quicker identification.

After creation, it is possible to test the accuracy of the model (according to its instructions) directly from the same admin page using “Test” button. It allows for even greater tuning of your text embedding model.

You can check whether specific call interaction has been automatically labeled by AI Flow’s Classification action via:

Important Notes:

  • Manual Classification by an agent does not trigger the AI Flow’s Classification action.
  • Accuracy of the AI Classification action is fully depended on – received call transcript, quality of text-embedding model and given instructions. The ROGER365.io platform does not have direct influence over received results.
Read more
Quality Assurance Forms
Setup - Contact Center
AI Flow (Beta)
Quality Assurance Forms

The Quality Assurance Forms page allows you to create QA Forms used for AI-powered evaluation of conversation transcripts. These forms are part of an optional Quality Assurance Action and utilize the Chat Endpoint type of AI integration.

How it works

Each QA form includes:

  • AI Instruction: A prompt that tells the AI model how to handle the transcript and questionnaire. We provide a example instruction to get you started easily, please note that you might need to change this instruction in order to work in specific customer scenario’s.
  • Example Questions and Answers: Used to guide the AI in scoring the conversation.

The built-in example AI instruction expects transcripts to contain meaningful dialogue (e.g., real customer-agent scenarios). If the transcripts are of good quality, the AI should return a structured response as expected.

Note: The AI instruction should always be tailored to your use case. ROGER365.io includes a ready-to-use example form to help you get started, but customizing the AI instruction is essential for best results. ROGER365.io support does not cover writing or optimizing AI instructions.

Steps to Create a QA Form

  1. Go to the Quality Assurance Forms section in the Admin Portal.
  2. Click + Add to create a new form.
  3. Provide a Name and Description.
  4. Enter your custom AI Instruction.
  5. Add one or more Example Questions with sample answers to guide the AI model.

Use the provided example form as inspiration, then adjust it to fit your own QA criteria and business context.

Read more
Audio Providers
Setup - Contact Center
AI Flow (Beta)
Audio Providers

Audio Provider Action is mandatory for AI Flow feature to work.

This action is responsible for getting the recording of a call which will be then later be processed by configured AI Actions. There are two available Audio Provider types – Oak and Tollring.

To create Audio Provider configuration navigate to “Audio Providers” admin page and press “+Add”.

Fill in the description (name) of your Audio Provider configuration; the rest should be filled in according to the OAK Clarify Voice Recording Integration or Tollring Compliance Recording solution section of the General documentation page.

Oak
Tollring

Depending on aquired license, the Tollring can provide their own call trascription that can be used in the Transcript AI Flow action. Check your Tollring license before enabling “Provides Transcript” option. The Tollring Audio Provider can be used with the transcription service provided by the Microsoft.

Read more
Flows
Setup - Contact Center
AI Flow (Beta)
Flows

The Flows page lets you create AI Flow configurations that are used in agent calls. From here, you can also rerun failed AI Flow instances. Each AI Flow has a rerun button showing the number of Failed instances, alongside counters for how many records are currently Queued, In Progress, or Abandoned. After three unsuccessful rerun attempts, the record is marked as Abandoned and won’t be rerun again.

After configuring mandatory Audio Provider & Transcript actions (or including optional actions), navigate to “Flows” page at ROGER365.io admin portal:

  • Description – name of your AI Flow configuration
  • Direction – for which call direction the AI Flow will be initiated
  • Webhook Trigger Condition & Webhook URL – defines when the webhook is triggered during the call, and the endpoint (URL) to which the webhook request is sent

After this step, the Audio Provider and Transcript configurations must be assigned in the Transcript Action panel. If configured, assign optional configurations to the corresponding panels.

Transcript, Summary, and Sentiment actions have optional settings available. More information can be found in the Microsoft documentation.

Beside of that, it is possible to decide whether results of each actions supposed to be saved (in order to retrieve them later via APIs).

Each AI Action does have certain functionality:

  • Transcript Action – responsible for transcribing the recorded call based on the recording delivered by the selected Audio Provider configuration.
    • Notes: The Tollring Audio Provider can provide its own Transcription service. Before enabling it, make sure your Tollring license includes this feature and the “Provides Transcript” option is enabled in the Tollring Audio Provider configuration. The Tollring Audio Provider can be used with the transcription service provided by the Microsoft.
  • Classification Action – is responsible for automatic Classification of the call based on defined instructions in created earlier Classification Action Configurations.
  • Summary Action – is responsible for summarizing entire call.
  • Sentiment Action – is responsible for assesing sentiment score based on tone of the conversation.
  • Quality Assurance Action – is responsible for evaluating call interactions with customers based on various criteria defined in created earlier Quality Assurance Form.

Created AI Flow must be assigned. This can be done in two ways:

  1. Assign AI Flow to created earlier Agent Profile. This will enable an AI Flow for every agent assigned to Agent Profile.
  2. Assign AI Flow to specific agent via Agents admin page.

Portal admin does have option offering an agent a button in Agent Assist tab to opt-out AI Flow for the current call, this option may be useful when certain conversation should not be processed by various AI actions. More information on Agent Assist documetation page.

Read more
Last Conversation Data
Setup - Contact Center
Graphical Designer
Last Conversation Data
This feature is only available in the Enterprise subscription.

Description

Component Description
Last conversation data This action looks up the most recent conversation associated with the caller’s phone number within a configurable time window (defined in hours). If a matching conversation is found within that window, the action returns a set of properties describing that interaction.

Node Properties

Node Properties Description Input type
Within Hours The number of whole hours the system looks back to retrieve the caller’s most recent conversation data. Specify 0 to apply the maximum lookback period of 30 days. Integer or Variable

Mapping

Mapping Description Value
AgentId Select the string variable for storing an Entra ID of the last connected Agent (if any). Select from list
LastQueue Select the string variable for storing the last queue (if any). Select from list
LastCallType Select the string variable for storing the last call type (inbound/outbound) (if any). Select from list
LastSurveyScore Select the integer variable for storing the last survey score (if any; 1-5). Select from list
LastSentimentScore Select the integer variable for storing the last sentiment score (if any; “0 = Positive”, “1 = Neutral”, “2 = Negative”, “3 = Mixed”). Select from list
LastConversationDateTime Select the datetime variable for storing the last conversation date and time (if any). Select from list

Read more
Call to SMS (Beta)
Setup - Contact Center
Graphical Designer
Call to SMS (Beta)

This feature is only available in the Business and Enterprise subscriptions.

Disclaimer: Before proceeding make sure that created earlier SMS TouchPoint can send messages out.

Description

Component Description
Call to SMS (Beta) This action sends an SMS to the caller’s phone number to continue the conversation via chat. The recipient must reply to the SMS to start the social conversation.

Node Properties

Node Properties Description Input type
Sms Touchpoint Select configured earlier SMS TouchPoint for sending out an SMS. Select from List
Text The text message to be sent to the caller. String

Read more
Store feedback
Setup - Contact Center
Graphical Designer
Store feedback

Disclaimers: Usage of DTMF action is required. To trigger this action only for the calling side, create check via WaitForEnd and If actions.

This feature is only available in the Business and Enterprise subscriptions.

Feeback scores can be reviewed in the Agent Assist, or be exported via FeedbackExport API.

Description

Component Description
Store feedback Action giving a caller option to give feedback score from 1 to 5, based on DTMF input.

Node Properties

Node Properties Description Input type
Description Label/description for the feedback score used for identification at the Agent Assist/API. String
Feedbackscore Expression to convert value of the DTMF’s String variable into integer. Expression or variable

Read more
Cancel Virtual Call
Setup - Contact Center
Graphical Designer
Cancel Virtual Call
This feature is only available in the Enterprise subscription.

Description

Component Description
Cancel Virtual Call Action to cancel a Virtual Call that is queued in one of the queues.

Node Properties

Node Properties Description Input type
Call Id Insert integer variable which is mapped to Get Virtual Call Info‘s Id property. Select from list

Read more
Get Virtual Call Info
Setup - Contact Center
Graphical Designer
Get Virtual Call Info

This feature is only available in the Enterprise subscription.

Description

Component Description
Get Virtual Call Info Action to retrieve information about queued Virtual Calls and route them based on the detected Virtual Call in one of the queues.

Link Properties

Link Properties Description Input type
Default This link is followed when the caller is not in Virtual Call (Wait) in any of the queues. Default
Queued This link is followed when the caller is in Virtual Call (Wait) in any of the Queues. Queued
Error This link is followed when an error occurs during the action. Error

Mapping

Mapping Description Value
QueuePosition Select the integer variable for storing the queue position of the Virtual Call. Select from list
Id Select the integer variable for storing the Id (CallId) of the Virtual Call record. Select from list
EnqueuedTime Select the datetime variable for storing the enqueded date time of the Virtual Call. Select from list
QueueName Select the string variable for storing the Queue name of Virtual Call record. Select from list
Amount Select the integer variable for storing the amount of Virtual Calls. Select from list

Read more
Make Call Virtual
Setup - Contact Center
Graphical Designer
Make Call Virtual
This feature is only available in the Enterprise subscription.

Description

Component Description
Make Call Virtual Gives the caller an option to place a callback in the virtual wait queue, keeping their position in line. This only happens when there are no available agents – meaning every agent’s status is something other than Available (Busy, Away, Offline, etc.). If even a single agent is Available, this action won’t trigger.

This feature operates only with Set Variable connected underneath, variable used in SetAction must be the type of boolean. In screenshot example, expression for “Set IsVirtualCall” is true.

This action can only be used inside an active Queue action, meaning the caller is already waiting in the Queue’s loop for an available agent. The Queue and Make Call Virtual actions must both be part of the same callflow. If an agent has already been invited to the call, Make Call Virtual won’t work – even if that agent has not answered yet.
Read more
OpenAI
Setup - Contact Center
Graphical Designer
OpenAI

Edit JSON Content overview:

This feature is only available in the Enterprise subscription.

Before configuring this action you have to create Azure OpenAI resource at Microsoft Azure, you can find description in this Microsoft article – Create and deploy an Azure OpenAI Service resource.
Most of the configuration part must be done in Microsoft Foundry portal.

Microsoft Azure OpenAI is a preview feature, please be aware of unexpected results, and test thoroughly before implementing to production environment.

Description

Component Description
OpenAI Action for implement advanced Microsoft Azure OpenAI feature.

Node Properties

Node Properties Description Input type
Azure OpenAI resource URL address (Endpoint) of your Azure OpenAI resource. Depending on used SDK, the URL address should look following:
Azure OpenAI SDK = “https://{ResourceName}.openai.azure.com/openai/deployments/{ModelDeploymentName}/chat/completions?api-version=2025-01-01-preview”
OpenAI SDK = “https://{ResourceName}.openai.azure.com/openai/v1/chat/completions”
Note: API version for “Azure OpenAI SDK” can always change, check out your OpenAI resource at Microsoft Foundry portal.
String
API Key API Key of your Azure OpenAI resource (without the quotes). String
Evaluate Jsoncontent The value in JSON Content will be evaluated when this is checked. If the JSON Content is evaluated, it should also contain the prompt itself. Using evaluation, the resulting JSON can be altered in more ways than just the prompt field. Checkbox
Prompt The prompt(s) to generate completions for, or use variable for inputting user’s text which model will response to according to JSON Content. String
Edit JSON Content Copy Samle JSON Code from Microsoft Foundry with configured Chat completion method. Preferably it should contain prompt (instruction) for OpenAI’s model. When evaluated, the resulting string should be valid JSON, thus, double quotes should be escaped and variables used, should not contain unescaped quotes as values. Ex: “{\”property\”:\””+variable.Text+”\”}”, where variable.Text should not contain any “.
Notes: In case of using “OpenAI SDK”, the JSON Content must include “model” property – for instance: \”model\”: \”gpt-5-nano\”.
JSON editor may show that provided JSON is incorrect, this message is informational and can be disregarded as far as the action itself does work.
String or variable*

* Variable in JSON Content can be used when Evaluate Jsoncontent option is enabled.

Mapping

Mapping Description Value
id Select string variable to request information about the unique identifier associated with this completions response. Select from list
model Select string variable to request information about OpenAI’s machine learning model. Select from list
result Select string variable for mapping model’s response. Select from list
finish_reason Select string variable for mapping model’s finish reason. Select from list

Setting up variable for result property is mandatory for action to work!
Read more
Last agent
Setup - Contact Center
Graphical Designer
Last agent

This feature is only available in the Enterprise subscription

Description

Component Description
Last agent Action to offer incoming call to the last Teams user who talked with customer, in defined period of time. Last agent is determined on inbound and outbound calls.

Node Properties

Node Properties Description Input type
Within Hours The time in hours which the system will look back to determine the last agent. Integer or Variable

Mapping

Mapping Description Value
AgentId Select the string variable for storing the last AgentId. Select from list

Read more
Text to Speech
Setup - Contact Center
Graphical Designer
Text to Speech

This feature is only available in the Enterprise subscription. To use this action, you have to create a Azure Cognitive Service resource in your tenant. You can find the description Create Azure Speech to Text Resource v1.0, language and voice support for speech service is described in this Microsoft article.

Description

Component Description
Text to Speech Play text from a fixed string or variable value to the caller

Node Properties

Node Properties Description Input type
Text Fixed text to pronounce or value of a variable String or Variable
Speech Language Enter the language code String (https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support?tabs=tts)
Speech Voice Enter the Text to Speech voice String (https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support?tabs=tts)
Speech Service Key Enter the key obtained from the Azure Portal. Click here for a description String
Speech Service Region Enter the Service Region obtained from the Azure Portal String

Read more
Speech to Text
Setup - Contact Center
Graphical Designer
Speech to Text

This feature is only available in the Enterprise subscription. To use this action, you have to create a Azure Cognitive Service resource in your tenant. You can find the description Create Azure Speech to Text Resource v1.0, language and voice support for speech service is described in this Microsoft article.

Description

Component Description
Speech To Text Record speech from a caller and transform it into text, so it can be used as a variable

Node Properties

Node Properties Description Input type
Play Prompt Option to play an audio prompt Select from list
Select Prompt Select the audio prompt to be played. The audio prompts can be created/uploaded in the audio prompt menu option Select from list
Max Silence Timeout Seconds of caller silence before the recording stops.
Note: This functionality requires that your SBC supports the Comfort Noise (CN).
Integer
Max Record Duration Amount of seconds to record Integer
Play Beep Play a beep before the caller can start speaking Checkbox
Digit to end recording Instead of waiting for the ‘Max Record Duration’ timeout, a digit can be entered to end the recording String
Speech Service Key Enter the key obtained from the Azure Portal. Click here for a description String
Speech Service Region Enter the Service Region obtained from the Azure Portal String
Speech Language Enter the language code String

Read more
VoiceRecording
Setup - Contact Center
Graphical Designer
VoiceRecording

Description

Component Description
VoiceRecording Action to record a short audio message from a caller and send it to a specified email address

Node Properties

Node Properties Description Input type
Play Prompt Select an audio prompt to play prio to record the message Select From List
Max Silence Timeout Seconds of caller silence before the recording stops. Maximum value is 120 seconds.
Note: This functionality requires that your SBC supports the Comfort Noise (CN).
Integer
Max Record Duration in Seconds Enter the maximum amount of seconds a recording can be. Maximum value is 120 seconds. Enter digit
Play Beep Option to play a beep when the recording starts Checkbox
Digit to end recording A digit which the caller can enter to stop the recording
We strongly advise to configure it with Play Prompt to inform caller how to end recording, else there can be unexpected results.
eg. 0123456789*#
Email Configuration Select created Email Configuration to use its email address as the sender. Select From List
Include CRM This option includes the available CRM information of the caller and adds it to the email Checkbox
Email Addresss Email Address where the recording must send to String (“abc@abc.com”) or Variable
Email Subject Subject of the email String or Variable
Email Body Body of the email String or Variable
Read more
Switch
Setup - Contact Center
Graphical Designer
Switch

Description

Component Description
Switch With this component you can create a multiple links from a value.
For example if you create a DTMF voice menu, you can use the variable which is used to store the DTMF input to create multiple links.

Node Properties

Node Properties Description Input type
Expression Expression usually is a callflow variable. Depending on the scenario, can be used in combinations such as “VariableA.ToLower()”, or “VariableB.Contains(“expected_string”)”. Variable (string)

Link Properties

Link Properties Description Input type
Result This link is followed when entered result condition matches the result value of configured expression.
Note: Used without double quotes marks.
Variable (string)
Default This link is followed when result of the expression is not match with configured Result link conditions (else function). n/a
Read more
Subflow
Setup - Contact Center
Graphical Designer
Subflow
Variables which are used in the main- and subflow must be created with exactly the same name in both flows.
Make sure a subflow also contains a START and END action. When the subflow hits the END action, it will return to its parent flow

Description

Component Description
Subflow Action With this component you can create a subflow to a main flow. For example if you would like to route incoming calls based on the country code of the caller phone number. In this case the IF statement “Call.Caller.StartsWith(“tel:+31”)“ checks if the number starts with +31, then it routes the conversation to a subflow named ‘Call NL’)

Node Properties

Node Properties Description Input type
Flow Select the callflow which should be used as the subcallflow Select from list

Read more
Set Variable
Setup - Contact Center
Graphical Designer
Set Variable

Description

Component Description
SetVariable This component can set a variable to a specific value.

Node Properties

Node Properties Description Input type
Expression Assign a value to a variable. Use the format: “<var1> = <expression>”, so the variable to assign on the left side, followed by an equal-sign and the expression to evaluate. Eg: varA = (varB + 2).ToString(). variableA = <expression>
Select variable to update Select desired variable to update its value. Select from list

Expression field can use C# expressions
Read more
Send Webhook
Setup - Contact Center
Graphical Designer
Send Webhook

Description

Component Description
Send Webhook This component send a webhook to an external HTTP listener (POST). This can, for example, be an Microsoft Logic App or Power Automate flow. For the API details, refer to the Webhooks documentation page.

Node Properties

Node Properties Description Input type
URL Expression Insert the URL of the destination where the Webhook should deliver data. “url”
Custom Header Epression Set a header, for instance for an authorization header String
Custom Property Expression Can be set to send custom properties from the call flow

NOTE

If you are creating a Microsoft Logic-app or Power Automate flow, then keep in mind when you define the JSON scheme that certain values could contain a ‘NULL’ value. This should be included in your JSON schema. As an example:

"EndedDateTime": { "type": ["string", "null"] }

Read more
IF
Setup - Contact Center
Graphical Designer
IF

Description

Component Description
IF The if statement is a logical, conditional expression that evaluates a condition that should return a true or false value

Node Properties

Node Properties Description Input type
Statement Here you can use a method (like !String.IsNullOrEmpty(variable), which will return true if the variable contains a value) to get a true or false value <expression>

Link Properties.

Link Properties Description Input type
Type The link to follow when the statement returns a TRUE/FALSE value TRUE/FALSE
Error The link to follow when an error occurs n/a

Read more
HTTPAction
Setup - Contact Center
Graphical Designer
HTTPAction

Description

Component Description
HTTP Action for sending a HTTP command to an external App. In this way external values can be pulled into the callflow. For instance you can consult a ticketing system to route the call to the employee working on the ticket.

Node Properties

Node Properties Description Input type
Url Expression String variable with a valid URL or a string value with a valid URL. String
Method Select from a list the HTTP request method. Select From list
Header Name Set a header, for instance validation header. String
Header Value Set a value for configured header. String
Body Data to include in the HTTP request (for instance, JSON payload). String
Timeout in Seconds Set timeout in seconds for your request. Integer

Mapping

Mapping Description Value
Result Select the string variable to map Result property of HTTPAction.

Note: If the property coming from external side does have different name than ‘Result’ (for instance “property1″: ”stringvalue1″). The Mappings of HTTPAction can be set in following way

Read more
Wait Timer
Setup - Contact Center
Graphical Designer
Wait Timer

Description

Component Description
Wait Timer Action to wait a specific amount of seconds

Node Properties

Node Properties Description Input type
Wait Time in Seconds Specify the amount of seconds the wait time action should wait Integer

Read more
CRM
Setup - Contact Center
Graphical Designer
CRM

Description

Component Description
CRM Action to resolve a caller to a CRM contact using one or more CRM replicators defined on the platform. Supports multiple data sources and additional lookup conditions for advanced contact resolution.

Node Properties

Node Properties Description Input type
Select Data Source Select one or more CRM replicators to search the contact in. Replicators are evaluated in the configured order, if no match is found, the next source is tried. To change the order, press and hold the ✥ icon to drag and drop. Select From List
Select variable to map amount of contacts Select the integer variable to store the amount of found contacts Select from List

CRM Conditions

CRM Conditions Description Input type
Field Select the CRM property to match against (e.g. DisplayName, PhoneNumber0, Custom0–2). Select From List
Operator Select the comparison operator: Equals, Not Equals, Contains, or Starts With. Select From List
Value / Variable expression A static value or flow variable used to match the selected Field. Multiple conditions are combined with AND, all must be met for a contact to resolve. String or variable

When multiple CRM actions are configured within a flow, the last executed CRM action takes precedence and applies its contact details.

Read more
Cancel Task
Setup - Contact Center
Graphical Designer
Cancel Task

Description

Component Description
Cancel Task Action to cancel specific parallel task. Useful in the queue loops when you do parallel actions and want to do a conditional transfer.

Node Properties

Node Properties Description Input type
Select Queue Select the queue on which the action should be performed. The queues can be created on the queue menu item Select From List

Read more
Cancel all Tasks
Setup - Contact Center
Graphical Designer
Cancel all Tasks

Description

Component Description
Cancel All Tasks Action to cancel all parallel task. Useful in the queue loops when you do parallel actions and want to do a conditional transfer.

Read more
Get Queue Info
Setup - Contact Center
Graphical Designer
Get Queue Info

Description

Component Description
Get Queue Info Action to get the queue position for a call and place it in a variable. This information can be used to create scenario’s like a callback question in case of a have load on the queue.

Node Properties

Node Properties Description Input type
Source Defines the source for retrieving queue data. Select Queue when the action is used outside of a Queue action. Select Request when the action is placed inside a Queue’s loop. In that case, assign an integer variable to RequestId property in both the Get Queue Info and Queue actions. Select from list
Select Queue Select the queue on which the action should be performed when the Queue is selected as a Source. Select from list
Select RequestId Select the variable in which the queue action set the requestId. This is mandatory for the action to work while the Request is selected as a Source. Select from list
Language Aware Routing Enterprise feature only. When enabled, the action returns data only for agents who have a Language configured, filtered to match the current call’s language. The call’s language is determined by the Resource Account default and can be overridden with the Set Language action. Checkbox

Mapping

Mapping Description Value
QueuePosition Select the integer variable for storing the queue position of the call. Select from list
EnqueuedTime Select the datetime variable for storing the enqueded date time of the call. Select from list
AgentsLoggedIn Select the integer variable for storing the amount of logged in agent. Select from list
AgentsAvailable Select the integer variable for storing the amount of available agents. Select from list
ExpectedWait Select the integer variable for storing the expected wait time for the call to be served from the last hour. Select from list

Read more
WaitForEnd
Setup - Contact Center
Graphical Designer
WaitForEnd

Description

Component Description
Wait for End Action to wait until the agent or caller ends the call. This action can be used only with Queue action and its AgentConnected link.

Node Properties

Node Properties Description Input type
Azure Ids To Ignore Optionally exclude specific Object IDs of Application Instance(s) to proceed with the next action in the CallFlow.
Example: “<<guid1>>,<<guid2>>,<<guid3>>“
String

Mapping

Mapping Description Value
OriginalCallerActive Select the boolean variable for storing the information whether original caller is still active in the call.
Portal admins can use this boolean variable in the If action (connected below Wait For End) to adjust callflow behavior based on the caller’s presence.
Select from list

Read more
Set language
Setup - Contact Center
Graphical Designer
Set language

Description

Component Description
Set Language Action to set the Language to be used for playing the correct audio prompt for the call

Node Properties

Node Properties Description Input type
Select language Choose the language to be set for this call Select from list
Read more
Safe Transfer
Setup - Contact Center
Graphical Designer
Safe Transfer

Description

Component Description
Safe Transfer Action to transfer the call to a teams user or external phone number. Optional in includes a timeout when call is not answered

Node Properties

Node Properties Description Input type
Redirect to External Phone Number or Teams user Select from list
Phone number Conditional input based on redirect to field setting. The phone number in E164 format to transfer to. Can be a variable or a sting (for instance “+31612345678”) String
Search in Group Conditional input based on redirect to field setting. Azure AD group to select the user. This field is not mandatory Select from list
Select person Conditional input based on redirect to field setting. Azure AD user to transfer the call to. Select from list
Ring Timeout Amount of seconds when timeout is reached, when call is not answered. If left empty – 30 seconds. Integer
Select Prompt Select Audio Prompt which will be played during transfer operation. Select from list

Read more
Schedule
Setup - Contact Center
Graphical Designer
Schedule

Description

Component Description
Schedule Action to determine open / closed or holiday based on schedule

Node Properties

Node Properties Description Input type
Choose A Schedule Choose the schedule for the action. The schedule can be created in the schedule menu Select from list

Link Properties

Link Properties Description Input type
Open This link is followed when the current datetime of the call is within the openings hours of the schedule Open
Closed This link is followed when the current datetime of the call is outside the openings hours of the schedule Closed
Holiday This link is followed when the current datetime of the call is within a exception with the option holiday configured in the schedule. If the attached schedule doesn’t have holidays configured, the closed link will be used Holiday

Mapping

Mapping Description Value
labels This value returns the associated label(s) in a comma separated form. variable (string)

Read more
Reject
Setup - Contact Center
Graphical Designer
Reject

Description

Component Description
Reject Action to reject a call. For example: This could be used to create a blacklist. The logic for determining the caller is on the blacklist should be created earlier in the call flow.

Read more
Transfer
Setup - Contact Center
Graphical Designer
Transfer

Description

Component Description
Transfer Action to transfer the call to a teams user or external phone number

Node Properties

Node Properties Description Input type
Redirect to External Phone Number or Teams user Select from list
Phone number Conditional input based on redirect to field setting. The phone number in E164 format to transfer to. Can be a variable or a sting (for instance “+31612345678 ”) String
Search in Group Conditional input based on redirect to field setting. Azure AD group to select the user. This field is not mandatory Select from list
Select person Conditional input based on redirect to field setting. Azure AD user to transfer the call to. Select from list

The transfer action is depending on your SBC configuration and/or your carrier to work properly. The action should be able to set the “from caller”. For most carriers this is only allowed when you have an active inbound call, in other scenario’s the caller ID might be wrong which should be investigated on SIP level.

Read more
Merge
Setup - Contact Center
Graphical Designer
Merge

Description

Component Description
Merge This action merges two paths into a single path. The flow will wait for all incoming paths to complete before proceeding with further execution.

Read more
Play Audio Prompt
Setup - Contact Center
Graphical Designer
Play Audio Prompt

Description

Component Description
Play Audio Prompt Action to play an audio file to the caller.

Node Properties

Node Properties Description Input type
Select prompt Select the audio prompt to be played. The audio prompts can be created/uploaded in the audio prompt menu option Select from list
Stop Playing After X Seconds Stop the audio prompt after the amount of seconds specified here. This can be used when this component is used for background music / Music while in the Queue Select from list

Read more
DTMF
Setup - Contact Center
Graphical Designer
DTMF

Description

Component Description
DTMF Action for getting user input through DTMF (dual tone multi-frequency). This can be used to create an IVR (Interactive Voice Response) menu, or collect digits and put them in a variable

Node Properties

Node Properties Description Input type
Method Use Fixed Length if an users’ input always has the same length. End Digit stops the users’ input when a specific digit is received. For example # Select from list
Prompt to Play Select an audio prompt to be played for the DTMF action Select an audio prompt from the list or create a statement
Amount of digits Conditional input based on Method field. Number of digits to be entered by the caller Integer
End digit Conditional input based on Method field. End digit to end the DTMF input (for instance the #) String
Amount of seconds allowed between digits Specifies the amount of seconds after users’ input when the DTMF action times out and activates the timeout link Integer
Accepted Input Defines which values are allowed to be entered by the caller 01234567890*#

Link Properties

Link Properties Description Input type
Default This link is followed after a successful DTMF Input Default
TimeOut This link is followed when the DTMF action triggers a timeout based on the Amount of Seconds Allowed Between Digits field Timeout

Mapping

Mapping Description Value
Result The value of the DTMF input by the caller String

Read more
Disconnect
Setup - Contact Center
Graphical Designer
Disconnect

Description

Component Description
Disconnect Action for disconnecting the caller.

Failure to use this action (depending on the scenario) may leave the caller in an indeterminate state which can result in a dead call.
Read more
The basics
Setup - Contact Center
Graphical Designer
The basics

The basics

Next to various types of actions, there are a couple of basic elements you must or can use in every flow. Those are described underneath using this example.

Start Node

Every callflow starts with the start node. This node represents the start of the call flow. This is a mandatory element.

End Node

When the call reaches this node, the call is completed. This is like the start node a mandatory element.

Accept

The accept action is for picking up the call by our platform. This action is needed to actually do something with the call, like playing an audio prompt. This is a separate action, because maybe you want to add a webhook before the accepting of the call by the call center.

Read more
Power Frame
Setup - Contact Center
Queues
Power Frame

Power frame URL is being triggered on the Agent App when a new call is offered to an agent. Power frame option can be used at the Queues of Contact Center, and Social Messaging.

Available by default URL parameters for Power Frame

Contact Center:

{callId}
{phonenumber}

Social Messaging:

{conversationId}

CRM available URL parameters are listed in documentation page about Custom CRM Replicator – section POST JSON (remember about curly brackets).

You can also use the callflow variables on the Power frame. When you have a variable VAR1 then you can use this in the Power frame URL https://www.example.com?query1={VAR1}

Information about developing apps for power frame

The power frame supports cookies for authentication. However, the power frame is hosted inside an iframe and security restrictions do apply. Eg., if you use an external authentication provider (like Azure) they generally won’t allow the login screen to be displayed in an iframe. (You are able to work around this if you set the cookies elsewhere, like adding a tab in the teams client, or logging in separately in the web client). Furthermore, cookie same-site restrictions do apply. When the same-site policy is strict, or lax, the powerapp won’t send any cookies as the top document URL wont be the same site.

If you want to use your own authentication mechanism. The most straight forward way at this time is to use forms authentication, with samesite=none cookies

For example, using Visual Studio, just create a new ASP.NET Core Web App, with Authentication type “Individual accounts”. This will create a web application with forms authentication (set the database connection and run migrations to generate the tables.) (Note: the default project uses RequireConfirmedAccount=true. For accounts to work, set this to false, or update the entry AspNetUsers.EmailConfirmed). To configure the site to work, you have to disable the X-Frame-Options and set cookie SameSite=None, Secure=true. For an ASP.NET Core Web application, add the following code before builder.Build();

builder.Services.AddAntiforgery(options =>
{
	options.SuppressXFrameOptionsHeader = true;
	options.Cookie.SameSite = SameSiteMode.None;
	options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
});

builder.Services.ConfigureApplicationCookie(options =>
{
	options.Cookie.SameSite = SameSiteMode.None;
	options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
});

You can now add the site to a queue and register and log in.

Read more
Create App Registration for Attendant Console
Setup - Contact Center
General
Create App Registration for Attendant Console

To enable the Attendant Console feature, an App registration must be created in the customer’s Azure Portal. We have created a PowerShell script or you can follow the manual creation.

Option 1: Automated PowerShell Script (preferred)

Execute this PowerShell script (as Global Admin): Download Script

When the script has executed successfully, you have to manually ‘Grant Admin Consent’. Scroll down below to: Grant Admin Consent and Configure Appid

Option 2: Manual Creation

  • Login to the Azure Portal via https://portal.azure.com
  • In the search bar on top, search for ‘App Registration’. Then click the found result ‘App registrations’

Enter a name

ROGER365.io Attendant App

Choose

Accounts in this organizational directory only (ROGER365.io only – Single Tenant)

Redirect URL - Choose Single-page application (SPA) and provide following URLs

https://admin.roger365.io/ContactCenterApp/auth-end
https://admin.roger365.io/portal/Auth-end

-> Now click the “REGISTER” button

  • Then click “+ Add a permission”
  • Choose “Microsoft Graph”
  • Choose Delegated Permissions and enable the following permissions:
    • OpenId Permissions
      offline_access
      openid
    • Calendars
      Calendars.Read
    • Contacts
      Contacts.Read
    • Group
      Group.Read.All
    • People
      People.Read
    • Presence
      Presence.Read.All
    • Sites
      Sites.Read.All
    • Users
      User.Read
      User.Read.All
      User.ReadBasic.All

Click the “Add Permission” button

Grant Admin Consent and Configure Appid

  • Click “Grant admin consent for ROGER365.io” and confirm with ‘Yes”

Now, all permissions should be granted

Select ‘Authentication’ on the left navigation menu and check these two options:

  • Access Token (used for implicit flows)
  • ID tokens (used for implicit and hybrid flows)

Then press the SAVE button.

Finally, copy the Application (client) ID and paste it in the ROGER365.io admin portal:

Read more
Subscriptions
How to use
Subscriptions

Subscription types

ROGER365.io offers various types of subscriptions which include both our Social Messaging and Contact Center functionality. Depending on the features you can choose which subscription fits best to your needs. The minimum subscription period is 12 months.

Check our latest subscriptions here: https://www.roger365.io/Subscription

Social Messaging
For this functionality we offer a consumption model based on the amount of conversations which are handled. Each subscription already included an amount of conversations. You can purchase additional conversations packs. A conversation is counted from the start until the end and can contain multiple messages. A conversation is ended when the Teams agent closes the call, or automatically after a specific time period.

Contact Center
Next to the subscription you choose, you pay per configured queue. A queue can have a maximum of 50 agents. For every queue you can configure 3 resource accounts.

Every subscription supports an amount of maximum concurrent calls. If needed this can optionally be expanded.

Plan Concurrent calls
Basic 10 concurrent calls
Business 30 concurrent calls
  • optional upgrade to 50
  • optional upgrade to 75
Enterprise 50 concurrent calls
  • optional upgrade to 75
  • optional upgrade to 100
  • optional upgrade to 150
  • optional upgrade to 250

Features within subscription

Discover which ROGER365.io subscription fits your flow and explore all available features.

View all pricing and features here

Conversation Packs

When there are not enough included conversations or toasts customer can purchase conversation packs like Small, large and Extra Large (these conversations are valid as long as subscription runs).

Billing

ROGER365.io subscription price is per month.

Minimal contract period is 1 year and the total will be invoiced at once.

For other invoice options like monthly or per quarter please contact us.

Read more
Call Flows
Setup - Contact Center
Call Flows

A call flow defines how the caller is routed trough the system and what audio prompts will be used. The callflow operated between the configured Resource Account and Queue.

ROGER365.io provides 3 options to create a callflow:

  • Form Based Callflow: This is an quick and easy way to create a callflow. By just filling in the form and enabling options you can do this in minutes.
  • From Library: A quick and user-friendly way to configure your call flow using predefined templates after entering the required details.
  • Graphical Flow Designer: When you need a more advanced callflow, you can use the graphical callflow designer. You’ll need some more skills and experience to configure these callflows, but it does give you much more options and flexibility

You can review the “SubFlows” column to see which callflow is used as a super flow of specific subflows. Click on the blue circle from “SubFlows” column to open a box with redirection option to the specific flow.

Read more
AI Flow
API
AI Flow

To extract data from this section you have to create API Key with ‘DataExport‘ scope.

This API allows checking the state of the Flows (of AI Flow feature) for each call it processes.

GET /v1.0/AI/export/Flows HTTP/1.1
Host: api.roger365.io
Parameters: startFromDate
Auth-Key: <authorization key>
Content-Type: application/json

Example

{
    "items": [
        {
            "tenantId": ,
            "id": ,
            "aiFlowDescriberId": 300,
            "callId": 25478,
            "errorMsg": "",
            "flowStatus": 4,
            "lastUpdateTime": "2025-03-12T07:53:21.9413383",
            "state": {
                "currentAction": "",
                "actionBeforeCurrent": "",
                "flowInstanceId": 348,
                "flowStatus": "Completed",
                "errorMsg": "",
                "teamsCallDto": {
                    "id": 25478,
                    "started": "2025-03-12T07:51:49.5738153",
                    "callChainId": "9ec32c24-980f-46f0-9dda-f35b0dba8c87",
                    "participantCount": 2,
                    "type": "InboundTeamsCall"
                }
            },
            "isDeleted": false,
            "lastModified": "2025-03-12T07:53:42.7433339+00:00"
        }
   ]
}

Model

Field Type Description
tenantId int Id of tenant registration (R365)
id int internal id of the record (R365)
aiFlowDescribedId int Id of your AI Flow configuration (located at Flows admin page)
callId int the id of the call, used in Teams Phone System
errorMsg string description of the error caused by one of the processes
flowStatus int 0 = None, Running = 1, Stopped = 2, Error = 3, Completed = 4
lastUpdateTime datetime timestamp of flow being updated (for instance running through different AI actions)
currentAction string either action name or Webhook (depending on set Trigger condition at Flows admin page)
actionBeforeCurrent string either action name or Webhook (depending on set Trigger condition at Flows admin page)
flowInstanceId int Id of the record, with this Id you can match the same call at other API exports of the AI Actions
flowStatus string 0 = None, Running = 1, Stopped = 2, Error = 3, Completed = 4
errorMsg (state array) string description of the error caused by one of the processes
id int the id of the call, used in Teams Phone System
started datetime timestamp of when the call has started
callChainId string GUID of this call can be connected to a call's GUID coming from call recording solution
participantCount int number of participants in the specific call processed by AI Flow
type string direction of a call, either 'InboundTeamsCall' or 'OutboundTeamsCall'
isDeleted bool true if the item was 'soft-deleted' (for synchronization purposes). Items that are soft-deleted, will be permanently deleted after a retention period
lastModified datetime last time the record was saved
Read more
Copilot Touchpoint
Setup - Social Messaging
Copilot Touchpoint

The Copilot TouchPoint is only available in the Enterprise subscription.

Disclaimers:

  • The ROGER365.io does not supply the Copilot Agent configuration and is not responsible for unexpected results or being flagged as a violator of Terms of Use.
  • Please be aware of the cost-aspect for utilizing your Copilot Agent configuration used in this integration – Pricing.

This integration connects the Copilot agent (created in Copilot Studio) with the ROGER365.io platform, allowing you to have Webchat or WhatsApp conversations with the Copilot agent – with an option to escalate a conversation to a human agent. Depending on its configuration, the Copilot agent can provide powerful and flexible assistance across a wide range of scenarios, adapting its capabilities to meet your specific needs.

Copilot Studio portal

Authentication

After the Copilot Agent is created, navigate to its settings.

Open the “Security” section followed by “Authentication”:

Set the authentication option to ‘No Authentication‘.

This is the only Microsoft-supported configuration that does not require end users to sign in before interacting with the agent; the alternative options, ‘Authenticate with Microsoft’ and ‘Authenticate manually’, are both built around a user sign-in flow. As the Copilot-integrated chatbox may be embedded on any website within the network, requiring individual sign-in is not practical for this use case.

“No Authentication” doesn’t mean the agent is unsecured. With ‘Require secured access’ enabled (see the Obtaining a Secret section below), clients must authenticate using a Direct Line secret (token) before reaching the agent – blocking unauthorized access even without individual user sign-in.

Administrators should also scope the agent to expose only topics and data appropriate for this access level.

Obtaining a secret (Microsoft Copilot Studio reference)

In the same “Security” section of the Copilot Agent settings, navigate to “Web channel security”:

On this page, copy “Secret 1” to a safe place – this Secret will be used during the creation of the Copilot TouchPoint in the ROGER365.io admin portal.

For maximum security of the Copilot Agent configuration, it is advised to enable the “Require secured access” option (if already enabled, leave it as it is).

System Topics

By default, the Copilot Agent configuration includes a set of built-in System topics. The integration relies on the “Escalate” and “End of Conversation” System topics. Based on Copilot’s response in these topics, the messageflow on the ROGER365.io side will act accordingly.

Example of “Escalate” System topic

During a conversation with the Copilot Agent, a user may request to be transferred to a human agent for further support. The “Escalate” system topic handles this by asking the user for confirmation. Once confirmed, Copilot sends a predefined message that triggers the handoff to a live agent on the ROGER365.io side.

This message can be altered according to specific requirements.

Important: The configured escalation text must be saved to a clipboard, as it will be referenced during the creation of the messageflow from library – see Using the library documentation.

Example of “End of Conversation” System topic

The “End of Conversation” system topic manages the closing stage of an interaction with the Copilot Agent. Before ending, Copilot asks the user if any further assistance is needed, and upon confirmation to close, sends a farewell message that triggers the closure of the conversation on the ROGER365.io side.

This message can be altered according to specific requirements.

Important: The configured closing text must be saved to a clipboard, as it will be referenced during the creation of the messageflow from library – see Using the library documentation.

Adding Copilot as TouchPoint

  1. Go to [Social Messaging] ➝ [Copilot Touchpoints],
  2. On the right top click [+ Add Copilot Touchpoint].

Field Description
Name Enter name for the Copilot TouchPoint configuration
Timezone Select from list appropriate for your region timezone
TouchPointBasedUrl (fixed) This is the standard, Microsoft-provided address used to connect our platform to Microsoft Copilot. It must remain as-is, there’s no alternative or configurable value here – API reference & Key concepts
TouchpointKey Secret used for authentication taken from the Copilot Studio’s “Web channel security” page of “Security” section – Obtain the secrets
Maximum length of each user message sent to Copilot Enter maximum length of user message that will be sent to the Copilot agent. Default value is 1000 characters.
Useful option to optimize performance or control cost aspect of the integration!
Note: From the interface perspective (Webchat/WhatsApp) users may be able to send messages that exceed the maximum allowed length. However, based on the configured limit (for example, 1000 characters), only the first 1000 characters will be passed to Copilot, and the rest will be discarded.
Maximum number of messages sent to Copilot per conversation Enter maximum number of sent user messages during single conversation to the Copilot agent.
Useful option to optimize performance or control cost aspect of the integration!

When reviewing the settings of a created Copilot TouchPoint (accessed via the “Edit” button), information is displayed about the Copilot endpoint sending a “MaxMessageReached” message. This message is tied to the maximum user messages option and can be used in the messageflow configuration for routing purposes.


Example of how it works

Webchat conversation – escalating to a human agent

Webchat conversation — closing the conversation at the user’s request

Webchat conversation – closing the conversation after reaching the maximum sent messages

Read more
Insights & Analytics
Setup - General
Insights & Analytics

Introduction

This PowerBI report provides key insights into your Contact Center’s performance, covering Calls, Queues, and Agents. The reports allow you to track various metrics, understand call handling efficiency, and monitor agent productivity.

To understand the data it is important to see in what perspective the data is created. In this database we have multiple perspectives

  • Caller perspective (also known as the customer or external)
  • Queue perspective (internal company)
  • Agent perspective (internal employee of the company)

We try to explain the difference between the perspectives with an example of a case, and what the perspective of the different parties are.

A customer calls in and after 5 minutes and 10 seconds the call is picked up by an agent. The callflow the customers follows the following path

  1. Incoming call is first being offered to queue 1 with 3 agents configured in the queue
  2. Queue 1 has a timeout of 5 minutes. The call is then offered to an overflow queue with 20 agents.

For the customer the time to pick up is 5 minutes and 10 seconds, so for the customer this is the wait time and is annoyed that it takes long to talk to an agent.

The agent in queue 2 picks up in 10 second and has a good feeling as he answers very fast.

The agents in queue 1 also have a good feeling, because they were all occupied in a call with another customer.

So with this callflow you see that there is no simple solution for the question, what is the wait time, because it depends on who you ask the question. In our database we tried to have these perspectives available, so you have the insights to see the issue from multiple angles.

How to navigate

  • Navigation Menu: Use the top navigation menu to access different report sections.
  • Slicers & Filters: Apply slicers to filter data by specific time periods, call types, or other criteria for detailed analysis.
  • Interactivity: Click on any graph element (such as bars or lines) to drill down into the data for more detailed insights.

How to configure

After receving an access to Reporting page at ROGER365 admin portal, download .zip package which contains everything needed to start using this PowerBI Reporting module.

Dashboard

This page offers a comprehensive overview of key performance indicators (KPIs) for the Contact Center. You can view metrics such as total calls, answer rates, average interaction time, and average ring time, helping to monitor the overall performance of the Contact Center.

The page is divided into three horizontal sections based on Call, Queue and Agent perspective.

Metric Description
Call ASR Percentage of inbound calls that were successfully connected to an agent, relative to the total number of attempted inbound calls. A higher ASR indicates that most calls are being answered properly, reflecting a well-functioning Contact Center.
Average Ringtime (s) The average amount of time in seconds that a call rings before being answered by the system.
Average Interaction (s) The average amount of time in seconds that a caller spend interaction with the Contact Center.
Total inbound per called number The total number of received inbound calls per specific phonenumber or Resource Account.
Queue ASR Percentage of Queue requests that were successfully connected to an agent, relative to the total number of attempted queue requests. A higher ASR indicates that most queue requests are being answered properly, reflecting a well-functioning Contact Center.
Average Queue Time (s) The average amount of time in seconds that a caller spends waiting in the queue before speaking to an agent.
Max Interaction Time (s) The maximum amount of time in seconds that a caller spend interaction with the Contact Center.
Total request per queue The total number of queue requests per specific queuename.
Agent ASR Percentage of inbound calls that were successfully connected to an agent, relative to the total number of attempted inbound calls. A higher ASR indicates that most calls are being answered properly, reflecting a well-functioning Contact Center.
Average Ringtime (s) The average amount of time in seconds that a call rings at an agent before being answered.
Average after worktime (s) The average amount of time in seconds agents spend after completing an interaction to wrap up or complete post-call tasks.
Request distribution per agent The total number of queue requests that are assigned to a specific agent.

Calls Summary

This page provides an overview of all call-related metrics, including answered calls, average interaction times, and the overall call answer-seizure ratio (ASR). It offers insights into the total number of calls handled, as well as detailed breakdowns of call volumes over specific time periods. This page is essential for tracking call center performance and identifying trends in call handling efficiency.

Metric Description
Call ASR Percentage of inbound calls that were successfully connected to an agent, relative to the total number of attempted inbound calls. A higher ASR indicates that most calls are being answered properly, reflecting a well-functioning Contact Center.
Answered Amount of inbound calls that were successfully connected to an agent, relative to the total number of attempted inbound calls.
Average Interaction (s) The average amount of time in seconds that a call rings before being answered by the agent.
Average Ring time (s) The average amount of time in seconds that a caller spend interaction with the Contact Center.
Total Calls The total number of inbound calls received.
Heatmap Call volumes across different times of day and days of the week. The color intensity shows when calls are highest (darker colors) and lowest (lighter colors).
Average calls per weekday Average number of inbound calls received on each day of the week, helping to identify peak call days for staffing optimization.
Total inbound per called number The total number of received inbound calls per specific phone number or resource account.

Calls Volume Analysis

This page analyzes call volume patterns by different timeframes. It provides insights into call distribution across weekdays, as well as detailed breakdowns of calls by specific numbers, offering an understanding of peak call times and trends.

Metric Description
Call ASR Percentage of inbound calls that were successfully connected to an agent, relative to the total number of attempted inbound calls. A higher ASR indicates that most calls are being answered properly, reflecting a well-functioning Contact Center.
Answered Amount of inbound calls that were successfully connected to an agent, relative to the total number of attempted inbound calls.
Average Interaction (s) The average amount of time in seconds that a call rings before being answered by the system.
Average Ring time (s) The average amount of time in seconds that a caller spend interaction with the Contact Center.
Customer calls The total number of inbound calls made by customers. This provides an overview of the volume of interactions from customers.
Calls by month Breakdown of total calls received per month.
Heatmap Call volumes across different times of day and days of the week. The color intensity shows when calls are highest (darker colors) and lowest (lighter colors).
Total inbound per called number The total number of received inbound calls per specific phone number or resource account.

Queue Summary

This page gives a summary of queue performance, displaying metrics such as total requests in the queues, average interaction time, and queue statistics for each weekday. It provides an in-depth view of how well different queues are performing over time.

Metric Description
Queue ASR Percentage of Queue requests that were successfully connected to an agent, relative to the total number of attempted queue requests. A higher ASR indicates that most queue requests are being answered properly, reflecting a well-functioning Contact Center.
Answered Amount of Queue requests that were successfully connected to an agent, relative to the total number of attempted queue requests.
Maximum Interaction time (s) The maximum amount of time in seconds that a caller spends interaction with the Contact Center.
Maximum Queue time (s) The maximum amount of time in seconds that a caller spends waiting in the queue before speaking to an agent.
Average Queue time (s) The average amount of time in seconds that a caller spends waiting in the queue before speaking to an agent.
Total request in Queue The total number of requests.
Heatmap Call volumes across different times of day and days of the week. The color intensity shows when calls are highest (darker colors) and lowest (lighter colors).
Average Interaction time The average amount of time that a caller spend interaction with the Contact Center in seconds.
Queue ASR Percentage of Queue requests that were successfully connected to an agent, relative to the total number of attempted queue requests. A higher ASR indicates that most queue requests are being answered properly, reflecting a well-functioning Contact Center.

Queue Performance

This page focuses on the performance of individual queues. It displays the number of requests per queue, average queue times, and other performance metrics. It is designed to help analyze queue efficiency and identify areas for improvement.

Metric Description
Queue ASR Percentage of Queue requests that were successfully connected to an agent, relative to the total number of attempted queue requests. A higher ASR indicates that most queue requests are being answered properly, reflecting a well-functioning Contact Center.
Answered Amount of Queue requests that were successfully connected to an agent, relative to the total number of attempted queue requests.
Maximum Interaction time (s) The maximum amount of time in seconds that a caller spends interaction with the Contact Center.
Maximum Queue time (s) The maximum amount of time in seconds that a caller spends waiting in the queue before speaking to an agent.
Average Queue time (s) The average amount of time in seconds that a caller spends waiting in the queue before speaking to an agent.
Total request in Queue The total number of requests.
Total request per Queue The total number of requests received by a specific queue.
Heatmap Call volumes across different times of day and days of the week. The color intensity shows when calls are highest (darker colors) and lowest (lighter colors).
Average Interaction time The average amount of time in seconds that a caller spend interaction with the Contact Center.
Queue ASR Percentage of Queue requests that were successfully connected to an agent, relative to the total number of attempted queue requests. A higher ASR indicates that most queue requests are being answered properly, reflecting a well-functioning Contact Center.

Agent Summary

This page offers a breakdown of agent performance metrics, including request distribution per agent, average ring times, and performance in answering calls. It allows for monitoring of overall agent activity and overall team performance.

Metric Description
Agent ASR Percentage of inbound calls that were successfully connected to an agent, relative to the total number of attempted inbound calls. A higher ASR indicates that most calls are being answered properly, reflecting a well-functioning Contact Center.
Answered Amount of inbound calls that were successfully connected to an agent, relative to the total number of attempted inbound calls.
Maximum Interaction time (s) The maximum amount of time in seconds that a caller spend interaction with the agent.
Average Ring time (s) The average amount of time in seconds that a call rings at an agent before being answered.
Maximum Ring time (s) The maximum amount of time in seconds that a call rings at an agent before being answered.
Average After worktime (s) The average amount of time in seconds agents spend after completing an interaction to wrap up or complete post-call tasks.
Total request in Queue The total number of requests.
Request distribution per agent The total number of queue requests that are assigned to a specific agent.
Heatmap Call volumes across different times of day and days of the week. The color intensity shows when calls are highest (darker colors) and lowest (lighter colors).
Request distribution per queue The total number of specific queue requests that are assigned to a specific agent.
Agent ASR Percentage of inbound calls that were successfully connected to an agent, relative to the total number of attempted inbound calls. A higher ASR indicates that most calls are being answered properly, reflecting a well-functioning Contact Center.

Agent Performance

This page focuses on the performance of agents, analyzing key metrics such as answered/rejected calls, total ring time, and agent answer-seizure ratios. It helps track agent efficiency and identify top performers in your Contact Center.

Metric Description
Agent ASR Percentage of inbound calls that were successfully connected to an agent, relative to the total number of attempted inbound calls. A higher ASR indicates that most calls are being answered properly, reflecting a well-functioning Contact Center.
Answered Amount of inbound calls that were successfully connected to an agent, relative to the total number of attempted inbound calls.
Maximum Interaction time (s) The maximum amount of time in seconds that a caller spends interaction with the agent.
Average Ring time (s) The average amount of time in seconds that a call rings at an agent before being answered.
Maximum Ring time (s) The maximum amount of time system in seconds that a call rings at an agent before being answered.
Average After worktime (s) The average amount of time in seconds agents spend after completing an interaction to wrap up or complete post-call tasks.
Total request in Queue The total number of requests.
Request answered / rejected The total number of queue requests that are assigned to a specific agent.
Total Ring time (s) The amount of time in seconds that a call rings at an agent before being answered.
Heatmap Call volumes across different times of day and days of the week. The color intensity shows when calls are highest (darker colors) and lowest (lighter colors).
Request distribution per queue The total number of specific queue requests that are assigned to a specific agent.
Agent ASR Percentage of inbound calls that were successfully connected to an agent, relative to the total number of attempted inbound calls. A higher ASR indicates that most calls are being answered properly, reflecting a well-functioning Contact Center.

Agent Availability & Utilization

This page provides an overview of agent availability and their utilization, showing how much time agents are spending in different statuses (available, away, busy, etc.). It helps track staffing and identify if there are any gaps in coverage.

Metric Description
Agent ASR Percentage of inbound calls that were successfully connected to an agent, relative to the total number of attempted inbound calls. A higher ASR indicates that most calls are being answered properly, reflecting a well-functioning Contact Center.
Answered Amount of inbound calls that were successfully connected to an agent, relative to the total number of attempted inbound calls.
Maximum Interaction time (s) The maximum amount of time in seconds that a caller spend interaction with the agent.
Average Ring time (s) The average amount of time in seconds that a call rings at an agent before being answered.
Maximum Ring time (s) The maximum amount of time in seconds that a call rings at an agent before being answered.
Average After worktime (s) The average amount of time in seconds agents spend after completing an interaction to wrap up or complete post-call tasks.
Total hours per agent Total hours logged by each agent, which can help assess agent workload and availability over a period.
Total hours per status Tracks the total time agents spend in various statuses to identify potential gaps in coverage.
Amount of agents working Number of agents actively working during a specific time period. This is useful for tracking resource allocation and availability.
Agent ASR through time Measures how ASR changes over time, allowing the identification of trends or improvements in call handling efficiency.
Amount of answered calls per agent The number of calls successfully answered by each agent. This helps identify the performance of individual agents.

Agent Actions

This page provides an overview of key agent actions during Contact Center calls, including Blind and Consultative Transfers, Callback Requests, Redirects, and Add Participants. It shows how frequently each action is used by agent and queue, highlights trends over time, and offers a clear view of agent activity and performance.

Metric Description
Agent Performance per Action Type Shows the volume of actions performed by each agent, broken down by action type. It helps identify how active each agent is and which actions they perform most.
Actions per Queue Shows the volume of performed agent actions per Queue. Highlights the workload per queue and how agent actions are distributed.
Action Type Distribution A pie chart displaying the distribution of actions performed by agents. Shows the overall proportion of different actions performed by agents.
Trends over Time Line chart showing trends in agent actions over set period of time. Reveals patterns and changes in agent activity over time.

WFM

This page provides an overview of key Workforce Management (WFM) metrics for the agents within Contact Center queues. Using the Erlang C formula, the dashboard estimates the number of agents needed to handle calls, includes adjustments for shrinkage, and measures queue service levels (SLA) and target response times for customers waiting on the line.

Metric Description
Queue SLA The target service level percentage set for the queue typically defined as the percentage of calls that should be answered within the target answer time (e.g., 80% of calls answered within 20 seconds). This is a goal used for staffing and performance planning.
Shrinkage The percentage of time agents are unavailable for call handling due to factors like breaks, training, meetings, or absenteeism. Shrinkage is used to adjust staffing requirements to reflect real-world availability.
Target answer (s) The maximum acceptable time, in seconds, for an agent to answer a call once it enters the queue. This value is used in SLA calculations and to determine staffing needs using the Erlang C formula.
Expected agents needed for queue calls WITH shrinkage The adjusted number of agents required to meet SLA targets, factoring in agent unavailability (shrinkage). This provides a more realistic staffing requirement for effective queue performance.
Expected agents needed for queue calls WITHOUT shrinkage The estimated number of agents required to meet the SLA and call volume demand assuming full agent availability. This is a theoretical minimum before accounting for shrinkage.
Average Agents WITH shrinkage per queue The average number of agents available per queue after accounting for shrinkage. This reflects the actual effective agent capacity to handle calls in each queue.

Social

This page provides an overview of social interactions, displaying metrics such as total interactions per type, average interaction time, and statistics over a period of time.

Metric Description
Conversation ASR Percentage of conversations that were successfully connected to an agent, relative to the total number of attempted conversations. A higher ASR indicates that most conversations are being handled properly, reflecting a well-functioning Contact Center.
Answered Amount of conversations that were successfully connected to an agent, relative to the total number of attempted conversations.
Average Interaction time (s) The average amount of time in seconds that a external participant spend interaction with the agent.
Average Response time (s) The average amount of time in seconds that a conversations has to wait before being assigned to an agent.
Conversation calls The total number of conversations made by customers. This provides an overview of the volume of conversations from customers.
Conversations by month Breakdown of total conversations received per month.
Heatmap Conversation volumes across different times of day and days of the week. The color intensity shows when calls are highest (darker colors) and lowest (lighter colors).
Total Conversation by type The total number of conversation by type
Total conversations per Teams channel The total number of conversation by assigned Teams channel

Classification

This page provides an overview of Classifications, displaying metrics such as total classified interactions, average interaction time of classified interactions, and statistics over a period of time.

Metric Description
Classified in percentage Percentage of classification that were successfully connected to an agent, relative to the total number of attempted conversations. A higher ASR indicates that most conversations are being classified properly, reflecting a well-functioning Contact Center.
Classified in amount Amount of classified conversation by an agent, relative to the total number of attempted conversations.
Average Interaction time (s) The average amount of time in seconds that a external participant spend interaction with the agent.
Total Classifications per label The total number of classifications per classification label.
Classifications over time The total number of classifications made by agents. This provides an overview of the volume of classification over time.
Heatmap Classification volumes across different times of day and days of the week. The color intensity shows when calls are highest (darker colors) and lowest (lighter colors).
Average Classifications per weekday The total number of classifications by weekday
Total Classifications The total number of classifications

Call rankings Top 30

This page ranks the top 30 callers by volume, offering detailed insights into which numbers or companies are generating the most calls. This is useful for identifying trends in high-call volume sources and monitoring their impact.

Metric Description
Caller by average interaction time (s) Ranks callers based on the average length of their interactions. This can help identify trends in customer needs and the complexity of issues.
Caller by volume per company This metric ranks callers by the number of calls made per company, providing insights into high-volume callers from specific organizations.
Caller by volume Ranks callers by the total number of calls made. This helps in identifying the highest call generators, which may require special attention or resource allocation.

Agent rankings Top 30

This page ranks agents by various performance metrics, such as answer-seizure ratio, average wrap-up time, and the number of answered calls. It helps in recognizing top-performing agents and provides visibility into individual contributions to the overall performance.

Metric Description
Agent with highest Answer-Seizure ratio Percentage of inbound calls that were successfully connected to an agent, relative to the total number of attempted inbound calls. A higher ASR indicates that most calls are being answered properly, reflecting a well-functioning Contact Center.
Agent with highest average wrap up time (s) The agent with the highest average time spent wrapping up calls after interactions. This metric can help identify agents who may need additional support or training to reduce wrap-up time.
Agent with most answered calls The agent who has answered the most calls. This metric helps recognize high-performing agents and assess workload distribution.

Queue rankings Top 30

This page ranks queues based on their performance metrics like average interaction time and queue time. It provides insights into which queues are performing the best or worst, helping to optimize queue management and agent allocation.

Metric Description
Queue with highest answer-seizure ratio Percentage of Queue requests that were successfully connected to an agent, relative to the total number of attempted queue requests. A higher ASR indicates that most queue requests are being answered properly, reflecting a well-functioning Contact Center.
Queue with lowest average interaction time (s) The queue with the shortest average interaction time, indicating that calls are handled quickly and efficiently.
Queue with lowest average queue time (s) The queue with the shortest average wait time before a caller is connected to an agent, reflecting the speed at which calls are processed.

Definition list

Term Description
KPI Key Performance Indicator
ASR Answer-seizure ratio. The ratio is calculated by dividing the number of successfully answered calls by the total number of calls attempted
Interaction time Time after the call has been picked up by the first agent until the call is disconnected
Redirected Calls which are redirected with the transfer or safe transfer action within a callflow
Ring time Amount of time a call rings before being answered
Queue time Amount of time a caller spends waiting in a queue before speaking to an agent
(Queue) Request Each time a call enters a Queue it creates a Request.
Wrap up Amount of time an agent has after the call is disconnected.

Read more
Wallboard
Setup - General
Wallboard

Wallboard feature of ROGER365.io allows portal admins or users with proper RBAC permission to create customized Wallboard. Published Wallboard(s) can be used on external monitors or TVs making monitoring of crucial data easier than ever.

Wallboard feature requires license (in order to publish it), Business and Enterprise subscriptions have 1 license included. Each published Wallboard can have 3 active sessions. Additional Wallboard licenses should be arranged with Sales department.

Wallboard page in ROGER365 admin portal allows to import exported earlier Wallboard configurations which enables opportunity of creating various templates.

To create a Wallboard press “+Add”:

In this configuration window you can start creating your Wallboard which can be customized based on your demands.

Description of the top bar functions is as follows (starting from left to right):

  • Name of the Wallboard.
  • Checkbox “Published“: if selected, the Wallboard is published, allowing live data monitoring. This action consumes a license.
  • “Set Background Color” allows to set background color of your Wallboard.
  • “Set Background Image” button allows to upload background picture for your Wallboard.
    • A good rule of thumb is to upload a background image with the specified dimensions of the target display.
  • “Clear Background Image” button is used for removing uploaded earlier background image.
  • “Target Width” property is used for designing Wallboard in specified display width.
  • “Add new cell” button is used for adding new cell. Cell is responsible for setting up one of the available Wallboard widgets.

After adding new cell you can choose various widgets from 3 main groups – “General Widgets”, “Voice Queue Widgets” and “Social Queue Widgets”. In the same menu you can Remove specific cell, or Duplicate entire widget’s configuration if recreation takes too much time. These operations are available via in the upper right corner of the cell.

Cells in the configuration window will be showing sample data to make customization of cells easier.

To customize one of the Widgets, press icon:

In this window you can change various aspect of this specific Widget. In the example based on “General statistics” Voice Queue widget, you can customize Topics (Voice Queues), the Widget Title, colors, and the Queue Service Level Threshold (as a percentage).

To move widgets, perform press & hold operation and move your mouse in desired direction, you will see a grid which helps with aligning widgets against others. To resize widgets (cells), hover your mouse over any widget edge until seeing ↔ or ↕ mouse icon, then press and hold left mouse button and move your mouse in whathever direction.

Once your Wallboard configuration is ready to be used at your external displays/TVs, mark Published checkbox and save Wallboard.

To open published Wallboard navigate to a main Wallboard admin page and press yellow icon “Go to published Wallboard”. You will be redirected to a URL of your Wallboard which can be used on devices with Internet access. Live version of the Wallboard will now await for actual data coming from ROGER365.io platform.

Accessing published Wallboard is done via admin portal so it requires authentication in the same way as for portal admins/RBAC users with permissions allowing to set up selected aspects of ROGER365 platform. This approach allows to create Wallboard-only user(s) within your Microsoft Entra ID environment. Wallboard user(s) should have at minimum “TeamsUser” role assigned at Enterprise Application “ROGER365.io” level, it is not possible to access the published Wallboard as a user without any role.

Role reference can be found at this documentation page – Setup Access & Security

Notes:

  • Background Image is not saved in cloned/imported Wallboard configurations.

Read more
Permissions
Setup - General
Permissions

Role-based access control allows for restricting access to only selected parts of ROGER365.io admin portal to groups of users. The configuration must be done by the user with rights to make changes to Microsoft Entra ID tenant, and with an access to ROGER365.io admin portal.

Read more
Logging
Setup - General
Logging

The Logging admin page on the ROGER365.io platform is designed to help you troubleshoot system issues effectively. It provides detailed logs to quickly identify errors and malfunctions, helping you resolve problems faster. You can also track changes made by automated processes, like User Synchronization, for a clearer understanding of the system’s behavior.

If you are unable to resolve the issue yourself, data from the Logging admin page provides crucial information for your dedicated ROGER365 partner.

The Logging admin page classifies all records into three main severities:

  • Info
  • Warning
  • Exception

Each severity is categorized based on the affected component, such as “ContactCenter”, “CRM”, “AI Flow”, “Presence” and more.

To view the details of a specific record, the portal admin should click on it:

Where:

  • Raw Log – This section presents an overview of the message.
  • Call Info – This section presents an overview of call’s main details.
  • Execution Steps – This section presents the caller’s journey through the actions in the call flow, highlighting the point of failure (marked in red).
  • Participants – This section lists the call participants (if any).
  • Reservations – This section displays the requests created by the Queue action.
  • Stream Changes – This section shows the changes in the audio stream of the calling parties.

Note: The ROGER365.io platform only receives the metadata of a call.

Read more
CRM Calling Integration (Toastar)
Setup - General
CRM Calling Integration (Toastar)

With the CRM Calling Integration (also called Toastar) you can receive customer data from your CRM system when receiving a phonecall. When a new phonecall arrives ROGER365 can search your connected CRM system to match the phonenumber and shows the contactdata of the caller.

There are a few prerequisits:

  • Microsoft Teams Calling must be implemented (direct-route or calling plan)
  • Currently only external PSTN calls are supported
  • A CRM Replicator must be configured, or use Microsoft Power Automate / Logic App to retrieve and show CRM data via the Webhook
  • An Azure subscription must be available to register a Bot channel

To enable CRM Calling integration, complete the following steps:

  1. Register a Bot channel in Azure and create a Teams user
  2. Create Teams Virtual User
  3. Add TOASTAR App to Teams
  4. Enable users in the ROGER365 portal
  5. Configure Teams client to enable Toastar
  6. Optional: Create Webhook & Postback

Read more
Custom CRM Connector
Setup - General
Custom CRM Connector

To enable a custom CRM connector, you have to develop your own software. We have an API available to which you can send the data. If you don’t have the expertise, we can get you in contact with one of our partner to help you.

Add Custom CRM Replicator

To create a replicator to which you can send your data, follow these steps:

  1. Go to the ROGER365 portal
  2. Select [CRM Replicator] in the left navigation bar
  3. Click [+ Add Replicator]
  4. Enter a [Name] and [ Description]
  5. Select [Custom CRM] as Type
  6. Choose your Country Code.
  7. Click [Save]

After saving, the Connection URL and Authorization key are available to you.

POST JSON

Here’s the definition in which format you can send the data.

The parameter “isPartialUpdate” and “batchIndex” are used to page the import. Start the first POST with “batchIndex=1” and “isPartialUpdate=true”. For each subsequent update, increase the batchindex by 1 and keep “isPartialUpdate=true”, then for the last update set “isPartialUpdate=false”.

The “SourceId” is required and must be unique and stay the same for a contact.

POST /v1.0/customReplicator/synchronization/{id}?isPartialUpdate=true&batchIndex=1 HTTP/1.1
Host: api.roger365.io
Authorization: {authkey}
Content-Type: application/json

HTTP body

[
  {
    "SourceId": " ",
    "FirstName": " ",
    "LastName": " ",
    "DisplayName": " ",
    "Email": " ",
    "SipAddress": " ",
    "Street": " ",
    "Zip": " ",
    "City": " ",
    "Country": " ",
    "Company": " ",
    "PhoneNumber0": " ",
    "PhoneNumber1": " ",
    "PhoneNumber2": " ",
    "PhoneNumber3": " ",
    "PhoneNumber4": " ",
    "PhoneNumber5": " ",
    "Custom0": " ",
    "Custom1": " ",
    "Custom2": " ",
    "MobileData0": " ",
    "MobileData1": " ",
    "MobileData2": " ",
    "Type": " ",
    "ContactUrl": " ",
    "ContactId": " ",
    "CompanyId": " ",
    "ActionLink0": " ",
    "ActionLink1": " ",
    "ActionLink2": " ",
    "ActionLink3": " "
  }
]

E.164 Number formatting

It might be clever to format numbers using the E.164 recommendation. An international E.164 number is designed to include all of the necessary information to successfully route a call or SMS message to an individual subscriber on a nation’s public telephone network.

Here’s how the E.164 numbering plan works:

• A telephone number can have a maximum of 15 digits

• The first part of the telephone number is the country code (one to three digits)

• The second part is the national destination code (NDC)

• The last part is the subscriber number (SN)

• The NDC and SN together are collectively called the national (significant) number

To use the previous example:

Country code: +44
National destination code: 7911
Subscriber number: 123456
In total: +447911123456

Two important things to note: First of all, in the international E.164 notation a leading ‘0’ is removed. The UK mobile phone number ‘07911 123456’ in international format is ‘+44 7911 123456’, so without the first zero. Secondly in the E.164 notation all spaces, dashes [‘-‘] and parentheses [ ‘(‘ and ‘)’] are removed, besides the leading ‘+’ all characters should be numeric.
Read more
Default CRM Connectors
Setup - General
Default CRM Connectors

ROGER365 provides default replicators for CRM software. Underneath you’ll find the list of replicators we have currently available. If you are using another CRM system, you can create your own custom CRM Replicator.

The default CRM Replicators will show basic CRM information and a button to open the contactcard (only Social Messaging). If you want to retrieve extra (realtime) information, you can use our PowerHook to retrieve (eg. via Microsoft Power Automate/Logic App) extra information and paste it to the open conversation.

CRM Software API Documentation Manual Contact URL
HubSpot Setup API link <<BaseUrl>>/contacts/<<your hubspot id>>/contact/{SourceId}
<<BaseUrl>>/contacts/<<your hubspot id>>/company/{SourceId}
Microsoft Dynamics Setup API / Test with Postman link https://{yoururl}/main.aspx?appid={yourappid}&pagetype=entityrecord&etn=contact&id={contactid}
SalesForce Setup API link https://{yoururl}/lightning.force.com/lightning/r/Contact/{contactid}/view
TOPdesk Setup API link https://{yoururl}/tas/secure/contained/mango/callercard?action=new&field0=persoonid&value0={contactid}
Exact Online Setup API link https://start.exactonline.nl/docs/CRMAccountCard.aspx?AccountID=%7b{CompanyId}%7d&_Division_=<<your division ID>>
Zoho CRM Setup API link https://crm.zoho.eu/crm/{orgid}/tab/Contacts/{SourceId}
https://crm.zoho.eu/crm/{orgid}/tab/Accounts/{SourceId}
ServiceNow Setup API link https://<Url-to-your-ServiceNow-Instance>/{Custom0}?sys_id={SourceId}
Microsoft Entra X link Not needed for Azure Entra, can be left blank.

Read more
CRM Replicator
Setup - General
CRM Replicator

With the CRM Replicator contact data can be lookup in your CRM system and shown when a new phonecall arrives (CRM Calling Integration), or can be shown with incoming Social conversations. The CRM Replicator connects to your CRM system and replicates on a specific time interval to retrieve the latest data. This replicator only retrieves basic contactdata, like address, email etc.

Data will be stored encrypted in your own ROGER365 database which is not shared with other ROGER365 tenants. The advantage of this is that data can be retrieved very quickly, instead of retrieving in from your CRM system.

In our library we have some default CRM Connectors available, which you can use right out of the box. But if your CRM isn’t available yet, you can create your own Custom CRM Connector.

Each CRM replicator can include up to 4 customizable action buttons. These buttons open external CRM/ERP webpages in new tabs, prefilled with customer-specific data like email, company, or first name. The buttons are shown in the Agent Assist which can be enabled per agent. The action buttons supports usage of default CRM and Contact Center variables.

It is possible to include CRM variables such as “{Email}” or “{PhoneNumber0}” (without quotes) to make your action button using protocol handler dynamic. Additionally, you can use default Contact Center variables.

The CRM’s Action Buttons feature supports protocol handlers in its links, such as:

  • tel:
  • mailto:
  • msteams:

Protocol handlers can enhance your workflow by enabling quick actions, such as calling a supervisor, sending them an email, or even opening a new Microsoft Teams chat window making it faster to seek help in emergency situations or without a need to jump through multiple systems.

Configuration of CRM Action Buttons
  • Default CRM Connectors

Navigate to created earlier Default CRM Connector at the ROGER365.io admin portal. Open its settings and scroll down to see “Action Buttons” section:

  • Labels – visible in the Agent Assist label (name) for the action button.
  • Link – URL address which redirects an agent upon pressing on correlating label in Agent Assist.

  • Custom CRM Connector

Labels for the action buttons must be defined in ROGER365.io admin portal:

Links in case of Custom CRM Connectors shall be configured in the .csv upload template under ActionLink0 (to 3) columns!

Read more
Email Configuration
Setup - General
Email Configuration
Disclaimer: Before proceeding, please make sure you have good knowledge about your own Microsoft Office 365 and Entra ID situation before continuing.

Email configuration admin page gives possibility to include your own email address (for instance Shared Mailbox) into ROGER365 system. This feature uses App Registration which is able to authenticate and send emails from configured email address. Main benefits of this feature are control over sent emails and their limits, making it default option for sending callback requests (Email type) or include it in Contact Center/Social Messaging actions.

Create Email App Registration

To enable the Email integration, you must first create an App Registration in the Azure Portal: Use Automated method – Download PowerShell Script (preferred way, execute as Global Admin)

General steps (manual method):

  1. Create an App Registration in Entra ID environment for Email integration (with API permissions: Mail.ReadWrite – Application, Mail.Send – Application, MailboxSettings.ReadWrite – Application, User.Read – Delegated).
  2. Create a Secret for the App Registration.
  3. Configure an application access policy and limit the scope of application permissions according to your environment’s situation – Microsoft documentation.
Disregarding point 3 will cause the Email App Registration to have an access to every mailbox within tenant which brings potential security risk.

Create Email Configuration

After successfully creating the App Registration for the Email, you can configure Email configuration, press “+Add” at “Email” admin page:

  • Description: Provide a description (name) for your Email configuration.
  • MailboxUserId: Enter email address for your Email integration (most of the time email address of shared mailbox).
  • ClientId: Provide application (client) ID of Email App Registration from your Azure environment.
  • ClientSecret: Provide secret of Email App Registration from your Azure environment.

  • Default: Setting Email configuration as Default will make every email (including Callback request of Email type) sent via ROGER365 platform to be sent via configured email address (Mailbox UserId).
  • Target Email for Test Message: Provide target email address to test whether Email configuration properly sends an email

If Email configuration is not set as Default, Callback request of Email type will not be possible.

Read more
Schedules
Setup - General
Schedules

With the schedule you can configure your office opening hours and exceptions and optionally assign labels which can be accessed from flowchart allowing fexibility to your flowcharts, for instance play different audio prompt depending on assigned label. The flowchart checks the schedules and based on the result (isOpen or not) different logic of the flow is followed. Define one or more schedules and use this information in your flowcharts. You can review the “Usages” column to see which callflow or messageflow contain a particular Schedule. Click on the buble from “Usages” column to open a box with redirection option to the specific flow.

The schedule can also be used to show different status messages on the Webchat TouchPoint.

Add a schedule

  1. Go to “Schedules”,
  2. Choose “+ Add Schedule”, give the schedule a “name” and choose the relevant time-zone,
  3. Click “Add” to confirm.

Change the schedule

  1. Now click the “go to Schedule” option behind the just created schedule,
  2. Update the schedule,
  3. Click “<- back to list” to close the schedule.

Create long Exceptions & Holidays

  1. Click “exception” under “One Time” section of “Exceptions & Holidays”,
  2. Select desired type of exception,
  3. Select start date and time,
  4. Select end date and time,
  5. Click “Save” to confirm.

Changes on the schedule are effective immediately. Start and end time is for first and last day of exception, the rest is marked as all day according to type of exception (open/closed/holiday).

Read more
Agent Assist
Setup - General
Agent Assist

The Agent Assist of ROGER365.io enables agents to see crucial information regarding their customer such as CRM data (if configured), historical interactions with customer, and Classification of current interaction.

When the call invite is offered to the available in the Queue agent, the Agent Assist tab populates three main sections – “User”, “History” and “Classification” (as a icon). The Agent Assist stays open until the completed Wrap-up item. In case of Social Messaging interactions, Agent Assist will become visible after picking up conversation from the Queue.

You can also open Agent Assist without an active call or conversation. To do this, navigate to the History tab (under the search field), select one of the voice/social records.

Each sections of the Agent Assist can be hidden/shown or maximized using the small icons in the top right corner of specific section –

Or by pressing purple section’s icon on the left side of Agent Assist –


Custom view will be saved during the agent’s session.

The Users section presents most important details of resolved by CRM Replicator contact. Additionally it does have two available buttons:

  • “Open CRM” will redirect an agent to the URL configured at “ContactUrl” field of CRM contact.
  • “Send Email” will open the “Mailto Link” with the email address of resolved contact which redirects an agent to the Email service of choice.

“CRM shortcuts” section shows configured earlier CRM’s Action Buttons based on assigned CRM Replicator to this Queue – CRM’s Action Buttons reference.

The History section presents the last 10 historical interactions with the present customer. You can see both voice and social interactions.

In case of not being able to read the entire content, an agent can hover their mouse cursor over specific piece of data to see the tooltip with full description. Agent can also maximize the History tab, which will hide the other 2 sections to ensure a clear overview of interactions with the customer.

Sentiment score will be shown for Social conversation when the messageflow does contain Sentiment action.
Seniment score will be shown for Voice calls based on Sentiment Action result of AI Flow.

There’re 3 levels for Sentiment’s confidence score:

  • Negative
  • Neutral
  • Positive

If the agent has the appropriate permissions, a Customer Timeline button is displayed. Clicking this button opens a popup with a detailed timeline for the selected interaction. Agents can also view the interaction classification, which is assigned either manually by a previous agent or automatically by the Classification action (which is part of powerful AI Flow feature). The popup also includes an AI-generated summary that consolidates the key details of the interaction, allowing agents to review and/or edit it if any information is inaccurate. The feature of AI-generated summary of social conversations is available to configure in the End node.

If the caller gave his feedback thanks to configured earlier “Store feedback” action, the “Classification & Feedback” tab allows to check this information:

The Classification section (icon) by default won’t contain any of the Classification. This must be first configured, check Classification documentation.

The created Classification will be available during the next interaction with the customer (refresh the application if it’s not visible). When assigning a Classification for the interaction, there is an option to add an optional Remark. This is a useful feature for leaving internal notes for specific customer interactions, either for yourself or other agents.

Reference to Classification documentation in order to retrieve configuration of created Classification, as well as the Classification assigned during the conversation.

Note: Remarks have a hard limit of 2048 characters.

Show Agent Assist for Selected Contact

As an agent, you can open Agent Assist as a separate tab for a selected CRM contact. This allows you to view all relevant contact details without needing to answer a conversation or locate the corresponding history record, saving significant time and effort.

Open the More Actions menu next to the selected contact record and click the “Show agent assist for contact” button:

Note: Accepting a new call or social conversation does not automatically close this tab or shift focus away from it. This tab must be closed or switched to manually. Classification and call/conversation-related variables are not supported, as there is no corresponding call or conversation record associated with this action.

Beyond the default sections, ROGER365.io portal admins can create custom Action Buttons for Agent Assist.
This feature allows admins to assign specific URLs, labels, and icons to each button, which will appear as shortcut buttons for agents. The main benefit of this functionality is that it enables agents to quickly navigate to pre-configured pages with a single click, eliminating the need to switch between multiple pages during customer conversations.

To enable Agent Assist for an agents, the Agent Assist Profile needs to be created.

Navigate to “Agent Assist Profile” admin page, and press “+Add Agent Assist Profile”. Enter the name and description for Agent Assist Profile.

In case of using OAK Clarify Voice Recording Integraion, you can make use of option “Use Oak Buttons” (blue microphone icons underneath section’s purple icons). This feature allows the agents to either Pause or Resume recording of the current call, useful option for various cases.

Notes: In order to use Pasue/Resume recording feature, at the ClarifyGo Automation rules you have to configure a rule set with certain values, for instance:

  • PauseRecording action with DTMF Value
    *#0
  • ResumeRecording action with DTMF Value
    *#1

See the ClarifyGo documentation pages for instructions.
Depending on mobile provider, a caller may hear DTMF tone upon pressing Pause/Resume buttons.

  • “AI-Flow opt-out” – will show the button in Agent Assist which allow agents to opt-out AI Flow from the current call. This option may be useful when certain conversation (often private) should not be processed by various AI actions. This setting is presented as a blue button (first blue icon underneath section’s purple icons) labeled as “Opt out of AI assistance”.
  • Optional “Use CRM result for History” setting will make Webchat conversation visible in Last interaction section (only when user has been resolved in CRM Replicator by the phone number). This option is useful in case of the same user deciding to call a Queue.
  • “Show Customer Timeline” – will show the button in the Agent assist so that an agent is able to see the customer timeline.
  • “Show AI Summary” – will show the AI summary tab
    • For calls –  if AI Flow was enabled on the agent who was present in the call.
    • For social conversations – if summarization of the conversation transcript succeeded.
  • “Able to edit AI Summary” – will allow agents to edit the AI Summary

Action Buttons

  • Icon – select icon which will be presented in Agent Assist to an agent (under purple section’s icons)
  • Label – tooltip label after hovering mouse cursor over configured Action Button in Agent Assist
  • Link – URL address for the Action Button – Link supports usage of variables

Created Agent Assist Profile needs to be assigned. This can be done in two ways:

  1. Assign “Agent Assist Profile” to created earlier Agent Profile. This will enable an Agent Assist for every agent of the Agent Profile.
  2. Assign “Agent Assist Profile” to specific agent via Agents admin page.
Read more
Setup Access & Security
Setup - General
Setup Access & Security

The ROGER365.io admin portal is the web based portal that is used by ROGER365.io administrators to manage the subscription, reporting, flowchart, FAQ bot and TouchPoints.

Manage access to the admin portal and Teams Application

ROGER365.io only uses Microsoft industry standard technology. The ROGER365.io is an Enterprise application within the Microsoft Azure Active Directory. Via this Enterprise Application you can allow users to sign-in to ROGER365.io admin portal or not. It is strongly recommended to configure the ROGER365.io Enterprise Application within Azure Active Directory according to your own company policy.

Disclaimer: The information in this document must be used as a guidance, please make sure you have good knowledge about your own Microsoft Office 365 and Azure Active Directory situation before continuing.
  1. Login into Microsoft Office 365 and choose the Azure Active Directory Admin Center.
  2. Select the option [Enterprise applications]. TIP: Click search field and type: enterprise, the search will show the option “Enterprise applications”.
  3. Choose the application “ROGER365.io” or search in the rights search field for this application. Click the application to see the details.
  4. Choose [Properties] and make sure the following settings are enabled. Make sure the option “User assignment required?” is set to YES. Click [Save] to confirm these changes.
  5. Select “Users and groups” and add any user or group you would like to give access to the ROGER365.io admin portal. Also change the default access to the Admin role to avoid having issues.
  6. Assign the correct role to the user. For example ‘Admin‘ for users who must have access to the ROGER365.io admin portal and ‘Teams User‘ for users which have to be able to access the Wallboard or the Phonebook applications. For access to the Supervisor and Reporting tabs when you are using Contact Center you can assign the role ‘CCSupervisor‘ and/or ‘CCReporting
  7. Click [Save] to confirm the changes.
When a user is assigned the CCSupervisor or CCReporting role, the user also has to be an agent in the queue which they are allowed to monitor

Roles can also be assigned to an Active Directory group (recommended); however, this requires a Microsoft Azure AD Premium license (minimum Azure Entra ID P1).

Make sure that all of the required Microsoft 365 URLs and IP address ranges for Microsoft Teams are allowed in your network infrastructure.

Read more
Malicious File Blocking
Setup - Social Messaging
Malicious File Blocking

You can prevent that files with a certain file type are uploaded from any TouchPoint. For example: you can prevent external users from uploading a file via Webchat or WhatsApp to your Teams Agent.

To do this:

  1. Open ROGER365.io admin portal
  2. Go to TouchPoints and choose a configured TouchPoint
  3. Scroll down until section: “Malicious File Blocking”
  4. Click [Edit] and
    1. choose one of the available extensions, click [Add]
    2. and/ or create a new “assigned extension” that is blocked based on an file extension
  5. Click [Save] to confirm

Read more
Wallboard
Setup - Social Messaging
Wallboard

Add ROGER365.io Wallboard app to Microsoft Teams

There are two options to add the Wallboard app to the Microsoft Teams client: 1) Distribute it globally in your tenant to all users via the Microsoft 365 Admin portal or 2) install it locally in the Microsoft Teams client. In case of the 2nd option this must be allowed by the Microsoft 365 Administrator.

Option 1: Install locally
  1. Login into https://admin.roger365.io with you Microsoft 365 account
  2. Go to [Microsoft Teams] and choose [Add Teams TouchPoint]
  3. Download the WALLBOARD.ZIP manifest file
  4. In the Microsoft Teams client, click on the [Apps] icon. You can find it at the left bottom of the navigation bar
  5. Select the option [Upload a custom app] (If you don’t see this option, then this must be allowed by the Microsoft 365 Administrator) and select the WALLBOARD.zip file
  6. Follow the steps underneath at ‘Activate Wallboard

Option 2: Install globally
  1. Login into https://admin.roger365.io with you Microsoft 365 account
  2. Go to [Microsoft Teams] and choose [Add Teams TouchPoint]
  3. Download the WALLBOARD.ZIP manifest file
  4. As a global administrator of teams administrator go to the teams admin center, choose under Teams Apps the option Manage apps
  5. On the manage apps page choose upload new app and choose select file. In the pop up select the WALLBOARD.ZIP file you downloaded earlier and acknowledge the screen to get the upload started

Activate Wallboard

After a successful upload it could take op to 24 hours before the app is visible in the Teams Apps. You can also logout/login into Teams to have the Wallboard app directly available.

Read more
Reporting
Setup - Social Messaging
Reporting

In the Report menu you can run reports about communications from a specific TouchPoint to a specific channel.

  1. Login via https://admin.roger365.io with you Microsoft 365 account
  2. Choose [Reporting] and in the left fill in:
    1. Select from which TouchPoint to which channel
    2. Selected from and until date
  3. Click the [Get report] button (magnifying glass icon) on the far right side to generate the report

Reports data should be looked from the Touchpoint perspective.

Reporting data

The following information is by default available. When more information is needed the Microsoft Power BI can be very useful:

  • Average response time
  • Average time unassigned
  • Average messages per conversation
  • Conversation per status – number of assigned/ unassigned conversations, agent or customer pending or completed
  • Amount inbound vs outbound messages per day
  • Conversation totals
  • Agent Totals
  • SLA Per Agent

What is a conversation?

Every message is part of a “conversation,” which can be thought of as a folder containing related messages.

A conversation is created when the first message from a user or TouchPoint is received. All subsequent messages from the same TouchPoint/user will be grouped into that conversation until it is closed. Once a conversation is closed, any new message from the same TouchPoint/user will trigger the creation of a new conversation.

Message Count

The message count on the Reporting page is based on the total number of messages recorded in the endpoint, which is then divided by the number of conversations associated with that agent. The report also includes all conversations, which may vary depending on message length, as some users may use more words than others.

It’s important to note that the conversations displayed in the report may differ from those in the subscription data. For instance, if you use Campaigns or Toastar for Teams, those conversations are subtracted from the subscription data but are not reflected in the report. Additionally, if TouchPoints are deleted, those conversations are excluded from the report, though they are still counted as part of the overall conversation total.

Looking for more detailed analytics? The Insights & Analytics Power BI report offers deeper insight into your Contact Center’s performance across key metrics and trends.

Read more
Messages
Setup - Social Messaging
Messages

Messages are standard “predefined” text that can be used within the flowchart. This saves time building the flowchart.

The predefined message can be set in the “Social Messaging” part -> [-Messages] tab (under [Messageflows]).

Messages are used within the flowchart “SendMessageToEndpoint” action with this context: PredefinedMessage[“TestMessage”].

At this moment multiple languages are not supported yet, so only EN will be used

Read more
Examples
Setup - Social Messaging
Examples
Read more
Graphical Designer
Setup - Social Messaging
Graphical Designer

The graphical designer is a workflow design tool. With the graphical designer ROGER365.io is configured how to respond and what to do in certain scenario’s.

Designer

The top “Tool bar” contains general actions like [Save], also the flowchart variables are set here. The left panel has the available actions, the middle “flow area” is the zone were the flow is built and the right “properties” panel is used to fill in data to specify the actions.

Drag & Drop

To add an action in the flow select it at the left panel and drag & drop into the “flow area”.

For example, to add the action “SendMessageTo” to your flow select it at the left and drag & drop it in the “Flow area”.

Create a link between actions

To connect two actions, you must select one action, select a “dot” and drag it to the other actions “dot”.

A link or connection can also have different types and values, select the link and see the options in the “Link Properties” right panel.

Graphical Designer offers useful options like:

  • Export/Import – This option allows to export/import configuration of the flow. You can decide whether you want to export it with expressions or not. Useful option for making demos, templates and showing them to customers or other engineers.
  • Print – This option allows to print configuration of the flow. Upon pressing the button, new page will be open where you can decide how you want to print the flow, or save it as PDF file.
  • Copy & Paste – The Graphical Designer offers copy and paste functionality. This allows you to copy highlighted actions and paste them within the same flow (actions cannot be copied and pasted between different flows). Once the actions are highlighted, use the “CTRL + C” shortcut to copy and “CTRL + V” to paste, or hold the “CTRL” key while dragging the highlighted block. Be sure to rename the copied actions, as all details are duplicated.
  • Undo & Redo – It is possible to Undo/Redo your changes up to 50 actions. If you edit your flow after undoing couple of changes, you will lose Redo option.

Read more
Using the library
Setup - Social Messaging
Using the library

Every dialogue needs a flow which defines what the steps in the communications flow are. You can create the flows manually, or choose predefined flows from the library. When selecting a flow from the library a wizard will guide you trough a few steps. After finalizing them the flow will be created and, if you like, you can make some manual modifications.Currently the following flows are available:

Webchat

Webchat to Microsoft Teams

  • A flow which sends the webchat user a welcome message and sends the message to the selected Microsoft Teams Channel.

Webchat to Microsoft Teams + Sentiment Analysis

  • A flow which sends the webchat user a welcome message and sends the message to the selected Microsoft Teams Channel including sentiment analysis of the webchat user.

Webchat to Teams + Pageviews

  • A flow which sends the webchat user a welcome message and sends the message to the selected Microsoft Teams Channel including which webpages the user visited.

Webchat to Teams + Sentiment + Pageviews

  • A flow which sends the webchat user a welcome message and sends the message to the selected Microsoft Teams Channel including sentiment analysis and webpages visited of the webchat user.

Webchat with Chatbot

Webchat to Chatbot (FAQ)

  • A flow which connects the webchat user to a chatbot

Webchat to Chatbot (FAQ) escalate to Teams + pageviews + transcript

  • A flow which connects the webchat user to a chatbot, and shows which webpages the user visited and the questions asked to the chatbot.

Webchat to Chatbot (FAQ) escalate to Teams + pageviews + transcript + sentiment

  • A flow which connects the webchat user to a chatbot, and shows which webpages the user visited and the questions asked to the chatbot including sentiment analysis of the webchat user.

Webchat with Copilot

Webchat to Copilot

  • A flow which enables a conversation between the webchat user and a Copilot agent without the option to escalate to a human agent. Requires a Closure Message configured in the ‘End of Conversation’ system topic in Copilot Studio portal.

Webchat to Copilot ➝ Teams Escalation

  • A flow which enables a conversation between the webchat user and a Copilot agent, with the option to hand off the conversation to a human agent. Requires an Escalation Message configured in the ‘Escalate’ system topic in Copilot Studio portal.
  • For more details regarding Copilot integration, refer to the Copilot TouchPoint documentation.

WhatsApp

WhatsApp to Teams

  • A flow which sends the messages from a WhatsApp user to the selected Microsoft Teams Channel.

WhatsApp to Teams + Sentiment

  • A flow which sends the messages from a WhatsApp user to the selected Microsoft Teams Channel including sentiment analysis of the messages

WhatsApp to Teams + Powerhook  

  • A flow which sends the messages from a WhatsApp user to the selected Microsoft Teams Channel and sends a Webhook ant the start and end of a conversation

WhatsApp with Copilot

WhatsApp to Copilot

  • A flow which enables a conversation between the WhatsApp user and a Copilot agent without the option to escalate to a human agent. Requires a Closure Message configured in the ‘End of Conversation’ system topic in Copilot Studio portal.

WhatsApp to Copilot ➝ Teams Escalation

  • A flow which enables a conversation between the WhatsApp user and a Copilot agent, with the option to hand off the conversation to a human agent. Requires an Escalation Message configured in the ‘Escalate’ system topic in Copilot Studio portal.
  • For more details regarding Copilot integration, refer to the Copilot TouchPoint documentation.

Facebook

Facebook to Teams

  • A flow which sends the messages from a Facebook user to the selected Microsoft Teams Channel.

Facebook to Teams + Sentiment

  • A flow which sends the messages from a Facebook user to the selected Microsoft Teams Channel including sentiment analysis of the messages

Facebook to Teams + Powerhook  

  • A flow which sends the messages from a Facebook user to the selected Microsoft Teams Channel and sends a Webhook ant the start and end of a conversation

Facebook with Chatbot

Facebook to Chatbot

  • A flow which connects the facebook user to a chatbot

Facebook to Chatbot ➝ Teams

  • A flow which connects the facebook user to a chatbot and is able to route te user to a Teams Channel

Facebook to Chatbot ➝ Teams + Sentiment

  • A flow which connects the facebook user to a chatbot and is able to route te user to a Teams Channel and shows the sentiment of the conversation

SMS

Sms to Teams

  • A flow which sends the messages from an sms user to the selected Microsoft Teams Channel.

Sms to Teams + Sentiment

  • A flow which sends the messages from an sms user user to the selected Microsoft Teams Channel including sentiment analysis of the messages

Sms to Teams + Powerhook  

  • A flow which sends the messages from an sms user user to the selected Microsoft Teams Channel and sends a Webhook ant the start and end of a conversation

Email

Email to Teams

  • A flow which sends the messages from specified mailbox to the selected Microsoft Teams Channel.

Read more
Email Touchpoint
Setup - Social Messaging
Email Touchpoint

Disclaimer: Before you create Email TouchPoint in the ROGER365.io platform, you need to create App Registration for the Email integration.

The Email Touchpoint is only available in the Enterprise subscription.

Our Email Integration feature seamlessly connects the web version of Outlook with Microsoft Teams, streamlining your communication process. When an email is sent to a mailbox integrated with Email TouchPoint, it automatically initiates a new conversation thread. To respond, agents can easily access the conversation via a direct deep link, redirecting them to Outlook’s web interface.

Please note that replies to these emails cannot be managed directly through the Microsoft Teams channel or Social Queues within the Contact Center. This ensures that all email correspondence is handled efficiently through Outlook, maintaining clear and organized communication.

Create an Email TouchPoint

In the portal select [Social Messaging], [TouchPoints] and then click [+ Add TouchPoint] and select Email.

  • Name: Provide a name for your Email TouchPoint.
  • Select timezone: Select your timezone.
  • ClientId: Provide application (client) ID of Email App Registration from your Azure environment.
  • ClientSecret: Provide secret of Email App Registration from your Azure environment.
  • MailboxUserId: Enter email address for your Email integration (most of the time email address of shared mailbox).

We advise to enable option “Always show From” at mailbox used for integration.

After creation of the Email TouchPoint, create a predefined flow from the library “Email to Teams” and attach to the TouchPoint.

Read more
API TouchPoint
Setup - Social Messaging
API TouchPoint

To create your own TouchPoint integration, you can use the API TouchPoint feature. With this API you can connect your own conversational system with the ROGER365.io platform.

Note: Currently only plain text messages are supported.

Create a TouchPoint API

In the portal select [Social Messaging], [TouchPoints] and then click [+ Add TouchPoint] and select API.

  • Name: Here you can fill in a name for the TouchPoint
  • Select timezone: Select your timezone
  • Postback URL: Enter the URL of your application, so ROGER365.io knows where to send the messages to
  • Select Identifier Type: Select, if you want to do CRM recognition, the type of identifier of the participant (email addresss, phonenumber or custom)
  • Prefix (in case of custom: Enter the column from the CRM Replicator containing the identifier

After saving the TouchPoint the key is created and can be found in the properties of the API TouchPoint.

A description of the API can be found here.

Read more
Facebook TouchPoint
Setup - Social Messaging
Facebook TouchPoint

After you have created a Facebook page, you can add it as a TouchPoint to ROGER365io. Currently only Facebook Messaging is supported, so posts to the Facebook page are ignored.

Connect Facebook Page

  1. Open web browser and go to: https://admin.roger365.io
  2. Login with Microsoft 365 credentials
  3. Go to [Social Messaging], [TouchPoints]
  4. Click [+Add TouchPoint] and select [Facebook]
  5. Click the ‘Login with Facebook’ button
  6. Login to Facebook
  7. Select the Facebook page you would like to connect
  8. Enter a friendly name at ‘Name’
  9. Select the Timezone
  10. click Save

Set correct app permissions

Browse to: https://www.facebook.com/settings/?tab=business_tools and click ‘View and edit’ next to the ROGER365.io Business Integration. Check the correct pages on which you would like to enable the ROGER365.io integration and click Save.

Create a flow

After adding the Facebook page as a TouchPoint, you have to create a flow and if you haven’t create it yet: add a Microsoft Teams channel where the messages should be routed to. Check this page how to create a flow from the library.

Adaptive Card

Finally you can assign a Facebook adaptive card to the Teams channel, check this page how to create one.

Read more
SMS TouchPoint
Setup - Social Messaging
SMS TouchPoint

Before you can use SMS in the ROGER365.io platform, you need to obtain a verified SMS number.

Adding SMS as TouchPoint

  1. Go to [Social Messaging], [TouchPoints],
  2. On the right top click [+ Add Touchpoint] and choose [SMS],
  3. Add a name and select a Timezone,
  4. Choose your Service Provider,
  5. Your Service Provider will provide you the correct API Key and SMS identifier.

Note: SMS identifier of CM service provider is your obtained SMS phone number. Keep in mind that you have to replace “+” with “00”.
Example: +3112345678901 -> 003112345678901

To send SMS messages out enable the “SMS Out” option at the TouchPoint settings, and select proper Country Code, you can as well connect your CRM replicator data source.

Read more
WhatsApp for Business TouchPoint
Setup - Social Messaging
WhatsApp for Business TouchPoint

Obtaining a WhatsApp for Business number

Before you can use WhatsApp in the ROGER365.io platform, you need to obtain a verified WhatsApp for Business number. You can get this from an official provider WhatsApp for Business Providers like Messagebird, cm.com or Zenvia. Check here for a more detailed explanation. Once you have obtained this number, it can be connected to the ROGER365.io platform.

Adding WhatsApp as TouchPoint

  1. Go to [Social Messaging], [TouchPoints]
  2. On the right top click [+ Add Touchpoint] and choose [WhatsApp]
  3. Add a name and select a Timezone
  4. Choose your Service Provider
  5. Your Service Provider will provide you the correct API Key and Whatsapp for Business identifier

Read more
Webchat TouchPoint
Setup - Social Messaging
Webchat TouchPoint

By default you have 1 webchat touchpoint available, which you can add to one or multiple websites. If you need more touchpoints you can add them via the admin portal. Based on the URL configured and attached the correct will be used.

If you would like to quickly create a webchat test website, use this manual

You can watch the steps described underneath in this tutorial video

Configure website tracking

You must register the URL’s on which websites your Webchat TouchPoint will be active. You can use a wildcard to make it available on all pages. For example: https://www.roger365.io/*

  1. Open web browser and go to: https://admin.roger365.io
  2. Login with Microsoft 365 credentials
  3. Go to [Social Messaging], [TouchPoints] on the right top click [+Webchat Urls]
  4. Add websites URL you want to host the ROGER365.io webchat

Add website to Webchat TouchPoint

  1. Go to [Social Messaging], [TouchPoints]
  2. Click the edit icon right to website touchpoint (by default you have 1 Webchat TouchPoint available, but you can add more if you like)
  3. Scroll down to section “Page urls where webchat is active”,
  4. Press [+] and choose each website URL you want to run the webchat
  5. Click [SAVE]
  6. Click Close

Read more
Microsoft Teams
Setup - Social Messaging
Microsoft Teams

ROGER365 is fully integrated with Microsoft Teams. To start using alle the functionalities, a connection has to be configured between the ROGER365 platform and your Microsoft Teams tenant. For various functionalities we have created apps which can be installed into Microsoft Teams.

To get started three steps have to be made:

  1. Install the ROGER365 App in Microsoft Teams
  2. Create a channel in Teams and connect it to ROGER365
  3. Create and connect an Adaptive Card

Read more
Queues
Setup - Social Messaging
Queues

Next to delivering incoming chat messages into a Microsoft Teams channel, you can also route them into a queue. The chat then will be placed into a visual queue in the native ROGER365.io app for Teams.

  • This functionality is only available in the Enterprise subscription.
  • Before configuring a queue, make sure you have configured the basic integration. In other words: messages must already be delivered into a Microsoft Teams channel.
  • Make sure you have enabled the option ‘Save transcripts’ on the inbound TouchPoint (Webchat, Whatsapp etc.)
Each Voice or Social Queue consumes one license from the Queue license pool. Creating a Social Queue also counts toward the total license limit.

Configuration

  • Add a queue by clicking [+ Add Social Queue]  on the right top of the screen
  • Enter a name for the queue, for example ‘SalesSupport’
  • Click Save

Then reopen the queue by clicking the blue edit icon, next to the new created queue:

  • PowerFrame URLs: You can configure a Power Frame URLs. These URLs are triggered on the Agent App when a new chat is offered to an agent, according to set Label you will be able to distinguish which Powerframe is currently used. You can include variables from the CRM Connector. For example: https://app.yourapp.com/index.html?contactid={SourceId} or https://app.yourapp.com/index.html?contactid={PhoneNumber0}
  • Use Auto Assignment: When enabled, the system automatically assigns incoming messages based on agent order to agents signed into the Social Queue with a status other than Off Work. This feature assigns social conversations to agents using a round-robin routing method.
    • Note: For the better experience, it is advised to enable “Notify assignment changes” option on the Teams TouchPoint level. This option will notify about social conversation assigned to the agent.
  • Statistics: Select the timezone to determine midnight to reset the statistics on top of the Agent App.
  • Microsoft Teams Endpoints: These are the EndPoints (channels) from where incoming chat conversations are shown in the queue. You can select multiple Teams Endpoints for example if you have configured a separate channel for WhatsApp and Webchat. By selecting both Endpoints all conversations will visually be placed in 1 queue.
  • The Shift Sync feature integrates the Microsoft Teams Shifts application with Formal Agents of a Social Queue. For more information, see the Shift Synchronization documentation.
    • Turn on the “Enabled” switch.
    • Select the Team you own in Microsoft Teams.
    • Select the previously created Scheduling Group in the Microsoft Teams Shifts application
    • Save the queue configuration and click "Sync Now" to apply the changes.
  • You can enable the Service Level feature for your queue, which measures the efficiency and responsiveness to incoming conversations within a specified service level threshold.
    • Set the maximum number of seconds within which a service should be provided to a conversation in the Social Queue.
    • Set the Threshold Percentage, which is a performance indicator showing the ratio of conversations handled within the specified time frame to the total number of conversations processed during that period.
    • If the Threshold Percentage score exceeds the set value, it will be displayed as a green icon on the Supervisor page. If it falls below the set value, it will appear as a red icon.
  • Configuration of a Teams Endpoints: You can configure the priority per endpoint. For example you can assign a Webchat channel with priotity 1 and WhatsApp with priority 2. Then webchat conversation will be placed above WhatsApp conversations. Per Endpoint you can also assign an icon which will become visible in the Agent UI.
  • Agents: The agents who a added as a member in Microsoft Teams to the channel are shown here. If “Use Auto Assignment” feature is enabled, you can rearrange agent order by dragging agents within the list when the cursor changes to ✥.
    • Check the box if you want this agent to be a formal agent:
      • Formal: an agent is able to login and logout of a queue
      • Informal: an agent is always logged in this queue, and is not able to logout
    • Note: Signing out from the queue will hide every conversation from ROGER365.io app for Teams.
  • Supervisors: Click + Add Supervisor to insert supervisors for this queue (remind that if you have enabled role-based access, a supervisor also must have the correct Azure role. Find the documentation for this here).
    • The option ‘AgentUpdate Allowed’ give the right to change the status of an agent and Log them in or out a queue.
Read more
AI Flow (Beta)
Setup - Contact Center
AI Flow (Beta)
This feature is only available in the Enterprise subscription.

The AI Flow feature for Contact Center application of ROGER365.io enables powerful AI actions such as Transcript, Summary, Quality Assurance or Classification into your daily work. Recorded calls will be later processed by various AI action in the configured by portal admins manner.

The Audio Provider and Transcript Actions are mandatory to use AI Flow feature.

Disclaimers:

  • ROGER365 platform does not use its own bots in this feature, you can only use AI bots created by Microsoft (OpenAI and other AI services)!
  • All Microsoft AI services do have a cost aspect (including transcription).
  • ROGER365 does not have an influence on the quality of used model. Results may vary
There might be situations where your AI model will be blocked by Microsoft if the conversation contains violent content or other factors that violate the Microsoft Terms of Service.

To use AI Flow feature, portal administrators must first:

  1. Create Audio Provider Action – Audio Providers
  2. Create Speech to Text Endpoint for Transcript Action – AI Endpoints
    1. Optionally you can create endpoints for Summary, Sentiment, Quality Assurance and Classification Actions – AI Endpoints
    2. (optional) Create Quality Assurance Form – Quality Assurance Forms
    3. (optional) Create Classfication Action Config – Classification Action Configurations
  3. Create AI Flow – Flows

Note: Processing of each AI Flow action is starting up around 1 minute after call has ended.

AI Flow errors are logged on the Logging admin page. If an AI Flow instance fails, it can be rerun on the Flows admin page. After three unsuccessful attempts the record is marked as Abandoned and won’t be rerun again.

You can retrieve results of AI Flow and/or each Action, using AI Flow API documentation.

Note: Results of Summary action can be seen (and/or edited) in Customer Jounery tab inside of Agent Assist’s Last Interaction section.

Read more
Classification
Setup - Contact Center
Classification

This feature (part of Agent Assist) allows agents to categorize the outcome of every call, providing a quick summary of the interaction. With customizable names and labels, agents can efficiently classify calls based on their nature, streamlining both customer service and sales processes. Classification can be created with single class or multilayered one.

Classification can be manually assigned during voice or social conversation in the Agent Assist. Voice interactions can be automatically classified using AI Flow’s Classification action.

To create new Classification, press “+Add Classification” button.

Provide a Name and Description for your Classification which will be visible for the Agent during the interaction with customer. It is possible to select specific Contact Center or Social Messaging Queue for which the created Classification will be available. If defined, you can provide name and description of the Classification for configured Languages.

You can define labels based on the language used by the agents. Navigate to “Languages” section and press “+Add Languages”:

Recognition of the language is done based on Teams Client’s language settings of the user. In case of using Teams Client’s language which is not included in configuration of Classification, the default language (English) will be used.

Use Classification API to retrieve the configuration of the Classification, as well as the Classification assigned (either manually or automatically) during conversation.

Read more
Skill Based Routing
Setup - Contact Center
Skill Based Routing

To route incoming calls to an agent with the highest skill on a certain subject, you can use the Skill Based Routing Method. The following steps are required:

  • Create the skills (see underneath)
  • At the Agents configuration, add the skills and the agents’ skill level to the agent
  • Enable Skill Based Routing at the queue configuration and select the skills required for the queue
Example Algorithm: Skill-Based Routing

Consider a queue configured with serial and skill-based routing, containing a skill named 'A':

  • Agent 1: Skill 'A', Value: 100
  • Agent 2: Skill 'A', Value: 100
  • Agent 3: Skill 'A', Value: 50

The routing process proceeds as follows:

  1. A call comes in. The system selects from agents not yet called (called: none) with the highest available skill level for A (100), resulting in Agent 1 and Agent 2. Due to serial routing, Agent 1 receives the call.
  2. Agent 1 does not answer.
  3. The system selects from agents not yet called (called: 1) with the highest available skill level for A (100), resulting in Agent 2. Due to serial routing, Agent 2 receives the call.
  4. Agent 2 does not answer.
  5. The system selects from agents not yet called (called: 1, 2) with the highest available skill level for A (50), resulting in Agent 3. Due to serial routing, Agent 3 receives the call.
  6. Agent 3 does not answer.
  7. The system selects from agents not yet called (called: 1, 2, 3) — none remain, so the list resets — with the highest available skill level for A (100), resulting in Agent 1 and Agent 2. Due to serial routing, Agent 1 receives the call.
  8. This process repeats as needed.
When a queue is configured with multiple skills, skill levels are not summed but treated as equal. For example, in a queue requiring skills A and B, an agent with Skill A at value 100 is considered equivalent to an agent with Skill B at value 100

Read more
Reason Codes
Setup - Contact Center
Reason Codes

An agent can select from multiple availability statuses, including an 'Away' status. The 'Away' status can include a sub-status to provide additional context, such as 'Away – Lunch' or 'Away – Break.' To create these reason codes, follow the steps below:

  • Click 'Add Away Status'
  • Enter a description
  • Click 'Save'

The new statuses will be available in the Teams Agent Tab immediately after refreshing the app.

Read more
Audio Prompts
Setup - Contact Center
Audio Prompts

Audio prompts are messages which you can play to users while they are in the queue. You have the option to generate audio prompt with our Text-To-Speech option, or upload yo wav files manually. Be aware that the WAV files must be in the correct format: riff-16khz-16bit-mono-pcm and the maximum size is 5mb. At the bottom of this page, you see how you can convert your files into the correct format.

Add languages

First, in the Languages tab, add the correct languages which you would like to support. To add a language:

  • Click ‘+ Add Language’
  • Click ‘Select Languages’
  • Enable the languages which you would like to use
  • Click Add
Set default Text-to-Speech settings (optional)

You can set default Text-to-Speech settings per added language. Every new TTS prompt in that language will then use them automatically, removing the need to configure each prompt individually.

  • In the Languages tab, click the gear icon next to the language
  • Choose the default Voice and Speech style (including speed and pitch)
  • Optionally type sample text and click Preview to test
  • Click Save

New Text-to-Speech prompts will now inherit these defaults. For existing prompts, you can enable the ‘Use preset values of speech language’ option to apply the defaults to them as well.

Add audio prompts

After you have added the correct languages you can add the audio prompts:

  • Click ‘+ Add Audio Prompt’
  • Enter a name and (optional) description
  • Then click the save icon on the right
  • Next to the languages, click the ‘+’ button
  • Choose the option for Text-To-Speech or Upload a wav file
Text to Speech
  • Enter the text in the correct language you would like to pronounce.
  • Select the language to use to pronounce the text
  • Select the voice which you would like to use
  • For some languages it’s possible to select a certain type, if not available select ‘General’
  • You can adjust the Speech Speed or Pitch
  • Click preview to hear the final result
  • Click Save

If default Text to Speech settings have been configured for the selected language, only the Text field needs to be filled in. The remaining values will be applied automatically from the preset, and can still be adjusted per prompt if needed.

You can use SSML to customize the Text-To-Speech file. In the TAB on the top of the screen you can add your own SSML code. For more info about SSML check this page.

Upload audio file
  • Optional: If the WAV file is hosted on a server, you can insert a URL
  • Click the ‘Select audio file button’
  • Find the correct wav file from the file explorer
  • Click the SAVE button

To quickly replay the file, click the three-dots icon left of the language and select ‘Play’. To stop the replay, click the three dots again and select ‘Stop’.

You can review the “Usages” column to see which callflow(s) contain a particular audio prompt. Click on the callflow name(s) to open a box with redirection option to the specific callflow.

Converting the file in correct format

The best way to convert your audio files to the correct format is to use the free audio tool Audacity: https://www.audacityteam.org/download/windows/.

After you have opened the file, and you see two tracks (stereo), click “Select” button at the bottom of the audio file to highlight whole file, then right click on Track Control Panel, and select “Split Stereo to Mono” option.

Your audio file now should be separated into two exactly the same independent mono tracks – delete one of them.

Change the format of audio. Right-click on the Track Control Panel again, but this time, select “Format” -> “16-bit PCM“:

Adjust the sample rate by changing value of “Rate” -> “16000 Hz“:

Finally, export your prepared audio file.
Select “File” -> “Export”, save the file as “WAV (Microsoft)“, and set the encoding to “Signed 16-bit PCM“:

Read more
Agent Profiles
Setup - Contact Center
Agent Profiles

Agent Profiles page allows portal admins to create Profiles (presets) with specified agent configuration. Useful option for huge enterprises where manual creation of each agent is simply too time consuming. Agent Profile can be assigned for existing agents (using this admin page) or for non-agent who will be added to the solution (at Agents page).

To create Agent Profile, press “+ Add Agent Profile” to open configuration window where you can define basic Agent settings.

To assign existing agents to created Profile, press green button “Assign Agent Profile” which will open a list of configured in the platform agents. Bigger organizations should benefit from “By Security Group” list which shows only configured in the platform agents within specific group.

Note: At the end of list you may see “Load More…” button to load remaining users. There might be situation where this button needs to be clicked couple of times!

Optionally, you can set up People Picker and/or Group Picker query filters to filter the returned users and/or groups from your search results.

The Microsoft Graph API supports various OData query operators like eq (equals), ne (not equals), startswith, endswith, and, and or, enabling complex filtering. Additionally, portal admins may enable Advanced Graph search feature by checking boxes “DisplayName”, “Department”, “JobTitle” etc. This feature allows for more accurate searching for desired contact – example usage of Advanced search feature can be found at Agents page.

Extend graph user/group filter

Scenario Expression for Extend user/group filter
Return users where mail domain is ‘@mail.com’ endswith(mail,’@mail.com’)
Return users where DisplayName is not ‘Bob’ NOT startswith(displayName,’Bob’)
Return users where department is Development and Sales department in (‘Development’, ‘Sales’)
Return every group besides groups starting with the name ‘HR’ not(startswith(displayName, ‘HR’))
Exclude specific email address of a group from the results not(mail eq ‘name@mail.com’)

For more details on supported operators and use cases, refer to the Microsoft Graph filter documentation.

You can use the Validator feature (the icon on the far right side of the Extend filter field) to check that the provided filter is valid and won’t cause any issues. In order to use it, you need to update your Attendant Console App Registration using Automated PowerShell script (check documentation page).

Microsoft Graph API has limit of its URL length at around 2k characters.

Read more
Agents
Setup - Contact Center
Agents

Here, you can select the individuals eligible to be assigned as agents and added to a queue.

Click '+ Add Agents' to open the pop-up window for adding new agents to the solution. The 'Users' tab displays all users within the organization, including existing agents. For organizations with Security Groups defined in their tenant, the 'By Security Group' tab is recommended, particularly for larger organizations, as it displays the members of the selected group. Note that the first time you search for groups, a pop-up may appear requesting access permissions.

It is possible to assign an Agent Profile to non-agent users, converting them into ROGER agents. This can also be done later via the Agent Profiles admin page.

Once agents have been added to the solution, they will appear in the list. Use the 'Edit' button next to the corresponding Agent record to configure Agent Settings and Skills:

Membership
  • Blue count badge which upon pressing displays list of the Queues that the specific agent is assigned to.
Profile
  • Assigned Agent Profile to the specific Agent, an empty field indicates that no Agent Profile has been assigned.
  • Agent status after no answer
    • Enable this setting if you want to change the state of the agent to “Not Ready” if the incoming phone call returns to the queue according Queue’s Ring Timeout setting.
      • When the setting is set to “Not Ready”, you can configure the Auto Recovery option. This allows you to set a number of seconds (30 seconds minimum) that must elapse before the agent’s status automatically changes from “Not Ready” to “Ready”. This option ensures that even if an agent misses a call and forgets to manually update their status, the call will still be properly handled.
Agent status after Decline
  • Enable this setting if you want the agent’s state to automatically change to either “Ready” or “Not Ready” when the agent rejects an incoming phone call from a queue.
  • Note: This option does not apply when an agent has cherrypicked an incoming call from a queue.
    • When the setting is set to “Not Ready”, you can configure the Auto Recovery option. This allows you to set a number of seconds (30 seconds minimum) that must elapse before the agent’s status automatically changes from “Not Ready” to “Ready”. This option ensures that even if an agent misses a call and forgets to manually update their status, the call will still be properly handled.
Use Teams presence
  • When you enable this setting, the agents’ status will change to ‘Busy’ when the Teams status is ‘In a Call’ or ‘Presenting’. Also when the Teams presence changes to ‘Offline’ the status of the agent changes to ‘Off-Work’. Mind that you also have to (one time) authorize the Presence App and enable the setting on the General page.
  • Note: Each time when the agent signs out from Teams Client, don’t forget to manually change “Off work” status to Ready else in CC after logging in.
  • Note: Enable Teams Presence only for active agents handling calls, not for all users in Entra ID. Presence changes from inactive users are also stored, which can impact performance. Use this feature selectively to avoid unnecessary load.
Mappings (Beta)
  • Mappings feature as part of the Teams Presence integration allows to map specific Microsoft Teams status of the user (such as Do not Disturb) to one of available from the list ROGER365 agent status. This feature is particularly useful to for instance map Busy status (which can come from Microsoft Outlook calendar event) to ‘Not Ready’ in Contact Center application of ROGER365.io.
  • Note: The Mappings (Beta) feature is ignored when the agent has an active wrap-up item.
Cherrypicking
  • Enabling this setting allows the agent to pick a specific call from the queue
Disable extend wrap up time
  • Prevents the agent to request more then the default wrap up time.
Attendant
Supervisor Assist
  • Activate Supervisor Assistant feature for this agent.
Agent Assist Tab Profile
  • Shows Agent Assist Profile name when assigned. This activates the Agent Assist feature for this agent. More details can be found at Agent Assist page.
AI Flow
  • Shows AI Flow name when assigned. This activates the AI Flow feature for this agent. More details can be found at AI Flow page.
Graph Query Filter
  • Shows confgured custom people picker query filter for specific agent. It is possible enable Advanced search feature by marking checkboxes “DisplayName”, “Department” and so on.
  • More details can be found at Agent Profiles page.
Skills
  • Here you can assign the created skills to the agent with their experience level. The level can range between 0 and 100, where 0 means no skill and 100 expert.
Languages
  • Assign one or more languages to an agent to make them eligible for Language Aware Routing. Use the + Add Language button to select a language and set a fluency score from 0 to 100. Agents without any language configured will not be invited when a Queue has Language Aware Routing enabled.

Since ROGER365.io platform cannot guarantee that the Microsoft’s Presence API will always work, the Agent page includes an option to reset failed Teams Presence integrations for affected agents.

You can use the “Reset Failed Teams Presence” button to reset the Teams Presence integration for all affected agents at once.

To reset the integration for a single agent, open the agent’s settings, enable the “Reset Presence” checkbox, and then save the agent’s configuration. This action will reset the Teams Presence integration for that specific agent.

Big organizations should benefit from configured earlier User Synchronization (Beta) feature allowing to add agents to the platform with pre-selected Agent Profile based on selected Entra ID Security Group – more details can be found at this documentation page.

Press “+ Sync Agents” to open pop-up allowing to select Security Group(s) for synchronization.

  • Turn on the “Enabled” switch
  • Select Entra ID Security Group(s) which will be used for synchronization with ROGER365.io platform
    • Note: Selected Security Group must be part of Enterprise Application “ROGER365.io” with correct role assigned!
  • Select created earlier Agent Profile to add agents with predefined settings,
  • Press “Save” button to save Sync Agents form,
    • Click [+ Sync Agents] button again,
    • Click on “Sync Now” button to start synchronization of the users into ROGER365.io platform.

Read more
Call Park
Setup - General
Call Park

Call Park function allows you to park (“hold”) current active call for yourself or another agent configured in Call Park’s group. Here you can create your call park group into which you can assign an agents who should have enabled this functionality. Description how to use this feature is described in this documentation page about The Basics.

Click '+Add Call Park' to create a new group, provide a name for the Call Park group, and assign the desired agents.

Click 'Save' to apply the Call Park configuration.

Automatic synchronization of agents into the Call Park group can be configured using Azure Entra ID Security Groups. Before proceeding, ensure that the 'Enable User Synchronization' feature is activated on the General admin page.

Click the green 'Sync Configuration' icon:

Next, enable the sync form by selecting the 'Enabled' switch, save the form, and proceed to select the Security Group containing the relevant agent users.

Based on the membership of the selected Security Group, the ROGER365.io platform will automatically add or remove agents from the Call Park group accordingly. Synchronization runs nightly at midnight.

Before un-parking a call, ensure your Teams status is NOT set to 'Do Not Disturb' or any status that automatically rejects incoming calls. Do not set your ROGER status to 'Available' while on an active call (doing so may cause the agent to receive an additional call before the current one has ended).

Read more
Resource Accounts
Setup - Contact Center
Resource Accounts
Before proceeding make sure that your account has Global Administrator role in Microsoft 365 tenant. Make sure that your SBC setup allows forwarding from Teams to Teams (only Direct Routing).

In Microsoft Teams, a resource account is required for each call queue. Resource accounts may also be assigned service telephone numbers. This is how you create a resource account and assign a phone number allowing callers from outside Teams to reach the ROGER365.io queue.

If you haven’t installed the Teams PowerShell module on you PC, you can find the relevant information here: https://docs.microsoft.com/en-us/microsoftteams/teams-powershell-install
We advise to use Teams PowerShell module – version 5.9.0, or above.

1. Create new Resource Account in Teams PowerShell module

  • Start a PowerShell session from your pc
  • Log in the MicrosoftTeams powershell module with this command
Connect-MicrosoftTeams

  • Using the Microsoft Teams PowerShell module, create a new resource account. Update the UserPrincipalName and DisplayName values to align with your environment's naming conventions
New-CsOnlineApplicationInstance -UserPrincipalName "user@domain.com" -ApplicationId 'c8db29b6-8184-44fa-a6a1-086b8ae0435e' -DisplayName "DisplayNameOfAccount"

2. Assign “Microsoft Teams Phone Resource Account” license

  • Navigate to Office365 Admin portal via: https://admin.microsoft.com
  • Select [Users] / [Active users] and select your created resource account from the previous step
  • Assign the resource account a “Microsoft Teams Phone Resource Account”. If this license is unavailable, go to [Billing] / [Purchase Services] where you can add this (free) license

3. Assign a number to the Resource Account

If the Set-CsPhoneNumberAssignment command returns the error 'The application endpoint was not found in Active Directory,' this generally means Azure AD has not yet fully synced. Wait a few minutes and try again.

Direct routing

  • If not yet connected start a PowerShell session from your PC like done in step 1
  • Configure the resource account with a phone number, phone type, and reverse number lookup using the following command. Insert the username of the previously created resource account, along with the correct phone number, into the command.
Set-CsPhoneNumberAssignment -Identity "user@domain.com" -PhoneNumber +1222333444 -PhoneNumberType DirectRouting -ReverseNumberLookup 'SkipInternalVoip'

Update Contact Information of Resource Account identity in Entra ID (only for Direct Routing)

  • Navigate to your Entra ID tenant and locate Resource Account’s DisplayName provided in step 1.
  • On the Contact Information tab, enter the phone number used in the PowerShell command in the 'Business phone' field.

Operator Connect

  • If not yet connected start a PowerShell session from your PC like done in step 1
  • Configure the resource account with a phone number and phone type, using the following command. Insert the username of the previously created resource account, along with the correct phone number, into the command.
Set-CsPhoneNumberAssignment -Identity "user@domain.com" -PhoneNumber +1222333444 -PhoneNumberType OperatorConnect

Calling plan

  • If not yet connected start a PowerShell session from your PC like done in step 1
  • Configure the resource account with a phone number and phone type, using the following command. Insert the username of the previously created resource account, along with the correct phone number, into the command.
Set-CsPhoneNumberAssignment -Identity "user@domain.com" -PhoneNumber +1222333444 -PhoneNumberType CallingPlan

4. Retrieve ObjectID of a Resource Account

  • In PowerShell run the following command. Insert the username of the previously created resource account
$Instance = Get-CsOnlineApplicationInstance -Identity "user@domain.com"
  • Run the command to get the ObjectId of the resource account. Save the ObjectID, it will be used later.
$Instance.ObjectID
  • To use the disconnect button in the Teams Agent app, you have to run the following command. (Use this exact line, do not change the id)
Set-CsApplicationMeetingConfiguration -AllowRemoveParticipantAppIds @{Add="c8db29b6-8184-44fa-a6a1-086b8ae0435e"}

5. Configure the Resource Account in the ROGER365.io admin portal

  • Go to the ROGER365.io admin portal via: https://admin.roger365.io
  • Select [Contact Center] / [Resource Accounts]
  • Click [+ add Resource Account]
  • Enter the ObjectId which you obtained from step 4.
  • Enter a description,
  • Enter the connected Phone Number,
  • If you already configured a callflow, select it here. Else press save and assign the callflow after you’ve created one.
  • Select the default language for this Resource Account from the list. The selected language is applied to every call and determines which Audio Prompt file is played. To change the language during a call at runtime, use the Set Language action.

Read more
Graphical Designer
Setup - Contact Center
Graphical Designer

With the Callflow Designer you can graphically design your calling scenario. By adding components you can create several advanced routing flows.

Designer

The top “Tool bar” contains general actions like [Save], also the flowchart variables are set here. The left panel has the available actions, the middle “flow area” is the zone were the flow is built and the right “properties” panel is used to fill in data to specify the actions.

You can drag items from the toolbar on the left and create links between actions. Every actions has it’s own properties, which you can configure on the right.

Graphical Designer offers useful options like:

  • Export/Import – This option allows to export/import configuration of the flow. You can decide whether you want to export it with expressions or not. Useful option for making templates and showing them to customers, other engineers.
  • Print – This option allows to print configuration of the flow. Upon pressing the button, new page will be open where you can decide how you want to print the flow, or save it as PDF file.
  • Copy & Paste – The Graphical Designer offers copy and paste functionality. This allows you to copy highlighted actions and paste them within the same flow (actions cannot be copied and pasted between different flows). Once the actions are highlighted, use the “CTRL + C” shortcut to copy and “CTRL + V” to paste, or hold the “CTRL” key while dragging the highlighted block. Be sure to rename the copied actions, as all details are duplicated.
  • Undo & Redo – It is possible to Undo/Redo your changes up to 50 actions. If you edit your flow after undoing couple of changes, you will lose Redo option.
Read more
Form Based callflow
Setup - Contact Center
Form Based callflow

A call flow defines how the caller is routed trough the system and what audio prompts will be used. The callflow operated between the configured Resource Account and Queue. To create a callflow, follow these steps:

  • Click ‘+ Add Callflow’
  • Enter a name and a description for the flow
  • Language
    • Optional select a language for the queue, so that the correct Audio Prompt will be selected
  • Queue
    • Select the configured Queue from the list
    • Enter the amount of seconds the call must be offered to the agent, before putting in back to the queue or offer the call at another agent (default value [empty field] is 20 seconds, minimum is 10 seconds).
  • Schedule
    • Select the configured opening-hours schedule from the list
  • CRM
    • If you have configured a CRM Replicator, you can enable this setting and select the correct source. When found, the displayname and company name will be shown in the Agent App when a caller enters the queue and is offered to the agent.
  • Audio Prompts
    • Greeting audio file: is played to every caller before entering the queue
    • Announcement file: is played directly after the greeting file (eg. can be used to announce a temporay special message)
    • Background audio: is played when user is waiting in the queue. You can find an example file on the audio prompt page
    • Wait message file: is played every xx seconds (for example: “all our agents are busy, please wait”)
  • Call time out handling
    • You can configure a queue timeout (minimum value is 10 seconds). When a caller reaches this timer, you can play a Call timeout message followed by an action:
      • Disconnect
      • Redirect to an external phone number (this can also be an native Teams Auto Attendant with a menu or an instant redirect to a voicemailbox)
      • Specific person in the organisation
Currently, you cannot route a call directly to another resource account (although you can find it in the persons list). Microsoft is currently working on this

  • Call closed handling
    • If a call is received during closed hours (as defined in you schedule) you can select an audio prompt to play
    • and an action to disconnect the call or redirect to another destination
  • Schedule closed handling
    • When a schedule is configured and at the time of the call the schedule is closed, you can select an audio prompt to play
    • and an action to disconnect the call or redirect to another destination
  • Schedule holiday handling
    • When a schedule is configured and at the time of the call the schedule is set to holiday, you can select an audio prompt to play
    • and an action to disconnect the call or redirect to another destination
  • No Agents available handling
    • If all agents are logged out, or have the ‘Off Work’ status you can select an audio prompt to play
    • and an action to disconnect the call or redirect to another destination
  • Webhooks
    • Here you can configure a webhook which is triggered when the corresponding action occurs.
    • For information about the contents of the webhooks, go to this page.
Read more
Using the library
Setup - Contact Center
Using the library

Every call conversation needs a callflow which defines what the steps in the communications flow are. You can create the callflows manually, or choose predefined callflows from the library. When selecting a callflow from the library a wizard will guide you through a few steps. After finalizing them the callflow will be created and, if you like, you can make some manual modifications. Currently the following callflows are available:

Recipe for call queue with queue position

This callflow informs callers about their current position in the queue while they wait. It retrieves the queue position, plays an audio prompt that matches the position, then plays music before repeating.

Recipe for simple Callflow

This call flow connects the caller directly to a queue and plays background music while they wait.

Recipe for creating IVR menu

This callflow shows how to build a simple IVR with three menu options using DTMF input.

Recipe for routing based on logged in agents

This callflow routes callers dynamically based on agent availability in different queues.

Recipe for Schedule routing

This callflow routes calls based on business hours and holidays using the Schedule action.

Recipe for redirecting to other queue

This flow demonstrates how to automatically redirect a call to another queue when the first queue times out.

Recipe for conditional routing based on caller phone number

This callflow demonstrates conditional routing of incoming calls based on provided country code.

Recipe for getting expected wait time of the queue

This callflow informs callers about their estimated wait time based on live data of selected Queue.

Recipe for storing customer feedback

This callflow demonstrates how to store customer feedback which later can be checked using the Agent Assist or API.

Recipe for playing a personal greeting based on CRM

This callflow shows how to create personal greeting based using Text to Speech action for recognized in CRM Replicator caller.

Recipe for continuing the conversation on WhatsApp

This callflow presents how to continue conversation on WhatsApp using created earlier WhatsApp template.

Read more
Queues
Setup - Contact Center
Queues

General queue settings

For every group or department you can configure a queue. Based on the settings of the queue incoming calls will be routed to the assigned agents.

  • Add a queue by clicking [+ Add Call Queue]  on the right top of the screen
  • Enter a name for the queue, for example ‘SalesSupport’
  • Statistics: Select the timezone to determine midnight to reset the statistics on top of the Agent App.
  • If you would like to use skill based routing you can enable this here, and select the required skills for calls in this queue
  • Select the routing method:
    • Longest Idle: routes each call to the agent who has been idle the longest time. The agent idle time starts counting from 0 after every status change in the ROGER365.io agent app (not the Teams presence)
    • Serial: rings all call agents one by one in the order specified in the Agents list. If an agent dismisses or does not pick up a call, the call will ring the next agent and will try all agents until it is picked up.
    • Round Robin: balances the routing of incoming calls so that each call agent gets the same number of calls from the queue.
    • Parallel: rings all agents in the queue at the same time. The first call agent to pick up the call gets the call. Invites to a call happens in batches of 10 agents at the time.
  • Starting from the Business subscription you can configure a Power Frame URLs. These URLs are triggered on the Agent App when a new call is offered to an agent, according to set Label you will be able to distinguish which Powerframe is currently used.
    You can include variables from the CRM Connector. For example: https://app.yourapp.com/index.html?contactid={SourceId}.
    • You also also include the incoming phonenumber (and without CRM Replicator) by inserting the variable in this format: https://app.yourapp.com/index.html?phone={phonenumber}
    • Or you can add the callid using this format: https://app.yourapp.com/index.html?callid={callId}
    • Note: If you are using Microsoft PowerApps, then embedding an application is not supported by Microsoft (https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/limits-and-config#embedding-limits-for-canvas-apps). The alternative would be to open Microsoft Teams application directly in your browser via this url: https://teams.microsoft.com
  • if you want to provide agents a wrap-up timer after ending a call you can enable this setting and enter the amount of seconds before the next call will be offered
  • You can enable Queue Service Level feature for your Queue, which measures the efficiency and responsiveness to incoming customer requests within a specific service level threshold. It is possible to enable Queue Service Level option for every type of calls, or to exclude Virtual Calls (Virtual Wait action and Outbound Call Campaign).
    • Set maximum number of seconds within which a service should be granted to a request in the Queue.
    • Set Threshold Percentage, which is a performance indicator that reflects the ratio of requests handled within the specified time frame to the total number of requests processed during that period (formula for calcuating Service Level % can be found at Reporting page).
  • Intelligent Formal Activation feature is responsible for automatically activating additional formal agents based on the rules. It is a powerful feature in cases of overloaded Queues with not enough available agents.
    • Set “Threshold (Queue position)” which determines when the Intelligent Formal Activation should be activated.
    • When the Threshold is met according to a logic (callsQueued > 2 & agentsReady == 0), a currently logged out from the Queue agent will be signed in again, helping to reduce the pressure on the Queue.
  • The Shift Sync feature integrates the Microsoft Teams Shifts application with Contact Center Formal Agents. For more information, see the Shift Synchronization documentation.
    • Turn on the “Enabled” switch.
    • Select the Team you own in Microsoft Teams.
    • Select the previously created Scheduling Group in the Microsoft Teams Shifts application.
    • Save the queue configuration and click “Sync Now” to apply the changes.
  • You can set Priority value for your Queue, it allows to priotize calls between different Queues.
    • 0 is the highest priority you can setup.
  • Click [+ Add Agents] to inserts agents to participate in this queue

  • If you don’t see any agents on the right pane, you first have to enable agents. How you can do this is shown here.
  • To add agents to this queue, check the ‘assigned’ box
  • Check the box if you want this agent to be a formal agent:
    • Formal: an agent is able to login and logout of a queue
    • Informal: an agent is always logged in this queue, and is not able to logout
  • Click Save
A queue supports a maximum of 50 assigned agents by default. Should additional capacity be required, this limit can be extended through supplementary add-ons.

Alternatively, a portal administrator may configure Agents, Supervisors or Report Viewers to the Queue via enabled earlier User Synchronization feature – more details at this documentation page. Described below method works only with the Entra ID users which are added to ROGER365.io platform (meaning they’re visible at Agents admin page).

  • Click [+ Sync Agents] to automatically configure existing agents to this Queue
  • Turn on the “Enabled” switch
  • Select Entra ID Security Group containing users which are agents of ROGER365.io platform
    • Note: Selected Security Group must be part of Enterprise Application “ROGER365.io” with correct role assigned!
  • Check the “Formal” box if you want agents to be a formal agents:
    • Formal: an agent is able to login and logout of a queue
    • Informal: an agent is always logged in this queue, and is not able to logout
  • Press “Save” button to save Sync Queue Agents form,
    • Click [+ Sync Agents] button again,
    • Click on “Sync Now” button to automatically add agents to this Queue.
    • Do not forget to save Queue settings at the end of configuration process!

Supervisors

Click + Add Supervisor to insert supervisors for this queue (remind that if you have enabled role-based access, a supervisor also must have the correct Azure role. Find the documentation for this here)

After you’ve added the supervisor you can enable ‘AudioMonitor Allowed’ which gives the supervisor the right to Monitor, Join or Whisper a live call. The option ‘AgentUpdate Allowed’ give the right to change the status of an agent and Log them in or out a queue.

You can enable ‘SkillLevelUpdate Allowed’ option, which grants the supervisor the ability to change the skill level of agents assigned to this Queue. In the Supervisor page of the ROGER365.io Contact Center application, supervisors with this permission can update the skill level of an agent by clicking the ‘‘ icon on the far right side of the agent’s record in the Agents section.

The option ‘ForceTerminate Allowed’ give the right to force terminate a call at the Supervisor page of the ROGER365.io Contact Center application when necessary. Each force terminating a call by Supervisor is logged into “Logging” page of ROGER365 admin portal. You can find more details regarding usage on The basics documentation page.

  • Click [+ Sync Agents] to automatically configure existing agents as Supervisors of this Queue

Report Viewers

Click + Add Report Viewer to insert agents who will have an ability to see queue’s reports (reminder that if you have enabled role-based access, a reporting users also must have the correct Azure role. Find the documentation for this here).

Assigning an agent as a Queue’s Report Viewer gives them access to the Reporting tab in the Contact Center application, scoped to this queue. Queue-based reports (such as Queue Summary, Queue Detail) will only show this queue’s data, while Agent-based and Caller-based reports may also include related activity from other queues, since those reports are organized around the agent or caller rather than a single queue.

  • Click [+ Sync Agents] to automatically configure existing agents as Report Viewers of this Queue

Addressbook
Here you can configure in which CRM Replicator can be searched by the agent

Outgoing Calls Resource Account
Select the resource account phone number which is used as caller identification when placing an outgoing call.

Important: Make sure you have configured and assigned a Teams Voice Policy to the resource account, else it won’t we able to dialout externally.
Read more
General
Setup - Contact Center
General
Note: For getting presence info we rely on the Graph API from Microsoft. Experiences are that the Presence API is not very stable and can cause issues especially with connections to an on-premise Exchange environment, therefor we cannot full support this feature. SLA of presence updates can be checked on this Microsoft Graph documentation site.

The Contact Center solution of ROGER365.io is designed to work on 1920×1080 resolution with a scale of 100%.

The Contact Center solution of ROGER365.io communicates directly with your own Microsoft Teams environment (tenant). In order to work together, you must authorize ROGER365.io.

  • Start with login into the ROGER365.io admin portal and select [Contact Center] and then [General] in the left navigation bar.
  • Click the button named: ‘Authorize Contact Center App’ and Accept the Permission.
  • Click the button named: ‘Authorize Agent Transfer’ and Accept the Permission.
  • Click the button named: ‘Authorize Teams Presence App’ and Accept the Permission.

You can configure based on situation the Retention period for all Contact Center data. Default Retention period is 180 days, you can set it between 1 and 365 days.

Outbound/Transfer ring timeout” determines the duration a call will ring at the external (PSTN) recipient before being terminated. It applies only to new outbound calls and transfers to external recipients, depending on the specifics of the call.

  • (Note: This option doesn't apply to transfers while already part of a group call, to internal users, or when adding a participant to an existing call.)

The “Preserve Consult Call” option is responsible for preserving a call when, during a consultation with another contact (via the Consultative Transfer option), the caller decides to hang up.

Custom call hold prompt” option gives you the opportunity to change the onHold music, it also allows businesses to reinforce branding. Press “Configuration” button to upload custom audio file, then select it from dropdown list.

Enable User Synchronization (Beta)” allows to automatically synchronize users from Security Group in Microsoft Entra ID to ROGER365.io. This feature can be extremely useful for big organizations where user management is time consuming. Synchronization of the Entra ID security groups to ROGER365.io platform is done every midnight (according to tenant’s region), meaning when the platform will detect change in membership of selected security group it will update Agents list accordingly.
To enable this option, a portal admin (with required permissions in Entra ID environment) must first press “Authorize User Sync App” button and accept permissions request. After this step, an Entra ID Enterprise Application named “ROGER365.io User synchronization” will be created, and admin consent must be granted via the Permissions tab.

  • Note: Users which have to be synchronized from Entra ID environment to ROGER365.io platform must be a members of Entra ID Security Group created earlier. The group of users must be added to Enterprise Application “ROGER365.io” with correct role – check this documentation page for the role reference. Each insert, update or removal is written into Logging admin page. Any manually added Agents that arent a member of the selected User Sync Groups will be deleted after you press sync now, make sure that any manual added Agents are also included in the User Sync Entra groups.

Show supervisor in roster” determines whether Supervisor will become visible participant upon start of supervising specific call (Monitor/Whisper). When enabled, connected to the call Supervisor will appear as record in the Agent app for agent handling the call. Disabled option means default state (Supervisor is not visible as a participant of the call).

  • Note: The Supervisor leaving a call will not clear the record from the Agent screen. In case the Supervisor leaves a call and joins again using a different method, the record will be updated with the selected supervising option.

Authorize Shift Sync app to manage formal agents by team shifts (Beta)” – allows configuration of a feature that connects Microsoft Teams Shifts with Contact Center Voice Queues. This integration is used to set and manage agents’ working times based on their assigned shifts. More information at Shift Synchronization documentation page.

You can also configure how you want CallBack Requests from the Agent App to be handled (Email, Mailto Link or Webhook). Check this documentation page for more details.

When using the Attendant Console, you have to manually configure an App registration in the Microsoft Azure Portal. Then insert the Appid of this created App when clicking the ‘Configure Attendant Console’ button.

Now you have successfully authorized the ROGER365.io Contact Center App

ROGER365.io Contact Center App for Microsoft Teams

From your Teams client, browse to the Teams App store and download our Contact Center | ROGER365.io app. Install the app on every Teams client in your organisation.

OAK Clarify Voice Recording Integration

With this integration, recorded calls can be played back directly from the Reporting tab in the ROGER365.io native Teams App, and used as an Audio Provider in the powerful AI Flow feature. By clicking the configuration button, you can insert the correct information:

  • Sub domain: Enter the subdomain in the URL you use to access ClarifyGo. Enter only the domain, without ‘clarifygo.com’
  • Client ID: Provided by Oak Innovation
  • Client Secret: Provided by Oak Innovation
  • username: A user configured within your ClarifyGo tenant with the ability to search and play calls.
  • password: the password for the associated user”
Please contact Oak Innovation on +44 1202 607000 / servicedesk@oakinnovate.com to request your Client ID and Client Secret.

Tollring Compliance Recording Integration

With this integration, recorded calls can be played back directly from the Reporting tab in the ROGER365.io native Teams App, and used as an Audio Provider in the powerful AI Flow feature. Click the configuration button to enter the required information:

  • Description: Enter a description for the Tollring configuration.
  • Api URL: Enter the API URL pointing to the correct cluster.
    • For example – https://api.rx.eu.analytics-365.com
      • Note: The ‘eu’ part of the URL indicates the cluster where the Tollring environment was created. This may vary depending on your enrollment cluster.
  • App URL: Enter the App URL pointing to the correct cluster.
    • For example – https://app.rx.eu.analytics-365.com
      • Note: The ‘eu’ part of the URL indicates the cluster where the Tollring environment was created. This may vary depending on your enrollment cluster.
  • Token: Enter the Authentication Token from the Analytics365 portal.

Obtaining Tollring Authentication Token in the Analytics365 Portal

Navigate to Settings → API Access page:

Click on the ‘+New Token’ button and complete the following:

  • Enter a name for the token.
  • Set an expiry date – the maximum is 1 year.
  • Select a Permission Group – Playback Supervisor.
  • Allocate the playback network Via People – select Via Organization.

Read more
Contact Center
How to use
Contact Center
Read more
Support & Assistance
Getting Started
Support & Assistance
support and consultancy

ROGER365.io is sold and supported by our partners. Our solution partners offer you advice, consultancy, training and support in your region. Check our partner page for their contact details.

Up time

ROGER365.io uses 100% Microsoft Azure infrastructure. This means that the data is stored triple during the processing. Additional ROGER365.io does a daily backup. The database uptime is 99.99%. Every is in “code”, the whole system is rebuilt based on Microsoft Azure development best practices. Uptime is based on Microsoft Azure function Apps (up time; 99.95%) and in the worst-case scenario (when complete Azure Data center is down) there is a maximum of 1 hour’s recovery time.

Setup and consultancy

Everybody can start the ROGER365.io evaluation. Look here for how to get started. Assistance with configuration and setup for example the webchat or WhatsApp touchpoint is offered by our local solution partners.

First-line support

The frist-line support is offered by your local ROGER365.io partner. Reach out to them for the support options they offer.

Second-line support

Second-line support is done via ROGER365.io. However your local partner will be your first contact in any case.

Development support

ROGER365.io offers several integration API’s, like with CRM application or Microsoft PowerPlatform. The ROGER365.io development can assist our partners and customers with development questions or even help with building custom integrations.

Read more
Compliance by design
Getting Started
Compliance by design

ROGER365.io is based on the Microsoft Azure serverless architecture principles making it scalable, secure and future proof/flexible by design. ROGER365.io only uses Microsoft industry standard technology and uses Microsoft API’s for seamless integrations.

Microsoft Azure data centers are setting the norm as the industry standard and by having the solution based on the latest technology ROGER365.io benefits by the 90 Microsoft compliance certifications.

User Access

There is one administrator portal to configuration connections and systems. Access to this administrator portal is done via the ROGER365.io Enterprise application within the Microsoft Azure Active Directory. There is no storage of username/ password at all. All token-based access via Azure AD. No client software, seamless integration with Microsoft Teams. Different roles can be assigned to users, such as those accessible through the supervisor or reporting tab in the Contact Center application, utilizing Role-Based Access Control (RBAC) within the administrator portal, where administrators have the flexibility to create and assign roles to other users. ROGER365.io comes equipped with an Audit Log, providing users the ability to easily track any changes made within the system. This feature ensures transparency and accountability, especially during disaster recoveries or post-incident reviews.

Data encryption and separation

Each customer has their own database. The data in the database is “encrypted at rest”. ROGER365.io does not store the communication data. All communications is transferred from touchpoint to Microsoft Teams and back.

Database only contains minimum metadata required to keep the system working. For example, webchat can be anonymous, but mobile phone is used being able to identify and reply WhatsApp messages. This data will be anonymized 24 hours after the communication window closes.

It is optional to store transcript or store conversation date but must switch on by customer. When subscription ends the customers’, database is completely deleted from the ROGER365.io, no data stays within the platform.

The reason to enable this feature can be that you want to push the conversation into another system (log systems) like Microsoft Dynamics or Salesforce when the conversation is closed. The transcript is also used to do sentiment analysis.

ISO 27001 Certified

ROGER365.io B.V. is proud to hold ISO/IEC 27001:2022/AMD1:2024 certification, the latest version of the globally recognized standard for information security management. This independent certification (registration number DGT2717211090) confirms that every aspect of how we develop, deliver, operate, and support the ROGER365 platform meets the highest standards for protecting your data. From risk management and access control to incident response and business continuity, security is embedded into everything we do. Customers and partners can download our certificate and request the Statement of Applicability (SoA) for compliance and due diligence purposes.

Microssoft 365 App Compliance Certified

ROGER365.io is certified under the Microsoft 365 App Compliance Program,  Microsoft’s framework for validating the security, privacy, and compliance posture of applications built on the Microsoft 365 platform. This certification gives enterprise customers and IT administrators independent assurance that ROGER365.io meets Microsoft’s standards across two key domains: Operational Security and Data Handling & Privacy. Being part of this program reflects our ongoing commitment to transparency and trust, so your security team can deploy ROGER365.io with confidence through the Microsoft Teams admin center or Microsoft Teams app store.

Connection to Microsoft Teams

ROGER365.io only uses Microsoft industry standard technology. Integration within Microsoft Teams is done via the Microsoft bot framework and the Graph API. ROGER365.io admin portal access is done via a verified Enterprise application within the Microsoft Azure Active Directory.

Connection with TouchPoints and Teams Calling Environment

TouchPoints are connections to external communication networks like Facebook, WhatsApp or SMS providers. All the connections are based on the lasted API’s, authentication and authorization technologies provided by the service providers that offer these communication channels. All communication is encrypted and cannot be seen at any time by any third-party. For Contact Center functionality ROGER365.io uses the official Contact Center Architecture utilizing the Communications API’s.

Questions?

Please reach out to us if you have concerns or questions. We can share with you our company procedures and other required documentation when necessary.

Read more
Social Messaging
API
Social Messaging

Currently, the API key which you can create in the Admin portal to extract the Social Messageing Center data  is named ‘DataExport‘.

All exportable object contain the following properties in order to synchronize correctly to the database and as such will not be explained on every specification:

  • “isDeleted”: (bool)  true if the item was ‘soft-deleted’ (for synchronization purposes). Items that are soft-deleted, will be permanently deleted after a retention period,
  • “lastModified”: (datetime) last time the record was saved. This includes added, updated, deleted (soft delete)
  • “batchToken”: (string) token that can be used to retrieve the next batch of records

All datetimes are UTC, unless specifically mentioned otherwise

Read more
Contact Center
API
Contact Center

Currently, the API key which you can create in the Admin portal to extract the Contact Center data (beside of Outbound Call Campaigns and Swagger tool) is named ‘DataExport‘.

All exportable object contain the following properties in order to synchronize correctly to the database and as such will not be explained on every specification:

  • “isDeleted”: (bool)  true if the item was ‘soft-deleted’ (for synchronization purposes). Items that are soft-deleted, will be permanently deleted after a retention period,
  • “lastModified”: (datetime) last time the record was saved. This includes added, updated, deleted (soft delete)
  • “batchToken”: (string) token that can be used to retrieve the next batch of records

Other general properties are:

  • “tenantId”: (int) id of tenant registration (R365),
  • “agentId”: (int) id of the user (R365),
  • “id”: (int) id of the record (R365)

All datetimes are UTC, unless specifically mentioned otherwise

Read more
Getting Started
Getting Started
Getting Started

General Prerequisites

General information about ROGER365.io and what environment is needed to get the Software as a Service running.

Signup & Enrollment

How to start with ROGER365.io and what steps to take to finish the enrollment process.

What to do next?

What are the next steps after the enrollment.

Read more
General
API
General
API keys are only available from the Business subscription

ROGER365.io API’s use HTTP verbs and a RESTful endpoint structure. An access key is used as the API Authorization. Request and response payloads are formatted as JSON, using UTF-8 encoding.

You can create the required API keys in the ROGER365.io portal. Select API Keys in the left navigation bar, then click on + Add ApiKey, give descriptive name for your key, and select desired scopes:

Available scopes are: Conversations, ToastarForTeams, DataExport, WhatsappConsent, Transcript, Teams, Campaign, ContactCenter.
You can remove or add scopes even if the key is already created (change of the key scope is effective after ~60 seconds).

API requests have throttling set to 5 requests per second per tenant.

API EndPoint

https://api.roger365.io/

Authentication

The ROGER365.io API uses API keys to authenticate requests. In the admin portal you can create, change and delete the keys.

Parameters Description
Authorization Add a header "Auth-Key", with value {apikey}, which you created in the portal. Example: Auth-Key {apikey}

Batchsize

Some API’s require the batchSize parameter. This is used to request the output in multiple batches. In each JSON output batch you’ll receive a ‘batchToken’ value. To retrieve the 2nd, 3rd etc. batch include the ‘batchToken’ value from each previous batch. The header to include is named: ‘Batch-Token’.

Read more
No results
Try a different search query
Xtend documentation

ROGER365.io
Knowledge Base

Search for questions or topics
Search
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

ROGER365.io
Knowledge Base

Your ideas shape the future of ROGER365.io!

Got a feature in mind, an improvement, or a use case template that would make your work easier? Share it with us!