System Fields and Parameters

Storing and updating context during active sessions

In Nimbus a task (call, chat, other interaction with a customer) is a data object, holding data fields such as a caller's phone number as a value. Data in Nimbus is stored and accessed during a “Session” between the Customer and Service. Generally the data object consists of read-only and writable fields, which can be extended by using your own Parameters as temporary placeholders - e.g. to hold data retrieved from an external CRM or lookup directory.

Common Use Cases involve:

  • Steering Workflows based on a customer choice, stored in parameters.
  • Showing incoming task / customer data to the Nimbus user via My Sessions or Attendant Console. 
  • Opening dynamic Conversation Context, e.g. a dynamic CRM or ticketing system URL for the receiving user to work with in parallel.
  • Storing data for Context Handover between Services.
  • Identifying the original Teams entry point of a forwarded call to enable use cases such as Preferred User Routing (e.g. routing back to the originally called employee) or determining the original referee for an incoming customer call.

💡 For communication purposes we therefore often to all Parameters, Fields and Values as “Session Data”. 

Session Data Overview

Session Data Table

Below is the comprehensive list of all parameters and related fields available in a Nimbus call data object:

Table Legend

The following table conveys a lot of information. Therefore the the following abbreviations have been defined:

Type: 

  • STR = string
  • OBJ = object
  • BOL = boolean
  • INT = integer

Lifecycle Scope:

  • Service Session: The parameter only exists within the same service session. In workflow terms: within one workflow until transfer or disconnect.
  • Customer Session: The parameter persists throughout the whole customer session.
  • Flow Run: The parameter only exist in the Power Automate flow run and is discarded once the flow is complete.

Visibility checkboxes: ✅

  • 🔄 PA = Selectable in MS Power Automate.
  • 🔒 RO = Parameter is Read-Only.
  • 📌 CT = Usable in Conversation Context.
  • 📅 AC = Available in Adaptive Cards.
  • 📇 CI = Used in Caller Info Resolution (e.g. Attendant Console, Assistant, My Sessions).
  • 📲 UI = Parameter is available within the UI, e.g. in → Extensions Service Settings, e.g. to show as additional info within in My Sessions UI.
  • 👁️‍🗨️ CA = Parameter can be affected by Caller Anonymization. When enabled, parameter data will be shown as “Anonymized on Request” or “Not Available” as result of the anonymization. The first service that has the feature enabled will determine anonymization behavior, which persists in follodsdfda-up transfers to other services. 
 

Call Data

Call Data

