Velocity to Handlebars Conversion / Comparison?
EDIT: Maybe a better question is - is there a dead-end conversion from Velocity to Handlebars? Or is Velocity staying indefinitely?
Hello all,
Have maybe a specific question but hoping some experts can shed some light - I know at one point there was talk about Marketo moving from Velocity to Handlebars and I was curious if anyone could help me decipher that in terms of personalization with Custom Objects?
We do a fair amount of Velocity scripting due to the nature of Custom Objects and multiple records - for example here is a First Name personalization:
##Standard Velocity Date/Time Fields
#set( $defaultTimeZone = $date.getTimeZone().getTimeZone("America/Chicago") )
#set( $defaultLocale = $date.getLocale() )
#set( $calNow = $date.getCalendar() )
#set( $ret = $calNow.setTimeZone($defaultTimeZone) )
#set( $calConst = $field.in($calNow) )
#set( $ISO8601DateOnly = "yyyy-MM-dd" )
#set( $ISO8601DateTime = "yyyy-MM-dd'T'HH:mm:ss" )
#set( $ISO8601DateTimeWithSpace = "yyyy-MM-dd HH:mm:ss" )
#set( $ISO8601DateTimeWithMillisUTC = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" )
#set( $ISO8601DateTimeWithMillisTZ = "yyyy-MM-dd'T'HH:mm:ss.SSSZ" )
##Set blank array for future values
#set( $firstNames = [] )
##iterate Customer Profile records and set Membership Opening Date to usable value for script
#foreach( $item in $customerProfilesList )
#set( $membershipOpeningDate = $convert.parseDate(
$item.membershipDate,
$ISO8601DateOnly,
$defaultLocale,
$defaultTimeZone
) )
##Sets difference from Membership Opening Date between -9 and 0 days
#set( $pastDiff = -9 )
#set( $currentDiff = 0 )
#set( $diffDays = $date.difference($calNow,$membershipOpeningDate).getDays().intValue() )
#set( $acceptableDiffs = [$pastDiff..$currentDiff] )
#if ( ( $acceptableDiffs.contains($diffDays) ) && ($item.membershipStatus.equals("Member")) && ($item.customerType.equals("PERSON")) && ($item.age >= 18) && (!$item.membershipDate.isEmpty()) && ($item.NMOBanditGroup.contains("5")) )
#set ( $void = $firstNames.add($item.firstName) )
#break
#else
#set ( $void = $firstNames.add("Wings Member") )
#break
#end
#end
##Display full names that meet conditional in clean formatting
${display.list($firstNames)}##
##Defaut action if Customer Profile object does not exist.
#if ( $display.alt($customerProfilesList,"" ).isEmpty())
Wings Member##
#else
#endFrom what I can tell, Handlebars is like a dumbed down language that cannot handle anything like this?
We're in the process of deciding whether to stick with Marketo or move to something like Blueshift which uses Liquid, which is less useful then Velocity but seems to do more than Handlebars?
Apologies for this not being a question but hoping for some advice on what people are doing to prepare for this change? We were looking to go even more down the dynamic personalization route but from what I can tell Handlebars is a backwards step?