Introductie

CampaignSuite zorgt voor een aantal veranderingen in zowel de manier waarop een formulier op uw website wordt getoond, als instellingen bij de formulieren in Wordpress.

Formulier op de website

  • CampaignSuite zorgt ervoor dat er een laad-scherm verschijnt over uw formulieren zodat de bezoeker niet per ongeluk meerdere keren het formulier kan versturen
  • CampaignSuite geeft de mogelijkheid om een laad-tekst en laad-afbeelding te tonen bij het versturen van een formulier
  • Adresvelden kunnen een automatische postcode checker bevatten door een simpele instelling bij het veld
  • En meer..

Bewerken van formulieren

  • Een keuze uit specifieke CampaignSuite betalingsvelden waarmee u binnen een paar seconden een donatie formulier kunt opmaken.
  • Er kunnen instellingen bij komen om velden te mappen aan software van derden (zoals Salesforce, Mautic, Pardot en Dynamics)
  • Er kunnen extra E-commerce instellingen gedaan worden na transacties in formulieren
  • Er kunnen diverse Feed Actions ingesteld worden (dat zijn acties die uitgevoerd kunnen worden na het versturen van een inzending). Deze kunnen ook custom voor u gemaakt worden door Gopublic. 
  • Er kunnen aparte meldingen (zoals e-mail notificaties) ingesteld worden na succesvolle transacties (Converse en Findock)
  • En meer…

In het artikel Formulier bewerken gaan we eerst aan de slag met het maken van een eenvoudig donatie formulier. In dit artikel leggen we enkele basis functionaliteiten uit van Gravity Forms om u op weg te helpen bij het maken van een formulier.

Formulier bewerken

Dit artikel maakt gebruik van een simpel test formulier. Om dit formulier te gebruiken kan je onderstaand bestand downloaden en importeren in Gravity Forms:

Pak dit bestand uit en importeer het in Gravity Forms. Er zal een nieuw formulier gemaakt worden met de naam Simpele donatie.

Dit formulier is opgebouwd uit 3 pagina’s:

  1. Kies een frequentie en bedrag
  2. Vul NAW gegevens in
  3. Kies een betaalmethode

De volgende artikelen zullen enkele functies behandelen van Gravity Forms die gebruikt kunnen worden bij dit soort formulieren.

CampaignSuite velden

Wanneer CampaignSuite is geactiveerd verschijnt er een extra blok met velden bij het bewerken van een formulier: CampaignSuite velden. Dit zijn velden die specifiek gemaakt zijn voor formulieren met een betalingsoptie. De velden waaruit gekozen kan worden zijn:

  • Frequentie
    Dit veld genereert een radio veld met de verschillende betaalfrequenties. Als u dit veld in uw formulier sleept heeft u vervolgens de mogelijkheid om opties aan of uit te vinken. Op deze manier is het bijvoorbeeld mogelijk om alleen Eenmalig en Maandelijks te tonen. Het is tevens mogelijk om eigen frequenties toe te voegen (mits deze ondersteunt worden door de partij van derden die verantwoordelijk is voor de betalingen).
  • Bedrag opties
    Dit is een voorgedefinieerd veld met 3 bedragen waaruit gekozen kan worden. Het is hierbij belangrijk dat de waarde van het veld een getal is (zonder een valuta teken). U bent vrij om deze bedragen te wijzigen of nieuwe bedragen toe te voegen.
  • Totaal bedrag
    Bij een financieel formulier is het belangrijk om één veld te hebben waar het definitieve bedrag in komt te staan. Gebruik het Totaal bedrag veld om meerdere Bedrag opties velden met voorwaardelijke logica af te vangen. Dit Totaal bedrag veld is verborgen maar zal altijd gevuld worden met een bedrag wat gekozen wordt of bij een Anders-optie ingevuld wordt.
  • Betaalmethode
    Dit veld genereert een radio veld met verschillende betaalmethodes waaruit een donateur kan kiezen. U kunt hier opties aan- of uitvinken om in uw formulier te tonen.
Logica tussen frequentie en betaalmethode

Technisch gezien is niet mogelijk om periodiek met Ideal te betalen. Daarom zorgt CampaignSuite er automatisch voor dat alle niet periodiek ondersteunende betaalmethodes (Ideal, Paypal, Sofort, Creditcard en Bancontact) worden verborgen als men periodiek doneert. Deze instelling kan gewijzigd worden in de CampaignSuite instelling onder het tabblad Salesforce.

  • Bank keuze
    Dit veld genereert een dropdown met de beschikbare banken waaruit een donateur kan kiezen. Het is mogelijk om zelf banken toe te voegen mits de value wordt ondersteunt door de payment provider.
  • Adres (NL)
    Dit veld genereert een serie van velden die een Nederlands adres vormen. 
    – Postcode
    – Huisnummer
    – Toevoeging
    – Straat
    – Stad
    Tevens zit er automatisch een postcode checker op. Zodra er een postcode en huisnummer worden ingevuld, zullen de straat en stad automatisch aangevuld worden.
  • Globale optin
    Dit veld toont een checkbox optie voor een optin op bijvoorbeeld een nieuwsbrief. Uiteraard zal dit veld dan nog gemapped moeten worden met een veld in een CRM.

Voorwaardelijke logica

Voorwaardelijke logica kan gebruikt worden op veld-niveau. Dat houdt in dat je velden kunt verbergen of tonen op basis van keuzes/waardes van andere velden. Deze instelling is te vinden onder het tabje Geavanceerd van een veld.

Bovenstaand voorbeeld zegt:
Toon dit veld als er aan alle voorwaarde wordt voldaan:
– Als het veld Frequentie gelijk is aan Eenmalig

Je kunt er ook voor kiezen om meerdere voorwaarden toe te voegen. In het voorbeeld formulier is op verschillende plekken gebruik gemaakt van deze handigheid. Onder andere bij het IBAN veld. Deze mag alleen worden getoond als er gekozen is voor de betaalmethode Debitbetaling.

Ook op de eerste pagina van ons voorbeeld formulier wordt voorwaardelijke logica toegepast op de bedragen. De donateur ziet andere bedragen voor een eenmalige frequentie dan bijvoorbeeld een maandelijkse.

Postcode checker

CampaignSuite heeft een ingebouwde Postcode checker welke gebruikt kan worden in elk Gravity Forms formulier. Standaard staat de Postcode checker al geactiveerd op het CampaignSuite veld Adres (NL). Maar het is ook mogelijk om dit toe te passen op eigen adres velden door middel van Aangepaste CSS-klasse op velden.  

Stel uw formulier bevat de velden zoals in de afbeelding hiernaast.

Om de Postcode checker hier op in te stellen moet u voorgedefinieerde CSS-klasse instellen op elk veld:
– zipcode
– housenumber
– addon
– street
– city

Stel dat in bij het veld Custom CSS Class:

Als alle vijf de velden goed ingesteld zijn zal de Postcode checker automatisch geactiveerd worden waneer er ten minste een postcode en huisnummer worden ingevuld.
Let op

De Postcode checker wordt niet geactiveerd in de Voorbeeld modus van het formulier in de Wordpress admin.

Masker invoer

Invoermaskers bieden een visuele gids waarmee gebruikers gemakkelijker gegevens in een specifieke indeling kunnen invoeren, zoals datums en telefoonnummers. Maskers kunnen ingevuld worden op Tekstregels. Eigenlijk forceer je de bezoeker een formulier veld op een bepaalde manier in te voeren. Denk hierbij aan een postcode (eerst vier nummers en dan twee letters) of een Nederlands telefoonnummer (tien cijfers). CampaignSuite voegt standaard het masker IBAN toe waar u uit kunt kiezen. Dit is in te stellen in het tabblad Uiterlijk van een veld:

Mogelijke maskers kunnen zijn:

Beschrijving Masker
Postcode
9999 aa
Datum
99-99-9999
Telefoonnummer
9999999999

Prefill HTML en textarea

CampaignSuite maakt het mogelijk om een tekstvak of HTML veld in uw formulier automatisch te laten vullen met waarden uit andere velden in het formulier. Dit kan vooral handig zijn om op uw laatste pagina van het formulier een uitgebreide samenvatting te tonen van de ingevulde informatie van het formulier.
Let op

Deze functionaliteit werkt alleen als uw formulier uit meer dan 1 pagina bestaat. De velden worden namelijk gevuld wanneer de bezoeker van pagina wisselt in het formulier.

Onderstaande afbeeldingen tonen twee voorbeelden van de manier waarop je een tekstvak en HTML veld kunt vullen.

De waarden van de velden kunnen worden ingevoerd door de syntax: {input_field_id} Waarbij field_id het ID is van het veld in uw formulier.
Wist u dat?

Als u de parameter ?cs_post=true toevoegt aan de URL van de pagina waar uw formulier op staat, ziet u (wanneer u op de knop onderaan het formulier klikt) precies welke veld ID’s en waarden u kunt gebruiken bij het prefillen van tekstvakken en HTML velden.

Timber plugin