Caller Data Fields Type Lifecycle Scope Placeholder UI Name PA  RO CT AC CI UI CA Comments
CustomerFirstName STR Customer Session $(Customer.FirstName) Customer First Name 🔄 - 📌 📅 📇 📲 👁️‍🗨️  -
CustomerLastName STR Customer Session $(Customer.LastName) Customer Last Name 🔄 - 📌 📅 📇 📲 👁️‍🗨️ -
CustomerDisplayName STR Customer Session $(Customer.DisplayName) Customer Display Name 🔄 - 📌 📅 📇 📲 👁️‍🗨️  -
CustomerUpn STR Customer Session $(Customer.Upn) Customer UPN 🔄 - 📌 📅 📇 📲 👁️‍🗨️ -
CustomerImAddress STR Customer Session $(Customer.ImAddress) Customer IM Address 🔄 - 📌 📅 📇 📲 👁️‍🗨️  -
CustomerEmail STR Customer Session $(Customer.Email) Customer Email 🔄 - 📌 📅 📇 📲 👁️‍🗨️ -
CustomerCompany STR Customer Session $(Customer.Company) Customer Company 🔄 - 📌 📅 📇 📲 👁️‍🗨️  -
CustomerJobTitle STR Customer Session $(Customer.JobTitle) Customer Job Title 🔄 - 📌 📅 📇 📲 👁️‍🗨️ -
CustomerDepartment STR Customer Session $(Customer.Department) Customer Department 🔄 - 📌 📅 📇 📲 👁️‍🗨️  -
CustomerStreetAddress STR Customer Session $(Customer.StreetAddress) Customer Street Address 🔄 - 📌 📅 📇 📲 👁️‍🗨️ -
CustomerPostCode STR Customer Session $(Customer.PostCode) Customer Post Code 🔄 - 📌 📅 📇 📲 👁️‍🗨️ Used to render a google maps location wherever caller information is shown.
CustomerCity STR Customer Session $(Customer.City) Customer City 🔄 - 📌 📅 📇 📲 👁️‍🗨️ Used to render a google maps location wherever caller information is shown.
CustomerState STR Customer Session $(Customer.State) Customer State 🔄 - 📌 📅 📇 📲 👁️‍🗨️ Used to render a google maps location wherever caller information is shown.
CustomerCountry STR Customer Session $(Customer.Country) Customer Country 🔄 - 📌 📅 📇 📲 👁️‍🗨️ Used to render a google maps location wherever caller information is shown.
CustomerPrimaryTelNumber STR Customer Session $(Customer
.PrimaryTelNumber)
Customer Primary Tel Number 🔄 - 📌 📅 📇 📲 👁️‍🗨️ The phone number of the customer, without a leading "+" character.
STR Customer Session $(Customer.+PrimaryTelNumber) Customer Primary + Tel Number 🔄 - 📌 📅 📇 📲 👁️‍🗨️ The phone number of the customer, in full E.164 notation, including the leading "+" character.
Customer.CustomFields OBJ Customer Session $(Customer.CustomFields      
.<Name>)
Customer Custom Fields 🔄 - 📌 📅 📇 📲 - 💡 To select a the specific field in this data object, replace <Name> by a fieldname of your choice.      
Example:     
$(Customer.CustomFields.CRMId)
Customer.TelNumbers OBJ Customer Session $(Customer.TelNumbers      
.<Name>)
Customer Tel Numbers 🔄 - 📌 📅 📇 📲 - 💡 To select a the specific field in this data object, replace <Name> by a fieldname of your choice.     
Example:     
$(Customer.TelNumbers.Mobile)     
or      
$(Customer.TelNumbers.Home) 
CallId STR Customer Session $(CallId) Call ID 🔄 🔒 📌 📅 📇 📲 - Represents the ServiceSessionId of a Nimbus Reporting Service Session.
CallChainId STR Customer Session $(CallChainId) Call Chain ID 🔄 🔒 - 📅  - - - Call Chain ID from Microsoft Teams (secondary CallId) used to trigger Verba Recording
CallerId STR Customer Session $(Caller.Id) Caller ID 🔄 🔒 📌 📅 📇 📲 👁️‍🗨️

Derived from the MicrosoftCallerId, if its value is a GUID instead of an E.164 notation phone number.


Used as identifier for Caller Anonymization.

CallerUPN STR Customer Session $(Caller.Upn) Caller UPN 🔄 🔒 📌 📅 📇 📲 👁️‍🗨️

The User Principal Name of the caller- valid only if the call came from an internal Teams user


Used as identifier for Caller Anonymization.

CallerSentiment STR Customer Session $(Caller.Sentiment) Caller Sentiment 🔄 🔒 📌 📅 📇 📲 - The  Customer sentiment as / if detected by Bot while interacting as Virtual User with the Customer during a workflow.
CallerIntent STR Customer Session $(Caller.Intent) Caller Intent 🔄 🔒 📌 📅 📇 📲 - The  Customer intent as / if detected by Bot while interacting as Virtual User with the Customer during a workflow.
CallerTelNumber STR Customer Session $(Caller.TelNumber) Caller Tel Number 🔄 🔒 📌 📅 📇 📲 👁️‍🗨️ The phone number of the caller, without the leading "+" character. Taken from the MicrosoftCallerId, if its value is an E.164 phone number.
STR Customer Session $(Caller.+TelNumber) Caller + Tel Number 🔄 🔒 📌 📅 📇 📲 👁️‍🗨️ The phone number of the caller, including the leading "+" character. Taken from the MicrosoftCallerId, if its value is an E.164 phone number.
DestinationId STR Customer Session $(Destination.Id) Destination ID 🔄 🔒 📌 📅 📇 📲 👁️‍🗨️

