Installation Guide

Follow the steps below to ensure a smooth and successful installation of the Microsoft Dynamics Connector.

Installation

Installation from the AppSource
  1. Push the Contact button

  1. Confirm all the information.

Manual Installation of the Package
  1. Open the git hub https://github.com/tsanetgit/MS_Power_App and download the latest managed solution.

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

  2. Select your environment.

  1. Click on Import Solution

  1. Select downloaded managed solution.

  2. Confirm by the Next button.

  1. Create Connections and confirm by the Next button.

  1. Enter your credentials and URL and then click on Import

  1. 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

Use TSANET in your solution

Add components to application.
  1. Open https://make.powerapps.com in your Microsoft tenant.

  2. Select your environment.

  1. Open existing unmanaged solution or create the new

  2. Select Apps in the menu and open your application

  1. Click on edit

  1. Click on New

  1. Select Dataverse table

  1. Select TSANET tables

  1. Click on Add

Setup TSANET table relationship

You must create relationships between tables to use TSANET within your existing solution.

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

  2. Select your environment.

  1. Open existing unmanaged solution or create the new

  1. Open Tables -> TSANET Case

  1. 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.

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

  2. Select your environment.

  1. Open existing unmanaged solution or create the new.

  2. Open Tables -> “Your custom table”

  3. Open the main form

  4. Select Components -> Grid -> Subgrid

  5. Check “Show related records”

  6. 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.

  1. Select your environment

  2. Click on settings

  1. Click on Users + permissions -> Users

  2. Select the user

  3. Click on Manage security roles

  1. Select the “TSANET User” role and click on save

Package Details and Configuration Options

Data model
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.

  1. 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.

  2. 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:

  1. System search for existing cases using Customer Case #. If the case is found system relates the TSA Case with the Case and approves it.

  2. 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.

  3. 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:

  1. GetCustomerFields – There you can get the data from the incoming TSA Case. You can save that data into variables for further usage.

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

  1. 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