Het is ook mogelijk om bepaalde logica toe te passen op de code in de velden. Als u de plugin Timber heeft geïnstalleerd is het ook mogelijk om de gebruik te maken van .twig logica. Kijk op deze website voor een uitleg van de mogelijkheden. Enkele voorbeelden van .twig logica zijn:
				
					{% if "{input_1}" == "Ideal" %}
    Dit is een Ideal betaling
{% else %}
    Dit is geen Ideal betaling
{% endif %}				
			
				
					{% switch "{input_3}" %}
    {% case 'Ideal' %}
        <p>Ideal betaling</p>
    {% case 'Direct debit' %}
        <p>Machtiging</p>
    {% case 'Creditcard' %}
    {% case 'Sofort' %}
        <p>Andere betaalmethode</p>
    {% default %}
        <p>Geen betaalmethode bekend</p>
{% endswitch %}				
			

Verberg vooraf ingevulde velden

Bij elk Gravity Forms veld kan u er voor kiezen om deze te verbergen als de waarde ervan vooraf ingevuld is. Doorloop onderstaande stappen om dit in te stellen bij een veld:
  1. Bewerk een formulier
  2. Klik op een veld
  3. Klik in de rechterkolom op het tabblad Geavanceerd
  4. Klik op de optie Verberg indien vooraf ingevuld
Hiermee is nu aangegeven dat het veld wordt verborgen als de waarde vooraf is ingevuld. Dat geldt ook voor de Gravity Forms optie Toestaan dat veld dynamisch wordt gevuld. Wanneer u dit instelt zal het veld ook worden verborgen als daarvan de waarde in de URL is meegegeven.

Marketing Cloud en Salesforce

Deze functie werkt ook als de waarde van de velden door data worden ingevuld vanuit Marketing Cloud of Salesforce

Formulier instellingen

CampaignSuite voegt een drietal extra opties toe aan de instellingen van een formulier.
Deze zijn allemaal te vinden onder Instellingen -> Formulierinstellingen -> Formulieropties

  • Formulier loading-overlay
    Wanneer u in CampaignSuite heeft ingesteld dat er een witte loading-overlay getoond moet worden voor alle formulieren, dan kunt u hier specifiek bij dit formulier aangeven om dat niet te doen.
  • Formulier laden tekst
    Vul hier een tekst in om te tonen wanneer het Gravity Forms formulier aan het laden is.
  • Formulier laden tekst kleur
    Kies hier een kleur voor de tekst die wordt getoond aan de hand van een kleurenkiezer.
  • Formulier laden afbeelding
    Voer hier optioneel een link in naar een online .gif afbeeldingen om onder de laadtekst te tonen.
Let op

De “laden tekst”, “laden tekst kleur” en “laden afbeelding” werken alleen als u bij de CampaignSuite instellingen onder het tabblad Gravity Forms heeft aangegeven dat er een witte overlay geladen moet worden. Anders zullen de laadtekst en de afbeelding niet getoond worden.

Meldingen

Wanneer een bezoeker een formulier heeft voltooid kan er een melding verstuurd worden via de mail. Bij het aanmaken van een nieuw formulier wordt er standaard een melding aangemaakt voor de Wordpress admin (Beheerdersmelding). Deze melding stuurt een e-mail naar het admin-adres van Wordpress met als onderwerp Nieuwe inzending van {form_title}. Deze melding wordt direct verstuurd als de inzending wordt opgeslagen.

Zodra CampaignSuite is geactiveerd komen er vier extra ‘momenten’ bij waaruit je kunt kiezen om een melding te laten versturen:

  1. CampaignSuite betaling is voltooid
    Wanneer de status van een betaling op voltooid wordt gezet (Collected) zal deze melding verstuurd worden.
  2. CampaignSuite betaling is mislukt
    Wanneer de status van een betaling op mislukt wordt gezet (Failed) zal deze melding verstuurd worden.
  3. CampaignSuite betaling is in behandeling
    Wanneer de status van een betaling in behandeling is (Pending) zal deze melding verstuurd worden.
  4. CampaignSuite betaling is geannuleerd
    Wanneer de status van een betaling op geannuleerd wordt gezet (Cancelled) zal deze melding verstuurd worden.

Op deze manier is het dus mogelijk om pas een e-mail te versturen naar een donateur op het moment dat de betaling ook daadwerkelijk succesvol was.

Salesforce

Zodra CampaignSuite een verbinding heeft opgezet met Salesforce verschijnt er bij elk formulier onder Instellingen een tab genaamd Salesforce. Hier kunnen alle instellingen gedaan worden voor de verbinding naar Salesforce. Denk hierbij aan:

  • Het aanmaken van een CampaignMember object
  • Plauti Duplicate Check opties instellen
  • Betalingsvelden koppelen voor een transactie naar Converse of Findock
  • Synchronisatie van CampaignMember objecten of Memberships
  • Mappen van Contact en Account velden

In deze documentatie zullen we langs alle opties gaan en uitleggen wat u ermee kunt doen.

Verbinding maken

De verbinding met Salesforce wordt altijd gemaakt wanneer de bezoeker het formulier helemaal heeft ingevuld. Behalve wanneer u het formulier vooraf in wilt vullen Contact gegevens (zie het artikel Prefillen o.b.v. ContactId voor meer informatie hierover). Geef bij de Salesforce instellingen van het formulier aan dat er een Salesforce verbinding gemaakt moet worden.
  • Bestemmings-ID Kies hier één van de beschikbare bestemmingen uit SalesForce. Een bestemming is een verplicht veld bij een transactie naar Converse.
  • Campagne-ID Kies een campagne uit Salesforce om of een transactie aan te koppelen of een Contact (als deze aangemaakt of gevonden wordt). Een campagne is ook verplicht bij een transactie naar Converse.
  • Creëer Campaign Member Als u deze optie aanvinkt zal er een CampaignMember object aangemaakt worden nadat de bezoeker het formulier in heeft gevuld. Als het Contact reeds een lid is van de campagne, dan zal er niks gebeuren.
  • Verwijder inzending direct Het is mogelijk om bij een formulier in te stellen dat de aangemaakt inzending direct verwijderd moet worden nadat de bezoeker het formulier heeft ingevuld. Dit wordt vaak gebruikt bij Preference centers. Daarmee kan bijvoorbeeld een Contact zijn/haar gegevens updaten (of nieuwsbrief inschrijvingen). Om te voorkomen dat er teveel inzendingen komen, kunnen deze direct verwijderd worden. LET OP: dit kan niet ongedaan gemaakt worden.
Afhankelijk van uw Customer Payment Management platform (Converse of Findock) verschijnen er nog enkele opties in deze lijst.

Converse

  • Sta ontdubbeling toe Standaard staat deze optie op Ja en is gekoppeld aan het Converse API veld AllowDeduplication.
  • Sta gegevensverrijking toe Standaard staat deze optie op Ja en is gekoppeld aan het Converse API veld AllowDataEnrichment.

Findock v1

  • Contact opties Kies hier wat er moet gebeuren als Findock een bestaand Contact vindt. Overschrijven, vul alleen lege velden of doe niets
  • Account opties Kies hier wat er moet gebeuren als Findock een bestaand Account vindt. Overschrijven, vul alleen lege velden of doe niets
  • Sta ontdubbeling toe Standaard staat deze optie op Ja en is gekoppeld aan het Findock API veld allowDeduplication.
Let op

De Converse en Findock optie zoals hierboven vermeld zijn, worden verborgen zodra u in de CampaignSuite instellingen kiest om gebruik te maken van de Plauti Duplicate Check App. Dat komt omdat de App dan alle logica overneemt van het opslaan van het Contact en Account en niet Converse of Findock.

Betalingsvelden

Wanneer er een betaling gedaan moet worden in het formulier geeft u dat aan bij het blok Betalingsvelden. Het is de bedoeling dat u de juiste Gravity Forms velden gaat koppelen aan de instellingen velden. Bij betalingsvelden zijn dat:

  • Bedrag
    Koppel hier een veld wat als waarde altijd een getal heeft. Dit kan een tekstveld zijn waar je alleen een nummer in kunt vullen of een radio veld met bedrag keuzes. Als er meerdere radio velden zijn met bedragen (zoals eenmalig of maandelijks) koppel dan altijd het Totaal bedrag veld hier.
Financieel of niet-financieel