Derived from the DestinationId, if its value is a GUID instead of an E.164 notation phone number.


Only for Outbound. Used as identifier for Caller Anonymization.

DestinationTelNumber STR Customer Session $(Destination.TelNumber) Destination Tel Number 🔄 🔒 📌 📅 📇 📲 👁️‍🗨️

The phone number of the destination, without the leading "+" character. Taken from the MicrosoftDestinationId, if its value is an E.164 phone number.


Only for Outbound. Used as identifier for Caller Anonymization.

STR Customer Session $(Destination.+TelNumber) Destination Tel Number 🔄 🔒 📌 📅 📇 📲 👁️‍🗨️

The phone number of the destination, including the leading "+" character. Taken from the MicrosoftDestinationId, if its value is an E.164 phone number.


Only for Outbound. Used as identifier for Caller Anonymization.

MicrosoftCallerId STR Customer Session $(MicrosoftCallerId) Microsoft Caller ID 🔄 🔒 📌 📅 📇 📲 👁️‍🗨️

Original caller ID sent by Microsoft Teams. 


Only for Inbound. Used as identifier for Caller Anonymization.

MicrosoftDestinationId STR Customer Session $(MicrosoftDestinationId) Microsoft Destination ID 🔄 🔒 📌 📅 📇 📲 👁️‍🗨️

Original destination ID sent by Microsoft Teams.


Only for Outbound. Used as identifier for Caller Anonymization.

 
 

System Data

System Data

Nimbus System Data Type Lifecycle Scope Placeholder UI Name PA  RO CT AC CI UI CA Comments
Created STR Service Session N/A Not selectable / visible in UI 🔄 🔒 - - - -   The time the session was created
CustomerIdentifier STR Service Session $(CustomerIdentifier) Customer Identifier 🔄 - 📌 - - 📲 👁️‍🗨️

System parameter, default "Anonymous". Can be manipulated via "AddExternalTask" Flow Action.


🔍 Field is set differently according to modality:

Inbound AV/IM: MicrosoftCallerIdentifier 

Outbound AV: MicrosoftDestinationIdentifier

ExternalTask: Customer.Identifier

EmailTask: Customer.Email or O365UserId in case of an email from internal user

