Wil je na het uploaden van een bestand met klanten meteen een mail sturen? Wil je niet steeds via imports mensen uploaden? Dit kan met de CSV-trigger. Door middel van een bepaalde bestandsnaam weet Deployteq direct welke campagne er getriggerd moet worden. De acties die daarna moeten gebeuren bepaal je in die campagne. Op die manier kan je makkelijk systemen aan elkaar koppelen en batch acties ondernemen. 

De CSV trigger is een maatwerk project die voor jullie ingericht kan worden. Wil je dit toevoegen aan jullie portal, laat het ons dan weten via 030-698 8080.

SFTP locatie

Allereerst is er voor de CSV-trigger een SFTP van Deployteq nodig. Wanneer je deze al hebt, kunnen we direct aan de slag, anders maken we er uiteraard een voor je aan. Op de SFTP wordt er een map aangemaakt voor de CSV trigger. Alle andere mappen kunnen uiteraard nog gebruikt worden voor andere doeleinden. We kijken samen met jou wat de indeling zou moeten zijn, maar het zal er ongeveer uitzien als volgt;

  • Root
    • csv upload
      • <brandnaam> (zodat het ook voor meerdere brands gebruikt kan worden) 
        • Active
        • Done
        • Failed
        • Upload
      • <brandnaam 2>
        • etc.

De bestanden worden door jullie in de 'Upload' map gezet. Wanneer er een campagne wordt gevonden met de juiste naam, zal het bestand automatisch verplaatst worden naar Active, waar Deployteq de klanten inleest. Vervolgens als het gelukt is, gaat het bestand naar 'Done'. Wanneer er een fout zit in het bestand, door bijvoorbeeld kolomnamen, gaat het bestand naar 'Failed'. In de notificatie die je ontvangt van dit proces wordt aangegeven wat er fout is gegaan. Anders krijg je een succes mailtje. 

Campagne

Wanneer de CSV trigger is geactiveerd voor jouw brand, krijg je een nieuw campagne object, genaamd 'CSV trigger'. Dit start de campagne op een bestand. Hierachter kan je een campagne bouwen, zoals je gewend bent, met groepen, mails en condities:

Environment variabelen in CSV Trigger object

In het geval dat de environment variabelen welke getoond worden in het CSV Trigger startobject benodigd zijn in de campagne, open dan eenmalig de instellingen van het CSV Trigger startobject, klik op de bevestiging knop en sla je campagne op. Vanaf dat moment zullen deze variabelen beschikbaar zijn in het conditie objecten.


Wanneer de campagne is gemaakt met het CSV trigger startobject kan je deze instellen op een campagne code, die je in je bestandsnaam kan gebruiken. Hiervoor ga je naar het nieuwe menu-item 'CSV campagne triggers' helemaal onderin onder 'Maatwerk'

Hier zie je een overzicht van de campagnes die al zijn ingesteld in jouw brand. De volgende kolommen zie je hier

  • Code
    Dit is de code die gebruikt wordt in jouw bestandsnaam bij de upload. 
  • Teken
    Dit is het scheidingsteken die gebruikt wordt in jouw CSV bestanden.
  • Campagne
    De campagne die wordt getriggerd, zodra een bestand is geüpload
  • Omschrijving
    Dit is jullie eigen omschrijving van de campagne. Hier kan je bijvoorbeeld vermelden welke actie het bestand upload die geïmporteerd wordt. 
  • Iconen
    Met deze iconen kan je acties uitvoeren op de trigger. Van links naar rechts betekenen ze; wijzigen, kopiëren en verwijderen. 

