Installation Guide
Follow the steps below to ensure a smooth and successful installation of the Microsoft Dynamics Connector.
Before installing this Power App, contact TSANet to obtain credentials and URL for the Beta and Production environments
Installation
Manual Installation of the Package
Open the git hub https://github.com/tsanetgit/MS_Power_App and download the latest managed solution.

Open https://make.powerapps.com in your Microsoft tenant.
Select your environment.

Click on Import Solution

Select downloaded managed solution.
Confirm by the Next button.

Create Connections and confirm by the Next button.

Enter your credentials and URL and then click on Import
Contact TSANet for Credentials and URL

The package is now being installed.
Configuration
Configuration with TSANet Credentials
The packages uses Basic Authentication to communicate with TSANet Connect. An API user is set in environment’s variables during the package installation. You can change credentials in https://make.powerapps.com

Environments
TSANet has the following environments.
Developer: Only used by developers who are making changes to the package
Beta: Used by Members to test before moving to production
Prod: Used by Members in Production
Contact TSANet for credentials and URL to the correct environment.
Use TSANET in your solution
Add components to application.
Open https://make.powerapps.com in your Microsoft tenant.
Select your environment.

Open existing unmanaged solution or create the new
Select Apps in the menu and open your application

Click on edit

Click on New

Select Dataverse table

Select TSANET tables

Click on Add
Setup TSANET table relationship
You must create relationships between tables to use TSANET within your existing solution.
Open https://make.powerapps.com in your Microsoft tenant.
Select your environment.

Open existing unmanaged solution or create the new
Open Tables -> TSANET Case

Create new column “Your table” with details below:

Add TSANET Case subgrid to the form
Once you have created relationship, you can add the subgrid to the form.
Open https://make.powerapps.com in your Microsoft tenant.
Select your environment.

Open existing unmanaged solution or create the new.
Open Tables -> “Your custom table”
Open the main form
Select Components -> Grid -> Subgrid
Check “Show related records”
Select table “TSANet Cases” and confirm by the button “Done”

Assign Permissions
Users must have assigned “TSANET User” role, or you can modify your role with the following permissions.
Permissions:
TSANET Case
TSANET Note
TSANET Response

You can follow these instructions to assign the role.
Select your environment
Click on settings

Click on Users + permissions -> Users
Select the user
Click on Manage security roles