EmailServiceMailboxUPN STR Service Session $(Email.ServiceMailboxUpn) Email Service Mailbox Upn 🔄 🔒 📌 📅 - 📲 - Mailbox UPN of the mailbox assigned to the service Modality Settings.
EmailSubject STR Service Session $(Email.Subject) Email Subject 🔄 🔒 📌 📅 - 📲 - Mail subject
EmailBodyUniqueRichText STR Service Session N/A Not selectable / visible in UI 🔄 🔒 - - - - - Mail unique body. HTML in most cases. If the length exceeds allowed by MS Flow length, it is cut.
EmailBodyUniquePlainText  STR Service Session N/A Not selectable / visible in UI 🔄 🔒 - - - - - Mail unique body. Plain text. If the length exceeds allowed by MS Flow length, it is cut.
Event STR Flow Run N/A Not selectable / visible in UI 🔄 🔒 - - - - - The session Event that occurred
InitialMessage STR Service Session $(InitialMessage) Initial Message 🔄 🔒 📌 📅 - 📲 - Usable in Service Call Templates / Direct Call Templates and IM Workflows for processing an incoming message sent by the user.
IsAnonymous BOL Service Session N/A Not selectable / visible in UI 🔄 🔒 - - - - 👁️‍🗨️ Is the caller anonymous? (True/False). Is set TRUE when Caller Anonymization is enabled.
LastConnectedUserId STR Service Session N/A Not selectable / visible in UI 🔄 🔒 - - - - - The ID of the last connected user
OriginalCalledNumber STR Customer Session $(OriginalCalledNumber) Original Called Number 🔄 🔒 📌 📅 📇 📲 - The phone number or identity on which the call was originally received before it was forwarded to the Nimbus service. Set once at call entry into Nimbus. Empty if the original entry point could not be determined.
OriginalCalledTargetType STR Customer Session $(OriginalCalledTargetType) Original Called Target Type 🔄 🔒 📌 📅 📇 📲 - Classification of the original call target. Possible values: User, ResourceAccount, Service, Federated, Anonymous, Unknown. Stored as plain text even when Caller Anonymization is active. Empty if the original entry point cannot be determined. Unknown is always set when the target type cannot be classified, even if the display value below could not be resolved.
OriginalCalledDisplay STR Customer Session $(OriginalCalledDisplay) Original Called Display 🔄 🔒 📌 📅 📇 📲 - Human-readable label describing the original call target when it could not be represented as a phone number (e.g. an internal Teams user, resource account, or federated/anonymous caller) — for example "John Doe (Internal Teams User)", "Sales Auto Attendant", "External / Federated Caller" or "Anonymous Caller". Resolved once at call entry into Nimbus and stable for the entire call lifetime.
OutboundTaskId STR Outbound Task N/A Not selectable / visible in UI 🔄 🔒 - - - - - ID when creating OutboundCalls. The OutboundTaskId is returned during GetOnUpdatedTasks and GetOnNewTasks Trigger Events.
OutboundAttempt INT Service Session N/A Not selectable / visible in UI 🔄 🔒 - - - - - Current attempt number of OutboundCalls. Increases with every attempt.
Reason STR Service Session N/A Not selectable / visible in UI 🔄 🔒 - - - - - System-provided reason for task termination. Used for automated termination of long-standing (non-stuck) tasks, e.g. in the Email or External Task modality after a 5d retention period. Performed during Trigger Event “When a task changes state”.
Reference ID STR Service Session $(ReferenceId)  Reference ID 🔄 - 📌 📅 - 📲 - Optional ID placeholder to use as reference in external Systems, e.g. a CRM Ticket ID.
Service Tel Number STR Service Session $(Service.TelNumber)  Service Line Tel Number 🔄 🔒 📌 📅 - 📲 - -
Service + Tel Number STR Service Session $(Service.+TelNumber) Service Line + Tel Number 🔄 🔒 📌 📅 - 📲 - -
Service Display Name STR Service Session $(Service.DisplayName) Service Line Display Name 🔄 🔒 📌 📅 - 📲 - -
Service UPN STR Service Session $(Service.Upn) Service Line Upn 🔄 🔒 📌 📅 - 📲 - -
ServiceSessionId STR Service Session N/A Not selectable / visible in UI 🔄 🔒 - - - - - The ID of the Service Session, used to update parameters on Service Level.
TaskId STR Service Session N/A Not selectable / visible in UI 🔄 🔒 - - - - - The ID of the Task. Should reflect same value as UnifiedSessionID.
TargetUserFirstName STR Service Session $(TargetUser.FirstName) Target User First Name - 🔒 - - - 📲 - 💡Direct Call Handling workflows only. Describes the Nimbus user behind the Direct Call service. Resolved from the user’s Microsoft 365 profile. Empty if not resolvable.
TargetUserLastName STR Service Session $(TargetUser.LastName) Target User Last Name - 🔒 - - - 📲 - -
TargetUserDisplayName STR Service Session $(TargetUser.DisplayName) Target User Display Name - 🔒 - - - 📲 - -
TargetUserUpn STR Service Session $(TargetUser.Upn) Target User UPN - 🔒 - - - 📲 - -
TargetUserImAddress STR Service Session $(TargetUser.ImAddress) Target User IM Address - 🔒 - - - 📲 - -
TargetUserEmail STR Service Session $(TargetUser.Email) Target User Email - 🔒 - - - 📲 - -
TargetUserCompany STR Service Session $(TargetUser.Company) Target User Company - 🔒 - - - 📲 - -
TargetUserJobTitle STR Service Session $(TargetUser.JobTitle) Target User Job Title - 🔒 - - - 📲 - -
TargetUserDepartment STR Service Session $(TargetUser.Department) Target User Department - 🔒 - - - 📲 - -
TargetUserStreetAddress STR Service Session $(TargetUser.StreetAddress) Target User Street Address - 🔒 - - - 📲 - -
TargetUserPostCode STR Service Session $(TargetUser.PostCode) Target User Post Code - 🔒 - - - 📲 - -
TargetUserCity STR Service Session $(TargetUser.City) Target User City - 🔒 - - - 📲 - -
TargetUserState STR Service Session $(TargetUser.State) Target User State - 🔒 - - - 📲 - -
TargetUserCountry STR Service Session $(TargetUser.Country) Target User Country - 🔒 - - - 📲 - -
TargetUserPrimaryTelNumber STR Service Session $(TargetUser.PrimaryTelNumber) Target User Primary Tel Number - 🔒 - - - 📲 - The phone number of the target user, without a leading "+" character.
STR Service Session $(TargetUser.+PrimaryTelNumber) Target User Primary + Tel Number - 🔒 - - - 📲 - The phone number of the target user, in full international format including the leading "+".
TeamName STR Service Session $(TeamName) Team Name 🔄 🔒 📌 📅 - 📲 - -
TeamId STR Service Session $(TeamId) Team ID 🔄 🔒 📌 📅 - 📲 - -
TeamDescription STR Service Session $(TeamDescription) Team Description 🔄 🔒 📌 📅 - 📲 - -
Terminated STR Service Session N/A Not selectable / visible in UI 🔄 🔒 - - - - - The time the session was terminated.
Type STR Service Session N/A Not selectable / visible in UI 🔄 🔒 - - - - - Session type.
UnifiedSessionId STR Service Session N/A Not selectable / visible in UI 🔄 🔒 - - - - - The ID of the Unified Session. Used to operate with the whole customer interaction with the call center.
UserSessionId STR Service Session N/A Not selectable / visible in UI 🔄 🔒 - - - - - The ID of the User Session, used to update parameters on User level.
 
 

