VeeDeePee: get up close and personal with variable-data publishing (vdp)

« VDP for Dummies | Chocolate Direct Mail »

Seasons Greetings

Over the past few days I've been working on a Seasons Greetings card to send to our customers and business partners. This year, we decided to drop our traditional printed cards and try an alternative way of reaching customers using email and image personalisation. Yesterday we sent out the ecard by email to over 3,200 contacts.

sample-ecard.jpg

We created the personalised image in this ecard using XMPie uImage. The background picture changes to reflect the sender's city and each sender could add his or her own personalised message to the photo. Staff flagged contacts in from our CRM database to recieve the card, and could add their own personalised message for each contact, which appeared on the ecard. I've decided to share the details of how we put this campaign together, to demonstrate how you can leverage Photoshop and uImage to create effective personalised images.

We used a total of four personalised elements in the image, indicated in the diagram below. I created the business logic to drive the personalised elements using uPlan, XMPie's rule editor software. Through uPlan, you can programatically create rule-based logic for each personalised element in the image, and as XMPie uImage leverages the image editing capabilites of Adobe Photoshop, anything you can achieve in Photoshop (apply filters, effects, layers, etc) can be dynamically applied depending on pre-defined business rules. This unique ability differentiates uImage apart from other image personalization solutions, which offer a mail-merge type approach to including variable content in an image. My approach to programming each variable element is explained below.

sample-ecard-howto.jpg

The sparker writing effect was achieved by creating a custom sparkler font. By photographing various sparkler effects using a long exposure setting, we were able to create a A-Z character library of images, which were then converted to vector-based art in Illustrator. We then used Fontographer to create a TrueType font of the sparkler character set. We then added a 'first name' variable tag as a seperate layer in the Photoshop document and applied the sparkler font. We then added Inner Glow, Inner Shadow, and Colour Overlay effects using layer effects, to create a realistic glow effect.

sparker-font.gif

ecard-layereffects.gif

The background image was created by placing a placeholder image on a separate layer and assigining it as a Smart Object. I then created a business rule in uPlan using the QLingo 'Switch' function to swap the Smart Object based on the office location of the staff member.

The personalised greeting was created using a handwritten typeface. The greeting flowed across 1-3 seperate lines, the last line was reserved for a standard greeting "Seasons Greetings, [staff name]". If the staff member chose not to add a customised message, the business rule simply inserted the default standard greeting on the first line.

I created a rather crude paragraph composer using QLingo through a combination of Length and SubString functions, so the message would flow across the seperate lines and not break in the middle of a word. My QLingo code also hyphenated unusally long words. While this level of programming was quite sophisticated, on reflection it was also quite unnecessary. I could have simply created a text frame in Photoshop and let Photoshop take care of paragraph composition. However, the original intent of this approach was to apply different thresholds of the Warped Text feature to each line, to create the effect of a naturally uneven handwritten line. However, a Faux Bold style was applied to the font, which I found out is not supported by the Photoshop's warped text feature. As the type was created with differing x-heights, it looked quite natural anyway.

The hand holding the sparker was positioned to finish at the end of the recipient's name, depending on the name length. I achieved this by using the QLingo Length function to calculate the amount of characters in the name, so I could approximately guess where the last character would end. I then created a set of Photoshop actions which moved the hand (which was on a seperate layer) from a pre-defined start point to an end position. There were a total of 8 different positions, each recorded as an Action. Using a QLingo Switch function, I then applied the appropriate Action as an 'opening action' (within the uImage function), depending on the recipent's name length.

Finally, I used a closing action to resize the image to an appropriate size before saving it as a jpeg image. On reflection, I could have skipped this step by resizing the original Photoshop document, but it really didn't impact the image generation speed.

The images were generated on my humble Dell laptop at a rate of approx 1 every 3 seconds, or 1,200 per hour, which was very acceptable considering the complexity of the business logic and template layout. The images were then incorporated into an email and sent from our CRM system, which enabled us to track open and click-through rates.

I really can't take all the kudos for this campaign, there were a handful of others involved; LPN Design worked on the creative, our eBusiness team took care of the data and email campaign side, our Marketing Programs Manager managed the campaign and Legal Department dotted i's and crossed t's.

If you want to learn some more about the campaign, we've created a document explaining how the campaign was created. For XMPie users out there, I've also decided to share the Plan file. I've added comments to the different QLingo functions and parameters in the Plan file, to help decipher my coding approach.

Posted on Thursday, 13 December 2007 at 1:19 PM | TrackBack: http://www.veedeepee.com/cgi-bin/mt-tb.cgi/68

Comments

Outstanding, Eliot. Thanks for sharing this story. It's great to hear about the detailed work that went into this. As I read it, my first thought was "Wow, this is a bit complicated." By the end, though, I was thinking "Hey, with a little bit of hard work, I probably could do something like that." This bound to inspire other technical types to jump in and try their hand at interesting variable projects.

Posted by George Alexander on Saturday, 15 December 2007 at 10:49 AM

Post a comment