> For the complete documentation index, see [llms.txt](https://tsanet.gitbook.io/connect/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tsanet.gitbook.io/connect/documentation/salesforce-app/installation-guide/package-configuration.md).

# Package Configuration

This section provides detailed instructions for configuring the TSANet Connect 2.0 Salesforce package after installation. Work through the three configuration steps in order; optional customization and reference material follows below.

## Configuration steps

Complete these three steps in order.

<details>

<summary>Step 1 — Create the Integration User And Assign Permission Sets</summary>

{% hint style="warning" %}
**Create the integration user before anything else.** Create the user, check its license, assign the permission sets below, and only then continue with Step 2.
{% endhint %}

#### The integration user needs a full Salesforce license

The user you choose as the **integration user** must hold a full **Salesforce** user license. A **Salesforce Integration** license is not enough: inbound webhooks running as that user cannot create Case Feed items, so collaboration requests and notes never appear on the Case. Check the **User License** column before you assign the permission sets.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FGgapUiEEaTjuIYDO7WNW%2F1.png?alt=media&amp;token=ed68ed51-e048-417e-9231-f9f31bc57273" alt=""><figcaption></figcaption></figure>

The package includes three permission sets:

| Permission set                          | Assign it to                                     | What it gives                                                                                                                              |
| --------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `TSANet Connect Permissions (Admin)`    | Administrators who set up and manage the package | Full access to all TSANet objects, including delete and View All / Modify All. Shows the **TSANet Cases** and **TSANet Credentials** tabs. |
| `TSANet Connect Permissions (Employee)` | Users who work on TSANet cases                   | Read, create and edit TSANet records (no delete, no View All). Shows the **TSANet Cases** tab.                                             |
| `TSANet Integration User Access`        | Only the integration user that receives webhooks | See **3.1** in Step 3 below.                                                                                                               |

To assign the Admin or Employee permission set:

1. Go to **Setup**, type **Permission Sets** in Quick Find, and open **Permission Sets**.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F3QPRV9hZQaYbdobLkM1j%2F2026-10-15%2015_23_36-.png?alt=media&amp;token=8d303c66-0795-4d94-9016-9aea2b5bebed" alt=""><figcaption></figcaption></figure>

2. Click **TSANet Connect Permissions (Admin)** or **TSANet Connect Permissions (Employee)**.
3. On the permission set page, click **Manage Assignments**.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FOTSeYGIDkAFNVTH7nuMP%2F2026-10-11%2014_20_09-Permission%20Sets%20_%20Salesforce.png?alt=media&amp;token=f2fcb434-7305-4886-81fd-1d39692a44b3" alt=""><figcaption></figcaption></figure>

4. Click **Add Assignment**.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FeJSSUg3kq02lXqZ9uz3i%2F2026-10-11%2014_23_27-Permission%20Sets%20_%20Salesforce.png?alt=media&amp;token=3117793f-0401-4924-96a2-47baa516f52c" alt=""><figcaption></figcaption></figure>

5. Select the user and TSANet Integration User and click **Next**.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FoGQNf5B6NwZJnZGP0guI%2F2026-10-15%2015_25_20-.png?alt=media&amp;token=0febf596-48fd-419d-905e-188c76aea600" alt=""><figcaption></figcaption></figure>

6. Choose an expiration option (**No expiration date** keeps the access permanently), then click **Assign** and **Done**.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FnhIGueSzL800QwoTt75H%2F2026-10-16%2018_44_46-.png?alt=media&amp;token=986f1337-b5a3-42bc-a198-87f2417f84cc" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>Step 2 — TSANet Credentials Setup</summary>

TSANet Connect authenticates with **OAuth 2.0** using a Salesforce **Named Credential**. The managed package ships both the Named Credential and its External Credential — you do not create them. No TSANet password is stored in Salesforce.

Use the set that matches the TSANet environment you connect to:

| Item                | Production                      | Beta                            |
| ------------------- | ------------------------------- | ------------------------------- |
| Named Credential    | `TSANetAPI`                     | `TSANetAPIBeta`                 |
| Endpoint URL        | `https://connect2.tsanet.org`   | `https://connect2.tsanet.net`   |
| External Credential | `TSANetExternalCredential Prod` | `TSANetExternalCredential Beta` |

{% hint style="info" %}
**Do 2.1 as your own administrator user. Only 2.2 to 2.4 run in the integration user's session.**
{% endhint %}

#### 2.1 Open the Named Credential and set the client ID and secret

1. Go to **Setup**, type **Named Credentials** in Quick Find, and open **Named Credentials**.
2. Open the Named Credential for your environment — `TSANetAPI`, or `TSANetAPIBeta` for Beta.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F3civgcOELVwvBEYP7uXF%2F6.png?alt=media&amp;token=ddc20e10-a794-4581-a306-31017250deab" alt=""><figcaption></figcaption></figure>

3. Switch to the **External Credentials** tab and open the external credential that it uses.

Its OAuth settings ship pre-configured:

| Field                                   | Value                                                                          |
| --------------------------------------- | ------------------------------------------------------------------------------ |
| Authentication Protocol                 | `OAuth 2.0`                                                                    |
| Authentication Flow Type                | `Client Credentials with Client Secret Flow`                                   |
| Identity Provider URL                   | `https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token`              |
| Scope                                   | `<audience-id>/.default` (the audience ID differs between Production and Beta) |
| Pass client credentials in request body | enabled                                                                        |

4. Scroll down to **Principals**, open the **Actions** menu next to the principal named **`TSANetApp`**, and click **Edit**.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FoLnbKt5nFr0Ov8W8GebF%2F2026-10-19%2016_30_44-Named%20Credentials%20_%20Salesforce.png?alt=media&amp;token=277fbb25-41fb-4c28-b531-fc7bb7a9255a" alt=""><figcaption></figcaption></figure>

5. Enter the **Client ID** and **Client Secret** that TSANet supplied for that environment, then click **Save**.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FFd6EW7mq7q1SmItP233F%2F2026-09-23%2017_57_35-Home%20_%20Salesforce.png?alt=media&amp;token=7cfb548f-7677-43c3-a8ad-5237425f48d6" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Authentication Status** must read `Configured`. Do this **before** creating the credential record in 2.3 — callouts fail until the client ID and secret are in place.
{% endhint %}

#### 2.2 Log in as the integration user

Create the TSANet Credentials record **while logged in as the integration user**. The record is then owned by that user, and the package's scheduled jobs run as that user.

1. Go to **Setup → Users → Users**
2. Find the integration user and click **Login** next to it
3. Stay in that session for 2.3 and 2.4

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FqD2FAGqCURi8YtwXhgj1%2F2.png?alt=media&amp;token=88fdfe47-cd56-42a2-be01-7ca97ff1c258" alt=""><figcaption></figcaption></figure>

#### 2.3 Create the TSANet Credentials record

Open **TSANet Credentials** from the App Launcher and click **New**. The form has two fields:

| Field                           | What to enter                                                                                                     |
| ------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| **Named Credential** (required) | `TSANetAPI (tsanetconnect__TSANetAPI)` for Production, or `TSANetAPIBeta (tsanetconnect__TSANetAPIBeta)` for Beta |
| **Integration User**            | TSANet Integration User                                                                                           |

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F46M0C1prUtar0b4ZMJpH%2F2026-09-23%2018_02_28-New%20TSANet%20Credentials%20_%20Salesforce.png?alt=media&amp;token=2384c768-14e1-4ff9-bbaf-afd5662c4664" alt=""><figcaption></figcaption></figure>

#### 2.4 Confirm the connection

Save the record, then **refresh the page**. **Is Connected** is set by the package after a successful callout, so it appears only once the page reloads.

| Field            | Expected                                            |
| ---------------- | --------------------------------------------------- |
| **Is Primary**   | checked — only one credential record can be primary |
| **Is Connected** | checked                                             |

**Is Connected** is the real confirmation that the setup works. The package also fills in **Company ID** and **Company Name** on the record with your TSANet company.

The record also carries a **TSANet Webhooks** related list, where the package registers its callback endpoint for collaboration request events.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F2cEiMPGs0EtqK3IvAYnc%2F2026-09-23%2018_06_49-NC-00001%20_%20TSANet%20Credentials%20_%20Salesforce.png?alt=media&amp;token=f539f774-3b6d-4dd1-aad1-ff8b9ec18baa" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>Step 3 — Webhooks</summary>

This guide explains how to let TSANet deliver webhook events (for example new collaboration requests and notes) into Salesforce through the package's Apex REST endpoint.

TSANet authenticates to Salesforce with **OAuth 2.0 Client Credentials** through an **External Client App**. Every webhook call runs as an **integration user** that has the **TSANet Integration User Access** permission set. A public Salesforce Site and guest user are no longer used.

TSANet webhooks require:

1. An **integration user** with the **TSANet Integration User Access** permission set
2. An **External Client App** with the **Client Credentials Flow** enabled and that user as **Run As**
3. A **TSANet Credential** record
4. A **TSANet Webhook** record pointing to your org's Apex REST endpoint

```
TSANet Platform
   ↓  OAuth 2.0 Client Credentials (External Client App)
https://<your-domain>.my.salesforce.com
   ↓
Apex REST Endpoint (/services/apexrest/tsanetconnect/webhook), runs as the integration user
   ↓
TSANet Package Logic
```

### 3.1 Assign the integration user permission set

The package includes the permission set **TSANet Integration User Access**. It lets the user that receives webhooks publish TSANet webhook events, call TSANet through the External Credential, and queue webhook processing. It gives Case read-only access (no View All). The integration user must still hold a **full Salesforce user license** — with a **Salesforce Integration** license the webhook cannot create Case Feed items. See **Step 1** above.

1. Go to **Setup → Permission Sets**
2. Open **TSANet Integration User Access**
3. Click **Manage Assignments → Add Assignment**
4. Select the integration user that will receive webhooks, then click **Assign**

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FdYbKt2U3RTTe13KdTGKJ%2F2026-09-24%2019_22_35-Permission%20Sets%20_%20Salesforce.png?alt=media&amp;token=0f2ce806-051f-46a4-9f54-1a972cc747ef" alt=""><figcaption></figcaption></figure>

### 3.2 Create the External Client App

1. Go to **Setup → External Client App Manager** and click **New External Client App**
2. Fill in **External Client App Name**, **API Name** and **Contact Email**, and set **Distribution State** to `Local`
3. Under **API (Enable OAuth Settings)**, select **Enable OAuth** and set:

| Setting         | Value                                                                                                                                                                   |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Callback URL    | Any HTTPS URL in your org. The form requires a value, but the Client Credentials flow never calls it — pasting the Setup URL from your browser's address bar is enough. |
| OAuth Scopes    | `Manage user data via APIs (api)`, `Full access (full)`                                                                                                                 |
| Flow Enablement | **Enable Client Credentials Flow** only                                                                                                                                 |

4. Click **Create**. Salesforce warns that it will generate a consumer key and secret — confirm.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F7BzoPkRiVE9n5BxjVgxM%2F3.png?alt=media&amp;token=01415536-6a76-4251-ac52-038cb72a4b00" alt=""><figcaption></figcaption></figure>

5. Open the app, go to the **Policies** tab, click **Edit** and expand **OAuth Policies**:
   * **Enable Client Credentials Flow**: checked
   * **Run As (Username)**: the integration user from 3.1
6. Click **Save**

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FrgvXT7Ai32fG2uOkATNO%2F2026-09-24%2019_37_48-Home%20_%20Salesforce.png?alt=media&amp;token=9382707b-a230-4b50-a5b8-670bb04de76c" alt=""><figcaption></figcaption></figure>

### 3.3 Copy the Consumer Key and Consumer Secret

1. Open the External Client App and go to the **Settings** tab
2. Expand **OAuth Settings** and click **Consumer Key and Secret**
3. Keep both values for 3.4. You enter them on the TSANet Webhook as **Client Id** (Consumer Key) and **Client Secret** (Consumer Secret)

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FGcYxI51IEu0QglqcOk9K%2F4.png?alt=media&amp;token=1f2d9188-a487-49bb-8e87-cb8634079fa1" alt=""><figcaption></figcaption></figure>

TSANet uses them to obtain a Salesforce token before each webhook delivery. They are not stored in Salesforce.

### 3.4 Create the TSANet Webhook

1. Navigate to **App Launcher → TSANet Credentials**
2. Open an existing credential
3. Scroll to the **TSANet Webhooks** related list
4. Click **New**

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FjmEeKcUyJKBpnec0CBRE%2F2026-04-28%2020_59_40-NC-00002%20_%20TSANet%20Credentials%20_%20Salesforce.png?alt=media&amp;token=4fef2a93-ac91-4a78-b8c8-faf91343f469" alt=""><figcaption></figcaption></figure>

#### Webhook Configuration Fields

| Field             | Value                                                                        |
| ----------------- | ---------------------------------------------------------------------------- |
| Callback URL      | Filled in automatically with your org's My Domain URL (see below)            |
| Event Types       | `collaboration-request.created` and `note.created`, both selected by default |
| TSANet Credential | Existing credential (e.g., NC‑00001)                                         |
| Client Id         | The External Client App's **Consumer Key** (3.3)                             |
| Client Secret     | The External Client App's **Consumer Secret** (3.3)                          |

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FBP4qZNuXUQyD19bdCA6F%2F2026-09-24%2019_40_15-New%20TSANet%20Webhook%20_%20Salesforce.png?alt=media&amp;token=3e028621-3233-4c39-aa17-2b766ddb724b" alt=""><figcaption></figcaption></figure>

#### Callback URL Format (Critical)

The form fills in your org's My Domain URL. Select **Edit** next to the field only if you need to change it. The URL must keep this format and use My Domain, not a Salesforce Site URL:

```
<Your My Domain URL>/services/apexrest/tsanetconnect/webhook
```

Example:

```
https://companyoneinc-dev-ed.develop.my.salesforce.com/services/apexrest/tsanetconnect/webhook
```

> This endpoint is implemented inside the TSANet package.\
> Do **not** change the Apex REST path.

5. Click **Save**

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FPzjzRDS2QkVXvW2PVzC0%2F2026-09-24%2019_41_24-WH-00000%20_%20TSANet%20Webhook%20_%20Salesforce.png?alt=media&amp;token=5af77de9-53d9-43f8-8828-5690f2cd5825" alt=""><figcaption></figcaption></figure>

A Webhook record (for example `WH-00001`) is created and active.

### 3.5 Confirm the webhook

Open the TSANet Credential again and check its **TSANet Webhooks** related list. The new record is listed with **Active** checked, and **Event Types** is stored with the fully qualified event names:

```
org.tsanet.connect.collaboration-request.created;org.tsanet.connect.collaboration-request.note.created
```

If you created the credential while logged in as the integration user (2.2), the credential's **Created By** shows that user. On the credential itself, **Is Primary** and **Is Connected** must both be checked before webhooks are delivered.

### Encrypted Data Permission for Super User

> **Note:** This permission should only be granted to authorized users because it provides access to sensitive information.

1. Go to **Setup → Permission Sets** and click **New**.
2. Create a permission set:
   * **Label:** `Encrypted Data Permission`
   * **License:** `--None--`
3. Open the permission set and search for **Encryption**.
4. Under **System Permissions**, select **View Encrypted Data**.
5. Click **Edit**, enable **View Encrypted Data**, and **Save**.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FTf3YUPNAYYBXfsAEIh58%2F2026-07-14%2013_58_29-Permission%20Sets%20_%20Salesforce.png?alt=media&amp;token=8e44d672-133b-48f5-9673-ab38c1a0150d" alt=""><figcaption></figcaption></figure>

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FAVe4D7S1vcJg6LHmfuti%2F2026-07-14%2014_00_17-Permission%20Sets%20_%20Salesforce.png?alt=media&amp;token=d0c63213-2397-43ea-ae8d-a5fa29978507" alt=""><figcaption></figcaption></figure>

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2Fqyr5BCdQNPuUozCrW8Rv%2F2026-07-14%2014_02_16-Permission%20Sets%20_%20Salesforce.png?alt=media&amp;token=7ec31605-cd69-446d-9d2e-5b23764c0a83" alt=""><figcaption></figcaption></figure>

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FcLM6WxQ5kxELMNVIYfwf%2F2026-07-14%2014_03_02-Permission%20Sets%20_%20Salesforce.png?alt=media&amp;token=8ccad4f7-3b7d-42f3-a829-6af3f4d4dfbc" alt=""><figcaption></figcaption></figure>

1. Click **Manage Assignments**.
2. Select the users who require access and click **Assign**.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FlLUJw8P4KHXs4j6bIalv%2F2026-07-14%2014_03_52-Permission%20Sets%20_%20Salesforce.png?alt=media&amp;token=65a78565-0523-4974-a33f-89a3d81a5d6b" alt=""><figcaption></figcaption></figure>

> **Note:** Grant this permission only to authorized users, as it allows viewing encrypted field values in plain text.

### Troubleshooting & Debugging

#### Enable Debug Logs

1. **Setup → Debug Logs**
2. Add a new Trace Flag:
   * Traced Entity Type: **User**
   * Traced Entity Name: Integration User
   * Debug Level: `SFDC_DevConsole`
3. Save

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FStJsZr4CdOoLxNnWOlpZ%2Fphoto_2026-04-28_22-23-37.jpg?alt=media&amp;token=8f7b432a-595d-4e38-912b-ebedb5ff80b5" alt=""><figcaption></figcaption></figure>

This helps diagnose:

* Permission issues
* Apex execution errors
* Payload parsing failures

### Common Issues & Fixes

| Issue                     | Cause                                                             | Resolution                                                  |
| ------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------- |
| 401 / invalid\_client     | Client Credentials Flow not enabled, or wrong Consumer Key/Secret | Check the External Client App **Settings** and **Policies** |
| 403 / insufficient access | Run As user lacks the permission set                              | Assign **TSANet Integration User Access**                   |
| Webhook not firing        | Webhook inactive or no event types selected                       | Check **Active** and **Event Types**                        |
| Apex errors               | Object/field access missing                                       | Verify the permission set and check debug logs              |

### Summary Checklist

* [ ] Integration user assigned **TSANet Integration User Access**
* [ ] External Client App created, Client Credentials Flow enabled, Run As = integration user
* [ ] Consumer Key and Consumer Secret copied from the External Client App
* [ ] TSANet Credential exists
* [ ] Webhook created with the My Domain callback URL, Client Id and Client Secret
* [ ] Event types configured

</details>

## Optional configuration and reference

Everything below is optional customization or reference material.

<details>

<summary>Component &#x26; Layout Configuration - Lightning Web Component</summary>

The TSANet Connect LWC can be used and has all functionality. Other Page customization options are available with Actions and related lists for Members also. See the **Customization Options section below**

* **Add TSANet Cases List to Service Console**: Go to the Service Console → List dropdown → Edit → Add More Items → add TSANet Cases list.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FM7S6Jf7wQdcDc4vxHGsr%2F2025-09-21%2022_44_38-Connect.2.0.SFDC.Package.Install.Guide.v3.0.3.docx%20-%20LibreOffice%20Writer.png?alt=media&amp;token=55119cff-b325-4a4b-b56c-b72220ddffb3" alt=""><figcaption></figcaption></figure>

* **Add TSANetApplication Component to Case Record Page**: Go to the Case record page → click Gear Icon → Edit Page → find the **TSANet Application Widget** component → drag and drop to the appropriate place → click Save.

  Note: Other options for Case page customizations are available using flows and actions. See the **Component & Layout Configuration - Customization Options** section below for details.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2Flv7KNvUEI9V6JLz6lRdN%2Fimage.png?alt=media&amp;token=5ea45ef6-0c2a-437e-8a78-9b73da1e6d1e" alt=""><figcaption></figcaption></figure>

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FweR1YFX3PXGCm0mYG344%2Fimage.png?alt=media&amp;token=16309cf8-fa7f-469f-a87a-de647d9e2589" alt=""><figcaption></figcaption></figure>

Click the Activate button → select APP DEFAULT tab → click Assign as App Default → choose your app → click Next and assign desktop and phone version → click Next and Save.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F5GUEdiopC2QNnBkzFD3g%2F2025-09-21%2022_51_20-Connect.2.0.SFDC.Package.Install.Guide.v3.0.3.docx%20-%20LibreOffice%20Writer.png?alt=media&amp;token=8843d86b-f28a-430c-9cf4-ecc667764cba" alt=""><figcaption></figcaption></figure>

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FKgUh1skVxL8iExy2QwtH%2F2025-09-21%2022_51_43-Connect.2.0.SFDC.Package.Install.Guide.v3.0.3.docx%20-%20LibreOffice%20Writer.png?alt=media&amp;token=780ad2ac-5106-438e-965d-ba4b2347434f" alt=""><figcaption></figcaption></figure>

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FQ192g3vkCFBZPIVgV42I%2F2025-09-21%2022_52_06-Connect.2.0.SFDC.Package.Install.Guide.v3.0.3.docx%20-%20LibreOffice%20Writer.png?alt=media&amp;token=5232c95d-38e2-4541-b114-05059c1cce93" alt=""><figcaption></figcaption></figure>

* **Add TSANetCase Related List to Case Page Layout**: Go to Setup → Object Manager → Case → Page Layout → select your page layout → scroll to Related List section → drag and drop TSANetCase related list to layout → Save.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2Fl99lcjUeZ2sv6oFQVhrR%2F2025-09-21%2022_54_19-Connect.2.0.SFDC.Package.Install.Guide.v3.0.3.docx%20-%20LibreOffice%20Writer.png?alt=media&amp;token=0cc1b344-6fb5-4cc9-826c-9f92c38d05f5" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>Component &#x26; Layout Configuration - Dynamic Actions</summary>

Use **Dynamic Actions configuration in Lightning App Builder:**

* **Click the Gear Icon → Edit Page**
* **Select the Highlights Panel**
  * In the right-hand panel, under **Page > Highlights Panel**, click the section that controls the header buttons (where Edit / Delete are).
* **Modify Actions**
  * In the **Actions** section on the right:
    * Click **Add Action**
    * Use the search bar and type **tsa**

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FZs671FMVxUKPXhBuDfN8%2F2026-06-14%2010_59_48-Review%20sfdc%20package%20for%20security%20review%20_%20TSANet%20_%20natalia%40tsanet.org%20_%20Microsof.png?alt=media&amp;token=e960f152-0549-4432-9afd-ea6ba7b77306" alt=""><figcaption></figcaption></figure>

***

```
- You’ll see categories like:
  - Standard Actions  
  - Object-Specific Quick Actions  
  - Global Quick Actions  

- Find **Create New TSANet Case** under **Object-Specific Quick Actions**
```

* **Add the Action**
  * Select **Create New TSANet Case** and add it to the Actions list
  * Arrange it in the order you want (drag & drop)

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FmOHjHH1Bj5FlB5tsBh8n%2F2026-06-14%2011_01_08-Review%20sfdc%20package%20for%20security%20review%20_%20TSANet%20_%20natalia%40tsanet.org%20_%20Microsof.png?alt=media&amp;token=7669fddd-f8e7-4b93-ba18-5704ca703dbe" alt=""><figcaption></figcaption></figure>

* **Save and Activate**
  * Click **Save**
  * Click **Activation** (if required)
* The action appears in the **Highlights Panel** dropdown

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F8bKNVDWghCpiSKzC63wZ%2F2026-06-14%2011_02_28-Review%20sfdc%20package%20for%20security%20review%20_%20TSANet%20_%20natalia%40tsanet.org%20_%20Microsof.png?alt=media&amp;token=46024394-7c1c-4bb6-a4c6-fa12a4f5a1ac" alt=""><figcaption></figcaption></figure>

* Clicking the action opens the member search modal:

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FegETy8JLuQoBQDwyabAi%2F2026-06-14%2011_02_47-Review%20sfdc%20package%20for%20security%20review%20_%20TSANet%20_%20natalia%40tsanet.org%20_%20Microsof.png?alt=media&amp;token=aef67dda-9bcb-4a02-a428-ecef4d6a46d1" alt=""><figcaption></figcaption></figure>

* Then the user completes the form:

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F9KGNGOvD96SVwHS0Cc9U%2F2026-06-14%2011_03_12-Review%20sfdc%20package%20for%20security%20review%20_%20TSANet%20_%20natalia%40tsanet.org%20_%20Microsof.png?alt=media&amp;token=a964de53-0e75-48c2-9f84-90a484b962bf" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>Component &#x26; Layout Configuration - <strong>Customization Options</strong></summary>

For members who do not want to include the Lightning Web Component on the Case page, it is possible to integrate actions, lists, and flows into your existing case form. Below is an example of this approach, showing a Member adding this to the section of the case page that already includes actions and related links.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FaEQ28W8eOvmlANU7QRyi%2Fimage.png?alt=media&amp;token=4375b6fb-df05-4c04-a59d-9945f5318fba" alt=""><figcaption></figcaption></figure>

**There are two options to add the Create New TSANet Case action:**

**Option 1:**

* **Click the Gear Icon → Edit Page**
  * You’ve already done this and are in the Lightning App Builder.
* **Select the Highlights Panel**
  * In the right-hand panel, under **Page > Highlights Panel**, click the section that controls the header buttons (where Edit/Delete are).
* **Modify Actions**
  * In the **Actions** section on the right:
    * Click **Override the predefined actions** if it’s not already overridden.
    * You’ll see categories like:
      * Standard Actions
      * Object-Specific Actions
      * Global Quick Actions
    * Find **Create New TSANet Case** under **Object-Specific Actions**.
* **Add Create New TSANet Case**
  * Drag **Create New TSANet Case** into the list of actions.
  * Arrange it in the order you want.
* **Save and Activate**
  * Click **Save**.
  * If prompted, click **Activate** to make sure this page is assigned to the correct app/profile.
* **Refresh the Case Page**
  * Go back to a Case record and check the dropdown. The button should now appear.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FQlLlG2aFH0a2MrdyY8eZ%2F2026-10-11%2013_39_57-TSANet.png?alt=media&amp;token=bf194b6a-a0e6-4fc2-82c3-436524c3a9c0" alt=""><figcaption></figcaption></figure>

**Option 2:**

* **Go to Setup**
  * Click the gear icon → **Setup**.
* **Open Object Manager**
  * Search for **Case** and click it.
* **Edit Page Layout**
  * Go to **Page Layouts**.
  * Select the layout used for your Case records.
* **Locate the Lightning Actions Section**
  * Scroll down to **Salesforce Mobile and Lightning Experience Actions**.
  * If you don’t see it, click the **override the predefined actions** link.
* **Add the Create New TSANet Case Action**
  * In the palette at the top, find **Create New TSANet Case** (and, if you want it, **Refresh TSANet Cases**).
  * Drag it into the **Salesforce Mobile and Lightning Experience Actions** section.
* **Save the Layout**
  * Click **Save**.
  * Refresh your Case record page and check the dropdown.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FMbTLKFg05BmGOCf6qe5S%2F2026-10-11%2013_25_04-Edit%20Page%20Layout_%20Case%20Layout%20~%20Salesforce%20-%20Developer%20Edition.png?alt=media&amp;token=d3281522-b26c-4396-8004-5d3ccbb44743" alt=""><figcaption></figcaption></figure>

**Steps to Create a Related List with Actions**

**1. Identify the Custom Action**

* Determine the action you want users to perform from the related list (e.g., send note, attachment).
* Ensure the action is compatible with the object and its layout.

**2. Modify the Page Layout**

* Go to **Setup** → **Object Manager** → Select the object.
* Open the **Page Layouts** section.
* Add the related list to the layout where the action should be accessible.

**3. Configure the Related List**

* Use standard related list settings to include the relevant custom object or record type.
* Make sure the related list supports **action buttons** or **quick actions**.

**4. Avoid Lightning Web Components (if not required)**

* If the goal is simplicity or client preference, use traditional related list configurations.
* Only use Lightning Web Components when their functionality is explicitly needed.

**5. Test the Setup**

* Preview the layout to confirm the related list appears correctly.
* Test the action to ensure it performs as expected.
* Validate that the user experience is intuitive and meets business requirements.

**Actions included in the package**

On the **Case** object:

* **Create New TSANet Case**
* **Refresh TSANet Cases**

On the **TSANet Case** object:

* **Accept**, **Close**, **Create Note**, **Reject**, **Request Information**, **Send Information**, **Upload File**
* Screen-flow versions: **Accept ( Screen Flow )**, **Close ( Screen Flow )**, **Create Note ( Screen Flow )**, **Reject ( Screen Flow )**, **Request Information ( Screen Flow )**, **Send Information ( Screen Flow )**

To show TSANet Cases on a Case, add the **TSANet Cases** related list to the Case page layout (see **Add TSANetCase Related List to Case Page Layout** above). To let users send a note or a file from a TSANet Case, add **Create Note** and **Upload File** to the TSANet Case page layout or Lightning page.

**Note**: Flows for further automation and customization can be found in the following section

</details>

### Automation and Flows:

TSANet uses Salesforce Flows to define the business logic for TSANet Connect. Several flows are provided and members can clone and modify as needed.

<details>

<summary><strong>Navigate to flows</strong></summary>

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F1wf0mLS2jI4jFh0Jsj83%2F2025-09-21%2018_34_49-Flows%20_%20Salesforce.png?alt=media&amp;token=cb7f5ee8-92bb-42a5-b4d0-b1ade821caa8" alt=""><figcaption></figcaption></figure>

You can navigate to Flows as follows:

Go to Setup → type “flows” in Quick Find (path: Process Automation → Flows).

From there, you can:

* Create a new Flow using Flow Trigger Explorer or by clicking New Flow.
* View available packaged flows by searching for “TSANet” in field Search Lists under Flow Definitions to see all TSANet-related flows available for activation.

</details>

<details>

<summary><strong>TSANetScheduledJob</strong></summary>

The TSANetScheduledJob is a background job that synchronizes data between Salesforce and TSANet.

By default, it is scheduled to run every 15 minutes, ensuring that case updates and notes are regularly exchanged.

You may adjust the cron expression if your organization requires a different sync interval: Go to Setup → type “Scheduled Jobs” in Quick Find (path: Environments → Jobs → Scheduled Jobs) → search for *TSANetScheduledJob* → click *Manage* → update cron expression → Save.

**Examples:**

**A) Every 15 minutes (create 4 schedules)**