Een formulier controleert op basis van dit Bedrag veld of een het een transactie moet maken of niet. Dat kan zijn wanneer dit veld niet is gekoppeld of wanneer de waarde van het gekoppelde veld 0 is. Dan gaat de inzending automatisch verder als niet-financiële inzending.

  • Betaalmethode
    Koppel hier een veld waar men een betaalmethode kan kiezen. De waardes van dit veld moeten altijd één van de volgende waardes zijn: Ideal, Direct debit, Creditcard, Sofort, Bancontact of Paypal.
    Het maakt niet uit wat de labels zijn, als de waardes maar gelijk zijn aan één van de bovengenoemde opties.
  • Frequentie
    Koppel hier een veld waar men kan kiezen uit een betaal frequentie. De waardes van dit veld moeten altijd één van de volgende waardes zijn: One-time, Monthly, Quarterly of Yearly.
    Het maakt niet uit wat de labels zijn, als de waardes maar gelijk zijn aan één van de bovengenoemde opties.
  • Bank selectie
    Koppel hier een veld waar men kan kiezen uit een bank. De opties die ondersteunt worden zijn: 
    – ABN Amro (ABNANL2A)
    – ASN Bank (ASNBNL21)
    – ING (INGBNL2A)
    – KNAB bank (KNABNL2H)
    – Rabobank (RABONL2U)
    – Regiobank (RBRBNL21)
    – SNS Bank (SNSBNL2A)
    – Triodos bank (TRIONL2U)
    – Van Lanschot (FVLBNL22)
  • IBAN
    Koppel hier een veld waar men het IBAN nummer kan invoeren van zijn/haar bank.
  • Naam rekeninghouder
    Dit veld is niet verplicht om te koppelen maar kan optioneel gekoppeld worden aan een tekstveld waar de bezoeker een naam in kan vullen van de rekeninghouder. Als die veld niet gekoppeld wordt of leeg blijft zal CampaignSuite automatisch de voornaam en achternaam invullen van de inzender.
  • Dynamische bestemming
    Het is (naast een vaste bestemming) ook mogelijk om een veld te koppelen waar de donateur kan kiezen voor een bestemming. Maar hier een dropdown veld van met bij de opties als Label een naam van de bestemming en als waarde (value) het bestemmings-ID uit Salesforce. Op deze manier kunnen dynamisch donaties gekoppeld worden aan bestemmingen.
  • Dynamische campagne
    Dit veld werkt hetzelfde als het veld Dynamische bestemming. Koppel hier een dropdown waar de donateur kan kiezen uit verschillende campagnes.
  • Account Record Type
    Het is mogelijk om in uw formulier te vragen of de donateur een particulieren donatie doet of namens een organisatie.
    Koppel hier een veld waar de bezoeker een keuze heeft uit Particulier of Organisatie. Zorg er voor dat de waarden van de keuzes altijd is Household of Organisation.
Let op

De waardes van het Account Record Type kunnen per Salesforce instantie afwijken. Neem voor de zekerheid contact op met uw implementatie partij om na te gaan wat de exacte naamgevingen zijn van het Account Record Type.

Converse

Converse is de voorloper van Findock en maakt het mogelijk om via hun API endpoints Relaties en Transacties naar Salesforce te sturen. Deze dienst maakt het voor CampaignSuite mogelijk om formulier inzendingen als transactie of relatie naar SalesForce te versturen. Het verloop van een dergelijk verzoek kan verschillen als je gebruik maakt van Plauti Duplicate Check of niet. Wanneer u Plauti niet gebruikt ziet de flow van Converse er zo uit:

Gravity Forms stuurt een inzending naar de API van CampaignSuite. Deze bepaalt o.b.v. de velden en waarden die hij binnen krijgt of het een transactie is of niet. Converse heeft aparte endpoints die aangeroepen moeten worden voor een transactie of relatie.
In dit scenario zal altijd gekozen worden voor òf de Relation API òf de Transaction API. 

Relation API

In dit geval worden er alleen een Account en Contact aangemaakt of aangepast. CampaignSuite krijgt altijd als reactie van de Relation API een Contact ID en een Account ID terug. Deze waarden zijn ook terug te vinden bij de inzending binnen Gravity Forms in de rechter kolom.

Transaction API

Bij een transactie worden ook Contact en Account gegevens naar Converse gestuurd maar ook transactie waarden zoals bedrag, frequentie en betaalmethode. Converse gaat op zijn beurt allerlei acties uitvoeren om het Contact en Account netjes weg te schrijven om vervolgens een betalingsverzoek aan te maken bij de gekoppelde Payment Provider (bijvoorbeeld Mollie of Buckaroo). CampaignSuite krijgt naast een Contact ID en een Account ID ook een Installment ID (bij eenmalige transacties) of Recurring ID (bij periodieke transacties). Deze informatie is altijd terug te vinden bij de inzendingen van Gravity Forms:

Duplicate Rules Salesforce

Bij het gebruik van de Converse Relation API zal Converse gebruik maken van de Salesforce Duplicate Rules die u heeft ingesteld binnen het CRM.

Wanneer u Plauti Duplicate Check gebruikt zal het schema er als volgt uitzien:

Niet financieel

Bij een niet financiële inzending zal CampaignSuite alleen contact maken met de Plauti Duplicate Check App. CampaignSuite ontvangt dan een Contact ID en Account ID en stopt daarna de flow.

Financieel

Eerst zal CampaignSuite via de Plauti Duplicate Check App het Contact en Account afhandelen. Daarna zal CampaignSuite de Transaction API aanroepen met alleen het Contact en Account ID en uiteraard de transactie velden en waarden. 

In alle gevallen zullen alle ID’s die CampaignSuite terug krijgt van Converse of de Plauti Duplicate Check App opslaan bij de inzending.

Webhook betalingsstatus

In tegenstelling tot Findock heeft Converse geen automatische Webhook die ervoor zorgt dat CampaignSuite een seintje krijgt van Salesforce als er een wijziging plaatsvindt in de status van een Installment. Daarom zal CampaignSuite een uur lang elke vijf minuten de status ophalen van het aangemaakt Installment. Zodra dit Collected is zal CampaignSuite stoppen met controleren. Op deze manier zorgt CampaignSuite er voor dat de status van de betalingen in Gravity Forms gelijk zijn aan de betalingen in Salesforce.

Findock v1 en v2

Findock is beschikbaar in versie 1 en versie 2. Het grootste verschil tussen de versies zit vooral in de snelheid van het afhandelen van een API verzoek.

Findock v1

Bron: Findock documentatie

Bovenstaande afbeelding toont de flow van een API verzoek naar Findock v1. Samengevat komt het er op neer dat er gelijk na het API verzoek alle flows en acties binnen Salesforce uitgevoerd worden. Denk hierbij aan het verwerken van het Contact en Account, het opslaan van transactie objecten en het verzoek indienen en afhandelen bij de Payment Service Provider. Dit zorgt er voor dat het lang kan duren voordat CampaignSuite een reactie terug krijgt van de API.

Findock v2

Bron: Findock documentatie

Bij Findock v2 krijgt CampaignSuite zo snel mogelijk een reactie terug van Findock zodat de API call heel snel afgerond kan worden. Terwijl de donateur aan het betalen is worden achter de schermen in SalesForce alle benodigde acties uitgevoerd waaronder het aanmaken/aanpassen van Contacts en Accounts. Zodra deze acties voltooid zijn stuurt Findock middels een Webhook een seintje naar CampaignSuite zodat daar alle benodigde ID’s opgeslagen kunnen worden.

Schematisch zou dat er als volgt uit zien:

Neem contact op met uw Salesforce implementatie partij om een migratie te doen van v1 naar v2 in SalesForce. Binnen CampaignSuite kunt u eenvoudig tussen v1 en v2 schakelen zonder extra instellingen.

Webhook

Findock v1 en v2 maken allebei gebruik van Webhooks. Dat betekent dat ze allebei een seintje terug geven aan de website wanneer er een status veranderd van een betaling. CampaignSuite ontvangt deze seintjes en verwerkt ze bij de inzendingen van Gravity Forms. Op deze manier zie je bij de inzendingen altijd de juiste status van een betaling.

Plauti Duplicate Check

Standaard gebruikt Salesforce zijn eigen Duplicate Rules wanneer CampaignSuite communiceert met Converse of Findock. Een simpel voorbeeld is bijvoorbeeld dat je kunt instellen dat een het e-mailadres van een Contact uniek moet zijn. Converse en Findock zullen dan duplicaten zoeken o.b.v. een e-mailadres.

Als u in CampaignSuite heeft aangegeven dat Plauti Duplicate Check gebruikt moet worden, zal CampaignSuite in sommige gevallen eerst langs deze App gaan zodat de Duplicate Rules daarvan gebruikt worden.

U heeft de mogelijkheid om per formulier in te stellen wat de score voor scenario’s moeten zijn. Meer informatie over scores en scenario’s kunt u vinden in de documentatie van Plauti. Om deze functie te kunnen gebruiken is het wel belangrijk dat het scenario toegepast os op DATA API!

De threshold in de DC Setup van uw Salesforce instantie geeft alleen aan vanaf welk matching percentage een record als duplicate bestempeld wordt. Met de Duplicate Score in CampaignSsuite kan u aangeven vanaf welk matching percentage u een bestaande record wilt updaten.

Voorbeeld:
U heeft de Duplicate Check Threshold op 75% staan en Duplicate Score in CampaignSuite op 90. Wanneer u een record inschiet via CampaignSuite, dan wordt het scenario gebruikt om te kijken of er een duplicaat is. Stel er is een duplicaat record met een matching percentage van 80% dan wordt er een nieuwe record aangemaakt (die wel als een duplicate beschouwd wordt) en wordt deze in een DC Job geplaatst.
Als er een matching percentage van 90% of hoger was, dan wordt het bestaande record geupdate (doordat de Duplicate Score op 90 staat).

Als een formulier een afwijkende Score moet gebruiken dan de instellingen die u heeft gedaan bij CampaignSuite, dan kan u dat hier instellen. Schakel deze optie dan in en voer nieuwe scores in.

Synchronisatievelden

Synchronisatievelden kunnen worden gebruikt om een sync te maken tussen een Gravity Forms checkbox veld en CampaignMember objecten of soco__Membership__c objecten in SalesForce. Beide objecten in Salesforce worden vaak gebruikt voor bijvoorbeeld abonnementen of nieuwsbrief inschrijvingen. Daarom kan deze feature van CampaignSuite met name gebruikt worden voor een “Preference center” waar iemand aan kan geven welke nieuwsbrieven hij/zij nog wilt ontvangen.