Select the “TSANET User” role and click on save
Package Details and Configuration Options
TSANet Case
A collaboration case within the TSANet framework that serves as the primary record for tracking collaboration between member organizations during a support issue.
Logical Name
Display Name
Attribute Type
Description
Additional data
ap_companycode
Company Code
Integer
Company Code
Minimum value: 0 Maximum value: 2147483647
ap_companyname
Company Name
String
Company Name
Format: Text Max length: 100
ap_direction
Direction
Picklist
Options: 0: Inbound 1: Outbound Default: 1
ap_formjson
Form JSON
Memo
The current form data from the TSANET.
Format: Text Max length: 200000
ap_name
ID
String
TSANET Unique identifier
Format: Text Max length: 100
ap_sentjson
Sent JSON
Memo
Sent JSON data, only for outbound cases for logging purposes.
Format: Text Max length: 200000
ap_submittercasenumber
Submitter Case Number
String
Format: Text Max length: 100
ap_tsanetcaseid
TSA Net Case
Uniqueidentifier
Unique identifier for entity instances
createdby
Created By
Lookup
Unique identifier of the user who created the record.
Targets: systemuser
createdon
Created On
DateTime
Date and time when the record was created.
Format: DateAndTime
createdonbehalfby
Created By (Delegate)
Lookup
Unique identifier of the delegate user who created the record.
Targets: systemuser
importsequencenumber
Import Sequence Number
Integer
Sequence number of the import that created this record.
Minimum value: -2147483648 Maximum value: 2147483647
modifiedby
Modified By
Lookup
Unique identifier of the user who modified the record.
Targets: systemuser
modifiedon
Modified On
DateTime
Date and time when the record was modified.
Format: DateAndTime
modifiedonbehalfby
Modified By (Delegate)
Lookup
Unique identifier of the delegate user who modified the record.
Targets: systemuser
overriddencreatedon
Record Created On
DateTime
Date and time that the record was migrated.
Format: DateOnly
ownerid
Owner
Owner
Owner Id
Targets: systemuser team
owningbusinessunit
Owning Business Unit
Lookup
Unique identifier for the business unit that owns the record
Targets: businessunit
owningteam
Owning Team
Lookup
Unique identifier for the team that owns the record.
Targets: team
owninguser
Owning User
Lookup
Unique identifier for the user that owns the record.
Targets: systemuser
statecode
Status
State
Status of the TSA Net Case
States: 0: Active 1: Inactive
statuscode
Status Reason
Status
Reason for the status of the TSA Net Case
States: 1: Open 2: Closed 120950001: Information 120950002: Rejected 120950003: Accepted
timezoneruleversionnumber
Time Zone Rule Version Number
Integer
For internal use only.
Minimum value: -1 Maximum value: 2147483647
utcconversiontimezonecode
UTC Conversion Time Zone Code
Integer
Time zone code that was in use when the record was created.
Minimum value: -1 Maximum value: 2147483647
versionnumber
Version Number
BigInt
Version Number
Minimum value: -9223372036854775808 Maximum value: 9223372036854775807
TSANet Note
The object is used for logging and managing communications or updates related to a TSANet Case. It allows members to document important information about the case in real-time.
Logical Name
Display Name
Attribute Type
Description
Additional data
ap_creatoremail
Creator (Email)
String
Format: Text Max length: 100
ap_creatorname
Creator (Name)
String
Format: Text Max length: 100
ap_description
Description
Memo
Note description
Format: Text Max length: 2000
ap_name
Summary
String
Not subject
Format: Text Max length: 100
ap_priority
(DEPRECATED) Priority
Picklist
Options: 3: Low 2: Medium 1: High Default: 3
ap_tsanetcaseid
TSA Net Case
Lookup
Targets: ap_tsanetcase
ap_tsanetnoteid
TSA Net Note
Uniqueidentifier
Unique identifier for entity instances
ap_tsanotecode
Note ID
String
TSANET unique identifier
Format: Text Max length: 100
createdby
Created By
Lookup
Unique identifier of the user who created the record.
Targets: systemuser
createdon
Created On
DateTime
Date and time when the record was created.
Format: DateAndTime
createdonbehalfby
Created By (Delegate)
Lookup
Unique identifier of the delegate user who created the record.
Targets: systemuser
importsequencenumber
Import Sequence Number
Integer
Sequence number of the import that created this record.
Minimum value: -2147483648 Maximum value: 2147483647
modifiedby
Modified By
Lookup
Unique identifier of the user who modified the record.
Targets: systemuser
modifiedon
Modified On
DateTime
Date and time when the record was modified.
Format: DateAndTime
modifiedonbehalfby
Modified By (Delegate)
Lookup
Unique identifier of the delegate user who modified the record.
Targets: systemuser
overriddencreatedon
Record Created On
DateTime
Date and time that the record was migrated.
Format: DateOnly
ownerid
Owner
Owner
Owner Id
Targets: systemuser team
owningbusinessunit
Owning Business Unit
Lookup
Unique identifier for the business unit that owns the record
Targets: businessunit
owningteam
Owning Team
Lookup
Unique identifier for the team that owns the record.
Targets: team
owninguser
Owning User
Lookup
Unique identifier for the user that owns the record.
Targets: systemuser
statecode
Status
State
Status of the TSA Net Note
States: 0: Active 1: Inactive
statuscode
Status Reason
Status
Reason for the status of the TSA Net Note
States: 1: Active 2: Inactive
timezoneruleversionnumber
Time Zone Rule Version Number
Integer
For internal use only.
Minimum value: -1 Maximum value: 2147483647
utcconversiontimezonecode
UTC Conversion Time Zone Code
Integer
Time zone code that was in use when the record was created.
Minimum value: -1 Maximum value: 2147483647
versionnumber
Version Number
BigInt
Version Number
Minimum value: -9223372036854775808 Maximum value: 9223372036854775807
TSANet Response
The object captures formal replies or actions taken with an inbound TSANet Case.
Logical Name
Display Name
Attribute Type
Description
Additional data
ap_description
Description
Memo
Description or next steps
Format: Text Max length: 2000
ap_engineeremail
Engineer Email
String
Format: Email Max length: 300
ap_engineername
Engineer Name
String
Format: Text Max length: 300
ap_engineerphone
Engineer Phone
String
Format: Text Max length: 300
ap_internalcasenumber
Internal Case Number
String
Internal Case Number is used for incoming case approvals.
Format: Text Max length: 100
ap_name
Name
String
Format: Text Max length: 100
ap_tsanetcaseid
TSA Net Case
Lookup
Targets: ap_tsanetcase
ap_tsanetresponseid
TSA Net Response
Uniqueidentifier
Unique identifier for entity instances
ap_tsaresponsecode
Response ID
String
TSANET unique identifier
Format: Text Max length: 100
ap_type
Type
Picklist
Response type
Options: 1: Approval 0: Reject 2: Request Information 3: Information Response 4: Close 5: Approval Update Default: -1
createdby
Created By
Lookup
Unique identifier of the user who created the record.
Targets: systemuser
createdon
Created On
DateTime
Date and time when the record was created.
Format: DateAndTime
createdonbehalfby
Created By (Delegate)
Lookup
Unique identifier of the delegate user who created the record.
Targets: systemuser
importsequencenumber
Import Sequence Number
Integer
Sequence number of the import that created this record.
Minimum value: -2147483648 Maximum value: 2147483647
modifiedby
Modified By
Lookup
Unique identifier of the user who modified the record.
Targets: systemuser
modifiedon
Modified On
DateTime
Date and time when the record was modified.
Format: DateAndTime
modifiedonbehalfby
Modified By (Delegate)
Lookup
Unique identifier of the delegate user who modified the record.
Targets: systemuser
overriddencreatedon
Record Created On
DateTime
Date and time that the record was migrated.
Format: DateOnly
ownerid
Owner
Owner
Owner Id
Targets: systemuser team
owningbusinessunit
Owning Business Unit
Lookup
Unique identifier for the business unit that owns the record
Targets: businessunit
owningteam
Owning Team
Lookup
Unique identifier for the team that owns the record.
Targets: team
owninguser
Owning User
Lookup
Unique identifier for the user that owns the record.
Targets: systemuser
statecode
Status
State
Status of the TSA Net Response
States: 0: Active 1: Inactive
statuscode
Status Reason
Status
Reason for the status of the TSA Net Response
States: 1: Active 2: Inactive
timezoneruleversionnumber
Time Zone Rule Version Number
Integer
For internal use only.
Minimum value: -1 Maximum value: 2147483647
utcconversiontimezonecode
UTC Conversion Time Zone Code
Integer
Time zone code that was in use when the record was created.
Minimum value: -1 Maximum value: 2147483647
versionnumber
Version Number
BigInt
Version Number
Minimum value: -9223372036854775808 Maximum value: 9223372036854775807
Flows
The TSANet managed package includes flows designed for flexible automation. These flows enable actions such as updating TSANet records, creating new TSANet Cases, accepting or rejecting requests, requesting more information, or adding new notes. Additionally, all these actions are available in flows under the TSANet section, allowing you to customize the logic to meet your needs.