Rechtsboven kan je een nieuwe campagne instelling toevoegen. Hiervoor krijg je een nieuw scherm met wat velden die je kan invullen;

  • Campagne
    Een pulldown waar je alle campagnes vind met het 'CSV trigger' campagneobject
  • Code
    Dit is de code die gebruikt wordt in jouw bestandsnaam bij de upload. 
  • Omschrijving
    Dit is jullie eigen omschrijving van de campagne. Hier kan je bijvoorbeeld vermelden welke actie het bestand upload die geïmporteerd wordt. 
  • Error/ Rapportage e-mailadressen
    De adressen die een rapportage e-mail moeten krijgen wanneer het mis gaat. Hier kan je komma-gescheiden meerdere adressen invullen, bijvoorbeeld marketing en de technische afdeling
  • Error/ Rapportage e-mail onderwerp voorvoegsel
    Dit zetten we altijd vooraan in de rapportage e-mail. Op die manier kan je ook regels toevoegen aan jouw inbox, zodat er een bepaalde actie aanhangt als je deze mails krijgt. Standaard staat hier al wat ingevuld, maar dit is aan te passen per campagne
  • Scheidingsteken importbestand
    Het scheidingsteken die in jullie CSV bestand wordt gebruikt. Hier kan je kiezen voor puntkomma (;), komma (,) of pipe (|).
  • Custom mapping <optioneel>
    Custom mappings zijn een extra toevoeging die gebruikt kan worden als de standaard kolomnamen niet kunnen worden gegenereerd door jullie systeem. Dit wordt later uitgelegd onder 'Custom mappings'.

Sla de instellingen op en je kan aan de slag met het bestand uploaden. 



Bestandsnaam

De bestandsnaam is van groot belang als het gaat om de campagne triggeren. Zoals hiervoor al uitgelegd gebruiken we een code om te identificeren welke campagne moet worden getriggerd. Deze moet weer in jullie bestandsnaam terugkomen, zodat Deployteq weet wat er moet gebeuren met het bestand. 

De bestandsnaam wordt als volgt opgebouwd;
<campagnecode>_<YYYYmmddHHiiss>.csv

De volledige naam in het geval van de handleidingscampagne hierboven wordt dan
HNDL_20190109113212.csv

Aangezien de trigger voor jullie als maatwerk wordt ingesteld, is het mogelijk de bestandsnaam uit te breiden, zolang de karakters voor de eerste underscore maar gebruikt worden voor de aanduiding van de campagne. 

Inhoud van CSV bestand

In het CSV bestand wordt op basis van de kolomtitels bepaald op welke wijze de klanten ontdubbeld moeten worden en de aangeleverde gegevens verwerkt moeten worden. Op basis van een vaste prefix kunnen per klant gegevens worden opgeslagen in campagne velden of beschikbaar gesteld worden als verzendingsvariabele in de e-mail. Verzendingsvariabelen gelden voor een verzending en worden niet opgeslagen in het klantrecord. Deze gegevens kunnen gebruikt worden voor condities in de mail voor het wel of niet tonen van een object of met behulp van Smarty zichtbaar gemaakt worden in de mail (zie hieronder).

Voorbeeld CSV

In het onderstaand voorbeeld een CSV bestand welke geschikt is voor de CSV trigger met ontdubbeling op basis van het veld e-mailadres

Voorbeeld CSV

email;customer_firstname;text_persoonlijk
email1@domein.com;"Voornaam Klant 1";"Dit is een persoonlijke tekst voor klant 1"
email2@domein.com;"Voornaam Klant2";"Dit is een persoonlijke tekst voor klant 2"

Ontdubbeling

Voor het ontdubbelen van de klantgegevens moet minimaal 1 van de onderstaande kolommen bestaan in het CSV bestand:

  • email
    • Zoek de klant op basis van het e-mailadres in deze kolom.
  • clangid
    • Zoek de klant op basis van het Deployteq customerid.
  • externalid
    • Zoek de klant op basis van het klantnummer.

In het geval dat er meerdere ontdubbelingkolommen worden aangeleverd, dan zullen deze in de volgende volgorde worden doorlopen: clangid, email, externalid. Deze is in overleg aan te passen in verband met ontdubbeling op eerst externalid en dan e-mail (koppelingen met CRM o.b.v. extern CRM id).

Prefixes

Vervolgens gebruiken we in het bestand prefixes voor de kolomnamen, zodat Deployteq weet waar de waarden moeten worden opgeslagen. Hieronder worden de verschillende prefixes en hun gebruik uitgelegd. De prefixes die we kennen zijn;

text_<naam> 

Deze variabele worden in de e-mailcontent beschikbaar gesteld als een SMARTY variabele, hiervoor moet de volgende variabele worden toegevoegd in de e- mailcontent: {{load_csv_data}}. Om de waarde van een kolom te tonen, dan kan deze toegevoegd worden met behulp van de volgende variabele:{{$csv_data.<naam>}}. 

Om de waarde van de kolom ‘text_persoonlijk’ te weergeven in de e-mail, zie onderstaand voorbeeld; 