Use these **four** schedules:

1. **Job Name:** `TSANetScheduledJob – Every 15 (00)`\
   **Cron Expression:**

   ```
   0 0 * * * ?
   ```
2. **Job Name:** `TSANetScheduledJob – Every 15 (15)`\
   **Cron Expression:**

   ```
   0 15 * * * ?
   ```
3. **Job Name:** `TSANetScheduledJob – Every 15 (30)`\
   **Cron Expression:**

   ```
   0 30 * * * ?
   ```
4. **Job Name:** `TSANetScheduledJob – Every 15 (45)`\
   **Cron Expression:**

   ```
   0 45 * * * ?
   ```

B) **Every 10 minutes** (create **6** schedules)

1. `TSANetScheduledJob – Every 10 (00)`

   ```
   0 0 * * * ?
   ```
2. `TSANetScheduledJob – Every 10 (10)`

   ```
   0 10 * * * ?
   ```
3. `TSANetScheduledJob – Every 10 (20)`

   ```
   0 20 * * * ?
   ```
4. `TSANetScheduledJob – Every 10 (30)`

   ```
   0 30 * * * ?
   ```
5. `TSANetScheduledJob – Every 10 (40)`

   ```
   0 40 * * * ?
   ```
6. `TSANetScheduledJob – Every 10 (50)`

   ```
   0 50 * * * ?
   ```

