Smarten Up Your Address Bookwith a Plaxo Mashup : Smarten Up Your Address Book with a Plaxo Mashup Presentation to Mashup University
Joseph Smarr
Plaxo, Inc.
July 11, 2006
How Many Web Sites Use Address Book Info? : How Many Web Sites Use Address Book Info?
How Many Web Sites Use Address Book Info? : How Many Web Sites Use Address Book Info? Any service where users
Share content
Connect with friend
Invite people to join
E-mail info to others
Nearly all web apps do (or should) use address book info
Key to viral success of many companies
Usually not a core competency
How Do They Get Users to Fill in Their Address Book Info? : How Do They Get Users to Fill in Their Address Book Info? Manual entry
How many e-mail addresses do you know off the top of your head?
Import CSV
Not user-friendly
Quickly gets out-of-date
Auto-import from another web site
Painful to build (authentication, scraping site)
Even more painful to maintain (hotmail windows live)
Plaxo Widget to the Rescue! : Plaxo Widget to the Rescue!
How’d They Do That? : How’d They Do That? Add the button to your page
andlt;a onclick='showPlaxoABChooser('textarea', '/cb.html'); return false' href='#'andgt;
andlt;img src='http://www.plaxo.com/images/abc/buttons /add_button.gif' alt='Add from my address book' /andgt;andlt;/aandgt;
Specify the ID of your e-mail andlt;textareaandgt;
Specify the location of your hidden callback page
Add a small callback page on your site
andlt;htmlandgt;andlt;headandgt;andlt;script type='text/javascript' src='https://www.plaxo.com/ab_chooser/abc_comm.jsdyn'andgt; andlt;/scriptandgt;andlt;/headandgt;andlt;bodyandgt;andlt;/bodyandgt;andlt;/htmlandgt;
Full instructions and demo: http://www.plaxo.com/api/widget
Ok, How’d They Really Do That? : Ok, How’d They Really Do That? Notice: Plaxo filled in a textarea on zazzle!
Need to get around same-origin policy
Without server-side proxy (JS/HTML only)
Normal workaround: JSON script injection
But zazzle wouldn't know when to request it
Solution: 'The JavaScript Wormhole'
Add hidden callback page on zazzle that includes Plaxo script
Plaxo popup loads callback in an iframe when done
Script is dynamically generated, and includes selected data
IFrame is also on zazzle (and has the data), so it can tell parent.opener to fill in the textfield
Ok, How’d They Really Do That? : Ok, How’d They Really Do That? zazzle.com/email_this plaxo.com/ab_chooser plaxo.com/ab_chooser Iframe: zazzle.com/cb.html
Script: plaxo.com/ab_chooser/abc_comm.jsdyn
Who’s Using the Plaxo Widget? : Who’s Using the Plaxo Widget? See more at http://www.plaxo.com/api/gallery
Using the widget? Let us know! 'I went from a nagging request from one of our investors to a completed implementation in a matter of days, I spent no money, and I had a very happy development team!'
–Cynthia Francis, CEO, Reality Digital
Plaxo Address Book Access Widget: Summary : Plaxo Address Book Access Widget: Summary Use it any place users have to enter contact info
Give users access to their existing address book info
Users do not need to be Plaxo members to use widget
Quickly integrate with a few lines of HTML / JavaScript
No server-side code required
No changes to what you do with the contact info
It’s FREE! …but, it doesn’t keep the contact info in sync!
Need a Persistent Address Book?Then Keep it in Sync : Need a Persistent Address Book? Then Keep it in Sync Plaxo Widget is best for quick-access
Share content, send invites, find friends, etc.
Many services need to maintain their own address book
Rarely the user’s primary address book
Thus, usually incomplete and out-of-date
Users don’t want yet-another-address-book
But sync is hard; many popular address books
Good News: Plaxo has Already Done the Hard Part for You! : Good News: Plaxo has Already Done the Hard Part for You! Plaxo = Smart Address Book
Already syncs with many popular address books
Simple Sync API lets anyone plug in
It’s FREE! Sync API Your site’s
address book Other Plaxo API partners
(PocketPC, mail.com, etc.)
Case Study: AOL Instant Messenger : Case Study: AOL Instant Messenger Goal: expand info in buddy list to enable richer communication (e-mail, SMS, phone, etc.)
Solution: partnered with Plaxo
Import/sync with Outlook/Yahoo/etc.
Richer contact info for existing buddies
New buddies discovered from address book (e-mail lookup / Plaxo)
Concept to shipped in 3 months!
The Sync Recipe : The Sync Recipe Remember the last time you synced
Send Plaxo any updates on your end
Adds/updates/deletes since last sync
Receive incremental updates from Plaxo
Send back IDs for any new contacts
Plaxo handles the tricky parts:
merging, mapping, history, partner auth, etc.
Plaxo’s Sync API is REST-ful : Plaxo’s Sync API is REST-ful All API functions are invoked by URL
Input is sent in POST body
Output is returned in response body
Simple JavaScript-like syntax (ala gmail)
Full documentation and examples: http://www.plaxo.com/api/sync ['Sync', 'Target', 'Contacts', 'Source', 'DevLocalContacts'] ['Add', 'Type', 'Contact', 'ItemID', '', 'ServerItemID', '68339'], ['Data', 'BusinessEmail', 'joseph@plaxo.com', 'DisplayName', 'Joseph Smarr', 'HomePhone', '650-555-1212'] ['/Sync']
But Wait…There’s More! : But Wait…There’s More! Plaxo address books are also self-updating
Plaxo Sync API vs. AB Access Widget : Plaxo Sync API vs. AB Access Widget Summary:
Widget is quicker to implement
Sync API is better if you’re storing AB info
A Bit More about Plaxo : A Bit More about Plaxo Founded in 2001; currently 50+ employees
Private company; raised andgt;$20M to date
Sequoia (Mike Moritz), Globespan, Cisco, Ram Shriram, Tim Koogle, …
10+ million members, andgt;2 Billion contacts
500 Million unique people in all address books
Built into new AOL Instant Messenger
Basic service is free; premium bundle
Coming Attractions : Coming Attractions More API bindings
JSON, XML, SOAP, SyncML
Developer toolkits (SDK, sample code)
More web widgets
Contact info / calendar on your blog
Calendar sync API
…and, of course:
More sync endpoints andamp; more Plaxo users
Smarten up Your Address Book Today! : Smarten up Your Address Book Today! http://www.plaxo.com/api
(and look for us at MashupCamp!)