Do you love to travel? Dreaming of the luxury vacation of a lifetime but don't want the hassle of planning it yourself? Then check out Zicasso.com!

Zicasso matches discerning travelers with the top 10% of travel specialists to provide unique luxury tours. The traveler fills in a simple trip request form describing their perfect trip. This trip request is reviewed by a real person at Zicasso and is hand-matched to 2 or 3 specialists who are best suited to the traveler's needs. These travel specialists compete by communicating extensively with the traveler directly and proposing handcrafted itineraries. Ultimately, the traveler chooses their favorite specialist and goes on their dream trip. Zicasso’s market is targeted at complex international travel, ranging from one-of-a-kind African safaris to unique Australian vacation experiences that are not available via online booking engines.

Zicasso was founded in 2008, and their initial site was built on Drupal 5. The site and the business grew steadily over the years and, by late 2012, Zicasso realized that they had outgrown their existing site and needed a full site redesign and upgrade. Zicasso sought out expert Drupal consultants and chose Hook 42 to partner with them on the redesign and migration from Drupal 5 to Drupal 7. The end result, launched in November 2013, is an image-rich, responsive, and SEO-focused site that streamlines the luxury travel planning process for travelers, agents, and Zicasso administrators.

Zicasso.com - Luxury Travel Specialists Home Page
Why Drupal was chosen: 

Drupal 7 was chosen for the Zicasso.com redesign for several reasons including:

  • The original site was built on Drupal 5 and the Zicasso team was familiar with many Drupal features.
  • Drupal is well-suited for creating and managing lots of content (text and images) that is SEO-ready.
  • Migration could be handled well by leveraging community modules.
Describe the project (goals, requirements and outcome): 

Goals

The ultimate goal for the new website was to increase the number of sold trips. This goal was supported by focusing on traveler experience, traveler and agent (travel specialist) communication, admin efficiency, and overall search engine optimization.

  • Traveler UX: To improve the traveler experience, the goals were to simplify and consolidate processes and provide useful guidance. This crossed several important user touch points: the trip request process, the communication process, and the review process.

  • Messaging: For better communication between agents and travelers, the goal was to streamline the messaging process.

  • Administration: For increased admin efficiency, the goals were to assess all admin workflows and processes and remove unneeded steps and speed up manual processing with better admin UIs.

  • SEO: An overarching project goal was improving SEO and this came into play in the content strategy and architecture. It was very important that the content team had a high level of control over the content shown on key landing pages in order to provide high-quality and relevant travel content.

Requirements

  • Drupal 7 - Streamlined, improved version of the Drupal 5 site using Drupal 7
  • Imagery - Beautiful and inspiring travel photography
  • Design - Clean, modern design with a luxury feel
  • Responsive - Mobile-device support, particularly for tablets
  • Conversion - Compelling call-to-actions and usability to increase conversions
  • UX - User-friendly traveler experience, from trip request to trip planning to trip review
  • Performance - Fast page loads, particularly for anonymous users and key landing pages
  • Messaging - Messaging between travelers, agents, and admins from email clients
  • Admin - Admin dashboards for efficient trip request management
  • Workflows - Complex backend business logic: trip matching, invoicing, reviews, notifications
  • SEO - Sane SEO defaults, allowing manual curation whenever possible
  • Content - Location and taxonomy-based landing pages for targeted SEO and UX
  • Migration - Migrate nearly all Drupal 5 data, over a million nodes

Timeline

  • Site Audit / Discovery - October to December 2012
  • Requirements / Development / QA - January to November 2013
  • Launch - November 29, 2013

Outcomes

  • Press - Zicasso received great press coverage about the new site
  • Traveler Experience - Luxury travelers became more inspired and motivated to use the site due to the beautiful UI and streamlined UX
  • Agent Experience - Travel specialists improved their efficiency in the sales process due to improved UI and streamlined workflow
  • Admin Experience - Zicasso admins are able to match faster
  • SEO - Better search engine ranking for many important targeted keywords resulting in higher organic traffic
  • User Engagement - Users are spending about 30% more time on the site and visiting about 25% more pages
  • Sales - Sales increased compared to the same period in 2013

Client Quote

After using the new Drupal 7 site, Yuchun Ku, Zicasso’s COO, said:

Wooow - the upgrade from D5 to D7 is like changing from a Honda Civic to Tesla!

Press Highlights

Technical specifications