C) **Every 5 minutes** (create **12** schedules)

1. `TSANetScheduledJob – Every 5 (00)`

   ```
   0 0 * * * ?
   ```
2. `TSANetScheduledJob – Every 5 (05)`

   ```
   0 5 * * * ?
   ```
3. `TSANetScheduledJob – Every 5 (10)`

   ```
   0 10 * * * ?
   ```
4. `TSANetScheduledJob – Every 5 (15)`

   ```
   0 15 * * * ?
   ```
5. `TSANetScheduledJob – Every 5 (20)`

   ```
   0 20 * * * ?
   ```
6. `TSANetScheduledJob – Every 5 (25)`

   ```
   0 25 * * * ?
   ```
7. `TSANetScheduledJob – Every 5 (30)`

   ```
   0 30 * * * ?
   ```
8. `TSANetScheduledJob – Every 5 (35)`

   ```
   0 35 * * * ?
   ```
9. `TSANetScheduledJob – Every 5 (40)`

   ```
   0 40 * * * ?
   ```
10. `TSANetScheduledJob – Every 5 (45)`

    ```
    0 45 * * * ?
    ```
11. `TSANetScheduledJob – Every 5 (50)`

    ```
    0 50 * * * ?
    ```
12. `TSANetScheduledJob – Every 5 (55)`

    ```
    0 55 * * * ?
    ```

