Posts tagged: google api

  • Monday
  • May 14
  • 2012

Google Drive and the price of progress

Last year we started work on the LSNC Google API Project, a project we completed a few months ago. The gist of the project was to exploit open source Google APIs to integrate components of the Google Apps platform with the Pika case management system. At the most recent TIG Conference in Albuquerque, I gave a non-technical presentation about the project; last month, Michael Cizmar of MC+A in Chicago and Mark Sawyer, LSNC IT Manager, gave an IT-oriented presenation about the project at the most recent NTEN Conference.

Working on this project has been particularly daunting at two major breakpoints, no pun intended: We had the courage–perhaps the folly– last year of working on the development of our Google Apps integrations right at the juncture when Google made enormous changes to the underlying architecture of its core Google Apps, including Gmail, Calendar and Docs. (Anyone who was an active Google Apps user last year understands how significant the changes–hundreds of them–were made.) Those architectural changes in short order broke our project code. We rolled with it and spent additional months refactoring the code.

In March, we rolled out in sequence our updated code set to our entire organization with integrations of Gmail, Calendar and Docs and Groups. A month later, Google rolls out Google Drive, its very impressive replacement for Google Docs. And, not so surprisingly given our earlier experience, Google’s changes with the new Google Drive architecture broke our Docs and Gmail integrations. Again. Presumably, this is because both our Docs and Gmail integrations have dependencies on file synchronization and share processes that have changed with the Google Drive architecture. We’re on it, but we will have to make further changes, again.

The price of progress. But looking at the long term, I think Google Drive is well worth the cost to our project.

  • Sunday
  • January 22
  • 2012

Integrating Gmail and Google Groups with the Pika CMS

A few weeks back the project team uploaded a complete version 4 code set to the LSNC Google API Project. This latest version is inclusive of four Google Apps core app integrations — Google Calendar, Google Docs, Gmail and Google Groups with the Pika CMS. This is the same project I described during my recent presentation at the 2012 TIG Conference in Albuquerque. As I noted there, we are spending the next few weeks doing expanded beta testing with users across varied positions and office locations within Legal Services of Northern California (LSNC). We expect to deploy all four integrations throughout the organization by the end of February.

In earlier posts I have described how the Google Calendar integration and Google Docs integration work. The short version is that, by exploiting the Google Apps APIs for Google Calendar and Google Docs, we have been able to implement a seamless synchronization between the Pika CMS calendar and document posting functions with Google Calendar and Google Docs. Pika CMS users need do nothing differently than what they are already doing to have tickler calendar events show up in their Google Calendars, or have case-related files uploaded to Pika show up in a case-specific shared collection in Google Docs.

The new Gmail integration in version 4 is arguably the most important of the four integrations. The basic user problem has been this: Everyone within LSNC — like most everyone else on professional planet Earth — day-in and day-out relies on email to accomplish their work. In our case, advocates regularly communicate with clients, co-counsel, opposing counsel, public and private individuals and entities and, of course, other LSNC staffers. But how are they to get those Gmail messages into case-related case notes in Pika? At the moment, what they do is cut-n-paste, again and again and again without end. The Gmail integration is designed to simplify that process so that users, from within a Gmail message or the entire conversation, can seamlessly post the content of Gmail messages to a client-specific case record automatically, without the need to open Pika.

To accomplish this, we have embedded a new Gmail widget that displays at the bottom of every Gmail message. Below is a screenshot of a developer version of the integration, with the gadget labeled as “TKLAPP Staging Pika – Attach to Case Notes.”

The default behavior of this gadget is to automatically copy the currently viewed Gmail message to the case notes in the selected client case record. To trigger that functionality, users toggle the gadget to display a dialog with a search option to locate any currently open client case record in Pika. Two tabs are available, one to search the user’s assigned active (open) cases and the other to search more broadly all cases active (open) throughout the organization. Once users select a case record, they have two check-box options: one to save any files attached to the Gmail message, which are automatically uploaded to the Pika case record and simultaneously synchronized to the user’s Google Docs account; the other to copy the entire Gmail conversation (Google’s name for an email message thread). Users can then simply click the “Attach to Case” button to seamlessly copy the Gmail message to the case record.

But wait… there’s more!

