Installation guide

Important: Starting with version 23.2 (February 2023), it is no longer needed to configure an extension app in the Admin Portal.

Prerequisites

  1. A Desktop Integration Platform (DIP) is installed on your machine. The following platforms are supported:

    • Finsemble version 6.6.0 (recommended: 7.3.0+)

    • Glue42 version 3.15+

  2. Minimal Symphony pod version: SBE 20.14+

Configuration in the user settings

  • Select your desktop provider from the dropdown menu.

Desktop Integration Platform configuration

Symphony needs to be registered in the DIP App directory, so that it will be able to connect to the platform. This configuration step is specific to each platform.

Finsemble

Manually add an app entry into your finsemble app directory file (/public/configs/application/appd.json):

"symphony": {
            "appId": "symphony",
            "name": "symphony",
            "manifest": {
                "foreign": {
                    "components": {
                        "App Launcher": {
                            "launchableByUser": false
                        },
                        "Window Manager": {
                            "FSBLHeader": {
                                "hideClose": false,
                                "hideMaximize": false,
                                "hideMinimize": false
                            }
                        }
                    }
                },
                "component": {
                    "singleton": true,
                    "spawnOnStartup": false,
                    "preload": []
                },
                "interop": {
                    "selectConnect": [],
                    "autoConnect": true
                }
            },
            "manifestType": "finsemble",
            "version": "1",
            "description": "",
            "intents": [
                {
                    "name": "StartChat",
                    "displayName": "Start Chat",
                    "contexts": [
                        "fdc3.chat.initSettings"
                    ]
                },
                {
		    "name": "ViewMessages",
		    "displayName": "View Messages",
		    "contexts": [
		        "fdc3.searchCriteria"
		    ]
		},
		{
		    "name": "SendChatMessage",
		    "displayName": "Send Chat Message",
		    "contexts": [
		        "fdc3.chat.message"
		    ]
		},
		{
		    "name": "ViewChat",
		    "displayName": "View Chat",
		    "contexts": [
		        "fdc3.chat.room", "fdc3.contact", "fdc3.contactList"
		    ]
		}
            ],
            "icons": [
                {"src": "https://symphony.com/wp-content/uploads/2021/10/logo-symphony-icon.jpeg", "sizes": "200x200"}
            ]
        }

Glue42

Add a new symphony.json file into your app directory folder (Tick42\UserData\{GLUE_INSTANCE}\apps):

symphony.json
{
    "name": "symphony",
    "title": "symphony",
    "hidden": true,
    "details": {
        "autoInjectFdc3": {
            "enabled": true
        },
        "fdc3InitsGlue": true,
        "allowChannels": true
    },
    "intents": [
        {
            "name": "fdc3.ViewInstrument",
            "displayName": "View Instrument",
            "contexts": [
                "fdc3.instrument"
            ]
        },
        {
            "name": "fdc3.StartChat",
            "displayName": "Start Chart",
            "contexts": [
                "fdc3.chat.initSettings"
            ]
        },
        {
            "name": "fdc3.SendChatMessage",
            "displayName": "Send Chat Message",
            "contexts": [
                "fdc3.chat.message"
            ]
        },
        {
            "name": "fdc3.ViewMessages",
            "displayName": "View Messages",
            "contexts": [
                "fdc3.searchCriteria"
            ]
        },
        {
	    "name": "fdc3.ViewChat",
	    "displayName": "View Chat",
	    "contexts": [
	        "fdc3.chat.room", "fdc3.contact", "fdc3.contactList"
	    ]
	}
    ]
}

Troubleshooting guide

To check that it works:

Verify that the fdc3 connector is loaded.

Start the Desktop Integration Platform, then only start Symphony.

Hover over a cashtag. The View Instrument link should appear. If it appears, the connector to the DIP has been successfully loaded.

Verify that Symphony can send intents to desktop apps.

Make sure you have a desktop app that supports the ViewInstrument intent first.

Note: If you don't have one, you can add the FDC3 Workbench app, a developer tool available on Finos, to your app directory. The FDC3 Workbench allows you to dynamically listen to intents and raise intents very easily.

Then, hover over a cashtag in a chat, and click "ViewInstrument". If an app is listening to ViewInstrument intents, it should receive the cashtag as a fdc3.instrument context.

If this is not the case, please check that the Symphony app directory entry is properly configured.

Verify that a desktop app can send intents to Symphony.

To verify that Symphony can receive intents, we will attempt to raise a StartChat intent.

Note: If you don't have an app that sends a StartChat intent, you can add the FDC3 Workbench app, a developer tool available on Finos, to your app directory.

Send the StartChat intent using a sample context data (fdc3.chat.initSettings), such as the example provided here.

If Symphony displays a popup, Symphony correctly receives intents coming from desktop apps.

Configuration for ECP (Embedded Collaboration Platform)

Starting with version 23.2 (February 2023), you can use FDC3 APIs over ECP.

Please note that not all FDC3 APIs may be available in ECP Focus mode.

We recommend that the web app that will load ECP stays always on and loads ECP on start up. It may also be possible to configure your desktop platform so that if a user closes the web app hosting ECP, the web app will be hidden instead of getting closed, meaning ECP will stay on.

Last updated