{% hint style="info" %}
Note: `0 5 * * * ?` — that would run **once per hour at minute 5**, not every 5 minutes
{% endhint %}

{% hint style="info" %}

* Salesforce **does not support `*/X` or `0/X` increments** like Linux cron. You must explicitly list the minutes (**not** allow shorthand like `*/15`)
* Use **explicit values** (comma-separated) or ranges.
* Use `?` for **Day of Month or Day of Week** when the other is specified.
  {% endhint %}

</details>

<details>

<summary><strong>Invocable Actions</strong></summary>

* Create TSANet Collaboration Case, TSANet Accept Collaboration Request, Reject TSANet Collaboration Request
* Get TSANet Companies, Get Company Form
* Create TSANet Note, Request More Information, Send More Information
* Close TSANet Collaboration Request, TSANet Change Owner, Refresh TSANet Cases
* Process TSANet Webhook Event

</details>

**Inbound Flows:** These flows are used in the inbound process

<details>

<summary><strong>TSANet: Inbound: Accept Collaboration Request (Automation)</strong></summary>

This is an **autolaunched Salesforce Flow** that automates the process of accepting a TSANet collaboration request.

The flow:

* Retrieves the related TSANet case record
* Invokes a subflow to gather approval details
* Executes an Apex action to accept the collaboration request

This automation handles the acceptance of TSANet collaboration requests in a consistent and automated manner.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F7AJB2xOw7yf72TSydp4W%2F2026-02-22%2020_08_50-TSANet%20Accept%20(%20Automation%20)-%20V1.png?alt=media&amp;token=a2cdd426-11a2-4177-8629-f43fabab7496" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Inbound: Accept Collaboration Request (Screen Flow)</strong></summary>