Checkbox veld

Als u een veld koppelt voor synchronisatie, dan moet dat een checkbox veld zijn. Deze ziet dan bijvoorbeeld zo uit:
Het belangrijkste is dat de de gegevens in de kolom Waarde exact hetzelfde is als het ID in Salesforce. CampaignMember Wanneer u een CampaignMember veld koppelt moeten hier de ID’s van de Campagnes in staan. Membership Wanneer u een Membership veld koppelt moeten hier de ID’s van de Products in staan.

Prefillen

Het is ook mogelijk om een formulier met synchronisatievelden te laten prefillen met gegevens uit Salesforce. Daarvoor is het nodig om in de URL van de pagina waar het formulier op staat als parameter ?contact={ContactId} mee te sturen. Meer informatie hierover kan u vinden in het artikel Prefillen o.b.v. ContactID.

Salesforce objecten

In dit gedeelte van de Salesforce instellingen heeft u de mogelijkheid om de velden van Salesforce objecten te koppelen aan velden in uw Gravity Forms formulier. Op deze manier weet CampaignSuite precies welke informatie in welk veld van welk object opgeslagen moet worden.

Momenteel worden er 4 objecten ondersteunt om hier te koppelen:

1. Contact

Alle velden van het object Contact uit Salesforce worden hier getoond en kunt u koppelen aan een Gravity Forms veld. 

2. Account

Alle velden van het object Account uit Salesforce worden hier getoond en kunt u koppelen aan een Gravity Forms veld. 

3. Niet-debet velden

Het object wat hier gekoppeld kan worden is afhankelijk van de Salesforce configuratie van de Payment Connector (Converse, Findock, NPSP, etc). In de regel moet u hier denken aan het Installment object zoals cpm__Installment__c of soco__Installments__c. Alle velden hiervan zullen dan hier getoond worden zodat u deze kunt vullen met een waarde uit het formulier.

4. Machtiging

Dit object hangt ook (net zoals het niet-debet veld) af van de Payment Connector. Objecten waar u kunt denken zijn bijvoorbeeld soco__Payment__c, soco__Agreement__c of cpm__Recurring_Payment__c.

Wist u dat?

Door middel van de toets combinatie ctrl+shift+s is het mogelijk om deze lange lijsten van velden te filteren op alleen de gekoppelde velden. Zo krijgt u in één opslag te zien welke velden u heeft gekoppeld.

Prefillen o.b.v. ContactID

Als CampaignSuite een verbinding heeft gemaakt met Salesforce is het mogelijk om een formulier te prefillen met waardes van een Contact of Account uit Salesforce.

Uiteraard moet u hiervoor bij de instellingen van het formulier bij Salesforce eerste de juiste velden aan elkaar koppelen onder Salesforce objecten. Op deze manier weet CampaignSuite welke informatie in welke velden getoond moeten worden.

Om alle gegevens op te halen uit Salesforce voegt u simpelweg het ID van het Contact toe aan de URL:

https://www.website.nl/formulier?contact={ContactId}

Vervang in de URL {ContactId} door een ID uit Salesforce.

Het is technisch ook mogelijk om deze controle veiliger te maken door meerdere velden verplicht in de URL te laten zetten (zoals Email). Dan zoekt CampaignSuite naar het Contact waar het ID overeenkomt en het e-mailadres. Neem contact op met Gopublic als u deze aanvulling wenst.

Mautic

Mautic is een volwaardig marketing automation systeem wat is in te zetten in B2B en B2C. Oneindig veel verschillende marketing taken kunnen met Mautic worden geautomatiseerd. Van het simpel door sturen van een formulier tot complexe leadnurturing of remarketing / upsell campagnes.

CampaignSuite biedt de mogelijkheid om een Gravity Forms inzending naar een Mautic formulier te versturen. Op deze manier is het mogelijk bezoeker een start te laten maken met bijvoorbeeld een journey in Mautic.

Als u in Mautic contactvelden koppelt aan de formuliervelden, worden automatisch inzending gekoppeld aan nieuwe of bestaande contacten (leads) in Mautic.

Velden koppelen

Schakel de verbinding met Mautic om CampaignSuite een inzending aan te laten maken in een Mautic formulier. Kies vervolgens één van de Mautic formulieren. Om de Mautic velden op te halen klikt u op de button Refresh.

In de linker kolom staan alle velden van Gravity Forms en rechts in elke dropdown de velden van het Mautic formulier. Koppel vervolgens alle benodigde velden aan elkaar.

Bij Overige instellingen kunt u het Gravity Forms Entry-ID koppelen en het veld waar een betaalstatus in moet worden opgeslagen. Koppel deze velden als u ervoor wilt zorgen dat de status van een betaling ook naar Mautic gestuurd wordt.

Let op

U moet de velden Gravity Forms Entry-ID en Update betalingsstatus koppelen om ervoor te zorgen dat een verandering van een status goed naar Mautic gestuurd wordt.

Pardot

Pardot is een Salesforce applicatie die specifiek is ontworpen voor B2B marketing automation. Met Pardot krijgen marketing- en salesafdelingen de beschikking over een reeks krachtige tools om data te gebruiken voor automatische marketing, om meer en betere leads te genereren en om de ROI van hun campagnes te berekenen.

Wanneer CampaignSuite gekoppeld is aan Pardot heeft u de mogelijkheid om Gravity Forms inzendingen direct te versturen naar Pardot formulieren of Pardot Form Handlers.

Pardot formulier

De makkelijkste manier om Gravity Forms formulieren te koppelen aan Pardot is via een bestaand Pardot formulier. Dit kunt u doen bij de formulier instellingen onder het tabblad Pardot.
  • Pardot connectie Vink deze checkbox aan om aan te geven dat er een Pardot koppeling gemaakt moet worden.
  • Submit opties Wanneer uw formulier eindigt in een betaling (met bijvoorbeeld Converse of Findock) kunt u hier instellen dat er pas een Pardot formulier inzending wordt aangemaakt zodra de betaling ook daadwerkelijk succesvol is. Hiermee kan u succesvolle journeys starten in Pardot voor donateurs.
  • Form Handler Endpoint Het is mogelijk om een formulier naar een Form Handler te versturen. Plak hier een Form Handler URL uit Pardot. Deze staan in de kolom URL in het overzicht van Form Handlers in Pardot. Zodra u een URL heeft ingevuld, klikt up op Refresh zodat u de velden kunt mappen.
Zodra u een URL heeft ingevoerd, en op Refresh heeft geklikt kunt u alle velden handmatig mappen met de Pardot formulier velden. LET OP: het is belangrijk dat u exact dezelfde naam invult van het Pardot formulier veld bij de kolom key.

Pardot Form Handler

Form Handlers in Pardot zijn een alternatief voor Pardot-formulieren. U kunt een Form Handler gebruiken om uw formulieren van derden of aangepaste formulieren met Pardot te integreren om inzendingsgegevens bij te houden.

Bij het gebruiken van Form Handlers is het niet mogelijk om eenvoudig Gravity Forms velden te mappen met Form Handler velden. Deze moet u stuk voor stuk handmatig invoeren in de Pardot instellingen van het Gravity Forms formulier.

  1. Kopieer en plak het Endpoint URL van de Form Handler in het veld Form Handler Endpoint van de Gravity Forms Pardot instellingen.
  2. Klik op Instellingen bijwerken

Onderaan verschijnt er nu een mogelijkheid om zelf velden te mappen. In de linkerkolom vult u het External Field Name in van Pardot en in de rechterkolom selecteert u een veld uit het Gravty Forms formulier. De Pardot veld aliassen kunt u vinden onder het kopje Form Field Mappings als u de Form Handler opent in Pardot:

Klik op het plusje rechts van de velden om meerdere velden handmatig te mappen. Zodra alle velden gekoppeld zijn klikt u Instellingen bijwerken om het op te slaan.

Marketing Cloud

Zodra er een verbinding is opgezet met Marketing Cloud zullen er verschillende functies getoond worden in Gravity Forms. Enkele voorbeelden van deze functies zijn:

  • Het aanmaken van Marketing Cloud feed acties voor Transactionele e-mails en journeys.
  • Gebruik maken van prefill mogelijkheden op velden.
  • Dynamische content instellen voor Marketing Cloud e-mails.
  • Het kunnen instellen van Prefill variabelen bij Gravity Forms bevestigingen.

Alle onderdelen zullen worden behandeld in onderstaande artikelen.

Marketing Cloud feed acties

Om Gravity Forms inzending naar Marketing Cloud te versturen moeten er Feed acties ingesteld worden. Het is eventueel mogelijk om meerdere acties in te stellen op verschillende momenten bij een inzending o.b.v. conditionele logica.

Voer onderstaande stappen uit om een koppeling te maken tussen een formulier en Marketing Cloud:

  1. Ga naar Instellingen van het Gravity Forms formulier en klik op het tabblad Marketing Cloud.
  2. Klik op de button Nieuwe toevoegen om een nieuwe actie toe te voegen.

