Deze use case maakt gebruik van Salesforce Flow met als doel om makkelijker lijsten in Marketing Cloud Account Engagement (Pardot) te maken. De behoefte is om dynamische lijsten te creëren in Pardot op basis van zowel campagnes als subcampagnes. Echter, als de hoofdcampagne geen campagneleden bevat, terwijl de subcampagnes dat wel doen, is het momenteel niet mogelijk om de hoofdcampagne te selecteren voor een dynamische lijst. Dit leidt tot de noodzaak om handmatig meerdere (soms tientallen) subcampagnes te selecteren voor één lijst. Om dit te omzeilen, is het vereist om fysiek campagneleden aan de hoofdcampagne te koppelen. Deze uitdaging benadrukt de behoefte aan een verbeterde functionaliteit binnen Pardot, waarmee een soepelere en meer geautomatiseerde creatie van dynamische lijsten mogelijk wordt, zelfs in gevallen waar de hoofdcampagne geen directe campagneleden bevat. Dit zou de efficiëntie van het campagnebeheer aanzienlijk verbeteren.
Om deze use case nog een stap beter te maken, moet aangegeven kunnen worden op campagneniveau of de leden naar een hoofdcampagne gedupliceerd moeten worden of niet. Deze inrichting geldt dus niet voor alle campagnes, maar alleen voor de campagnes waarbij de checkbox “Campagneleden ook dupliceren naar hoofdcampagne” aangevinkt is.
Aanmaken testcampagnes
Laten we beginnen met het aanmaken van een aantal testcampagnes. Om een grondige test uit te voeren, zullen we 3 testcampagnes creëren.
– Testcampagne hoofd
– Testcampagne sub zonder checkbox
– Testcampagne sub met checkbox
Op deze manier wordt straks getest of de checkbox werkt.
Aanmaken velden op campagne en campagneleden
Allereerst wordt er een nieuw checkbox veld toegevoegd op het Campagne object, genaamd: (campagneleden_dupliceren_naar_parent__c)
Vervolgens wordt er op het object CampaignMember een formule aangemaakt:
IF(Campaign.campagneleden_dupliceren_naar_parent__c = TRUE, True, False)
Deze formule is nodig voor de Record-Triggered Flow die straks gemaakt wordt, zodat er op basis van dit vinkje gecheckt wordt of de flow wel of niet moet afgaan.
Om de correcte werking van de formule te testen, wordt de checkbox in de campagne (Testcampagne sub met checkbox) geselecteerd en wordt er een campagnelid aan beide subcampagnes toegevoegd. Hierdoor wordt waargenomen dat het campagnelid dat wordt toegevoegd aan de campagne “Testcampagne sub met checkbox” de checkbox ingeschakeld heeft, terwijl deze ontbreekt bij de campagne “Testcampagne sub zonder checkbox”.
Record-Triggered Flow
Vervolgens wordt er een Record-Triggered Flow in Salesforce aangemaakt. Het idee is dat zodra er een campagnelid aangemaakt of bewerkt wordt, deze getriggerd wordt. Dus het startobject is “Campagnelid”:
Object = Campaign member
Configure Trigger = A record is created or updated
Entry Conditions = Campagneleden_dupliceren__c = True
When to Run the Flow for Updated Records = Only when a record is updated to meet the condition requirements
*Optimize the Flow for: Actions and Related Records
Bij de conditie is het belangrijk dat daar het formuleveld gebruikt wordt die hierboven aangemaakt is. Dus de trigger moet alleen afgaan als het vinkje “Campagneleden dupliceren” op true staat.
Get Records elementen
Om vanuit het campagnelid te navigeren naar de campagneleden van de hoofdcampagne, zijn er een aantal stappen benodigd. Zo wordt gestart met een “Get Records” element om de huidige campagne op te halen, waarbij het Id gelijk is aan het $Record > {!$Record.Campaign.Id}.
Vervolgens wordt met een “Get Records” element de hoofdcampagne opgehaald, waarbij het Id gelijk is aan {!Haal_campagne_op.ParentId}.
Als laatste moeten de campagneleden opgehaald worden (Object = Campaign Member) met een “Get Records” element, waarbij het CampaignId gelijk is aan {!Haal_hoofdcampagne_op.Id}.
Controle op duplicaten
Het is onwenselijk dat een campagnelid wordt toegevoegd als er al een bestaand campagnelid aanwezig is in de hoofdcampagne. Dit scenario kan voorkomen wanneer een lid al is toegevoegd aan de hoofdcampagne via een andere subcampagne en opnieuw wordt toegevoegd via een alternatieve subcampagne.
Om dit te voorkomen, wordt er in Salesforce Flow een loop gemaakt, waarbij er door de lijst van campagneleden gegaan wordt en per lid wordt vervolgens gekeken of het lid al bestaat. Deze check wordt gedaan met een “Decision” element met de conditie:
{!Loop_door_campagneleden_hoofdcampagne.ContactId} equals {!$Record.Contact.Id}.
Hiervoor is een losse variabele aangemaakt van het type Boolean met een standaardwaarde {!$GlobalConstant.False}. Zodra de loop hetzelfde contactpersoon tegenkomt, wordt de waarde op True gezet.
Voeg campagnelid toe
In de laatste stap bekijkt Salesforce Flow of de zojuist aangemaakte boolean de waarde “True” of “False” heeft. Als deze “True” is, stuur ik mezelf even een mailtje als test. Deze stap wordt verwijderd bij livegang. Als de waarde “False” is, wordt het campagnelid toegevoegd aan de hoofdcampagne.
Nu is het zaak om verschillende testen uit te voeren om te kijken of het campagnelid alleen maar toegevoegd wordt als deze dus niet nog bestaat op de hoofdcampagne en alleen als het vinkje aanstaat bij de campagne dat leden ook naar de hoofdcampagne gepushed moeten worden. Hieronder wordt de totale flow nog getoond: