Terug naar lijst

Hoe je veel meer kunt doen met formulevelden in Salesforce

Formulevelden in Salesforce zijn enorm productief. Toch kun je er niet alles mee wat je misschien graag zou willen, bijvoorbeeld data ophalen uit onderliggende records. Voor dat doel hebben we een eigen formule app ontwikkeld waarmee je veel verder komt dan met de normale formulevelden. In deze blog krijgen jullie een sneak preview.

Formulevelden

Normale formulevelden zijn velden waar je zelf geen waarde in opslaat, maar die middels een Excel achtige formule een berekende waarde tonen. Zo kun je op een Opportunity bijvoorbeeld eenvoudig uitrekenen hoeveel dagen de CloseDate in de toekomst ligt met de formule “CloseDate – TODAY()”

Elke keer dat je de Opportunity opent zal het formuleveld opnieuw worden uitgerekend, waardoor je altijd een kloppende waarde ziet. Je kunt meer over formulevelden lezen op Trailhead.

Wat kan er niet?

Ondanks de kracht van formulevelden is er ook een aantal beperkingen. Zo kun je bijvoorbeeld geen data ophalen uit onderliggende records, kun je geen data gebruiken uit List Custom Settings, is het aantal karakters van een formule beperkt, kun je in de formule niet verwijzen naar long-text velden en zo kunnen we nog even doorgaan.

Een ander groot nadeel is dat formules altijd gedefinieerd moeten worden als veld op een Object, terwijl er heel veel situaties zijn waar formules ook op andere plekken erg fijn zouden zijn. Als je bijvoorbeeld een stuk code hebt geschreven, en je moet bepalen welk e-mailtemplate je gaat gebruiken om een e-mail te sturen, dan is het prettig om die logica niet hard in je code te zetten, maar configurabel te houden middels een formule. Zo kun je als Admin instellen dat je een ander e-mailtemplate wilt gebruiken als de klant meer dan 5 gewonnen opportunities heeft, of een verkocht totaalbedrag hoger dan 10.000 euro heeft. Zoiets als:

IF( COUNT(Account.ClosedWonOpportunities) > 5 OR SUM(Account.ClosedWonOpportunities, Amount) > 10000, “HighSalesTemplate”, “NormalSalesTemplate”)

Op die manier houd je je logica regels dus flexibel en hoef je geen code deployments te doen om snel iets te wijzigen. Admins blij, ontwikkelaars blij.

Prachtig allemaal, maar dat kan dus niet met normale formulevelden.

Formules 3.0

Je voelt hem waarschijnlijk al aankomen: dat kan allemaal wel in de Growteq formule app. Die formule die hierboven staat? Kan gewoon. Formules definiëren als Admin en gebruiken in code? Zeker. Data ophalen uit Custom Settings of zelfs totaal willekeurige records? Kan ook. Data gebruiken uit long-text velden? Geen probleem.

De allermooiste toevoeging vind ik echter nog wel het gebruik van “Custom Formula Functions”, waarmee een ontwikkelaar een functie toe kan voegen die dan vervolgens in alle formules gebruikt kan worden. Zo kan een ontwikkelaar bijvoorbeeld een FILTER() functie maken, die dan te gebruiken is om allerlei records te filteren. In onderstaand voorbeeld om alle open Opportunities te tellen die al een week open staan en een waarde hebben van meer dan 5000 euro:

COUNT( FILTER(Account.Opportunities, IsClosed = false AND Amount > 5000 AND TODAY() – CloseDate > 7) )

Of om op een Campagne te zien hoeveel Campagneleden na een week nog niet gereageerd hebben:

COUNT( FILTER(Campaign.CampaignMembers, HasResponded = false AND TODAY() – CreatedDate > 7) )

Dit wordt opeens heel krachtig als je bedenkt dat je nu alle vrijheid hebt om je formules uit te breiden hoe je maar wilt. Dus een STAFFELTABEL(Opportunity.Amount) of AANHEF(Contact) of wat dan ook zijn allemaal mogelijk. Het resultaat van de formule sla je vervolgens op in een veld, waarna je het kunt gebruiken in rapportages en dashboards of zelfs beschikbaar kunt maken naar externe applicaties via de API.

Dat wil ik!

Klinkt dit interessant en ben je benieuwd naar de mogelijkheden? Neem dan vrijblijvend contact met ons op!