Note that this project depends on internal Symphony infrastructure (repository.symphony.com), and therefore it can only be built by Symphony LLC employees/partners.
The Universal Webhook Integration enables you to send messages directly from any service into a Symphony conversation of your choice - either a 1:1 IM with you, or a room that you are the owner of.
If you have a service that can be configured to send webhooks, all you have to do is point it to the URL you generate in the Universal Webhook Application available on Symphony Market, and setup your service to post webhook payloads to that URL, in messageML format.
Every integration will receive a message sent in a specific format (depending on the system it ingests) and will usually convert it into an "entity" before it reaches the Symphony platform. It will also, usually, identify the kind of message based on an "event" identifier, which varies based on the third-party system.
The Universal Webhook in the other hand does not support any special events, and it merely forwards the message received (if valid).
It deals with messages in the xml and x-www-form-urlencode formats.
-
If you chose
xml, you'll need to set the Content-Type toapplication/xmland submit the messageML payload in the message body. -
If you chose
x-www-form-urlencode, you'll need to set the Content-Type toapplication/x-www-form-urlencodedand submit the messageML payload in the "payload" form field.
All messages need to be compliant with the Symphony MessageML format presented here
<messageML>
This is an example of the sort of text that you can fit within the Universal Webhook Integration. Your service can post updates here!<br/>
<b>You can also bold me</b>: Or not.<br/>
<b>You can submit links as well: </b><a href="https://google.com" /><br/>
<i>You can make text render in italic font</i><br/>
Labels can also come through: <hash tag="label"/> and you can make tickers appear too: <cash tag="GOOG"/><br/>
You can directly mention people using email matching: <mention email="vincent@symphony.com"/><br/>
You can send lists too:<br/>
<ul><li>item1</li><li>item2</li></ul><br/>
You can even send tables:<br/>
<table><tr><td>header1</td><td>header2</td></tr><tr><td>info1</td><td>info2</td></tr><tr><td>info1</td><td>info2</td></tr><tr><td>info1</td><td>info2</td></tr></table>
</messageML>You’ll build an integration module to be used with the Integration Bridge.
If you develop a new integration, to get it up and running you'll also need to add it to the core project's web pom file.
- JDK 1.7
- Maven 3.0.5+
Universal WebHook Integration is compatible with Apache Maven 3.0.5 or above. If you don’t already have Maven installed you can follow the instructions at maven.apache.org.
To start from scratch, do the following:
- Build the App-Integrations-Universal dependencies (so you have them in your Maven local repository):
- Clone the source repository using Git:
git clone git@github.com:symphonyoss/App-Integrations-Universal.git - cd into App-Integrations-Universal
- Build using maven:
mvn clean install