This is a **screen‑based Salesforce Flow** that allows users to accept a TSANet collaboration request through a guided interface.

The flow:

* Retrieves the related TSANet case record
* Evaluates whether the Salesforce case is already assigned
* Displays a required assignment screen if the case is not assigned
* Displays a screen to capture acceptance notes
* Invokes an automation subflow to accept the TSANet collaboration request
* Evaluates the result and displays an error screen if the acceptance fails

This automation handles the acceptance of TSANet collaboration requests through a user‑driven, guided flow with validation and error handling.

**Status after installation:** Inactive. Activate it in Setup → Flows before you use it.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2Fj0j2ClbE2MRvI9scwDuO%2F2026-02-22%2019_57_16-TSANet%20-%20Accept%20(%20Screen%20Flow%20)-%20V7.png?alt=media&amp;token=bbb13c79-2cee-4be5-b113-27f160f40505" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Inbound: Auto Accept Collaboration Request</strong></summary>

This is a **record-triggered Salesforce Flow** that automates the acceptance of inbound TSANet collaboration requests.

The flow is triggered when a **TSANet Case record is created** and runs immediately after creation, based on defined entry conditions.

The flow:

* Evaluates newly created **TSANet Case records** against configured conditions
* Invokes a **subflow (TSANet Accept – Automation)** to process the collaboration request
* Executes the acceptance logic without requiring user interaction

This automation ensures that eligible inbound collaboration requests are accepted consistently and automatically, improving response time and reducing manual effort.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FJ2pTagJG44pLrFg0Utou%2F2026-06-21%2015_21_39-TSANet_%20Inbound_%20Auto%20Accept%20Collaboration%20Request%20-%20V1.png?alt=media&amp;token=da1f6b1c-c03a-44e5-8620-01a3e0522708" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Inbound: Auto Accept Collaboration Request (Future)</strong></summary>

This is a **record-triggered Salesforce Flow** that automates the acceptance of incoming TSANet collaboration requests.

The flow is triggered when a **TSANet Case record is created** and is configured to run **asynchronously using a scheduled path**.

The flow:

* Monitors newly created **TSANet Case records** based on defined entry conditions
* Executes a **subflow (TSANet Accept)** via a scheduled path to automatically accept the collaboration request
* Processes the acceptance without requiring user interaction

This automation ensures that eligible inbound collaboration requests are accepted automatically, improving response time and reducing manual effort while maintaining consistent processing.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FNaRsvJaNXoUoCxfEgrDY%2F2026-06-14%2008_58_11-TSANet_%20Inbound_%20Auto%20Accept%20Collaboration%20Request%20(%20Future%20)-%20V1.png?alt=media&amp;token=65096932-3a31-491e-84eb-4b033c24e54d" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Inbound: Collaboration Request Trigger Handler</strong></summary>

This is a **record‑triggered Salesforce Flow** that runs automatically when a TSANet Case record is created.

The flow:

* Creates a corresponding Salesforce Case record
* Updates the TSANet case with the linked Salesforce case information
* Invokes a subflow to accept the TSANet collaboration request
* Sends a notification after successful processing

This automation handles the acceptance and processing of incoming TSANet collaboration requests.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F2FvVk8cRI2xfXrJVp7Rw%2F2026-02-22%2020_11_11-TSANet%20Collaboration%20Request%20Trigger%20Handler-%20V3.png?alt=media&amp;token=612a155b-e517-41e9-aa13-cb243de0c939" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Inbound: Collaboration Request Trigger Handler (Asset)</strong></summary>

This is a **record‑triggered Salesforce Flow** that runs automatically when a TSANet Case record is created.

The flow:

* Retrieves the related asset record
* Evaluates whether a matching asset is found
* If no asset is found, triggers an automation to reject the collaboration request
* If an asset is found, creates a Salesforce case, updates the TSANet case, triggers the accept automation, and sends a notification

This automation handles the evaluation and processing of incoming TSANet collaboration requests based on asset availability.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FD8DK9ffuHA4Ed4A9kpDX%2F2026-02-22%2020_12_27-TSANet%20Collaboration%20Request%20Trigger%20Handler%20(%20Asset%20Flow%20)-%20V5.png?alt=media&amp;token=7d966a5f-a2e6-4935-bbf3-a3c995df0825" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Inbound: Find Parent Case (Template)</strong></summary>

This is a **record-triggered Salesforce Flow** that automates the identification and linking of related parent cases for TSANet inbound and outbound scenarios.

The flow is triggered when a **TSANet Case record is created** and runs **before the record is saved**, so the matched case is stamped on the record without an extra update.

The flow:

* Evaluates the **case direction (Inbound or Outbound)** using a decision element
* Retrieves related **Salesforce Case records** based on the submitter or receiver case number
* Performs **matching logic** to determine whether a corresponding parent case is found
* Executes an **assignment** to stamp and populate data from the matched parent case
* Applies the logic separately for **Submitter (Outbound)** and **Receiver (Inbound)** flows

This automation ensures that TSANet cases are properly linked to their corresponding parent cases, improving data consistency and enabling accurate tracking across inbound and outbound collaboration scenarios.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2Fy0uPVGuNGcpk4Abc6VA2%2F2026-06-14%2009_09_22-TSANet_%20Inbound_%20Find%20Parent%20Case%20(%20Template%20)-%20V1.png?alt=media&amp;token=cf8c3d19-a342-443d-93fb-0ae9a982357d" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Inbound: Note Notification</strong></summary>

This is a **record-triggered Salesforce Flow** that automates the process of sending notifications when a new TSANet note arrives.

The flow is triggered when a **TSANet Note record is created or updated** and the note has not been notified yet. It also runs on update because notes synced by refresh or webhook are saved as updates.

The flow:

* Evaluates whether the note is a **new note** (created today) using a decision element
* Retrieves the related **TSANet Case record** associated with the note
* Invokes a **subflow** to send a notification based on the note and case details
* Updates the TSANet Note record to mark it as **notified**, preventing duplicate notifications

This automation ensures that notifications for newly created TSANet notes are handled consistently and efficiently, improving communication and reducing manual effort.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FRg7E5mGsLc4YABDzF5hl%2F2026-05-10%2016_20_53-TSANet_%20Inbound_%20Note%20Notification-%20V1.png?alt=media&amp;token=7b321ba1-f285-4420-9cbd-a1bf05bcbb43" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Inbound: Note Trigger Handler</strong></summary>

This is a **record‑triggered Salesforce Flow** that runs automatically when a TSANet Note record is created.

The flow:

* Evaluates the newly created TSANet Note
* Updates the related TSANet case if required
* Assigns note details for processing
* Retrieves the associated TSANet case record
* Executes an Apex action to create and sync the TSANet note

This automation handles the processing of newly created TSANet notes and ensures they are correctly linked to related cases.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F4l5WLv1YoAcqRE29AJA3%2F2026-02-22%2020_15_34-TSANet%20Note%20Trigger%20Handler-%20V1.png?alt=media&amp;token=9478f6b8-3e77-4fc1-9ec7-b902abdc955b" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Inbound: Reject Collaboration Request (Automation)</strong></summary>

This is an **autolaunched Salesforce Flow** that automates the process of rejecting a TSANet collaboration request.

The flow:

* Retrieves the related TSANet case record
* Invokes a subflow to gather the rejection collaboration request details
* Executes an Apex action to process and submit the TSANet rejection

This automation handles the rejection of TSANet collaboration requests in a consistent and automated manner.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2Fg2qNnFBHg1TYf4TkEbQS%2F2026-02-22%2020_17_49-TSANet%20Reject%20(%20Automation%20)-%20V4.png?alt=media&amp;token=a8b22311-cedd-444f-ae8f-ceae115f1fe7" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Inbound: Reject Collaboration Request (Screen Flow)</strong></summary>

This is a **screen‑based Salesforce Flow** that allows users to reject a TSANet collaboration request through a guided interface.

The flow:

* Displays a screen to capture the rejection reason
* Invokes a subflow to submit the rejection request
* Evaluates the result of the operation
* Displays an error screen if the rejection fails

This automation handles the rejection of TSANet collaboration requests through a user‑driven, guided flow.

**Status after installation:** Inactive. Activate it in Setup → Flows before you use it.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FoFfQbrfzCYLl8QFjCEAu%2F2026-02-22%2020_02_01-TSANet%20-%20Reject%20(%20Screen%20Flow%20)-%20V4.png?alt=media&amp;token=769ab17b-8d09-4561-9c8b-9db71d0f4688" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Inbound: Request More Information (Trigger)</strong></summary>

This is a **record-triggered Salesforce Flow** that automates the process of requesting additional information for a newly created TSANet case.

The flow is triggered when a **TSANet Case record is created** and runs immediately after creation.

The flow:

