Identity Mashups

By exposing data via REST OTIS enables you to mashup identity data with common web services, and to explore the data in ways that we have never explicitly envisioned. Below are several samples of simple mashups using identity data transformed via !Yahoo Pipes.

GeoAnnotating Identity Data

This demo shows how to retrieve identity data from OTIS, strip unneeded fields, geo-annotate the data, then plot the information on a map. Feel free to examine the pipes and create your own.

The Pipe

The image below shows the data flow as seen by the pipes editor for this pipe. pipe-bandits-editor

The Results

Other Uses

Other obvious geo-annotating mashups customers might wish to create from identity data include:

  • Disaster mitigation: Mix employee locations with maps plotting locations of natural disasters such as hurricanes.
  • Plotting customers locations in relationship to an upcoming sales trip, optionally filter based on past and potential sales.

Google Visualizations

This demo shows how to retrieve account information from the system and visually plot creation times in relationship to promotions and other events using google's annotated timeline. You could easily adapt this demo to use any of the google visualizations.

The Pipe

You may view the pipe as it appears in the editor here.

The Result

Simple html

The following html retrieves the feed, and inserts the data in the format required by the visualization.

<html>
<head>
        <script type="text/javascript" src="http://www.google.com/jsapi"></script>
        <script type="text/javascript">
        google.load("visualization", "1", {packages:["annotatedtimeline"]});

        function processJSON(feed)
        {
                var data = new google.visualization.DataTable();
                data.addColumn('date', 'Date');
                data.addColumn('number', 'Cards Created');
                data.addRows(feed.count);

                var x, count;
                for (count = 1, x = 0; x < feed.count; x++, count++)
                {
                        var date = new Date(Date.UTC(feed.value.items[x].createTimestamp.slice(0,4).valueOf(),                                                                                        feed.value.items[x].createTimestamp.slice(4,6).valueOf(),
                                    feed.value.items[x].createTimestamp.slice(6,8).valueOf(),
                                    feed.value.items[x].createTimestamp.slice(8,10).valueOf(),
                                    feed.value.items[x].createTimestamp.slice(10,12).valueOf(),
                                    feed.value.items[x].createTimestamp.slice(12,14).valueOf(),
                                    0));
                        data.setValue(x, 0, date);
                        data.setValue(x, 1, count);
                }

                var chart = new google.visualization.AnnotatedTimeLine(document.getElementById('chart_div'));
                chart.draw(data, {displayAnnotations: true});
        }
        </script>
</head>
<body>
        <div id="chart_div" style="width: 700px; height: 240px;"></div>
        <script type="text/javascript" src="http://pipes.yahoo.com/pipes/pipe.run?_id=2teIeG2R3RGAI6nA1JzWFw&_render=json&_callback=processJSON" />
</body>
</html>

Attachments