Integration Guide

The TSANet Integration Guide is used by developers to build custom integrations and system connectors. TSANet has Connectors for Salesforce, Microsoft Dynamics and Service Now.

Contributors and References

Contributors

Paul Esch, TSANet, https://www.linkedin.com/in/pauleesch/

Sean Dulac, Appko, https://www.linkedin.com/in/seandulac/

References

The following documents explain the details behind the integration framework Technology and Methods.

Enterprise Integration Patterns: Designing, Building, and deploying messaging solutions.

By Grregor Hohpe and Bobby Woolf - https://www.amazon.com/o/asin/0321200683/ref=nosim/enterpriseint-20

Apache Camel: https://developers.redhat.com/products/redhat-build-of-apache-camel/overview

Apache ActiveMQ: https://activemq.apache.org/components/artemis/

Executive Summary

TSANet is a member-driven, not-for-profit, global collaborative alliance of 900+ technology companies working together to improve the support experiences of their shared customers. Member companies use TSANet to enable collaboration with their Technology and Service Partners. The TSANet Partner Framework is flexible and supports several relationship models.

Members use the TSANet Connect system to connect and collaborate with other members. The collaboration process is described in the image below:

Why Use TSANet Connect

TSANet Members can integrate their system into TSANet Connect to improve the user experience and process compliance. TSANet vs Alternative solutions are compared below:

TSANet Connect

Extranet

B2B Integration

Cost

Included with Membership

Usage model (example Per user)

High cost (~100k) per connection

Scalability & flexibility

Single Integration – Connect to One,

Connect to Anyone

Multiple extranet access is an operational challenge. Drives bad security practices.

Duplicate costs per integration. Every new connection requires each company to budget & prioritize

Security

ISO70001, ISO27701, Microsoft SSPA

No SSO, MFA, Shared accounts, Data protection

Depends on the Members IT Organization

User Experience

Consistent & Integrated experience

Swivel chair process – Not integrated

Missing features and Fragmentation (B2B with everyone not possible)

Ongoing Support

Support and continuous improvements

Based on multiple companies' extranet

Dependent on the IT prioritization and decisions of multiple companies.

System Overview

The TSANet Connect Platform includes a Web App and Integration Framework based on Apache Camel on Spring Boot, ActiveMQ and PostgreSQL. The Integration Framework provides a complete set of REST APIs for creating integrations. This document will describe the TSANet Connect REST APIs and how they were used to develop the Salesforce Package. Microsoft Dynamics Solution and Service Now App are also maintained by TSANet and more information and code can be found at: https://github.com/tsanetgit

TSANet Connect – Integration Framework

The TSANet Connect Integration Framework is based on Apache Camel on Spring Boot. Apache Camel is an open-source integration framework facilitating seamless communication between applications, systems, and services. It simplifies connecting disparate components by providing a flexible and extensible platform. In addition to the provided TSANet Connect REST APIs, the system can support custom integrations as needed.

Key features of Apache Camel:

  • Routing Engine: Camel allows you to define routes that connect various endpoints (such as databases, messaging systems, APIs, and files). These routes guide the flow of data between components.

  • Component-Based: Camel supports many components (e.g., HTTP, JMS, FTP, REST) out of the box. You can also create custom components tailored to your specific needs.

  • Domain-Specific Language (DSL): Camel offers a concise DSL for defining integration routes. This DSL abstracts away the complexities of low-level APIs.

  • Enterprise Integration Patterns (EIP): Camel implements EIPs, which provide standardized solutions for common integration challenges.

  • Extensibility: You can easily extend Camel by adding custom processors, components, and data transformations.

  • Testing Support: Camel provides robust testing capabilities to ensure the correctness of your integration flows.

TSANet Connect – Database Structure

TSANet Connect is designed to provide a simple and flexible method for Members to collaborate. The following objects are found in the database to support the collaboration process:

Groups: Groups are used to create relationships between Members. A Member could be part of several groups. One-Many and Many-Many groups are supported. TSANet-hosted groups and Member-hosted groups are used. Groups define the rules for collaboration (For example SLA response times)

Accounts: Accounts provide high-level information about a Member. Integration is at an account level so if multiple systems are used within a Member company Parent - Child accounts can be created.

Departments: An account can have one or more departments. This allows you to assign separate process forms for departments (e.g., Division A and Division B).