* Retrieves and evaluates the newly created TSANet Case record based on defined entry conditions
* Invokes a **subflow** to load and prepare the Request Information form
* Executes an **Apex action** to send or process the request for additional information

This automation ensures that requests for more information on TSANet cases are handled consistently, efficiently, and without manual intervention, improving data completeness and reducing processing delays.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2Fvr467pl2LTsDhc1MEOoR%2F2026-04-06%2018_03_15-TSANet%20Request%20More%20Information%20Flow-%20V1.png?alt=media&amp;token=bea9ecb3-0278-4204-867c-9cc50306c120" alt=""><figcaption></figcaption></figure>

</details>

**Outbound Flows:** These flows are used in the outbound process

<details>

<summary><strong>TSANet: Outbound: Create Collaboration Case</strong></summary>

This is a **screen Salesforce Flow** that guides users through the process of creating a TSANet collaboration case and automates related data preparation and submission.

The flow is initiated manually by the user and provides a step-by-step interface to gather and process the required information.

The flow:

* Retrieves the **Salesforce Case record** to establish the context for the collaboration
* Presents **interactive screens** to capture TSANet details and allow the user to search and select a partner company
* Executes **Apex actions** to search for companies and retrieve relevant customer data
* Uses **assignments and loops** to process and map the selected company and customer data into the required format
* Displays a **collaboration form** for the user to review and complete additional details
* Performs **field assignments** and presents a **verification screen** for final confirmation
* Executes an **Apex action** to create the collaboration case in TSANet
* Displays a **result screen** confirming the creation of the collaboration case

This automation streamlines the creation of TSANet collaboration cases by guiding users through a structured process, ensuring data accuracy, and reducing manual effort.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FtND8tPmYBYHciUt0LhNE%2F2026-05-10%2016_37_46-TSANet_%20Outbound_%20Create%20Collaboration%20Case-%20V1.png?alt=media&amp;token=792ad73d-e635-4aca-83ac-7414c85191c0" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Outbound: Create Collaboration Case (LWC)</strong></summary>

This is a **screen Salesforce Flow** that provides a user interface for creating a TSANet collaboration case using a Lightning Web Component.

The flow is initiated manually by the user and guides the process through a structured interface.

The flow:

* Retrieves the related **Salesforce Case record** to establish the context
* Displays a **screen (CreateTSANetScreen)** leveraging a Lightning Web Component to capture and present collaboration details
* Allows users to review and input the required information before submitting the request

This automation provides a streamlined and user-friendly interface for creating TSANet collaboration cases, ensuring accurate data entry and improving the overall user experience.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FLEeRw55xitnm2vubPqXY%2F2026-06-14%2010_09_19-TSANet_%20Outbound_%20Create%20Collaboration%20Case%20(LWC)-%20V1.png?alt=media&amp;token=898c9f2f-76e0-4f32-8b5f-8d6971d0af68" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Outbound: Create Note (Screen Flow)</strong></summary>

This is a **screen‑based Salesforce Flow** that allows users to create a TSANet note for a specific case through a guided interface.

The flow:

* Retrieves the related TSANet case record
* Displays a screen to capture note details
* Invokes an automation subflow to create the note
* Evaluates the result with a decision element
* Displays an error screen if the note creation fails

This automation handles the creation of TSANet notes for cases through a user‑driven, guided flow.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FkyhJROVz0XBAYBEijvQk%2F2026-02-22%2019_58_27-TSANet%20-%20Create%20Note%20(%20Screen%20Flow%20)-%20V1.png?alt=media&amp;token=0cd81226-d6af-4fda-9b26-efd961ac447b" alt=""><figcaption></figcaption></figure>

</details>

**Other Flows:** These flows are common to both inbound and outbound process

<details>

<summary><strong>TSANet: Case Link Change Sync</strong></summary>

This is a **record-triggered Salesforce Flow** that automates synchronization when a TSANet Case record is updated.

The flow is triggered when a **TSANet Case record is updated** and runs immediately after the update, based on defined entry conditions.

The flow:

* Monitors updates to the **TSANet Case record**, including changes to key fields such as case links
* Evaluates the defined **trigger conditions** to determine if synchronization is required
* Executes an **Apex action (Notify TSANet)** to propagate the update and synchronize data with TSANet

This automation ensures that changes to TSANet case links are consistently communicated and synchronized, reducing manual intervention and maintaining data alignment between systems.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FvYYVkpBHHe71uHxO44t7%2F2026-06-14%2008_28_10-TSANet_%20Case%20Link%20Change%20Sync-%20V1.png?alt=media&amp;token=7da213f5-13ca-4a05-bb7c-356013212e29" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Case Owner Change Handler</strong></summary>

This is a **record-triggered Salesforce Flow** that automates the handling of TSANet-related updates when a Case owner is changed.

The flow is triggered when a **Case record is updated** and runs immediately after the update, based on defined entry conditions.

The flow:

* Retrieves related **TSANet Case records** associated with the updated Case
* Iterates through the retrieved records using a **loop** to process each TSANet Case individually
* Evaluates whether each record meets the criteria to trigger a notification using a **decision element**
* Executes an **Apex action (Change TSANet Owner)** for records that meet the criteria to update the owner in TSANet
* Skips records that do not meet the conditions and continues processing the remaining records

This automation ensures that ownership changes on Cases are consistently propagated to TSANet, maintaining alignment between systems and reducing manual updates.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2Fone5u1XOwTie1cVT5noG%2F2026-06-14%2008_33_17-TSANet_%20Case%20Owner%20Change%20Handler-%20V1.png?alt=media&amp;token=0471ec4b-0216-444b-8396-40bfffa415af" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Close Collaboration Request (Automation)</strong></summary>

This is an **autolaunched Salesforce Flow** that automates the process of closing a TSANet collaboration request.

The flow is triggered programmatically and runs without user interaction.

The flow:

* Retrieves the related **TSANet Case record** to identify the collaboration request
* Executes an **Apex action (Close Collaboration Request)** to close the request in TSANet

This automation ensures that collaboration requests are closed in a consistent and automated manner, reducing manual effort and maintaining synchronization between Salesforce and TSANet.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FzSEDokMYyPmPkw0MG91C%2F2026-06-14%2008_44_24-TSANet_%20Close%20Collaboration%20Request%20(Automation)-%20V1.png?alt=media&amp;token=83200fa0-57f9-454a-bc58-16f87674325d" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Close Collaboration Request (Screen Flow)</strong></summary>

This is a **screen‑based Salesforce Flow** that allows users to close a TSANet collaboration request through a guided interface.

The flow:

* Displays a verification screen to confirm the close action
* Invokes an automation subflow to close the TSANet collaboration request
* Evaluates the result of the operation
* Displays an error screen if the close operation fails

This automation handles the closure of TSANet collaboration requests through a user‑driven, guided flow.

**Status after installation:** Inactive. Activate it in Setup → Flows before you use it.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F7C5kVpAfDpw5k97uxwBV%2F2026-02-22%2019_52_58-TSANet%20-%20Close%20(%20Screen%20Flow%20)-%20V3.png?alt=media&amp;token=8dcb0972-5a1c-441d-9022-4c827d5b6c88" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Create Note (Automation)</strong></summary>

This is an **autolaunched Salesforce Flow** that automates the creation of a TSANet note for a specific case.

The flow:

* Retrieves the related TSANet case record
* Invokes a subflow to load the note creation form
* Executes an Apex action to create the TSANet note

This automation handles the creation of TSANet notes and ensures they are associated with the correct cases.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FH2BViDkJ6WtnD1Bxw5wz%2F2026-02-22%2020_13_26-TSANet%20Create%20Note%20(%20Automation%20)-%20V2.png?alt=media&amp;token=b95ed886-6769-40e3-817c-677c96b71827" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Get Approve Collaboration Request Form</strong></summary>

This is an **autolaunched Salesforce Flow** that automates the preparation of the approval form for a TSANet collaboration request.

The flow is triggered programmatically and runs without user interaction.

The flow:

* Retrieves the related **Salesforce Case record** to gather the necessary data for the approval process
* Performs an **assignment** to generate and structure the TSANet approval form data

This automation standardizes the preparation of approval forms for TSANet collaboration requests, ensuring consistency and reducing manual effort in the approval process.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F3MrIiiO78oC0pVwTx8BM%2F2026-05-10%2017_09_29-TSANet_%20Get%20Approve%20Collaboration%20Request%20Form-%20V1.png?alt=media&amp;token=673142c2-fc9c-4101-9052-db6aeb2ddc29" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Get Note Form</strong></summary>

This is an **autolaunched Salesforce Flow** that automates the preparation of a TSANet note form based on an existing case.

The flow is triggered programmatically and runs without user interaction.

The flow:

* Performs an **assignment** to construct and populate the TSANet note form