The gadget also offers an alternate input button allowing the user to “Edit and Attach to Case.” Clicking that button invokes a pop-up window with the Gmail message copied over to Google Docs for editing before the content is posted to Pika. The user can edit the single Gmail message or conversation as is their wont and then click on “Attach to Case” in the editing window to post the edited content to Pika. Done. Without ever having opened Pika.

The Google Groups integration works on the same premise as the Gmail integration, with the approach being to enable users to automatically copy a Groups discussion automatically to a Pika case record. The Groups solution is less elegant, however. Going into this project we made the mistaken assumption that, like the other Google Apps core applications, there was a Google API for Groups, but there is not. Google Groups has no exposed web API. So we did a workaround. The Google Groups integration with Pika requires the user add a custom bookmarklet to the browser bookmarks toolbar. Once that is set up, the user can go to a Business Groups discussion within our domain, click on the bookmarklet and trigger a set of dialogs directly analogous to how the Gmail integration works, with the ability to search for a specific client case record and then “attach” or “edit and attach” the content of the discussion message. (Google Groups no longer allows file attachments to discussion group messages, so there is no option to attach files.)

For those interested in this code set, you can anticipate there will be some minor updates to the code set over the next month or two as we fix quirks that emerge from our further beta testing. There is also an updated guide to installation coming soon.

Thanks again to everyone who attended the TIG presentation. It was encouraging to see how much interest there was within the larger legal services community in this project. My prediction is that within a few years we will all look back at this coding project as somewhat quaint, only a first step in many to come as we all increasingly rely on the Google Apps platform and work more with the Google API to take full advantage of it.

  • Monday
  • October 10
  • 2011

Google and the Circle of Life

A few weeks back, at a LSNC organization-wide staff meeting, I gave the type of tech presentation I am always asked to give at such events: A state-of-organizational-tech overview/update, reviewing what has changed at LSNC in the last year and what changes are coming in the next, with a few tech funsies to keep the crowd awake. We did have some real fun with the session. Among other things, the LSNC tech team attempted some Harry Potter shtick involving an audience volunteer, a wizard’s hat, an incantation of “Google nexus transportus confundum!” while automatically uploading a photo to the web clipboard in Google Docs, via a Google Nexus phone. While amused by the shtick (you had to be there), the smartphone-savvy audience was also largely unimpressed, as if to say, “Tell me something I don’t already know.”

Whew, is it ever getting harder to impress our staff with technology. The transformative Big-Bang days are long over. The technology bar has raised considerably the last few years within our organization, and while changes are appreciated they often evoke an expression akin to “Is that all you’ve got?”

To be fair, we were able to show our staffers a few things that were new for them, most notably a preview of the Google Apps + Pika integrations everyone at LSNC have been hearing about but most had not seen before. Folks were attentive as we showed them the Google Calendar and Google Docs integrations, their silent nods saying, “Good, good.” When we showed them how the Gmail integration works, the reaction was anything but silent. All we did was show a Gmail message and drew attention to a new button at the bottom of the message. When the presenter Mark Sawyer said, “… and when you click on this button the message is automatically copied over to your Pika case notes,” the room exploded with applause.

Was the applause a measure of their being impressed by the technology? Not really, in my view. I think it was a measure of how users of very familiar technologies — in this case the Pika case management system and Gmail — now think or expect the technologies to work… together. It was not an “Oh My God” moment. It was a “Thank God” moment. The applause was a shared expression of technological redemption from the tedium of having, for so long, to copy-n-paste email messages from Gmail over to Pika. The audience was not so much amazed as relieved.

Such sentiment is a shift in what are practical, reasonable expectations among our users about now common technologies working the way they need them to work. In our organization’s case, the adoption of the Google Apps platform is not about what is cool or even “the Google” itself. What it is really about is the shift in a larger, overarching work paradigm. The desktop, the cloud and mobile devices are not separate work paradigms. They are simply tools that we can reasonably anticipate our users need or will need soon enough to do their work, to be productive. To be Google-specific about it, that is the thinking behind our efforts at exploiting the Google API to integrate or share, as seamlessly as possible, select content within Pika with Google Calendar and Google Docs, or within Gmail and Google Groups with Pika.