Custom Context Parameters

Custom Context Parameters

In the default Nimbus configuration there are no custom predefined parameters. In case you need to store and handle your own information, you can create these Parameters in the in the Configuration section of Nimbus.

Custom Context Data Type Lifecycle Scope Placeholder UI Name PA  RO CT AC CI UI CA Comments
Custom   
ContextParameters
OBJ Customer Session

$(CustomContextParameters   
.Name>)

Example:

$(CustomContextParameters   
.CrmUrl)

Custom Context Parameters 🔄 🔒 - 📅 - 📲 -

💡 To select a the specific field in this data object, replace <Name> by a fieldname of your choice.

👆 In Microsoft Flow these names need to be entered manually!

Example:   
$(CustomContextParameters   
.CrmUrl)

UpdatedParameterName STR Flow Run Name portion of "CustomContextParameters" UpdatedParameter Name 🔄 🔒 - 📅 - 📲 - 🔎 Used to store the "name / value" portion of a CustomContextParameter (for easier selection within a Flow)   
→ See Parameters for examples of use.
UpdatedParameterValue STR Flow Run Value portion of "CustomContextParameters" UpdatedParameter Value 🔄 🔒 - 📅 - 📲 -

🔎 Good to know

Definition of Custom (Context) Parameters:

  • Custom Context Parameters can be defined as a preselection in Configuration > Parameters with a default value. This is useful if you want to use parameters for selection within the Nimbus UI, e.g. in Workflows as a storage variable.
  • Custom Context Parameters can also be defined dynamically in MS Flow during Nimbus Task lifetime, using your custom names as the Parameter Name.
  • All Custom / System Parameters can also be shown in the Nimbus UI as Context or within your (ongoing) Workflows. The Extensions Service Settings allow you to steer which Parameters are shown in the Portal UI.
  • Nimbus will treat both its own System and Custom Parameters – either UI or Flow-defined – in the same way and carry them in a JSON Data object during the entire Nimbus Reporting Model session lifetime.

Usage of Parameters: Custom Context Parameters can be used in the following areas:

Area
Usage within
Workflows 

Workflow Activities

  • "Voicemail" 
  • "Input customer" 
  • "Collect Information" 
  • “Check Parameter”
  • “Wait for Parameter”
Nimbus Power Automate Connector 

Flow Actions > Action "UpdateTask"

  • CustomContextParameter.<ID>
Conversation Context 

As part of a context URL:

  • $(CustomContextParameters.<ID>)