Voorbeeld HTML

<html dir="ltr">
<head>
   <title>Test e-mail</title>
   <!--{{load_csv_data}}→
</head>

<body>
    Beste {{customer field='firstname'}},<br />
   {{$csv_data.persoonlijk}}<br /><br />
   Met vriendelijke groet,<br />
   CSV trigger campagne
</body>
</html>

Het is ook mogelijk om alleen een specifieke variabele in te laden;

Shorthand voorbeeld

<body>
    Beste {{customer field='firstname'}},<br />
   {{load_csv_data field='persoonlijk'}}<br />
   Met vriendelijke groet,<br />
   CSV trigger campagne
</body>


Bovendien kunnen de text_ velden worden gebruikt als conditie voor het tonen van een object in jouw mail. Ga naar de instellingen van jouw object in het template en kies onderin 'Alleen tonen als'. Helemaal onderin zie je hier maatwerk: field selection. Gebruik je bijvoorbeeld de kolomnaam text_blok1 met de waarden 0 of 1 om het niet of wel te tonen van blok 1. Dan vul je bij de instellingen veld 'blok1' is 1: 

In-profile

De bovenstaande oplossing werkt niet met een in-profile campagne object, deze profielconditie kan alleen binnen de e-mail content zelf worden gebruikt.

campaign_<naam>

De waarde van dit veld wordt opgeslagen in de gelijknamige campagne optie op basis van de opgegeven <naam>. Afhankelijk van het type campagneoptie moeten de gegevens als volgt worden geformatteerd: 

  • Tekst: Niet van toepassing

  • Datum: DD-MM-YYYY

  • Tijd: HH:MM:SS

  • Datum/tijd: DD-MM-YYYY HH:MM:SS

  • Getal met decimalen: decimale punt, geen scheiding tussen duizendtallen

Wanneer het campagneveld in de campagne niet bestaat, dan zal een fout optreden. Je krijgt dan de error mail met een campagne veld bestaat niet fout, het bestand wordt vervolgens in de 'Failed' map op de SFTP gezet. Hier kan je kijken of er een foute spelling in het bestand of de campagne wordt gebruikt bijvoorbeeld of dat alle velden zijn aangemaakt. 

customer_<naam>

Dit voorvoegsel kan worden gebruikt om de standaard klantvelden binnen Deployteq bij te werken. Bijvoorbeeld; customer_lastname slaat de waarde in die kolom op in de achternaam van de klant. De verwerking van deze velden gebeurt voordat een klant de campagne doorloopt. 

De volgende veldnamen worden ondersteund: 

  • customer_address
  • customer_address2
  • customer_address3
  • customer_addressnumber
  • customer_addressnumbersuffix
  • customer_alt_address
  • customer_alt_address2
  • customer_alt_address3
  • customer_alt_addressnumber
  • customer_alt_addressnumbersuffix
  • customer_alt_city
  • customer_alt_country
  • customer_alt_emailaddress
  • customer_alt_state
  • customer_alt_zipcode
  • customer_birthday
  • customer_birthplace
  • customer_city
  • customer_companyname
  • customer_contactman
  • customer_country
  • customer_department
  • customer_email_address
  • customer_external_id
  • customer_faxnumber
  • customer_firstname
  • customer_gender
  • customer_homephone
  • customer_initials
  • customer_jobtitle
  • customer_lastname
  • customer_maritalstatus
  • customer_middlename
  • customer_mobilephone
  • customer_pobox
  • customer_prefix
  • customer_state
  • customer_suffix
  • customer_title
  • customer_track
  • customer_website
  • customer_workextension
  • customer_workmobile
  • customer_workphone
  • customer_zipcode

De velden worden als tekst behandeld, met uitzondering van de volgende velden: 

  • birthday: datum in formaat dd-mm-YYYY

  • gender: een van MAN, WOMAN, FAMILY, UNKNOWN

  • maritalstatus: een van SINGLE, MARRIED, DIVORCED, WIDOWED, ENGAGED, COHABITATING, DECEASED

Tevens is het belangrijk om de volgende zaken in acht te nemen: 

  • De kolom 'customer_email_address' mag alleen in de import voorkomen als de kolom 'email' niet voorkomt

  • De kolom 'customer_external_id' mag alleen in de import voorkomen als de kolom 'externalid' niet voorkomt