Although there are pockets of differences within our organization, it is fair to say that most here have settled into the new work paradigm: the networked desktop is just another device connected to the web, which is the cloud, which is accessible most everywhere via any number of mobile devices. Hakuna matata, my friends. It’s the circle of life.

  • Wednesday
  • August 17
  • 2011

How the Google Docs integration with Pika works

The second version of the LSNC Google API Project includes an integration of Google Docs with the PHP-based Pika CMS. Implementation of this integration results in a totally seamless synchronization of Google Docs with any files added to a client-specific case record. Add a file to the case-record “documents” page in Pika, and that same file, in its original file format, is automatically synced to the Google Docs folder of all advocates associated with that particular case record.

Here are some screenshots to give you a feel for how it works: First, you upload the files to Pika, which natively stores the files in its database. This shows how the uploaded files display within the Pika user interface:

Second, well, that’s it. You’re done. Really.

Without any further user interaction required, Google Docs synchronizes with Pika and adds those same files to the individual Google Docs accounts of all the users associated with the client case record. The synchronization process adds the files to a client-specific subfolder, with the client’s last name and case number, residing below an upper level folder called “My Cases,” which is itself a special folder within the Google Docs “Collections shared with me.” For example, here are the same files synchronized to Google Docs to the folder labeled “Collections shared with me > My Cases > Forcast – 10-11-00004″ (to state the obvious, this is not a real client):

Once the Pika case-related documents are synchronized to Google Docs, the users can use the documents from within Google Docs as they would any other: navigate to it, search for it, view it, share it, download it, whatever. For example, here is how a Word file orginally uploaded to Pika and then synced to Google Docs looks in the view mode from within Google Docs:

So, imagine you get a Gmail or Google Chat message from another advocate, asking if you have a good example of a motion to quash a subpoena, and you know you have one in the “Forcast” case. Hey, you’re already in your Google Apps, so you just go to Google Docs, navigate or search for the case or document, and there it is. You go ahead and do a Google Docs share to the person who made the request. Done. Without ever having to even open up Pika.

That’s the name of that tune.

  • Thursday
  • August 4
  • 2011

Screenshots of the Pika gadget integration with Google Calendar

The goal of the LSNC Google API Project is to come up with practical integration of the Pika case management system with four core Google Apps. We have completed beta testing of two of those integrations, for Google Calendar and Google Docs, and this month are bearing down on the last two, for Gmail and Google Groups. The project as a whole will be completed by year’s end and will include documentation at the project code site to help IT folks familiar with Pika to replicate the project.

From the UX perspective, the goal is to create integrations that are as seamless as possible. For example, the first integration we built was one that synchronizes the Pika tickler calendaring function with the personal calendars of all the advocates associated with a particular client case record. For us the measure of success is that users continue to experience the Pika tickler functionality as they always have, but with the magic that their Pika tickler events automatically appear in their personal Google Calendars.

The integration requires the activation of a “Pika Gadget” via a new option in the individual user’s Pika account preferences. Clicking on the option triggers a standard Google dialog for confirming its activation:

Once activated, the Google Calendar synchronizes with Pika tickler activities. The tickler entries display and function exactly like any other item in one’s Google Calendar.

Here are a few screenshots illustrating how this all looks. In order, they are: A Pika tickler event page (which includes a new field for “Where,” corresponding to the same data in the Google Calendar); the tickled event displayed in the Google Calendar “day” view; the same event displayed in the Google Calendar “month” view; and the same event again, with the standard Google Calendar pop-up triggered when one clicks on the event in the Google Calendar:

As you can see from the last image, clicking on the tickler event from within Google Calendar triggers a display on the right with basic information about the related case record, including the case number, the client’s name, address and phone number. Clicking on the case number will open the corresponding case record within Pika. Users can also edit the tickler or add a new one to the particular case by clicking on the corresponding buttons displayed below the case information. That’s how that works.

Fellow Pika users: Don’t thank me. Thank Michael Cizmar at MC+A, the Gandalf of Google APIs!

  • Tuesday
  • April 26
  • 2011

Google Calendar component of LSNC Google API Project posted