Drupal version: 
Drupal 7.x
Why these modules/theme/distribution were chosen: 
  • Apachesolr - Apachesolr is used on landing pages that require keyword and location-based search.
  • Breakpoints - Breakpoints is used to manage the responsive design.
  • Context - Context is used primarily for block placement.
  • Display Suite - Display Suite is used for custom view modes and custom Display Suite fields.
  • Entityform - Entityform is used for the contact forms.
  • Features - Features is used for all exportable configuration.
  • Fivestar - Fivestar is used for reviews votes.
  • Flag - Flag is used for flagging messages and trip matches.
  • Lazyload - Lazyload is used for faster page load by loading shown images first.
  • Mandrill - Mandrill is used for outbound email handling.
  • Media - Media is used for embedding images and choosing existing images from shared resources.
  • Migrate and Migrate D2D - Migrate and Migrate Drupal-to-Drupal were used for the migration process.
  • Previewable Email Templates (PET) - PET is used for making email templates for user notifications.
  • Picture - Picture is used to deliver alternate image files based on device.
  • Privatemsg - Private Message is used to allow travelers, agents, and admins to communicate.
  • Profile2 - Profile2 is used for traveler and agent profiles.
  • Redis - Redis is used for database caching.
  • Views - Views is used heavily for public, agent, and admin dashboard blocks and pages.
  • Voting API - Voting API is used for review calculations for key landing pages.
  • Weight - Weight is used for weighting reviews and tours.
  • Workbench Moderation - Workbench Moderation is used for moderating reviews and tours.
  • Workflow - Workflow is used heavily for backend business processes.
  • Wysiwyg - Wysiwyg is used with CKEditor for content editing.
  • Adaptivetheme - Adaptivetheme is used as the responsive base theme.

Many other community modules were also used such as standard SEO-related modules like Redirect, Metatag, and XML Sitemap. Check out Zicasso.com on drupalxray.com for more details. Additionally, a large number of custom modules were created for extending workflow, business logic, messaging, and SEO features. One notable integration is custom code to implement the Mandrill webhook API for inbound messages and tying in this feature with the Private Message system functionality.

Community contributions: 

During the Zicasso.com project, we reviewed several existing patches and created several as well:

Contributed patches

#2090557: Don't load/cache data on 403 & 404 error pages
#1996892: Add Workflow Rules condition for checking the previous state
#1951164: Cannot use Workflow comment as exposed filter due to left join order
#2114687: When using editablefields_as_link on admin-themed pages, default theme css is pulled in

Reviewed patches

Here are some issues with patches that we are using or tested:

#1314508: Make states/transitions exportable with the Features module
#1408838: Node revision history optimization on large websites
#699252: Create a method of filtering one field by its relation to another field
#1055616: Query arguments should be replaced before generating cache ID
#1593230: Restrict profile2 type per roles
#1817976: Updating an entity with an URL alias that matches an existing redirect causes bad data and circular redirect
#904416: Allow path contexts to handle query string
#2000238: Convert 'field' to 'field_instance' on features-update (fu)
#1551132: When trying to create a table that already exists but is empty, recreate the table rather than throwing a DatabaseSchemaObjectExistsException
#1184984: Full public CRUD API
#1796596: Fix and prevent circular redirects
#1573000: Preliminary Views integration
#1869918: Views bulk operations node export fails with undefined function _views_bulk_operations_adjust_selection
#1042088: Feature stuck in overridden state due to buggy hook detection
#2071073: php warnings are thrown because media_file_default_displays_alter() checks for configs that may not exist
#1279478: Adding preprocess functions to entity themes that don't exist and accessing block content that doesn't exist.
#1923328: Notice: Undefined property: stdClass::$field_tags
#1821974: Allow plus sign in user_validate_name to be able to use email as login
#2101609: Strict warning due to calling reset with function call instead of variable
#2047811: Make compatible with non-integer entity IDs
#1593508: The value of 'language' when the value is LANGUAGE_NONE
#2114687: When using editablefields_as_link on admin-themed pages, default theme css is pulled in
#1428272: Added support of encoding conversions to the CSV Parser
#1593508: The value of 'language' when the value is LANGUAGE_NONE
#1802394: Warning: file_get_contents from 7.x-2.1 to 7.x-2.2
#1436260: Saving nodes outside Workbench Moderation leads to incorrect state transitions (e.g., "needs review" appearing as published)
#2114847: Conditional Fields not saving after updating to latest dev version (2013-Oct-01)
#1445354: HTML5 wrapper wanted
#1930960: Block caching disable hardcoded on sites with hook_node_grant() causes serious performance troubles when not necessary

Organizations involved: 
Project team: 

The Zicasso.com Drupal 7 website was built by Hook 42 and was a highly-collaborative effort with many team members. Due to availability, project needs, and skills, some members were only on the project for a short period while others continue to actively work on the site.

Project Team for D5 to D7 Migration and Launch (Oct 2012 to Nov 2013)

The order below roughly reflects how long the team member was on the project prior to launch.

  • Aimee Degnan - Project Manager / Web Analyst / System Architect / Drupal Architect
  • Kristen Pol - Drupal Architect / Web Analyst / Technical Lead / Drupal Developer
  • Kristin Tkoch (K2) - Designer / Frontend Developer / Drupal Themer / Usability and UX Architect
  • Mike Milano - Drupal Developer
  • Darryl Richman - Drupal Developer
  • Joe Ybarra - Drupal Developer / Frontend Developer / Drupal Themer
  • Mary Edith Ingraham - Drupal Developer
  • Joe To - Designer / Drupal Themer
  • Brad Degnan - System Administrator
  • Nik Pernia - Project Manager / QA
  • Paul Ferlito - Drupal Developer
  • Drea Smith - QA
  • Julia van der Wyk - Drupal Themer

Current Development Team

Zicasso - Luxury African Safaris
Zicasso - Luxury Germany Travel Reviews
Zicasso - Luxury Tours and Vacations Main Page
Zicasso - China Travel Review
Sectors: 
Small business
Startups
Travel and Hospitality