# Technical Guide

## Configurations <a href="#configurations" id="configurations"></a>

### **settings**

Include in the [**settings**](/bluefletch-enterprise/product-guides/bluefletch-launcher/launcher3/technical-guide.md#settings) object in the [Launcher Configuration](/bluefletch-enterprise/product-guides/bluefletch-launcher/launcher3/technical-guide.md) file:

| Field              | Value                                                                                                                                                           |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| useSiteInfoService | **boolean** Set to `true`.                                                                                                                                      |
| defaultLocation    | **string** Set a placeholder string. This will display if a site location is not found automatically, allowing the user to manually override and select a site. |

### **emsSupportTool**

Include in the [**emsSupportTool**](/bluefletch-enterprise/product-guides/support-application/technical-guide.md) object in the Launcher Configuration file:

| Field | Value                                                                                                                                                                                              |
| ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| orgId | **string** Set to the company's organization ID, as displayed on the BlueFletch Portal ***Admin - Organization*** page [here](/bluefletch-enterprise/product-guides/portal/admin/organization.md). |

### **bfChat**

Include in the [**bfChat**](/bluefletch-enterprise/product-guides/bluefletch-launcher/launcher3/technical-guide.md) object in the Launcher Configuration file:

<table><thead><tr><th width="280">Field</th><th>Value</th></tr></thead><tbody><tr><td>apiKey</td><td><strong>string</strong> Set to the organization's API key. The API key can be found in the BlueFletch Portal; it is <a href="/pages/0IPN2RgzDQkN7gChwL31">actively managed</a> on the <em><strong>Admin - API Keys</strong></em> page or <a href="https://ems.bluefletch.com/admin/security">displayed statically</a> in <strong>Manage Organization</strong> settings on the <em><strong>Organization</strong></em> page.</td></tr><tr><td>autoPlayAudio</td><td><strong>boolean</strong> If <code>true</code>, audio recordings will automatically play when received and will be stored for playback in the Chat conversation. If <code>false</code>, audio recordings will only be available through playback in the Chat conversation.</td></tr><tr><td>allowAttachments</td><td><strong>boolean</strong> If <code>true</code>, sending attachments in Chat is enabled. If <code>false</code>, the attachment button will be disabled in Chat, preventing the user from sending attachments.</td></tr><tr><td>callTimeout</td><td><strong>integer</strong> The number of seconds a voice/video call will be allowed to ring before the call is ended. Default is 20.</td></tr><tr><td>notificationSoundIndividual</td><td><strong>string</strong> Used this to override the default notification sound for chat messages received by individuals. Either a file reference or Launcher asset.  Introduced in Chat release 2.0.17.</td></tr><tr><td>notificationSoundGroup</td><td><strong>string</strong> Used this to override the default notification sound for chat messages received by groups. Either a file reference or Launcher asset.  Introduced in Chat release 2.0.17.</td></tr><tr><td>voiceMessageLimitInSeconds</td><td><strong>integer</strong> Used to set the recording length for voice messages.  Default is 30 seconds. Introduced in Chat release 2.2.7.</td></tr><tr><td>disablePttUsageInBackground</td><td><strong>boolean</strong> When set to <code>true</code>, Chat will disable recording audio on PTT button-press <em>unless</em> the Chat application is in the foreground. Default is <code>false</code>, in which case the PTT button will record audio messages even if the Chat application is closed. Introduced in Chat release 2.2.7.</td></tr><tr><td>autoSendPttToDefaultChannel </td><td><strong>boolean</strong> When set to <code>true</code>, if a PTT audio message is recorded while Chat Application is not visible, and there is a default Channel name, the audio message will be sent to that default channel.  Default is <code>false</code>.  Introduced in Chat release 2.3.20.</td></tr><tr><td>defaultChannelName</td><td><strong>string</strong> Used in conjunction with <code>autoSendPttToDefaultChannel</code>; defines the default channel to send PTT Audio messages. Introduced in Chat release 2.3.20.</td></tr><tr><td>logLevel</td><td><strong>string</strong> The logging level for the Chat application.  Default is 'info'.  Introduced in Chat release 2.2.7.</td></tr><tr><td>dataHost</td><td><strong>string</strong> Host URL for getting the user contacts for a site.</td></tr><tr><td>chatHost</td><td><strong>string</strong> Host URL for the Messaging service that is used to publish messages to chat recipients.</td></tr><tr><td>fileHost</td><td><strong>string</strong> Host URL for File Upload  (such as images, voice recordings) to Google Cloud.</td></tr><tr><td>locationTrackingEnabled</td><td><strong>boolean</strong> Indicates that Chat Contact Location feature is enabled.  Default is <code>false</code>. Introduced in Chat release 2.6.5.</td></tr><tr><td>locationTrackingIntervalSeconds</td><td><strong>integer</strong> Indicates the number of seconds between location updates. Default is 2. Introduced in Chat release 2.6.5.</td></tr><tr><td>locationTrackingIntervalMeters</td><td><strong>integer</strong> Indicates the number of meters in location distance changes to mark a location change. Default is 5. Introduced in Chat release 2.6.5.</td></tr><tr><td>locationTrackingRequestTimeoutSeconds</td><td><strong>integer</strong> Indicates the number of seconds for location request timeouts. Default is 30. Introduced in Chat release 2.6.5.</td></tr><tr><td>allowHyperlinking</td><td><strong>boolean</strong> Indicates if URLS within messages display has hyperlinks and are clickable.  Will open URL in the device default browser.  Default is false.  Introduced in Chat release 2.7.21</td></tr></tbody></table>

### **login**

Include in the **login** array within [**intents**](/bluefletch-enterprise/product-guides/bluefletch-launcher/launcher3/technical-guide.md#intents) object in the Launcher Configuration file:

| Field      | Value                                                   |
| ---------- | ------------------------------------------------------- |
| action     | **string** Set to `"com.bluefletch.chat.ACTION_LOGIN"`. |
| package    | **string** Set to `"com.bluefletch.chat"`.              |
| flags      | **integer** Set to `1`.                                 |
| typeIntent | **string** Set to `"a"`.                                |

### **logout**

Include in the **logout** array within [**intents**](/bluefletch-enterprise/product-guides/bluefletch-launcher/launcher3/technical-guide.md#intents) object in the Launcher Configuration file:

| Field      | Value                                                    |
| ---------- | -------------------------------------------------------- |
| action     | **string** Set to `"com.bluefletch.chat.ACTION_LOGOUT"`. |
| package    | **string** Set to `"com.bluefletch.chat"`.               |
| flags      | **integer** Set to `1`.                                  |
| typeIntent | **string** Set to `"a"`.                                 |

#### Example Configuration <a href="#example-configuration" id="example-configuration"></a>

```json
{
    ...
    "settings": {
        "useSiteInfoService": true,
        ...
    },
    "emsSupportTool": {
        "orgId": "ORG ID HERE",
        ...
    },
    "bfChat": {
        "apiKey": "ORG API KEY HERE",
        "autoPlayAudio": true,
        "notificationSoundIndividual": "assets:exampleSound",
        "dataHost": "DATA HOST URL HERE",
        "chatHost": "CHAT HOST URL HERE",
        "fileHost": "FILE HOST URL HERE",
        "locationTrackingEnabled": false,
        "locationTrackingIntervalSeconds": 1,
        "locationTrackingIntervalMeters": 2,
        "locationTrackingRequestTimeoutSeconds": 60
        ...
    },
    "intents": {
        "login": [
            {
                "action": "com.bluefletch.chat.ACTION_LOGIN",
                "package": "com.bluefletch.chat",
                "flags": 1,
                "typeIntent": "a"
            }
        ],
        "logout": [
            {
                "action": "com.bluefletch.chat.ACTION_LOGOUT",
                "package": "com.bluefletch.chat",
                "flags": 1,
                "typeIntent": "a"
            }
        ]
    },
    ...
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bluefletch.com/bluefletch-enterprise/product-guides/chat/technical-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
