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?
Solved! Go to Solution.
Handlebars does allow platform developers (i.e. not us) to add custom helpers, which it make it less dumb. But it’s still de facto impossible to build everything Velocity offers using Handlebars.
I’m not personally aware of whether Velocity will go away, but we’ll lose countless features if it does.
Handlebars does allow platform developers (i.e. not us) to add custom helpers, which it make it less dumb. But it’s still de facto impossible to build everything Velocity offers using Handlebars.
I’m not personally aware of whether Velocity will go away, but we’ll lose countless features if it does.
Thank you for the insight! We're going through a large merger with another institution that uses Blueshift (which uses Liquid as a scripting language).
I was all in on retaining Marketo for our large organization but now may have to re-think that unfortunately.