This automation standardizes the creation of TSANet note forms, ensuring consistency and reducing manual effort when preparing note-related data.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FgcNSmkgW4TNiS6yisUbw%2F2026-05-10%2017_11_55-TSANet_%20Get%20Note%20Form-%20V1.png?alt=media&amp;token=1cb3ddc5-6820-4fd1-a8a4-d6715f3b251e" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Get Reject Collaboration Request Form</strong></summary>

This is an **autolaunched Salesforce Flow** that automates the preparation of a rejection form for a TSANet collaboration request.

The flow is triggered programmatically and runs without user interaction.

The flow:

* Retrieves the related **Salesforce Case record** to gather the required data for the rejection process
* Performs an **assignment** to create and structure the TSANet reject form

This automation ensures that rejection forms for collaboration requests are generated in a consistent and standardized manner, reducing manual effort and supporting a streamlined rejection process.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2Fxl58Fpq1vLmigfTtgbIV%2F2026-05-10%2017_15_00-TSANet_%20Get%20Reject%20Collaboration%20Request%20Form-%20V1.png?alt=media&amp;token=2f5f9f27-f228-426c-81c5-2f699d0934d4" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Get Request Information Form</strong></summary>

This is an **autolaunched Salesforce Flow** that automates the preparation of a request information form for a TSANet case.

The flow is triggered programmatically and runs without user interaction.

The flow:

* Performs an **assignment** to populate and structure the Request Information form data

This automation standardizes the preparation of request information forms, ensuring consistency and reducing manual effort when requesting additional information for TSANet cases.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F9yfpIoiwQ13WBQXRV71Q%2F2026-06-14%2008_50_03-TSANet_%20Get%20Request%20Information%20Form-%20V1.png?alt=media&amp;token=89349947-3acd-4528-9bb3-00864c284e20" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: New Collaboration Case Notification</strong></summary>

This is a **record-triggered Salesforce Flow** that automates the notification process when a new TSANet collaboration case is created.

The flow is triggered when a **TSANet Case record is created** and runs immediately after creation.

The flow:

* Monitors newly created **TSANet Case records** based on defined entry conditions
* Invokes a **subflow (Send Notification)** to trigger the appropriate notification process
* Ensures the notification is sent without requiring user interaction

This automation ensures that stakeholders are promptly notified about new collaboration cases, improving communication and reducing manual effort.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FeTMRVlZPFZ8XshMH1Xz4%2F2026-06-14%2010_05_57-TSANet_%20New%20Collaboration%20Case%20Notification-%20V1.png?alt=media&amp;token=81572dea-e041-47d1-aeec-aaada835715a" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Refresh Collaboration Requests</strong></summary>

This is a **screen‑based Salesforce Flow** that allows users to manually refresh TSANet collaboration requests.

The flow:

* Executes an Apex action to refresh TSANet case data
* Evaluates the result of the refresh operation
* Displays a success or error message to the user based on the outcome

This automation handles the refresh and validation of TSANet collaboration requests and provides feedback on the operation result.

**Status after installation:** Inactive. Activate it in Setup → Flows before you use it.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FyHWRRHvmOAZiMkKrK8r9%2F2026-02-22%2020_16_33-TSANet%20Refresh%20Collaboration%20Requests-%20V1.png?alt=media&amp;token=0f7cc457-d77b-4215-897c-c8b34fb577bf" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Request Information (Automation)</strong></summary>

This is an **autolaunched Salesforce Flow** that automates the process of requesting additional information for a TSANet case.

The flow:

* Retrieves the related TSANet case record
* Invokes a subflow to load the request information form
* Executes an Apex action to process the information request

This automation handles the process of requesting additional information for TSANet cases in a consistent and automated manner.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F0bULGSfdtaRytXWSj4AT%2F2026-02-22%2020_18_50-TSANet%20Request%20Info%20(%20Automation%20)-%20V3.png?alt=media&amp;token=5da822b7-fa39-49b1-b4db-7846629f0c22" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Request Information (Screen Flow)</strong></summary>

This is a **screen‑based Salesforce Flow** that allows users to request information for a specific TSANet case through a guided interface.

The flow:

* Retrieves the related TSANet case record
* Displays a screen to capture the information request details
* Invokes a subflow to prepare the request information form
* Executes an Apex action to submit the information request
* Evaluates the result and displays an error screen if the request fails

This automation handles the submission of information requests for TSANet cases through a user‑driven, guided flow.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FK7MkwOv7qOa7iAVrGWg4%2F2026-02-22%2020_03_26-TSANet%20-%20Request%20Information%20(%20Screen%20Flow%20)-%20V1.png?alt=media&amp;token=5ca7d884-dde5-4554-839e-140dd686bc9d" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Request More Information (Screen Flow)</strong></summary>

This is a **screen‑based Salesforce Flow** that allows users to request additional information for a TSANet case through a guided interface.

The flow:

* Displays a screen to capture the information request details
* Invokes an automation subflow to submit the request
* Evaluates the result of the operation
* Displays an error screen if the request fails

This automation handles the requesting of additional information for TSANet cases through a user‑driven, guided flow.

**Status after installation:** Inactive. Activate it in Setup → Flows before you use it.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FvpVbwGVSIfE0KIScIvwz%2F2026-02-22%2020_04_32-TSANet%20-%20Request%20More%20Information%20(%20Screen%20Flow%20)-%20V1.png?alt=media&amp;token=f4d66794-e34b-4470-99c0-0139f52c6669" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Send Information (Automation)</strong></summary>

This is an **autolaunched Salesforce Flow** that automates the process of sending requested information for a TSANet case.

The flow:

* Retrieves the related TSANet case record
* Invokes a subflow to load the request information form
* Executes an Apex action to send the requested information

This automation handles the sending of requested information for TSANet cases in a consistent and automated manner.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FqnRU7vc4994z7H7wXWSA%2F2026-02-22%2020_20_04-TSANet%20Send%20Info%20(%20Automation%20)-%20V2.png?alt=media&amp;token=ec3d1eb9-f9e2-488f-80d9-a61c301bbd1e" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Send Information (Screen Flow)</strong></summary>

This is a **screen‑based Salesforce Flow** that allows users to send requested information for a TSANet case through a guided interface.

The flow:

* Displays a screen to capture the requested information
* Invokes an automation subflow to send the entered information
* Evaluates the result of the operation
* Displays an error message if the submission fails

This automation handles the sending of requested information for TSANet cases through a user‑driven, guided flow.

**Status after installation:** Inactive. Activate it in Setup → Flows before you use it.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FOjre0SLHMiwqRHYZUYsn%2F2026-02-22%2020_05_32-TSANet%20-%20Send%20Information%20(%20Screen%20Flow%20)-%20V2.png?alt=media&amp;token=355a978a-2737-4cb8-a2a1-58149045887d" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet: Send Notification (Subflow)</strong></summary>

This is an **autolaunched Salesforce Flow** designed to standardize and automate the notification process for TSANet-related events.

The flow is invoked as a **subflow from other flows** and runs without user interaction.

The flow:

* Retrieves the related **Salesforce Case record** to establish context for the notification
* Retrieves the **notification type configuration** to determine how and to whom the notification should be sent
* Performs an **assignment** to compile and structure the list of notification recipients
* Executes an **action** to send the notification based on the prepared data

This subflow centralizes notification logic, ensuring consistent communication across TSANet processes while reducing duplication and simplifying maintenance.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FnkCHIG6AB3eyzcipcHWU%2F2026-05-10%2017_32_09-TSANet_%20Send%20Notification%20(Subflow)-%20V1.png?alt=media&amp;token=5f3a4666-e008-41b8-84de-d724642e80ab" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><strong>TSANet Collaboration Request Trigger Handler (Custom)</strong></summary>

This flow automates the handling of Inbound TSANet Collaboration Requests in Salesforce. When a new TSANet Case record is created, the flow:

* Retrieves related Asset and Contact records
* Creates a Salesforce Case
* Updates the Collaboration Request with the Case ID
* Assigns variables for TSANet processing
* Approves the collaboration request via Apex
* Sends a custom notification to the case owner

**Flow Details:**

* **Flow Label:** TSANet Collaboration Request Trigger Handler (Custom)
* **Flow Type:** Record-Triggered After Save
* **Trigger Object:** TSANet Case
* **Trigger Condition:** A record is created
* **Activation Status:** Activated

### Step-by-Step Configuration

#### Step 1: Configure Start

**Object:** TSANet Case

**Trigger:** A record is created

**Conditions:**

* Case is Null = True
* Direction = Inbound
* Serial Number is Null = False

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FHj5XKPsRt7ZpWRP266sW%2F2025-11-07%2016_31_10-TSANet%20Collaboration%20Request%20Trigger%20Handler%20(%20Custom%20)%20-%20V6.png?alt=media&amp;token=924ce242-f76e-451e-875f-1be13df18137" alt=""><figcaption></figcaption></figure>