Onderstaande scherm komt dan in beeld:

  1. Vul een voor u herkenbare naam in voor deze Feed actie bij het veld Actie naam.
  2. Kies een moment van uitvoering voor de actie.Een Marketing Cloud Feed actie kan op 3 verschillende momenten uitgevoerd worden:
    • Onmiddellijk na het invullen van het formulier
      Dit is het moment vlak nadat er een nieuwe Gravity Forms inzending is aangemaakt. Deze actie vindt plaats in de browser van de bezoeker.
    • Na een matched Findock v2 Webhook-call (bijv. Contact/Account gevonden)
      Findock v2 geeft onder water een seintje aan de website middels een Webhook wanneer het een Contact en Account heeft aangemaakt of gevonden. Als u voor dit moment kiest zal er op dat moment een call naar Marketing Cloud worden verstuurd. Dit gebeurt asynchroon met de Gravity Forms inzending.
    • Na een succesvolle betaling
      Findock v2 geeft onder water een seintje aan de website middels een Webhook wanneer eer transactie succesvol is afgerond in Salesforce. Kies dit moment als u alleen wilt dat er een call naar Marketing Cloud gaat als de betaling succesvol is.
  3. Kies het type Marketing Cloud call
  4. Zodra u een type call heeft geselecteerd verschijnt er een dropdown met een keuzelijst van alle events die momenteel beschikbaar zijn in Marketing Cloud. Selecteer een event om verder te gaan.
  5. Bij Feed voorwaarde heeft u de mogelijkheid om condities in te stellen voor de actie. U kunt bijvoorbeeld de actie pas uit laten voeren als een bepaald veld is ingevuld in het formulier.
  6. Klik op Instellingen opslaan om alles op te slaan.

Als er een Data Extensions gevonden is bij het gekozen event zal er na het opslaan een lijst verschijnen van alle beschikbare Data Extensie velden:

Koppel als laatste de juiste Data Extensie velden aan de Gravity Forms velden. Velden met een rode asterisk (*) moeten gemapped worden anders zal er een foutmelding plaatsvinden bij de API call.

Inzendingen

Bij inzendingen worden notities opgeslagen wanneer er Marketing Cloud API calls uitgevoerd worden. Op deze manier kan u altijd zien welke acties er hebben plaatsgevonden bij bepaalde inzendingen:

Prefillen van velden

CampaignSuite biedt de mogelijkheid om Gravity Forms velden vooraf te laten vullen met Contact data uit Marketing Cloud. Om gebruik te maken van deze functionaliteit is het noodzakelijk dat er een specifieke Cloud Page bestaat in Marketing Cloud. Deze pagina genereert een JSON met daarin de beschikbare velden om op te halen.

Een voorbeeld van een dergelijke JSON is:

In de algemene CampaignSuite instellingen kan het Endpoint ingesteld worden voor deze Cloud Page (Prefill-pagina Endpoint). Daarnaast is het ook mogelijk om per formulier deze URL te overschrijven.

Doorloop de volgende stappen om velden te laten prefillen met Marketing Cloud data:

  1. Ga naar de Instellingen van een formulier en klik op het tabblad MC Prefill.
  2. Klik op de eerste checkbox om prefillen in te schakelen voor dit formulier
  3. Stel vervolgens alle parameters in die nodig zijn in de URL van de pagina om een record op te halen in Marketing Cloud.
    In deze afbeelding staat er bijvoorbeeld 2 parameters ingesteld. De URL van de pagina waar het formulier op komt te staan moet er dan bijvoorbeeld als volgt uit zien:
    https://www.test.nl/formulier-pagina?id=5847&hash=fjd837hjd93
  4. Geef aan of het formulier verborgen moet worden als er op basis van de opgegeven parameters en hun waarde geen record gevonden kan worden in Marketing Cloud. U kunt ook een bericht typen wat getoond moet worden in plaats van het formulier als deze verborgen wordt.
  5. Het is eventueel mogelijk om het standaard Prefill Endpoint te overschrijven met een andere. Doet die bij het veld Custom prefill URL.

Velden mappen

Als laatste stap is het noodzakelijk om velden uit Marketing Cloud te koppelen aan uw Gravity Forms velden. Op deze manier bepaalt u welke data in welk veld gezet moet worden.

Bevestigingen personaliseren

Wanneer u gebruik maakt van de prefill mogelijkheid zullen deze velden ook te gebruiken zijn bij formulier bevestigingen (zoals een bevestiging tekst of redirect URL). 

Bevestiging tekst

Alle Marketing Cloud Prefill velden kunnen gebruikt worden in het bericht van een bevestiging. Klik hiervoor op de accolades rechts van de editor en kies daar één van de prefill velden.

Redirect pagina of URL

Het is ook mogelijk om de prefill velden te gebruiken in een querystring:

Dynamische content in e-mails

Marketing Cloud kan e-mails versturen in een Transactioneel E-mail event. In deze mails is het technisch mogelijk om dynamisch content te zetten wat ingesteld kan worden bij het formulier. Het is hierbij wel noodzakelijk dat u deze technische oplossing in Marketing Cloud hebt ingesteld. Mocht u interesse hebben in deze feature, neem dan contact met ons op.

Voer onderstaande stappen uit om dynamische content in te stellen voor Marketing Cloud E-mails:

  1. Ga naar de Instellingen van het formulier en klik op het tabblad MC Email Content.
  2. Vul een unieke identifier in voor de connectie tussen Marketing Cloud en CampaignSuite. Deze waarde mag geen spaties bevatten maar alleen kleine letters. Later is het ook mogelijk om deze identifier te mappen aan een Marketing Cloud veld bij een Feed actie.
  3. Vul de tekst in die op de plek in de e-mail moet worden gezet.
  4. Kies eventueel ook een afbeelding die gebruikt kan worden in de e-mail.
  5. Klik op Instellingen opslaan om alles op te slaan

Technisch is het nu mogelijk om via de Endpoints die getoond worden in dit tabblad deze dynamische content te gebruiken in e-mails van Marketing Cloud.

Mappen van unieke identifier

Wanneer u een unieke identifier heeft ingevuld kan u dit veld mappen aan een Data Extensie veld bij de Marketing Cloud Feed acties:

Deze functie biedt dus de manier om heel dynamisch de content van een e-mail uit Marketing Cloud dynamisch te vullen met informatie uit het formulier.

Gutenberg Dynamic Content

Als er een verbinding met Marketing Cloud is opgezet is het ook mogelijk om Dynamische Content uit een Marketing Cloud Page op een pagina te zetten in de website. Dit gaat aan de hand van een wrapper blok genaamd Dynamic Content Wrapper.

Dit blok heeft verschillenden instellingen in de rechterkolom:

Code type
Dynamische content moet altijd opgehaald worden o.b.v. een campagne code. Deze waarde kan op verschillende manieren meegestuurd worden naar Marketing Cloud:
Pagina veld
De code zal worden opgehaald uit het veld Campagne Code onder het blok CampaignSuite instellingen van de pagina
Custom
De code kan handmatig ingevuld worden op het Dynamic Content Wrapper blok.

Maak campagne code dynamisch
Het is ook mogelijk om de code uit de URL van de pagina te halen. Vink daarvoor deze optie aan en vul de parameter naam in uit de URL waar de campagne code in staat.

Content type
Er zijn momenteel 3 content types beschikbaar voor dynamisch content:
Formulier pagina
Dit is content wat vaak te vinden is op een campagne pagina.
Bedankpagina
Dit is content wat getoond kan worden op de bedankpagina na een donatie
Next best action
Dit is content wat gebruikt kan worden voor mogelijke next best actions van een donateur.

Toon geavanceerde instellingen
Onder geavanceerde instellingen is het mogelijk om een custom endpoint in te stellen. Dit endpoint zal dan het default ingesteld endpoint bij CampaignSuite instellingen overrulen.
Tevens kan er gekozen worden of dit dynamische blok Client side of Server side gerenderd moet worden.
Client side
Standaard worden de teksten en afbeeldingen in een Dynamic Content Wrapper via javascript ingeladen. Om er voor te zorgen dat de bezoeker niet een verspringen van de content ziet, zal de volledige inhoud van de pagina eerst verborgen worden. Zodra alle dynamisch content is geladen zal de pagina zichtbaar worden.
Server side
Bij deze optie zal de server eerst een call doen naar Marketing Cloud om de dynamische content op te halen. Vervolgens zal alle content worden vervangen in de blokken. Uiteindelijk zal de complete pagina geladen worden.

Het grootste verschil tussen Server en Client side is het feit dat bij Server side de pagina ‘blijft laden’ totdat alle content is vervangen. Bij Client side is de pagina klaar met laden en zal de bezoeker nog een korte tijd (maximaal 1 seconde) een witte pagina zien. Tevens kunnen cache plugins er voor zorgen dat Server side pagina’s niet dynamisch gevuld kunnen worden.

Elementen met dynamisch content

De volgende Gutenberg blokken binnen een wrapper kunnen dynamische content bevatten:

– Header
– Paragraaf
– Afbeelding
– Cover afbeelding
– Button

Zodra één van de bovenstaande velden in een Dynamic Content Wrapper blok gezet wordt, verschijnt er in de rechter kolom de volgende optie:

Vink deze optie aan om aan te geven dat de content van het originele blok vervangen moet worden door content uit Marketing Cloud. Als er geen dynamische content opgehaald kan worden uit Marketing Cloud zal de originele content intact blijven.

