Skip to content

robson-sanchez/App-Integrations-Salesforce

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Note that this project depends on internal Symphony infrastructure (repository.symphony.com), and therefore it can only be built by Symphony LLC employees/partners.

Salesforce WebHook Integration

The Salesforce WebHook Integration will allow you to receive notifications in Symphony when a Salesforce opportunity, account or an executive dashboard changes state.

How it works

Unlike JIRA and GitHub, Salesforce does not provide out-of-the-box Webhook support. As such, while in beta, Symphony provides directly to customers an unmanaged package consisting of an Apex trigger and configuration object to achieve this functionality. As a Salesforce administrator, you can configure the unmanaged packaged with the webhook URL generated by the Salesforce Application available in the Symphony Market. You’ll then start receiving notifications for opportunity updates. Symphony will later distribute this integration through a managed Salesforce package.

What formats and events it support and what it produces

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.

You can find more details about entities and the Symphony Message ML format here.

Salesforce WebHook Integration currently deals with one event. The data already comes in a Symphony MessageML format (as it is generated by our Apex applications) and the only post-processing that Integration Bridge does before resending the payload is to check if the users mentioned in the payload do have identifiable accounts on the target Symphony platform. If they do, a "mention" tag will be added to the payload. Next, we'll detail the supported events:

Opportunity Notification

  • Payload sent from Salesforce
<messageML>
  <entity type="com.symphony.integration.sfdc.event.opportunityNotification" version="1.0">
    <presentationML>
      Milton Quilzini updated Test Company Upsel - FEB08 - 2 (<a href="https://link.to.the.opportunity.at.salesforce/path/to/the/opportunity/at/salesforce"/>) to stage <b>5. Closed - Won</b>
    </presentationML>
    <attribute name="username" type="org.symphonyoss.string" value="test" />
    <entity type="com.symphony.integration.sfdc.opportunity" version="1.0">
      <attribute name="title" type="org.symphonyoss.string" value="Test Company Upsel - FEB08 - 2"/>
      <attribute name="link" type="com.symphony.uri" value="https://link.to.the.opportunity.at.salesforce/path/to/the/opportunity/at/salesforce"/>
      <attribute name="type" type="org.symphonyoss.string" value="Upsell"/>
      <attribute name="stage" type="org.symphonyoss.string" value="5. Closed - Won"/>
      <attribute name="closeDate" type="org.symphonyoss.time.rfc3339" value="2016-08-05T14:42:09.992Z"/>
      <entity name="arr" type="com.symphony.integration.sfdc.revenue" version="1.0">
        <attribute name="currency" type="org.symphonyoss.fin.ccy" value="USD"/>
        <attribute name="value" type="org.symphony.oss.number.double" value="288000.00"/>
      </entity>
      <entity name="owner" type="com.symphony.integration.sfdc.user" version="1.0">
        <attribute name="username" type="org.symphonyoss.string" value="mquilzini"/>
        <attribute name="displayName" type="org.symphonyoss.string" value="Milton Quilzini"/>
        <attribute name="emailAddress" type="org.symphonyoss.string" value="mquilzini@symphony.com"/>
      </entity>
    </entity>
    <entity type="com.symphony.integration.sfdc.account" version="1.0">
      <attribute name="name" type="org.symphonyoss.string" value="Test Company"/>
      <attribute name="link" type="com.symphony.uri" value="https://link.to.the.account.at.salesforce/path/to/the/account/at/salesforce"/>
      <attribute name="salesRegion" type="org.symphonyoss.string" value="Americas"/>
      <attribute name="renewalDate" type="org.symphonyoss.time.rfc3339" value="2016-08-05T14:42:09.992Z"/>
      <entity name="totalContractedArr" type="com.symphony.integration.sfdc.revenue" version="1.0">
        <attribute name="currency" type="org.symphonyoss.fin.ccy" value="USD"/>
        <attribute name="value" type="org.symphony.oss.number.double" value="288000.00"/>
      </entity>
      <entity name="owner" type="com.symphony.integration.sfdc.user" version="1.0">
        <attribute name="username" type="org.symphonyoss.string" value="mquilzini"/>
        <attribute name="displayName" type="org.symphonyoss.string" value="Milton Quilzini"/>
        <attribute name="emailAddress" type="org.symphonyoss.string" value="mquilzini@symphony.com"/>
      </entity>
    </entity>
    <entity name="author" type="com.symphony.integration.sfdc.user" version="1.0">
      <attribute name="username" type="org.symphonyoss.string" value="mquilzini"/>
      <attribute name="displayName" type="org.symphonyoss.string" value="Milton Quilzini"/>
      <attribute name="emailAddress" type="org.symphonyoss.string" value="mquilzini@symphony.com"/>
    </entity>
  </entity>
</messageML>
  • Notification on Symphony platform

Opportunity

Build instructions for the Java developer

What you’ll build

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.

What you’ll need

  • JDK 1.7
  • Maven 3.0.5+

Build with maven

Salesforce 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:

  1. Build the App-Integrations-Salesforce dependencies (so you have them in your Maven local repository):

App-Integrations-Commons

  1. Clone the source repository using Git: git clone git@github.com:symphonyoss/App-Integrations-Salesforce.git
  2. cd into App-Integrations-Salesforce
  3. Build using maven: mvn clean install

About

Salesforce Integration

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%