#### Step 2: Get Asset by Serial Number

**Object:** Asset

**Filter:**

Serial Number = TSANet Case → Serial Number

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FsdVVGKFglIRoQEUZUrdO%2F2025-11-07%2016_31_32-TSANet%20Collaboration%20Request%20Trigger%20Handler%20(%20Custom%20)%20-%20V6.png?alt=media&amp;token=4f832fde-c3cb-4b23-9fe2-da64ca8c5401" alt=""><figcaption></figcaption></figure>

#### Step 3: Decision – Asset Record Found

**Outcome:**

Asset Found if Asset record exists

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FMfG7QPj9wbyaVV04U9J2%2F2025-11-07%2016_31_55-TSANet%20Collaboration%20Request%20Trigger%20Handler%20(%20Custom%20)%20-%20V6.png?alt=media&amp;token=aa340dbe-97f2-466b-86b8-bd1a885749b0" alt=""><figcaption></figcaption></figure>

#### Step 4: Get Contact

**Object:** Contact

**Filter:**

* Email = TSANet Case → Customer Email

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FLULOVedYYbu1R4Y8k690%2F2025-11-07%2016_32_26-TSANet%20Collaboration%20Request%20Trigger%20Handler%20(%20Custom%20)%20-%20V6.png?alt=media&amp;token=9043add3-cd1c-4fe1-b3cb-962aef0dd012" alt=""><figcaption></figcaption></figure>

#### Step 5: Decision – Is Contact Found

**Outcome:**

* Contact Found if Contact record exists

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FGnQPywynBeekGQ6wYSCu%2F2025-11-07%2016_32_56-TSANet%20Collaboration%20Request%20Trigger%20Handler%20(%20Custom%20)%20-%20V6.png?alt=media&amp;token=5cff68a8-0da6-4b5c-8ff3-04025eefc534" alt=""><figcaption></figcaption></figure>

#### Step 6: Create Salesforce Case Record

**Object:** Case

**Fields Mapped:**

* Asset ID → Asset record
* Contact ID → Contact record
* Description → TSANet Case Description
* Case Origin → Web
* Priority → CasePriority
* Subject → TSANet Case Summary
* Case Type → Other

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FNqbh6fL0ZPMrCIpVZ2Ye%2F2025-11-07%2016_33_37-TSANet%20Collaboration%20Request%20Trigger%20Handler%20(%20Custom%20)%20-%20V6.png?alt=media&amp;token=62e2bc10-82bc-473e-9f5c-245c59c23bcc" alt=""><figcaption></figcaption></figure>

#### Step 7: Update Collaboration Request

Attach Case ID to TSANet Case record

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FC6jCpqELzV9jBHH3TWmg%2F2025-11-07%2016_34_08-TSANet%20Collaboration%20Request%20Trigger%20Handler%20(%20Custom%20)%20-%20V6.png?alt=media&amp;token=d6ba4491-55b8-4d59-9c64-890cc6f5d19c" alt=""><figcaption></figcaption></figure>

#### Step 8: Get Salesforce Case

Retrieve Case details for variable assignment

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F1XeHC5iwzZQm9vpqxgSl%2F2025-11-07%2016_34_37-TSANet%20Collaboration%20Request%20Trigger%20Handler%20(%20Custom%20)%20-%20V6.png?alt=media&amp;token=109a12f9-43f3-4f1f-9f46-e9fccf9681a5" alt=""><figcaption></figcaption></figure>

#### Step 9: Assignment – TSANetCaseRequest

**Assign variables:**

* caseNumber
* engineerEmail
* engineerName
* engineerPhone
* nextSteps

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FnoereNuUASSxl6INHkRU%2F2025-11-07%2016_35_05-TSANet%20Collaboration%20Request%20Trigger%20Handler%20(%20Custom%20)%20-%20V6.png?alt=media&amp;token=89022553-9021-477d-a7fd-aaf134b6b64b" alt=""><figcaption></figcaption></figure>

#### Step 10: Apex Action – Approve Incoming Collaboration Request

**Inputs:**

* caseRecord = TSANet Case
* request = TSANetCaseRequest

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FsvenPeFV2ldpK71sPbS1%2F2025-11-07%2016_35_25-TSANet%20Collaboration%20Request%20Trigger%20Handler%20(%20Custom%20)%20-%20V6.png?alt=media&amp;token=48b66b2e-f87e-4bab-b8d1-c2de7751d49f" alt=""><figcaption></figcaption></figure>

#### Step 11: Get Notification Type

**Object:** Custom Notification Type

**Filter:**

* Name = TSANet\_Notification

#### Step 12: Assignment – Add Recipient

* Add Case Owner User ID to `recipientIds` variable

#### Step 13: Send Custom Notification

* **Notification Title:** TSANetCase Confirmed Successfully
* **Notification Body:** Your case has been successfully confirmed
* **Recipient IDs:** recipientIds
* **Target ID:** TSANet Case Record ID

### Flow Diagram

```
Start 
→ Get Asset 
→ Decision (Asset Found?) 
→ Get Contact 
→ Decision (Contact Found?) 
→ Create Case 
→ Update TSANet Case 
→ Get Case 
→ Assignment 
→ Apex Action 
→ Get Notification Type 
→ Assignment (Recipient) 
→ Send Notification 
→ End
```

### Notes

* Ensure Apex class `ApproveIncomingCollaborationRequest` is deployed
* Custom Notification Type `TSANet_Notification` must exist

### References

Video Tutorial

</details>

### Package Overview

<details>

<summary><strong>Package Objects, related lists to objects</strong></summary>

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2F95BjBJB2l1GVcuFQzGTQ%2Fimage.png?alt=media&amp;token=baa0bdca-0ce0-4d2e-99aa-c0890d4359b2" alt=""><figcaption></figcaption></figure>

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

**Key attributes may include:**

* TSANet CaseID
* Case (lookup field)
* Status \[ACCEPTED, OPEN, INFORMATION, CLOSED, REJECTED]
* Type \[INBOUND, OUTBOUND]
* Priority \[LOW, MEDIUM, HIGH]
* Priority Note
* Summary
* Description
* Request Date
* Response SLA (Datetime)
* Token (ExternalID)

**Member Information:**

* Company Name (Submitted)
* Name
* Email
* Phone
* Company Name (Received)
* Engineer Name
* Engineer Email
* Engineer Phone
* **Key attributes may include:**

  * TSANet CaseID
  * Case (lookup field)
  * Status \[ACCEPTED, OPEN, INFORMATION, CLOSED, REJECTED]
  * Type \[INBOUND, OUTBOUND]
  * Priority \[LOW, MEDIUM, HIGH]
  * Priority Note
  * Summary
  * Description
  * Request Date
  * Response SLA (Datetime)
  * Token (ExternalID)

  **Member Information:**

  * Company Name (Submitted)
  * Name
  * Email
  * Phone
  * Company Name (Received)
  * Engineer Name
  * Engineer Email
  * Engineer Phone
  * Other Information (custom fields)
* **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

  **Key attributes include:**

  * TSANet Case (lookup)
  * Summary
  * Description
  * Creator Name
  * Status
  * Priority \[LOW, MEDIUM, HIGH]
  * Type \[Public, Partner, System, Escalation, Status] (added in package 2.14; see **User Guide → Create Note**)
  * Created At
  * Token (ExternalID)
* **TSANet Response** - object captures formal replies or actions taken with an inbound TSANet Case.

  **Key attributes include:**

  * TSANet Response ID (ExternalID)
  * TSANet Case (lookup)
  * Type
  * Note
  * Created At
  * Engineer Email
  * Engineer Phone
* **TSANet Credentials** - object stores and manages secure access information within the TSANet framework. This object ensures member organizations have the necessary authentication details for collaborative support.

  *\* you can have only one credential marked as primary.*

  **Key attributes may include:**

  * Named Credential (the packaged endpoint, for example `TSANetAPI`)
  * Integration User
  * Is Primary (mark as true)
  * Is Connected (set by the package after a successful callout)

**Add a Related List to an Object:**

Many of the Workforce Engagement features rely on related lists to associate information. During your initial configuration, you may need to add related lists to objects.

**To add a related list to an object:**

1. Open **Setup** | **Object Manager** | **{select the object}** | **Page Layouts** | **{object name} Layout**.
2. Select **Related Lists** from the {object name} Layout menu at the top of the page.
3. Drag and drop a related list into the related lists section of the page. Repeat this step for each related list that you want to add.
4. Save your changes.

<figure><img src="https://160382229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFnKqXLEByXxXehD4FNIm%2Fuploads%2FhxtePJmn5kBrMu1llMXf%2Fimage_720.png?alt=media&amp;token=cf559801-034b-4112-95e6-1e502ef8300e" alt=""><figcaption></figcaption></figure>

</details>
