Personaliseren met profiel- en subprofieldata

Binnen mailings heb je toegang tot een {$profile} en (optioneel) een {$subprofile} object waarmee je toegang hebt tot alle gegevens van het profiel- en/of het subprofiel. Hierdoor kun je alle gegevens uit je database inzetten om je mailing te personaliseren. De {$subprofile} variabele is beschikbaar bij mailings naar collecties, omdat er alleen dan een subprofiel bestaat. De {$profile} variabele is altijd aanwezig: zowel bij mailings naar databases als naar collecties.

Als je nog niet weet of je template gebruikt gaat worden voor een mailing naar profielen of naar subprofielen, en je daarom ook niet niet weet of je gebruik moet maken van {$profile} of van {$subprofile}, dan kun je ook {$destination} gebruiken. Dit is een alias voor {$profile} of {$subprofile}.

Beschikbare variabelen

Wanneer je een mailing verstuurt naar profielen, kun je gebruikmaken van het {$profile} object. Dit object bevat diverse gegevens van het profiel waaraan het bericht wordt gestuurd. Hieronder vind je de belangrijkste eigenschappen van het {$profile} object:

  • {$profile.id}: De numerieke identifier van het profiel.
  • {$profile.extra}: Extra data van het profiel die alleen via de API kan worden ingesteld.
  • {$profile.secret} / {$profile.code}: De geheime code die bij het profiel is opgeslagen.
  • {$profile.created}: Het tijdstip waarop het profiel is aangemaakt (YYYY-MM-DD hh:mm:ss formaat).
  • {$profile.veldnaam}: Elk veld van het profiel is toegankelijk via deze notatie.
  • {$profile.interessenaam}: Elke interesse van het profiel, met als waarde "yes" of "no".
  • {$profile.collectienaam}: Elke collectie van subprofielen is benaderbaar via deze notatie.
  • {$profile.referrers.databasenaam}: Een optioneel array van profielen uit een andere database die verwijzen naar dit profiel.
  • {$profile.referrers["veldnaam@databasenaam"]}: Verwijzende profielen op basis van een veld en een database.

Voor subprofielen zijn min of meer dezelfde variabale beschikbaar, maar dan iets beperkter:

  • {$subprofile.id}: De numerieke identifier van het profiel.
  • {$subprofile.extra}: Extra data van het profiel die alleen via de API kan worden ingesteld.
  • {$subprofile.secret} / {$subprofile.code}: De geheime code die bij het profiel is opgeslagen.
  • {$subprofile.created}: Het tijdstip waarop het profiel is aangemaakt (YYYY-MM-DD hh:mm:ss formaat).
  • {$subprofile.veldnaam}: Elk veld van het profiel is toegankelijk via deze notatie.

De {$destination} variabele is een alias voor {$profile} of {$subprofile}, afhankelijk of de mailing naar een profiel of een subprofiel wordt gestuurd.

Toegang tot velden

De belangrijkste variabelen zijn natuurlijk de variabelen die toegang geven tot de velden uit de database. Omdat de databasestructuur bij Copernica vrij is, zijn de namen van de variabelen dat ook. Als je database deze velden bevat, zijn bijvoorbeeld dit soort variabelen beschikaar:

  • {$profile.voornaam}
  • {$profile.achternaam}
  • {$profile.woonplaats}
  • {$profile.email}

Je kunt in je template dus dit soort teksten gebruiken:

Beste {$profile.voornaam|escape} {$profile.achternaam|escape},

We hebben een leuke aanbieding voor je.

Interessevelden

Als je interessevelden in je database hebt gebruikt, dan zijn deze ook toegankelijk. Een interesse heeft de waarde 'yes' of 'no', en gebruik je meestal in combinatie met een "if" statement:

{if $profile.voetbal == 'yes'}
    We hebben een leuke aanbieding over voetbal voor je.
{else}
    We hebben een leuke aanbieding voor je.
{/if}

De geheime toegangscode

Profielen en subprofielen hebben een geheime toegangscode die toegankelijk is via {$profile.secret} en {$subprofile.secret}. Dit veld is nodig in combinatie met webformulieren om deze formulieren alvast te voorzien van gegevens van de geadresseerde.

De variabalen {$profile.code} en {$subprofile.code} zijn precies hetzelfde als {$profile.secret} en {$subprofile.secret}.

Toegang tot collecties

Copernica kent een gelaagde databasestructuur waarbij elk profiel meerdere subprofielen kan bevatten. Deze subprofielen zijn toegankelijk via {$profile.collectienaam}. De subprofielen uit de collectie "bestellingen" zijn dus toegankelijk via de variabele {$profile.bestellingen}.

Vaak worden collecties gebruikt in combinatie met {foreach} loops, om door alle items uit de collectie te itereren:

Beste {$profile.voornaam|escape},

Je hebt de volgende bestellingen gedaan:
{foreach $bestelling in $profile.bestellingen}
   {$bestelling.id|escape}: op {$bestelling.datum|escape} heb je {$bestelling.product|escape} besteld.
{/foreach}

Verwijzende profielen

In databases kun je "referrer" velden aanmaken. Dit zijn velden waarmee je naar andere profielen verwijst. Deze velden bevatten het ID van een ander profiel, maar binnen Smarty wordt het automatisch gevuld met de gegevens van dat profiel. Dit biedt allerlei extra personalisatiemogelijkheden.

Veronderstel dat je in de database "klanten" een referentieveld "vader" en "moeder" aanmaakt, waarin je het ID opslaat van iemands vader en/of moeder, dan kun je dit makkelijk gebruiken in de personalisatie:

Beste {$profile.voornaam|escape},

De naam van je moeder is {$profile.moeder.voornaam|escape}.
De naam van je vader is {$profile.vader.voornaam|escape}.

Terugverwijzingen

Andersom werkt het ook, je kunt ook opvragen welke profielen naar de ontvanger verwijzen. Dit kan met {$profile.referrers}. Je moet hierbij aangeven vanuit welke database je de verwijzende profielen wilt halen, in ons geval is dit ook gewoon de "klanten" database:

Beste {$profile.voornaam|escape},

Dit zijn je kinderen:
{foreach $kind in $profile.referrers.klanten}
    {$kind.voornaam|escape}
{/foreach}

Of, als je alleen verwijzingen op basis van een specifiek veld wilt zien:

Beste {$profile.voornaam|escape},

Je bent de moeder van:
{foreach $kind in $profile.referrers["moeder@klanten"]}
    {$kind.voornaam|escape}
{/foreach}

Voor meer informatie en meer voorbeelden van dit soort verwijzingen, zie het artikel over personaliseren in gelaagde databases.