Wanneer gebruik je Apex en wanneer Flow in Salesforce?

Zoek je een CRM-oplossing die meegroeit met je organisatie én eenvoudig aan te passen is, zonder dat je voor elke wijziging een developer nodig hebt? Binnen Salesforce lijkt Flow dé low-code automation tool die dit mogelijk maakt. Met Flow kun je processen automatiseren en snel inspelen op veranderende behoeften. Toch is Flow niet altijd de beste keuze: voor complexe bedrijfslogica en geavanceerde automatiseringen biedt Apex, de programmeertaal van Salesforce, vaak meer mogelijkheden.
In dit artikel proberen we je zo goed mogelijk uit te leggen wanneer je het beste kunt kiezen voor Salesforce Flow en wanneer voor Apex.
First things first
We beginnen bij de basis en geven eerst een introductie van Salesforce Flow en Apex:
Salesforce Flow
Salesforce Flow is een automatiseringstool waarmee admins applicaties kunnen bouwen die gegevens verzamelen, bijwerken en bewerken op basis van specifieke voorwaarden. Salesforce Flow is een No-code / Low-code oplossing. Dit verwijst naar een ontwikkelingsaanpak waarmee gebruikers applicaties kunnen maken en processen kunnen automatiseren zonder traditionele code te schrijven. In plaats daarvan wordt er gebruik gemaakt van intuïtieve visuele interfaces, drag-and-drop-functionaliteiten en vooraf gebouwde componenten.

Apex
Apex is de eigen programmeertaal van Salesforce, speciaal ontworpen om complexe logica en maatwerk binnen het Salesforce-platform mogelijk te maken. Het wordt ook wel een zustertaal van Java genoemd vanwege de Java-achtige syntaxis, concepten en functies. Apex wordt vooral gebruikt wanneer bepaalde automatiseringen niet mogelijk zijn in standaard flows.
Kies de juiste tool bij de juiste use-case
Bij het automatiseren van processen in Salesforce is het cruciaal om de juiste tool te kiezen. Kijk altijd eerst of Salesforce een standaard functionaliteit biedt voor de automatisering die je wilt maken. Als er een standaard functionaliteit bestaat, gebruik deze dan. Het grote voordeel hiervan? Salesforce zorgt zelf voor updates, onderhoud en beveiliging. Bij het gebruik van Flow of Apex ligt die verantwoordelijkheid bij jezelf. Bestaat er geen standaard Salesforce functionaliteit, kies er dan voor om de automatisering te bouwen met Flow.
Wanneer kies je dan voor Apex? Als je proces complexer is dan wat Flow aan kan, is Apex de logische stap. Apex biedt maximale flexibiliteit, maar vraagt ook om meer beheer en documentatie.
Laat je einddoel leidend zijn
De keuze tussen Flow en Apex hangt af van wat je wilt bereiken. Een goed onderhouden Flow is vaak voldoende, maar zodra een Flow te ingewikkeld wordt, is overstappen naar Apex verstandig. Zoals in onderstaande afbeelding: je ziet hier een flow die onoverzichtelijk is geworden. Het werkt nog wel, maar het is lastig om te weten wat er gebeurt als je één aanpassing maakt.

Misvattingen over kosten en snelheid
Omdat Flow een No-Code / Low-Code oplossing is, denken veel mensen dat het automatisch goedkoper en sneller is dan programmeren met Apex. Het lijkt een logische gedachte, omdat admins zonder programmeerkennis kunnen zelf aanpassingen doen.
Maar dat is niet altijd het geval. Beide opties hebben hun eigen complexiteit en onderhoudsvereisten. Een eenvoudige Flow kan snel zijn, maar zodra processen ingewikkeld worden, kan het bouwen en onderhouden juist tijdrovend en kostbaar worden. Apex kan in sommige gevallen efficiënter en betrouwbaarder zijn, afhankelijk van de use-case.
Vuistregels
- Onderzoek allereerst of er een standaardfunctionaliteit is voor de automatisering die je wilt bouwen. Is die er niet dan is Flow je eerst volgende keuze.
Gebruik Flow wanneer:
- Er geen standaard Salesforce proces voor bestaat;
- Het proces eenvoudig is;
- De gebruiker erdoorheen moet kunnen klikken;
- Het gaat om één of een paar records;
- Admins zelf aanpassingen moeten kunnen maken.
Gebruik Apex wanneer:
- Er met veel data tegelijk wordt gewerkt;
- Er rekenwerk moet worden uitgevoerd op basis van meerdere tabellen/regels;
- Er een externe koppeling is;
- Er behoefte is aan een goede manier om fouten op te vangen en netjes af te handelen..
Gebruik Flow + Apex wanneer:
- Gebruiksvriendelijke Flow gewenst is, maar de rekenlogica te zwaar is voor Flow;
- Wanneer Flow een Apex-class kan aanroepen.
Documenteer je keuzes
Herken je dat je niet meer weet welke functie waarvoor dient? Dat een wijziging in A ervoor zorgt dat B instort? Dit is vaak het gevolg van onvoldoende documentatie en een gebrek aan structuur in je keuzes. Welke keuze je ook maakt niet, leg altijd vast waarom je voor een bepaalde oplossing hebt gekozen en wat de impact is.
Conclusie
De keuze tussen Flow en Apex hangt dus af van de complexiteit van de logica. Wanneer een Flow te complex wordt, is deze moeilijk te beheren, terwijl dezelfde logica efficiënter beheerd kan worden met Apex.
Voorafgaand aan de implementatie is het belangrijk om jouw proces te ontwerpen en te beoordelen of hier een standaard Salesforce proces voor is en of er vaak aanpassingen moeten worden gedaan. Als dat het geval is, heeft Flow de voorkeur. Als de vereisten echter complexe logica of grote hoeveelheden gegevens omvatten, is Apex meestal de betere optie.
Hulp nodig bij het bouwen van automatiseringen in Flow of Apex? Onze consultants staan altijd voor je klaar om je vragen te beantwoorden.