Feed acties

Het is mogelijk (mits u de permissie op CampaignSuite heeft) om Feed acties in te stellen. Een feed actie is een actie welke uitgevoerd kan worden door CampaignSuite vlak nadat er een nieuwe inzending is gemaakt in Gravity Forms. Acties kunnen in twee verschillende categorieën worden ingedeeld:

1. Creëer een Salesforce object

Met CampaignSuite is het mogelijk om een nieuw record in Salesforce aan te maken voor elk Object wat beschikbaar is. Denk bijvoorbeeld aan een Case, Campagne of Bestemming. Het is zelfs mogelijk om meerdere Feed acties na elkaar uit te laten voeren en de gegenereerde ID’s die er per Feed gemaakt worden te gebruiken in de mapping van de velden. Onderstaande screenshot toont een voorbeeld van een Feed actie waar een Case wordt aangemaakt. Hierbij is ook een Feed voorwaarde ingesteld. Dat houdt in dat deze feed alleen wordt uitgevoerd als aan alle condities wordt voldaan.
  • Feed naam Vul hier een herkenbare naam in voor de feed
  • Type actie Selecteer hier de actie die u wilt laten uitvoeren
  • Moment van uitvoering Bij sommige acties kan het zijn dat er een Contact ID nodig is. Kies in dat geval voor de optie Aan het eind zodat er op het moment van uitvoeren een Contact ID bestaat.
  • Salesforce Object Dit ziet u alleen wanneer u kiest voor de type actie “Maak een nieuw record in Salesforce”. Kies hier een object uit uw Salesforce instantie.
  • Feed voorwaarde Deze voorwaarden werken exact hetzelfde als de voorwaarden die in te stellen zijn bij formulier velden.
Als u een actie kiest wat gekoppeld is aan een Salesforce object verschijnen er bij Instellingen alle velden van dit object. Koppel deze aan de juiste Gravity Forms velden om de waarden op de juiste manier in Salesforce te krijgen.

2. Een custom actie gemaakt door Gopublic

Het is ook mogelijk dat Gopublic in overleg met u custom acties maakt. Denk bijvoorbeeld aan het aanmaken van Webshop orders of het wegschrijven van Cadeaus naar Salesforce. Neem gerust contact met ons op als u hiervan gebruikt wilt maken.

CS E-commerce

Als CampaignSuite is geactiveerd én het formulier maakt een transactie zal er bij het bedankt-bericht van het Gravity Forms formulier standaard een Google E-commerce script worden toegevoegd.

Deze code ziet er als volgt uit:

				
					
  if(window.dataLayer !== undefined){
    window.dataLayer = window.dataLayer || [];
    dataLayer.push({
      'event': 'donatie',
      'ecommerce': {
      'purchase': {
        'actionField': {
            'id': 1234, //gravity forms entry ID
            'revenue': 12.00, //totaal bedrag
            'list': '',
            'option': '',
            'tax':'0',
            'shipping': 0
        },
        'products': [{
          'name' : 'Donatie',
          'id': '1', //form ID
          'price': 12.00,
          'brand': '',
          'category': 'One-time', //frequentie
          'variant': 'Ideal', //payment method
          'quantity': 1
        }]
      }
    }
    });
  }
				
			

E-commerce shortcode

Wanneer u als formulier bevestiging niet Tekst heeft maar Pagina, dan is het ook mogelijk om op de pagina waar de donateur op terecht komt na een succesvolle betaling een shortcode te gebruiken om zo toch het Google E-commerce script uit te laten voeren. Voeg op deze pagina dan het volgende toe:

[ecommerce]

 

Geavanceerde E-commerce instellingen

Een uitgebreide feature van CampaignSuite is om meer instellingen te kunnen doen aan de E-commerce code. Deze feature zit niet in het basis pakket. Neem contact met ons op als u geïnteresseerd bent naar deze uitbreiding.

Bij E-commerce instellingen kan u alle velden van het E-commerce script instellen. Deze optie wordt vaak gebruikt met verborgen velden in het formulier. Deze velden ziet de bezoeker niet, maar u kunt deze wel vooraf laten invullen met waarden. Deze koppelt u vervolgens bij de instellingen aan het E-commerce veld.

Inzendingen

Bij inzendingen ziet u een lijst weergave van alle inzendingen van het formulier. U kunt de kolommen die getoond worden instellen met het radar-icoon rechts bovenin de lijst.

U kunt teven de inzendingen filteren op de velden die in het formulier staan. CampaignSuite biedt ook de mogelijkheid om te filteren op betalingsstatus. Op deze manier kunt u dus een lijst krijgen met alle succesvolle betalingen. De eerste kolom is altijd klikbaar om naar de gedetailleerde weergave te gaan van de inzending.

Opmerkingen

Wanneer u in de detailweergave bent van een inzending vindt u in de linker kolom onder de velden een blok met Opmerkingen. Op verschillende momenten bij het aanmaken van de inzending (het versturen van een formulier) kan CampaignSuite eem opmerking bij de inzending zetten. Enkele voorbeelden hiervan zijn:

  • Salesforce-call geïnitieerd
  • Salesforce-betaling succesvol afgerond
  • Status Mautic formulier inzending veranderd naar: ‘Collected’

Ook wanner er een onverwachte fout optreedt, zal dat hier bij de opmerkingen te vinden zijn.

Details betaling

Wanneer er een transactie heeft plaatsgevonden, vindt u de status hiervan terug in de rechterkolom onder het kopje Details betaling.

Salesforce en Mautic

Ook alle informatie met betrekking tot Salesforce of Mautic worden in deze kolom getoond.

Squeezely

Squeezely Customer Data Platform helpt marketeers efficiënt klantgegevens te verzamelen, campagnes via meerdere kanalen op te zetten en resultaten op één plek te analyseren. CampaignSuite biedt een mogelijkheid om parameters te genereren die ingezet kunnen worden voor Squeezely.
  1. Ga naar de Instellingen van een formulier en klik op het tabblad Squeezely.
  2. Schakel de Squeezely functionaliteit in om gebruik te maken van de functie.
  3. Selecteer een veld uit het formulier om de hash mee te berekenen die gebruikt wordt in Squeezely (vaak is dat bijvoorbeeld een e-mail veld)
  4. Vul een parameter naam in welke gebruikt kan worden door CampaignSuite om automatisch aan URL toe te voegen. Denk hierbij bijvoorbeeld aan een Succes URL voor een iDeal betaling via Findock.
  5. Geef eventueel aan of alle redirect URL’s in dit formulier automatisch aangevuld moeten worden door de naam van de parameter en de waarde van het hash veld.

Handmatig toevoegen van parameter

Het is mogelijk om bij formulier bevestigingen handmatig de Squeezely parameter toe te voegen als u de functionaliteit hebt geactiveerd en ingesteld. Dat kan er als volgt uit zien:

Metingen

CampaignSuite bevat een zeer uitgebreid systeem om metingen bij formulieren in te stellen. Denk hierbij aan bijvoorbeeld Client Side en Server Side events op bepaalde momenten in een formulier. Deze momenten kunnen bijvoorbeeld zijn wanneer je van pagina wisselt in een formulier of als er een succesvolle betaling heeft plaatsgevonden.

Er zijn in totaal 6 momenten waarop je kunt bepalen dat er iets gemeten moet worden door één van de vier aanbieders (Facebook, Google Analytics 4, Squeezely of Google Tag Manager). Het is mogelijk om meerdere acties aan te maken per formulier.

Bekijk onderstaande artikelen om meer informatie te verkrijgen over de opties van metingen.

Nieuwe meting aanmaken

Om een nieuw meet moment aan te maken open je een formulier in WordPress en ga je naar Instellingen -> Metingen. Klik vervolgens op de knop Nieuwe toevoegen.
Dit opent een nieuw venster met de volgende opties:

Actie naam
Vul hier een herkenbare naam in binnen het systeem. Deze naam zal niet getoond worden op de website of in een waarde van een meting.

Type event
Kies hier uit één van de zes momenten waarop de meting moet plaatsvinden. Elk moment kan een Client Side call, een Server Side call of beiden uitvoeren. De momenten waaruit je kunt kiezen zijn:

  1. Bij het laden van een formulier pagina
    Dit is het moment waarop een Gravity Forms-pagina wordt geladen. Dit is niet de WordPress-pagina waarop het formulier wordt geladen, maar de pagina/stap in het Gravity Form.
  2. Bij het versturen van een formulier pagina
    Dit is het moment waarop een Gravity Forms-pagina/stap wordt ingediend. Op het moment dat u op de knop Volgende of Verzenden drukt, wordt deze gebeurtenis geactiveerd.
  3. Bij het versturen van het complete formulier
    Dit is het moment waarop een Gravity Forms-formulier wordt ingediend. Deze gebeurtenis wordt pas geactiveerd na de laatste pagina wanneer uw formulier uit meerdere pagina’s bestaat.
  4. Bij de formulier bevestigingstekst of pagina
    Deze gebeurtenis wordt geactiveerd wanneer een bezoeker op de bevestigingstekst of de bevestigingspagina terechtkomt. Wanneer u doorverwijst naar een interne pagina, wordt deze trigger uitgevoerd wanneer de WordPress-pagina wordt geladen. Wanneer u naar een externe URL doorverwijst, wordt deze trigger geactiveerd op de gebeurtenis: ‘Bij het versturen van het complete formulier’.
  5. Na een webhook call van Findock v2
    Deze gebeurtenis wordt geactiveerd bij een webhook-aanroep van Findock v2.0. Dit wordt ook wel de ‘Matched’ webhook genoemd en wordt geactiveerd wanneer een betalingsintentie wordt verwerkt. Dit moment ondersteunt alleen maar Server Side calls.
  6. Na een succesvolle betaling
    Deze gebeurtenis wordt geactiveerd wanneer een betaling in Gravity Forms is ingesteld op succesvol. Dit moment ondersteunt alleen maar Server Side calls.

