Day two of Dreamforce is coming to an end, or should I say a beginning? I just stepped out of the afternoon' keynote with Marc Benioff and General Colin Powell. I don't know about you, but whenever General Colin Powell speaks I always walk away inspired to do something new — something bold — something great.

I guess great pretty well sums up today.

 I spent most of the day in the Zone helping customers with their Apex and Visualforce questions, and then ran off to give my presentation on Google Wave. If you were in the session, thanks for attending and bearing with the last minute scramble we had. But everything turned out perfect. Somehow it always does.

For many people in the audience this was their first exposure to Google Wave beyond the videos and youtube recordings. We had a little fun in the session connecting Google Wave to Salesforce for a unique Customer support experience, arranged a post presentation get-together, and even provided a bunch of free Google Wave Preview accounts for all the folks in the audience to get in and build upon what we built. I hope everyone who was lucky to get a Google Wave account, jumps right in and starts building Robots. (tip: request a Sandbox account, and really do something cool — if you do, I would love to hear about it)

I will post all the sample code from the main demo, as well as the Wave Robot we built, to help kickstart the innovation, as soon as I get a chance. In the meantime, here are a few snippets from Sassy the Wave Robot as he dutifully connects the clouds:

for (Event e: bundle.getEvents()) {


      if(e.getType() == EventType.BLIP_SUBMITTED) {

          TextView msg = e.getBlip().getDocument();



          if(msg.getText().startsWith("get cases")) {

      Blip blip = wavelet.appendBlip();

                TextView textView = blip.getDocument();


                textView.append("fetching cases n");


                //create our agent

                SFDCAgent agent = getAgent();

                //query for solutions

                Set<Solution> results = agent.getSolutions();

                //loop through the results printing out the titles

                StringBuffer buf = new StringBuffer();

                for (Solution s : results) {

                    buf.append("nTITLE: "+s.getTitle()+"n");


                TextView resultsView = blip.getDocument();


                resultsView.append("nHere are "+results.size()+" tasty, fresh cases:n"+buf.toString());



If you at Dreamforce, make sure you go out and enjoy the night time activities. Remember the clouds don't go away just because the sun goes down.

Get the latest Salesforce Developer blog posts and podcast episodes via Slack or RSS.

Add to Slack Subscribe to RSS