The LSNC Google API Project has posted its first code iteration, an integration of Google Calendar with the Pika CMS. This first iteration includes basic installation instructions for implementing the integration. You can expect additional code iterations over the next several months as we roll out code integrations with Gmail, Google Docs and Google Groups.

LSNC’s development partner on this project is Michael Cizmar and his team at Chicago-based MC+A. This morning, MC+A issued a press release announcing the release of this first component. (MC+A was also our partner on The Findability Project.)

With the public launch of the project, I will begin to post here regularly about the project and detail more about how LSNC is implementing these integrations. You’re gonna like this, people!

  • Friday
  • February 11
  • 2011

Rebuild 09: Google custom search + mobile + related posts

Webdogs 3.0 mobile

The site search functions here have been pretty funky during the rebuild — sometimes working, sometimes not working, and more often than not displaying oddly as we tried out a variety of things. That should begin to settle down. We have now integrated the Google Custom Search API with a basic, clean, quite traditional implementation. (For example, search for HTML5.) There’s still some funk in play with auto-suggestions and auto-completion, and something is causing some jitters in Google Chrome but not other Webkit browsers. We’re hammering it out.

Two other site elements have also been added recently using WordPress plugins: related posts are now linked below each original posts as “other posts of possible interest.” We are also testing WPtouch Pro as a very easily implemented mobile solution.

The next step is to do a comprehensive code sweep of the rebuilt site to tidy things up, before we use the coding experience to update all of LSNC’s public websites. Having hammered things out here, we should be able to do the site updates to our other public sites efficiently. (That’s the theory, anyway.) There is a “Rebuild 10″ post coming up, where I will recap the code building blocks used to do the Webdogs 3.0 makeover. Stay tuned.

  • Tuesday
  • January 11
  • 2011

The LSNC Google API Project

In 2006 Legal Services of Northern California (LSNC) was the first legal services program in the country to adopt the Google Apps platform. Since then, a growing number of legal services field programs and other non-profit organizations have migrated or anticipate migrating to the Google Apps platform to provide staff with a core complement of domain-specific, web-based applications.

The various Google Apps enable users to create, store and share content of obvious practical value, essential to the daily work of the staff who use them to assist their clients, such as: Case-related events created in an advocate’s or office’s Google Calendar; Gmail messages and attachments related to a client case; and case-related documents and files created natively, uploaded for storage, and/or shared with others from within Google Docs.

But therein lies a problem: The content created, stored or shared within Google Apps is not integrated in any practical way with other web-based applications staff rely on to do their work. At the field program level, the most critical gap is the lack of integration of these Google Apps with the program’s case management system.

That’s where the LSNC Google API Project comes into play.

LSNC has received a 2010 TIG award to overcome the lack of integration between LSNC’s domain-specific Google Apps platform and the Pika case management system, the open source PHP-based application in use by LSNC. The objectives of the project are to create practical solutions for integrating select content elements of Gmail, Google Calendar, Google Docs and Google Groups into Pika, utilizing open source design and coding techniques readily adaptable to other open source CMS applications.

Relying on varied Google API options, the project will develop, implement and document the following four, basic use cases for such integration:

  • Integration of Google Calendar functions into the CMS to track date-sensitive calendared items such as filing, hearing and trial dates and other timed or
    scheduled events on client cases, such that they appear and are accessible from either interface.
  • Integration of Google Docs with the CMS, so that case-record-specific documents uploaded to the CMS case record are automatically and seamlessly
    stored in Google Docs, and appear virtually and are accessible in both locations.
  • Integration of Gmail with the CMS, so that an individual Gmail message or entire Gmail conversations related to a particular case can be automatically added to the CMS case record and/or a selected file attachment to a Gmail message can be automatically added to a particular CMS case record.
  • Integration of Google Groups with the CMS, so that discussion group content (e.g., a LSNC welfare discussion thread and/or related file attachments) can be
    automatically added to the CMS case record.

The final piece of this project will be the creation and population of a Google Code project hosting site to host the code actually used. This will help other field programs directly, by demystifying Google APIs, explaining how they work, and detailing the actual code used to integrate Google Apps with a case management system like Pika. Documentation of this project will not be as elaborate an affair as The Findability Project, a few years back. But we will document all the basics along with usable code, so that other organizations with an open source CMS can get grounded and build on what we learn.