Aanbieders
Kies hier welke aanbieders je iets wilt laten meten op het aangegeven moment. De opties hier zijn:

  1. Facebook
    Dit is de Facebook Conversion API. De Conversions API is ontworpen om een directe verbinding te creëren tussen je marketinggegevens en de systemen die je helpen je advertentietargeting te optimaliseren, de kosten per actie te verlagen en resultaten te meten op Meta-technologieën. Deze aanbieder heeft alleen de mogelijkheid om Server Side calls uit te voeren. Om gebruik te maken van deze aanbieder moet je een Pixel ID en een Access token invullen bij de CampaignSuite instellingen.
  2. Google Analytics 4
    GA4 heeft de mogelijkheid om Client Side en Server Side calls uit te voeren. De Client Side calls maken gebruik van de datalayer.push() en de gtag() functies. De Server Side calls maken gebruik van het GA4 Measurement Protocol. Tevens kunnen hiermee e-commerce calls gemaakt worden. Om gebruik te kunnen maken van het GA4 Measurement Protocol moet je een Measurement ID en API secret invullen bij de CampaignSuite instellingen.
  3. Squeezely
    Met Squeezely maak je out-of-the-box de meest geavanceerde buyer journeys en personalisatietoepassingen. Je werkt op basis van loepzuivere data en kan alles helemaal naar eigen inzicht inrichten. Deze aanbieder kan Client Side en Server Side calls maken. De Client Side calls maken gebruik van een datalayer.push() functie. De Server Side calls worden direct naar de API van Squeezely gestuurd. Om dit te kunnen gebruiken moet een Account ID en API-sleutel invullen bij de CampaignSuite instellingen.
  4. Google Tag Manager
    Deze aanbieder ondersteunt Client Side calls en Server Side calls. De Client Side calls maken gebruik van de datalayer.push() functie. De Server Side calls zijn alleen beschikbaar als er een GTM SST URL is ingevuld in de CampaignSuite instellingen. Deze URL moet een link zijn naar een Google Tag Manager container die de verschillende paramaters kan afvangen in GTM.

Feed voorwaarde
Het is tevens mogelijk om deze Feed actie conditioneel te maken. Dat houdt in dat de feed alleen zal worden uitgevoerd als er aan bepaalde condities wordt voldaan.

Als alle instellingen zijn gedaan klik je op Refresh om de mapping te tonen van de gekozen aanbieders. Deze mapping is nodig om het systeem te laten weten welke data waar te vinden is in het formulier. Kijk verder bij het artikel Mapping om te ontdekken welke mogelijkheden er zijn.

Mapping

Zodra er een event type is gekozen en er één of meerdere aanbieders zijn geselecteerd, verschijnt er per aanbieder een blok met opties om velden te mappen. Feitelijk ga je hier instellen welke paramaters welke waarden moeten hebben in de Client Side of Server Side call.

Elk blok bevat een keuze om de call Client Side of Server Side te laten plaatsen. Is één van deze opties niet zichtbaar, dan wordt deze niet ondersteunt door de aanbieder in combinatie met het gekozen event.

Client Side
Hierbij wordt scriptcode uitgevoerd in de browser van de bezoeker. Dit is in het geval van CampaignSuite altijd een Javascript code.

Server Side
Hierbij wordt scriptcode uitgevoerd op de server. Dit heeft als voordeel dat Server Side calls ook uitgevoerd kunnen worden als de bezoeker al lang niet meer op de website is zoals bij succesvolle betalingen. Deze worden dan ‘onder water’ op de server uitgevoerd.

Daarnaast heeft elk blok de mogelijkheid om parameters te mappen. De linkerkolom toont de beschikbaar parameter waardes (dat kan per aanbieder verschillen) en de rechterkolom toont alle beschikbare formuliervelden en diverse andere waarden die gebruikt kunnen worden.

Open invulvelden

Beide kolommen hebben de mogelijkheid om een open invulveld te tonen. In dit veld kan je een eigen waarde opgeven in plaats van de waarde uit één van de aangegeven opties.
In de linkerkolom is dat de laatste optie in de dropdown genaamd Add Custom Key en in de rechterkolom is dat de laatste optie in de dropdown genaamd Add Custom Value.

Nesten van key waarden

In sommige gevallen moet er gebruik worden gemaakt van arrays (verzamelingen) in bijvoorbeeld Client Side calls. Onderstaande afbeelding toont een voorbeeld van een dergelijke verzameling:

<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
  'event': 'test_event',
  'transactionProducts': [
    {
      'sku': 'DD44',
      'name': 'T-Shirt',
      'price': 11.99
    },
    {
      'sku': 'AA1243544',
      'name': 'Socks'
      'price': 9.99
    }
  ]
});
</script>

Hier is duidelijk te zien dat transactionProducts een verzameling is van producten. Door het koppelen van keys met een punt kan dit gedaan worden. Dat ziet er dan als volgt uit in de mapping van een meting:

Facebook

De aanbieder Facebook geeft je de mogelijkheid om alleen Server Side API calls uit te voeren naar de Facebook Conversion API. Dit kan op elk van de zes beschikbare event momenten. Klik hier om meer informatie te verkrijgen over de Facebook Conversion API.

Om gebruik te maken van de Facebook aanbieder in Metingen moet je een Pixel ID en een Access token hebben ingevoerd in de CampaignSuite instellingen. Zonder deze twee waarden is het niet mogelijk om deze aanbieder te gebruiken. Meer informatie over het instellen van een Pixel kan je vinden op deze pagina.

De Facebook Conversion API werkt op basis van events. CampaignSuite zal op basis van de mapping die is gemaakt in de Feed actie een JSON maken die via een POST request verstuurd wordt naar de API van Facebook. Zie het voorbeeld hieronder van de mapping in CampaignSuite en de JSON die verstuurd wordt naar Facebook.

Voorbeeld van mapping:

JSON die gegenereerd wordt:

{
   "data": [
      {
         "event_name": "Purchase",
         "event_time" "1666081911",
         "event_id": "1_346",
         "event_source_url": "https://www.voorbeeldwebsite.nl/doneer",         
         "action_source": "website",
         "user_data": {
            "client_ip_address": "1.1.1.1",
            "client_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko)",
            "em": "309a0a5c3e211326ae75ca18196d301a9bdbd1a882a4d2569511033da23f0abd",
            "fn": "254aa248acb47dd654ca3ea53f48c2c26d641d23d7e2e93a1ec56258df7674c4",
            "ln": "eeacc9d4cf711ce63f7d247062f52ca2fe4be1a1a8aef231fe23e75e7bdca60c",
            "ph": "191d48a770670b9ae8f59dbb16c64c583f92d1922a2a440b26e36bf6e3970bf0"
         },
         "custom_data": {
            "value": 100.2,
            "currency": "EUR",
            "form_id": "1",
            "entry_id": "346"
         }
      }
   ]
}
  • event_id
    De parameter event_id wordt automatisch gevuld met een combinatie van het formulier ID en de inzending ID (1_346).
  • action_source
    De parameter action_source zal automatisch gevuld worden met de waarde website mits deze niet is gemapped met een eigen waarde.
  • event_time
    De parameter event_time wordt standaard gevuld met de datum en tijd van de inzending in het formulier.
  • custom_data.currency
    De parameter custom_data.currency wordt standaard gevuld bij het event type Na een succesvolle betaling.

Custom parameters

Naast de voorgedefinieerde parameters is het ook mogelijk om zelf parameters mee te sturen. Klik hier voor een lijst met de beschikbare parameters voor Facebook.
Om bijvoorbeeld een woonplaats veld toe te voegen aan user_data moet je als key waarde invullen: data.user_data.ct. Dit zal dan automatisch in de JSON gezet worden.
In het bovenstaande voorbeeld is het telefoonnummer veld custom toegevoegd.

Google Analytics 4

Met de aanbieder Google Analytics 4 (GA4) is het mogelijk om Client Side en Server Side calls uit te voeren. Dit kan voor alle zes de verschillende event types. Alleen bij de event types Na een webhook call van Findock v2 en Na een succesvolle betaling kan een Server Side call uitgevoerd worden en niet Client Side.

Client Side

Wij adviseren gebruik te maken van de Client Side calls in GA4 als je niet beschikt over Google Tag Manager. Wanneer je namelijk gebruik maakt van de Client Side call voert CampaignSuite javascript functies uit door middel van gtag(); Hierbij is het wel noodzakelijk dat Google Tag geïnstalleerd is op de website:

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_TRACKING_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){window.dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'GA_TRACKING_ID');
</script>

Vervang in de bovenstaande code GA_TRACKING_ID door jouw eigen tracking ID van Google Analytics.