Flows
Child Flow – Login: The flow authorizes to the API and returns the token.
Scheduled – Create/Update Cases/Responses/Notes: The scheduled flow that retrieves the current case status or creates new inbound cases.
Actions
The TSANet managed package includes various actions designed to enhance and streamline workflows in Dynamics/Power Apps. These actions enable seamless integration and automation, such as retrieving data, creating cases, and updating existing records. You can incorporate these actions into custom flows to tailor functionality to specific business requirements.
Available Actions
GetCase: Fetches case details based on the specified criteria.
GetCompanyByName: Retrieves companies using its name as the search parameter.
GetFormByCompany: Retrieves a form linked to a specific company for further processing.
PostCase: Creates a new case with all required and optional fields populated.
PostCaseApproval: Initiates the approval process for a case, ensuring compliance and proper documentation.
PostCaseApprovalUpdate: Updates the status of an approval, reflecting changes to the case approval process.
PostCaseNote: Adds notes to an existing case, enabling better tracking and communication.
Plugins
The TSANet managed package includes a set of plugins that handle various customizations and business logic within Power Apps. These plugins can be triggered by specific user actions, API calls, or system events. Together, they provide flexibility and automation to meet diverse business requirements.
Available Plugins
CommonIntegrationPlugin: A generic integration plugin used for managing common tasks and actions, ensuring seamless data flow between systems.
GetCasePlugin: Retrieves case information based on predefined parameters. Typically triggered by the GetCase action.
GetCompanyPlugin: Fetches company details by name or identifier. Triggered by the GetCompanyByName action.
GetFormByCompanyPlugin: Returns forms associated with a specific company. This plugin is linked to the GetFormByCompany action.
PostCasePlugin: Handles the creation of new cases. It is triggered when the PostCase action is executed, ensuring that all data is validated and recorded accurately.
PostCaseApprovalPlugin: Manages the approval process for cases. This plugin is invoked when the PostCaseApproval action is performed.
PostCaseApprovalUpdatePlugin: Updates case approval statuses and is tied to the PostCaseApprovalUpdate action for real-time approval tracking.
PostCaseNotePlugin: Adds notes to an existing case. Triggered by the PostCaseNote action, it facilitates better communication and documentation.
PostCaseResponseOnCreatePlugin: Automatically generates a response when a case is created. Triggered by system events to streamline case follow-ups.
Key Features
Action-Triggered Plugins: These plugins are invoked by specific actions performed in Dynamics or Power Apps, providing precise control over workflow customization.
System-Triggered Plugins: Plugins like PostCaseResponseOnCreatePlugin are automatically triggered by internal events, ensuring seamless operations without manual intervention.
Customizable Logic: Each plugin contains specific business logic that can be tailored to meet unique organizational needs, enabling a fully adaptable Dynamics/Power Apps experience.