option_<naam>

Naast de customer_* kolommen die in de csv gezet kunnen worden moet het mogelijk worden gemaakt om option_* kolommen toe te voegen. Deze kolommen moeten de naam krijgen van de customer option velden, bijvoorbeeld 'option_lening_nummer' als de customer option 'lening nummer' is. De waarde in de csv moet vervolgens in het klantoptieveld worden opgeslagen. Als een kolom in de csv niet als klantoptie veld kan worden gevonden wordt de error worden mail gestuurd met de reden een onbekend option_* veld, het bestand wordt vervolgens in de 'Failed' map gezet op de SFTP. Hier kan je kijken of er een foute spelling in het bestand of de campagne wordt gebruikt bijvoorbeeld of dat alle velden zijn aangemaakt. 

Voorbeelden:
  • Naam veld in Deployteq: 'lening nummer'
  • Naam kolom in csv: 'option_lening_nummer'
  • Naam veld in Deployteq: 'leningnummer'
  • Naam kolom in csv: 'option_leningnummer'

group_<naam>

Het is mogelijk om per klant aan te geven of zij lid gemaakt moeten worden of ontkoppelt moeten worden van een groep. Dit is mogelijk door een kolom aan te leveren met de naam group_<naam van de groep>. Daarbij kan het voorkomen dat een groepsnaam niet uniek is in de brand, in dat geval zullen wij de oudste groep hanteren uit de mogelijke groepen. Op klantniveau kan dan opgegeven worden met de waarde 0 en 1 of de klant lid gemaakt kan worden van een groep. Als de groep niet bestaat, dan wordt deze aangemaakt als groep op het eerste niveau van de groepenstructuur.

datamodel_<nameOfTable>.<nameOfColumn>.<u>

Om vanuit de CSV trigger gegevens op te slaan in het datamodel kan de prefix "datamodel_" worden gebruikt. De kolomkop wordt opgebouwd met de volgende gegevens:

  • nameOfTable
    • De naam van de tabel, bijvoorbeeld orders
  • nameOfColumn
    • De naam van de kolom, dit houdt als je meerdere kolommen in het model wilt vullen, dat dit meerdere kolommen zijn in het CSV bestand. Bijvoorbeeld het veld orderNummer.
  • u (Optional)
    • Door een ".u" toe te voegen aan de kolomkop kan aangegeven of de waarde de unieke waarde bevat van de opgegeven tabel. In dit geval is het orderNummer uniek en zou de kolom kop de .u extensie bevatten.


Voorbeeld datamodel:


Op basis van het datamodel zou het CSV bestand als volgt opgebouwd kunnen worden;

CSV voorbeeld datamodel

email;datamodel_orders.orderNummer.u;datamodel_orders.subtotaal;datamodel_orders.btw;datamodel_orders.totaal
"a.vanderkleij@teamitg.com";45872245;325.45;68.35;393.80

Custom mappings

Wanneer het niet mogelijk is bovenstaande kolomnamen te gebruiken, omdat dit in jullie andere systeem niet is in te stellen, dan kunnen we custom mappings gebruiken. Standaard zetten we dit niet aan, aangezien het ook zorgt voor extra werk, maar mocht je het nodig hebben, laat het ons weten bij de implementatie. 

Dit onderdeel is te vinden onder de instellingen van een campagne. Wat je hier gaat doen is per kolomnaam in jouw bestand aangeven hoe de kolomnaam volgens de CSV trigger instellingen zou moeten zijn. 

Voorbeeld

Jullie willen klanten toevoegen op basis van de unieke sleutel e-mailadres. De CSV trigger vraagt in dit geval om een kolomnaam 'email', maar jullie systeem geeft e-mailadres. Dan moeten we dat veld dus gaan mappen.

Kolomnamen in het bestand

e-mailadres;voornaam;tussenvoegsel;achternaam;leningnummer

Kolomnamen volgens de CSV trigger

email;customer_firstname;customer_prefix;customer_lastname;option_leningnummer

De instellingen van de CSV trigger met custom mapping komt er dan als volgt uit te zien;



Hoe krijg ik ook de CSV trigger?

Wil je deze module gaan inzetten of wens je meer informatie, neem dan contact op met salessupport@deployteq.com of bel 030-6988080