Als CampaignSuite een Client Side GA4 call uitvoert zal er een javascript code aangeroepen worden in de browser van de bezoeker.
Lees hier meer over de code die wij hier voor gebruiken. De calls naar GA4 maken gebruiken van events. Een voorbeeld van een simpele pagina wisseling in Gravity Forms kan er als volgt uit zien:

Voorbeeld van mapping:

Javascript voorbeeld

<script type="text/javascript">
  if (window.gtag == undefined) {
    window.gtag = function () { 
      window.dataLayer = window.dataLayer || []; 
      dataLayer.push(arguments); 
    };
  }
  gtag('event', 'page_switch', {
    'form_page': 1,
    'form_id': 4
  });
</script>

Bovenstaande code maakt gebruik van de Javascript function gtag().

Server Side

Technisch is het mogelijk om voor alle zes de event types een Server Side call te laten uitvoeren naar GA4. Dit is alleen beschikbaar als er een Measurement ID en een API secret zijn ingevuld bij de instellingen van CampaignSuite. Deze zijn te vinden in het admin gedeelte van jouw Google Analytics account -> Account Settings -> Data Streams. Klik op de stream en kopieer hier het Measurement ID. De waarde van de API secret kan gevonden worden onder het kopje Measurement Protocol API secrets.

De Server Side call van GA4 maken gebruik van de Measurement Protocol API van Google. Ook deze API werkt op basis van het versturen van events via een POST request naar een endpoint (https://www.google-analytics.com/mp/collect).

Onderstaande afbeeldingen tonen een voorbeeld van een GA4 Server Side call bij een succesvolle betaling in CampaignSuite:

Voorbeeld van mapping:

Voorbeeld van POST request

{
  "client_id": "278327074.1665398324",
  "non_personalized_ads": false,
  "events": [
    {
      "name": "purchase",
      "params": {
        "items": [
          {
            "item_id": "Ideal",
            "item_name": "One-time",
            "quantity": 1,
            "item_category": "donaties",
            "price": 25
          }
        ],
        "currency": "EUR",
        "transaction_id": "346",
        "value": 25
      }
    }
  ]
}
  • client_id
    Deze parameter wordt automatisch ingevuld met een Google Analytics Client ID als deze is ingesteld in de website met een pixel

Event builder

Google heeft een handige tool waarmee je een event kunt bouwen om te testen of het een valide call is. Deze is te vinden op: https://ga-dev-tools.web.app/ga4/event-builder/

Squeezely

Met Squeezely maak je out-of-the-box de meest geavanceerde buyer journeys en personalisatie toepassingen. Je werkt op basis van loepzuivere data en kan alles helemaal naar eigen inzicht inrichten. Deze tool maakt gebruik van zowel een tracking pixel op jouw website of kan events inschieten via hun API. Deze mogelijkheid biedt CampaignSuite in Metingen. Squeezely werkt op basis van events. Elke meting die je instelt in CampaignSuite moet een event zijn.

Om gebruik te maken van de Server Side calls via de Squeezely aanbieder moet je een Account ID en een API-sleutel invullen in de CampaignSuite instellingen. De Client Side calls van Squeezely werken met een datalayer.push() en zullen alleen werken als de Squeezely pixel op de website is geïnstalleerd:

<script type="text/javascript">
  (function(s,q,z,l,y){s._sqzl=s._sqzl||[];l=q.createElement('script'),
  y=q.getElementsByTagName('script')[0];l.async=1;l.type='text/javascript';
  l.defer=true;l.src=z;y.parentNode.insertBefore(l,y)})
  (window,document,'https://squeezely.tech/tracker/<YOUR_IDENTIFIER>/sqzl.js');
</script>

Meer informatie over het gebruik van de API is te vinden op de documentatie pagina van Squeezely.

Client Side

Onderstaande afbeelding toont een simpel voorbeeld van een pagina switch in een Gravity Forms formulier:

Voorbeeld van de mapping:

Voorbeeld van de Javascript code die wordt uitgevoerd:

<script type="text/javascript">
  window._sqzl = window._sqzl || [];
  window._sqzl.push({
    "event" : "page_switch",
    "page" : 1
  });
</script>

Omdat de Squeezely pixel is ingeladen in de website zal dit event worden afgevangen in Squeezely.

Server Side

Server Side calls kunnen worden ingesteld in alle zes de metingen momenten. Het is bij Server Side calls echter wel verplicht om een unieke identifier mee te sturen in de paramaters anders weet Squeezely niet aan wie de data gekoppeld moet worden in hun systeem.

Onderstaande afbeelding toont een Server Side call na een succesvolle donatie. Deze call wordt ‘onder water’ naar Squeezely gestuurd op het moment dat een betaling succesvol is afgerond.

Voorbeeld van de mapping:

Voorbeeld van code voor API aanroep:

[
  "events" => [
    [
      "event"                => "Purchase",
      "email"                => "test@test.nl",
      "firstname"            => "Test",
      "lastname"             => "van Test,
      "orderid"              => 346,
      "products"             => [
        [
          "id" => "single",
          "name" => "One-time",
          "price" => 25,
          "quantity" => 1
        ]
      ]
    ]
  ]
];

Controleren

Squeezely heeft een tool waarmee je kunt controleren of Server Side API calls goed binnen komen. Deze is te vinden op: https://app.squeezely.tech/data/events.

Google Tag Manager

Google Tag Manager (GTM) is een tool van Google waarmee je als online marketeer, ondernemer of social media specialist minder afhankelijk wordt van je developers of een extern bureau. Door middel van Google Tag Manager zorg je er namelijk voor dat je handige tags zoals Google Analytics of de Meta Pixel kan laten werken zonder dat je je webbouwer moet vragen om de tags in de code van je website te plaatsen.

In Metingen heb je de mogelijkheid om Client Side en Server Side calls uit te voeren voor GTM. Client Side calls zijn niet beschikbaar voor de events Na een webhook call van Findock v2 en Na een succesvolle betaling. De Client Side calls maken gebruik van de datalayer.push() functie. De data kan vervolgens worden uitgelezen door de GTM pixel op jouw website:

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','UNIQUE_ID');</script>
<!-- End Google Tag Manager -->

Vervang in de bovenstaande code UNIQUE_ID door jouw eigen Google Tag Manager ID.

Server Side calls zijn alleen beschikbaar als in de CampaignSuite instellingen een waarde is ingevuld bij het veld GTM SST URL (Google Tag Manager Serder Side Tracking URL). Deze URL (ook wel Tag Manager server container genoemd) is aan te maken in Google Tag Manager. Lees hier meer informatie over hoe je een Tag Manager server container kunt aanmaken. Wanneer je het veld Measurement ID invult met het ID uit GTM zal deze automatisch meegestuurd worden in de Server Side calls in de parameter tid.

Client Side

Wanneer er een Client Side call wordt uitgevoerd via de Google Tag Manager aanbieder detecteert CampaignSuite automatisch of het om een E-commerce Measurement call gaat of niet. Dit doen wij o.b.v. de mapping van de paramater Prijs van het product. Als deze paramater gemapped is, zal de datalayer.push() een e-commerce syntax hebben. In alle andere gevallen zal het een simpele versie van een datalayer.push() zijn. Hieronder 2 voorbeelden van een simpele en een e-commerce Client Side call.

Voorbeeld van de mapping (simpel):

Voorbeeld van de datalayer.push() Javascript code:

<script type='text/javascript'>
  dataLayer.push({
    event: "page_switch",
    page: "1"
  });
</script>

Voorbeeld van de mapping (e-commerce):

Voorbeeld van de datalayer.push() Javascript code:

<script type='text/javascript'>
  dataLayer.push({ ecommerce: null });
  dataLayer.push({
    event: "purchase",
    transaction_id: "349",
    ecommerce: {
      value: 12.45,
      payment_type: "Ideal",
      items: [
        {
          item_id: "1",
          item_name: "Donatie",
          price: 12.45,
          quantity: 1
        }
      ]
    }
  });
</script>

Server Side

Het is alleen mogelijk om Server Side calls te maken als er een Tag Manager server container is aangemaakt en ingesteld. Deze container is middels een aparte URL te benaderen (bijvoorbeeld: https://sst.testwebsite.nl/g/collect) welke ingesteld moet worden bij de CampaignSuite instellingen onder GTM SST URL.

De paramaters die gemapped zijn in het blok van Google Tag Manager bij Metingen zullen meegestuurd worden in de URL die CampaignSuite aanroept via een GET request. Bekijk deze pagina om te zien welke parameters ondersteunt worden.

Onderstaand voorbeeld toont een Server Side call bij een succesvolle betaling:

Voorbeeld van de mapping:

GET request URL die wordt uitgevoerd:

https://sst.testwebsite.nl/g/collect?v=2&cid=278327074.1665398324&tid=G-AB1CDEFG23&en=payment&cu=EUR&ep.fbc=undefined&ep.transaction_id=346&epn.value=100&ep.typedonatie=One-time&ep.email=test@test.nl&pr1=idonce_0~nmdonatie_via_website~pr100~qt1~caIdeal

Alle product velden worden samengevoegd en alle losse parameters worden achter de URL geplakt. Op deze manier vindt er een Server Side call plaatst voor Google Tag Manager.