Giter VIP home page Giter VIP logo

totango-eloqua-connector's Introduction

Totango-Eloqua Connector

Totango-Eloqua is an open source connector that allows you to sync Totango engagement data into Eloqua so you can target marketing campaigns to specific types of user.

These are called Lifecycle Marketing Campaigns and you can read more about them on the Totango website. Example of such campaigns can target users that have been inactive for a long time, those that have (or have not) used a certain feature of your application, power users and so forth.

NOTE: The Totango-Eloqua Connector uses the following APIs:

  1. Totango REST API

  2. Eloqua SOAP API

Prerequisites

Before starting with the Totango-Eloqua connector, you will need:

  1. A Totango service up & running. Totango is already collecting engagement data from your web-application.

  2. An Eloqua service up & running. Eloqua lead database populated with your application users and the Totango Insights field added to Eloqua. Read the section “ Setting up Eloqua Totango Insights field” to complete this step.

  3. The totango-eloqua-connector jar file (this GIT project) downloaded and ready on a machine with a JVM and Axis2 installed. Read the section “Setting up the totango-eloqua-connector” below to complete this step.

How it works -- Creating a new campaign

Follow these steps to create a Lifecycle marketing campaign. The default settings of the eloqua-connector assumes a basic “We Miss You Campaign” targeted at inactive users. Read through this document to configure for your specific campaign needs.

Step-1: Define an Active-List to capture the behavior you want on Totango. (By default, the connector uses the “Inactive Accounts” to flag all users in accounts that have not used your application for the last two weeks). See Filters & Segments for more information.

Once you have your Active-List selected, take note of its name and ID. (see: http://www.totango.com/developer/data-api/reference/active_list-api/ to find your Active-Lists ID)

Step-2: Configure the connector with the Active-List ID Configure your Active-List ID in the connector configuration file under config.properties (look under the connector’s installation directory, under the config folder). Use the totangoActiveLists property to specify active-lists to sync into Eloqua. Provide the list ID and separate by commas if more than one.

For example, if the Active-list on Totango has an ID of 1004, add 1004 to the totangoAclistLists property:

totangoActiveLists=1004

Step3: Run the connector

Use the command below.

This will update the Totango Insight field in Eloqua’s lead database. Users from accounts matching the Active-list will have the name of the list appended into this field. We’ll later use that to setup the campaign in Eloqua.

NOTE: If you are running an ongoing campaign, you will need to schedule this command to run periodically using cron or your scheduler of choice. You should run the connector 60min before the campaign’s scheduled execution, just to ensure the sync. process has safely completed.

java -jar totango-eloqua-connector.jar config.properties

Output example:

Totango-Eloqua connector is running...

Connected to Eloqua

Reset the insigts field for all Eloqua contacts. It might take a few minutes

Connected to Totango

Updating based on 4 Active-List.This can take a few minutes

Finished successfully. Updated 7,842 contacts in Eloqua, based on 4 Active-Lists in Totango

Step-4: Create or run the Campaign in Eloqua. Add to your Eloqua campaign a decision that checks for the ‘active list name’ value inside the “Totango insights” field. In case of true add asset of suitable mail. Repeat this actions for all active lists.

Of course, once you have the campaign setup for the first time, you can just re-execute it.

You’re done!

Detailed Setup Instructions

See below for details on the one-time setup you need to do on Eloqua-Totango-Connector, and on your Eloqua instance in order to support the soultion

Setting up Eloqua Totango Insights field (One time setup)

Declare a custom field for contacts called “Totango insights".

Go to Setup -> Fields & Views and select “Add” (see: http://topliners.eloqua.com/thread/3742). Take note of the field’s Internal name, you will need it to complete the setup as explained in the next section.

What this does Once you complete this step, each contact in the Eloqua contacts database will have a Totango Insights field, which will be used by the connector to signal which Active-List it belongs do.

For example, if you created 3 Active-Lists on Totango: inactive (for inactive accounts), uses-reporting (for accounts that have used the Reporting module recently), Power (for “powerusers”), the Totango Insights field will contain the value “inactive” or “uses-reporting, powerusers” and so forth.

Installing the connector on your machine

Java installation

To use the Totango-Eloqua application you should install Java environment as following:

  1. Download and install Java JRE from http://www.oracle.com/technetwork/java/javase/downloads/index.html.

  2. put your JRE home dir in your system path (On Mac it might be set automatically during the installation).

Axis2

  1. Download the axis2-1.6.1.zip from Git and extract it to your file system.

Config.properties

  1. Download the config.properties file to your file system

Setting up the totango-eloquoa-connector

If you didn’t install and setup the environment for the connector yet, follow the instructions under “Installing the connector on your machine”

Change the configuration file config.properties under your totango-eloqua-connector dir as following:

#Axis path - must point to the axis2-1.6.1/repository in your file system

axisRepoPath=/Users/popo/Documents/axis2-1.6.1/repository

#log4j property file path. If doesn't exist it uses a default configuration of INFO level writing to the stdout

log4jConfig=

#use the totangoActiveLists property to specify active-lists to sync into Eloqua. Provide the list # ID and separate by commas if more than one

totangoActiveLists=45,2030, 4001

#Unique param for Authorization. (see at http://www.totango.com/developer/data-api/reference/data-api-authentication/)

totangoToken=[email protected]

#Eloqua params

eloquaUser=John.Smith

eloquaPassword=Example2424

eloquaAccountId=E10AccountExample

#The Eloqua internal name for the ‘Totango insights’ custom field

totangoInsightsField=C_Totango_insights1

#totango-eloqua binding

#The account identity, by default account_id, can replaced with name

totangoAccoutId=account_id

#Eloqua contact field that represents the account id. The connector finds contacts to update according to this field

accountIdField=C_Company

Comments for programmers

HTTP Client

  1. Apache http client was downloaded from http://hc.apache.org/downloads.cgi.

Log4J

  1. Log4 was downloaded from http://logging.apache.org/log4j/1.2/download.html.

  2. Update the log4jConfig property with your log4j configuration file. If not will use default configuration.

Axis2

  1. Apache axis2 was downloaded from http://axis.apache.org/axis2/java/core/download.cgi.

  2. Rampart module was downloaded from http://axis.apache.org/axis2/java/rampart/download.html

  3. rampart.mar file was moved to axis2 tool under axis2-1.6.1/repository/mosules.

  4. Axis stub was created by Eloqua wsdl file in https://secure.eloqua.com/API/1.2/Service.svc?wsdl using the namespace Eloqua.

  5. EloquaStub.getPolicy method was overrides as following (a known bug):

private static org.apache.neethi.Policy getPolicy (java.lang.String policyString) {

java.io.ByteArrayInputStream bais = new java.io.ByteArrayInputStream(policyString.getBytes());

try{

StAXOMBuilder builder = new StAXOMBuilder(bais);

OMElement documentElement = builder.getDocumentElement();

return org.apache.neethi.PolicyEngine.getPolicy(documentElement);

}catch (XMLStreamException e){

e.printStackTrace();

}

return null;

}

totango-eloqua-connector's People

Contributors

oraboy avatar yoavm avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.