“Profile” Object

Within any Zephyr context, the profile object contains a number of useful pieces of data about the current user. This is a sample profile object:
{   
   "id" : "4d915c32cc0c1adbb141b547" ,   
   "email" : "example@example.com" ,   
   "lists" : [ "List A" , "List B"] ,   
   "lists_signup" : { "List A" : 1302864589 , "List B" : 1302164760} ,
   "vars" : { "name" : "Joe Smith" , "gender" : "M"} ,   
   "signup_time" : 1302164760 ,   
   "open_time" : 1311284816 ,   
   "click_time" : 1311521398 ,
   "horizon_time" :  1309366345  
   "purchase_time" : 1309366347 ,   
   "purchases" : [ { 
         "id" : "4e0b584b6763d9eb550002e3" ,       
         "items" : [ { "qty" : 1 ,                     
                       "title" : "Rectangle Earrings Gold " ,                     
                       "price" : 2520 ,                     
                       "id" : "10081-0020" ,                     
                       "url" : "http://example.com/sale/132/product/1917/" ,
                       "images": {"thumb": "https://example.com/path-to-thumb-img.jpg", "full": "https://example.com/path-to-full-img.jpg"}
                       "tags" : [ "jewelry" , "gold" , "earrings"] ,                     
                       "vars" : { "supplier_name" : "Melissa Smith Design"}                    
                     } ,                    
                     { "qty" : 1 ,                      
                       "title" : "Flower Set Steel" ,                      
                       "price" : 2360 ,                      
                       "id" : "10081-0032" ,                      
                       "url" : "http://example.com/sale/132/product/1951/" ,                      
                       "tags" : [ "jewelry" , "stainless-steel" ] ,                      
                       "vars" : { "supplier_name" : "Melissa Smith Design"}}                 
                   ] ,        
          "price" : 4880 ,        
          "qty" : 2 ,        
          "time" : 1309366347}    
   ] , 
   "return_time" : 1485457143 ,  
   "returns" : [ {  
         "id" : "588a46f715dd96dc758b5918",
         "price" : 2520,
         "qty" : 1,
         "time" : 1485457143,
         "items" : [ {  
               "url":"http://example.com/sale/132/product/1917/",
               "price":2520,
               "qty":1,
               "id":"10081-0020",
               "order_id" : "4e0b584b6763d9eb550002e3"            } ]
    } ], 
   "purchase_incomplete" : {        
          "id" : "4e2af8356763d95a5e000b6d" ,        
          "items" : [ {             
                "qty" : 1 ,             
                "title" : "4 Lattice Kitchen Towels " ,             
                "price" : 1400 ,             
                "id" : "10027-0035" ,             
                "url" : "http://example.com/sale/570/product/4363/" ,             
                "tags" : [ "kitchen" , "towels"] ,             
                "vars" : { "supplier_name" : "Acme Group"}         
          }] ,         
          "price" : 1400 ,         
          "qty" : 1 ,         
          "time" : 1311438901    
   }
   "keys" : {
          "extid" : "123456789",
          "sms" : "+17775551212",
          "twitter" : "myhandle",
   }
}
These are the fields contained in the profile object:
FieldTypeDescription
idstringUnique identifier for this particular user
emailstringEmail address of this user; also part of the global scope as {email}
listsarrayList of the natural lists that this user belongs to
lists_signupobjectThe signup times for each particular list
varsobjectVars set on this particular user; vars are also part of the global context scope
optoutstringCurrent optout status of the user; can be set to all , basic or blast.
signup_timeintegerUNIX timestamp of the earliest list signup time of this user
open_timeintegerUNIX timestamp of the most recent time the user last opened a message
click_timeintegerUNIX timestamp of the most recent time the user clicked a message
horizon_timeintegerUNIX timestamp of the most recent time the user viewed a webpage on your site (Personalization Engine required)
purchase_timeintegerUNIX timestamp of the most recent purchase by the user
purchasesarrayList of the last 100 completed purchases of the user
return_timeintegerUNIX timestamp of the most recent return by the user
returnarrayList of the last 100 purchase returns of the user
purchase_incompleteobjectThe current contents of the user’s shopping cart
keysobjectAdditional key values for the profile (requires activation via your Account Manager), e.g. extid, fb, twitter, sms, etc.
To access the values of these fields in the profile object, you can use “dot” . notation.

Examples

Check if a user is opted out. 
{if profile.optout}
   Click here to opt back in. 
{/if}
Check if a subscriber is a member of a list, using the contains() function:
{contains(profile.lists,"Main")}
In a template, call in today’s purchases. {profile.purchases} should contain all carts that a user has ever checked out with. Items refer to the contents of that cart at checkout. If you wanted to get all items purchased for a particular day you might do something along the lines of:
{items = []}
{todays_carts = filter(profile.purchases, lambda p: date("yyyy-MM-dd",p.date) == date("yyyy-MM-dd"))}
{foreach todays_carts as cart}
    {foreach cart.items as item}
        {items = items + list(item)}
    {/foreach}
{/foreach}
In a template, call in the most recent purchase:
{purchases = sort(profile.purchases, "-time")}
{purchases[0]} {* most recent purchase *}
User vars (a.k.a. custom fields) can be referenced one of two ways (either produces the same behavior):
{customvariable} or {profile.vars.customvariable}