Users: Users are associated with an account. A Members Identify management system can manage user access through SAML2.0.

Process Forms: An account can have one or more forms. These forms are linked to a department or group to support inbound workflow. They define what data the member receives for inbound requests.

TSANet Cases: Metadata for a collaboration request (Sender and Receiver metadata).

  • Case Responses: Initial response and updates

  • Case Notes: Notes related to a collaboration

  • Case Attachments: Secure File transfer method (Integrates to Members Secure File Storage)

A facade pattern has been implemented to facilitate the translation of API consumer language to database persistence language.

TSANet Connect 2.0 REST API

TSANet provides a complete set of APIs to create apps and custom integrations. The endpoints are summarized below, and detailed documentation is found in the API Reference

Postman Collection is also available at:

https://www.tsanet.org/wp-content/uploads/2024/12/Connect-2.0.postman_collection.json_.zip

Contact TSANet at membership@tsanet.org to request access to the Beta site. The Salesforce reference integration section provides an example of how these APIs are used.

TSANet Case Status and Priority.

The TSANet case status and Priority are separate from the member’s case. Members can map these to their case or keep them separate.

Priority: P1 (High), P2 (Medium), P3 (Low). The system defines and monitors each SLA's initial response. If the SLA is not met, an escalation workflow triggers, alerting both the sender and receiver management contacts. Default SLAs are set in TSANet Hosted groups (P1=2hr, P2=4hr, P3=24Hr). Member can modify these defaults in their Hosted groups.

Status: The following status definitions are used.

  • Open (New waiting initial response)

  • Information (Sent if information is needed to accept or reject)

  • Accepted (Collaboration Accepted)

  • Rejected (Collaboration rejected. For example, end customer does not have support). This status is not used for solution support.

  • Closed (set by submitter or auto-close after 30 days of inactivity)

The following list of available APIs is in OSA3.0 format:

Endpoint (POST): login

Use: Login to TSANet and get a token for further calls.

Endpoint (GET): me

Use: Returns the TSANet user profile.

Endpoint (GET): partners (search)

Use: Search for a partner or department. This searches member and department names to return a companyId and departmentId if the member has multiple departments. Tags are also supported as part of the search

Endpoint (GET): form/company

Use: Get the collaboration form for a member company without departments in TSANet. Custom fields, including tier select, are supported

Endpoint (GET): form/department

Use: Get the collaboration form for a specific department in a member's company.

Custom fields, including tier select, are supported

Endpoint (POST): cases/collaboration-request

Use: Create TSANet collaboration request case by submitting the form

Endpoint (GET): cases

Use: Get cases. Allows filters (type, status,updated date, create date)

Endpoint (GET): cases/{internalCaseNumber}

Use: Get a case by the members internal case number reference. Allows filters

Endpoint (POST): cases/{caseId}/approve

Use: Approve a collaboration request

Endpoint (POST): cases/{caseId}/update/approve

Use: Update an approved request (Example change of assigned engineer)

Endpoint (POST): cases/{caseId}/request-information

Use: request additional information needed to approve a collaboration request

Endpoint (POST): cases/{caseId}/ information-response

Use: provide a response to request additional information message

Endpoint (POST): cases/{caseId}/reject

Use: Reject a collaboration request – example customer unknown

Endpoint (POST): cases/{caseId}/close

Use: Close a collaboration request

Endpoint (POST): cases/{caseId}/notes/create

Use: Post a case note for a collaboration request

Endpoint (GET): cases/{caseId}/notes

Use: Get case notes for a collaboration request. Filters available (dates)

Integration Process

Beta Environment

Elite Members can access the Beta environment to develop and test integrations. TSANet will provide the following:

  1. User account on the system (Beta-Member_Name). User/password for API

  2. Connection to the Test Account or other Members also in Beta to support end-end testing.

  3. Link to Swagger documents

  4. Postman collection

  5. Access to the Salesforce Package for Members using Salesforce.

  6. Access to the Microsoft Power App for Microsoft Dynamics and Teams

  7. Access to a TSANet developer resource for questions and assistance with integration.

TSANet will work with members to co-develop standard integrations for reuse in the most common systems. For an example of this approach, see the Salesforce reference implementation section.

Production Environment

After validating the Member integration, TSANet will work with the Member to transition to the Production environment.

Last updated