JavaScripts
The TSANet solution includes a set of JavaScript files that extend the functionality of Power Apps forms and actions. These scripts handle front-end customizations, UI enhancements, and client-side integrations to improve the user experience and ensure seamless interactions.
JavaScript Files Overview
CaseResponse.js: Manages client-side logic for case responses. This script ensures that responses are appropriately captured and displayed on the form.
CaseTSA.js: Contains specific logic and actions related to TSANet cases. It drives custom behaviors for case management, ensuring compliance with TSANet workflows. This script uses html webresource and generates the form for displaying or creating cases.
CaseTSAButtons.js: Handles button actions on case forms.
CommonIntegration.js: Manages frontend to backend integration for connecting external systems with Dynamics. All scripts uses backend API that handling the communication with the TSANET.
CommonScripts.js: A library of reusable JavaScript functions and utilities used across various forms and modules. This script reduces redundancy and ensures consistent behavior.

HTML Webresource
The CaseCustomForm.html file serves as the core HTML template for rendering the TSANET case UX in Power Apps. It is designed to provide a user-friendly and responsive form for creating, updating, and managing cases. The file incorporates custom JavaScript, CSS, and Power Apps form elements to ensure seamless functionality and a modern user experience.
Key Features
Custom Layout: Provides a structured and intuitive layout for case-related fields, ensuring users can easily input and view case details.
Integration with JavaScript: Works in conjunction with scripts like CaseTSA.js and CaseTSAButtons.js to enable dynamic actions and form behavior.
Dynamic Elements: Includes buttons, dropdowns, and interactive components for improved usability.
Styling: Utilizes custom CSS (or SCSS if extended) to align the form with organizational branding and ensure responsive design.
Partner’s Configuration
Automatically create TSANet Note by email
This function enables the automatic creation of a TSA Note whenever an email is received or sent within the Dynamics Case. The system monitors email activities linked to the case and triggers the creation of a new TSA Note, capturing the content and metadata of the email. This ensures that all email communications are logged and associated with the relevant TSANet Case for better traceability and collaboration.
You can enable or disable the functionality using environment variable “Auto Create TSANote by Email”.

Automatically create TSANet Note by note
This function allows for the automatic generation of a TSA Note when a new note is manually added to a Dynamics Case. Upon detecting a new note entry, the system creates a corresponding TSA Note record, ensuring that all updates and annotations are consistently reflected in the TSANet Case. This automation helps maintain comprehensive documentation and improves the efficiency of case management.
You can enable or disable the functionality using environment variable “Auto Create TSANote by Note”.

Automatically create Case from Response Form
This function enables members to automatically create a Dynamics Case when a TSA Case is accepted. It streamlines the case management process by leveraging predefined mappings and automation logic.
Administrator can add new fields on the TSANET Case Response table. These fields can be prefilled from the TSANET Case data using the 'Case mappings' setting. This allows for seamless data transfer and ensures that relevant information is readily available during case creation.
Administrator can map any field from the TSANET Case Response table to the case creation logic using the 'Case mappings'. Additionally, they can define which fields are mandatory, ensuring that all required data is captured before a case is created. This provides flexibility and control over the automation process.
Automatic Case Routing
System provides possibility to automate incoming TSA Case routing. You can enable it using environment variable “Auto Routing of New Case”.
Routing:
System search for existing cases using Customer Case #. If the case is found system relates the TSA Case with the Case and approves it.
If the case is not found, system search for the customer using the name and creates a case for the customer and relates it with the TSA Case and approves it.
If the customer is not found, the process ends.
Process can be customized using Power Automate editor, the name of the process is “On Create Case - Auto Route”.
You can customize following parts of the process:
GetCustomerFields – There you can get the data from the incoming TSA Case. You can save that data into variables for further usage.

SearchExistingCase – Here is the query for retrieve of existing case from the Dynamics. You can edit the filter rows according to screenshot.

CreateCase – If the Case is not found, system creates a case. You can edit the case creation and retrieving existing account in this scope.

Last updated