Extension Service Settings 

My Sessions UI customization:

  • "Session Details" widget

 ☝ A “Store Conversation Context Data” option determines parameter storage lifetime.

 
 
 

Address Book Fields

✅ Precondition: A Tenant Admin and Organization Unit Admin Role is required to select and manipulate Tenant- or OU-scope Address Books via dropdown within “Address Book” related Flow Actions.

 

Address Book Fields

By using the "Address Book" Flow Action, Address Book fields can be accessed and/or manipulated:

Name Type Description
ExternalId string ID the system where the entry was imported from.
FirstName string First Name
LastName string Last / Family Name
DisplayName string Firstname / Last name combination. 
Initials string Initials (e.g. "JK")
Company string Company
Department string Department 
JobTitle string Job Title
ImAddresses string IM SIP Address
EmailAddresses string Email Address
BusinessPhones string Business Phone
MobilePhones string Mobile Phone
HomePhones string Home Phone
UserPrincipleName string Consists of:      
user name (logon name),      
separator (the @ symbol),      
and domain name (UPN suffix)
Addresses string Street Address
Street string Street and No.
City string Code and City 
Country string Country of Origin
CustomFields string Custom field array of name / value pairs.

🔍 Address book "Contact details" - excluding empty fields - will be provided in Attendant Console as a tooltip provided within the "Contact Search".

 
 
 

FAQ - Questions and Answers

🤔 What are Parameters, Fields and how are they used?

 
 

Data Anonymization

🤔 What happens to Parameters when Caller Anonymization is enabled?

Once enabled on your Data Privacy Service Settings, the Caller Anonymization will only mask parameters marked specifically in the tables above. A summary can be found in the following table:

 
 

Data Processing Considerations

Parameters in Nimbus have a limited life cycle during which their data can be accessed - usually during this ongoing session. As a Service Owner or Administrator you want want to store, process and update this data to increase your Service efficiency. 

This leads to various considerations you should take note of:

☝DATA LIFECYCLE & RETENTION

☝ At the end of each session lifecycle the data will be disposed, meaning Nimbus does not store sensitive user data outside an ongoing Nimbus service/user session. 

✅ Data Storage: You can enable a temporary storage of data via Extension Service Settings > “Store Conversation Context Data” option which stores the data for a retention period.

 

Learn more about Storage of Context Data 

 
 
 
 

☝DATA HANDLING & PROCESSING DELAYS

Nimbus cannot directly check and account for parameter manipulation delays. If a call workflow is progressing while an external system is busy, or a Power Automate flow is still running or erroneous, Parameters may not be updated for Nimbus in time. As a result, Nimbus sessions relying on updated information can lead to a failed workflow routing or lack UI information.

✅ Tip: In your Workflows you can use the “Wait for Parameter” activity to wait for a set period of time for a parameter to update before progressing.

 

💡Recommendations:

  • Always ensure that your own parameters have a default value and that your workflows handle the “not recognized” paths accordingly to account for errors.
  • We generally recommend to account for external system delays - e.g. by adding announcements to your workflows. 
  • Check your flow performance regularly (e.g. during high call volume hours) and test performance-affecting changes which involve further external systems.
 
 

☝DATA TRANSFER & CONTEXT HANDOVER

During a Context Handover (Call Transfer) scenario, Session Data is handed over from one Service to another, which also transfers any Custom Parameters, containing potentially private Customer information to the next Service and its Users.

✅ Data Transfer Settings: Via Extensions Service Settings > “Keep Custom Context Parameters on Transfers”  you can decide if you want to transfer these additional Parameters.

 

💡Recommendations:

  • Check which of your Custom Context Parameters contains sensitive data (also the ones exclusively handled via your Flow).
  • By using Trigger Events and Flow Actions you can decide when to override Parameters.
  • Check the Extensions Service Settings to see which Parameters are shown in the User-accessible UI, e.g. My Sessions.
  • Note that the Sessions List also lists Custom Parameters within the “Session Details”, and does store the parameters if configured within the respective Service's Settings.

Learn more about Context Transfer Settings

 
 
 
 

Table of Contents