9 hordes bij het ontwikkelen van Salesforce Sites

Iedere Salesforce ontwikkelaar die op een goede dag begint aan het ontwikkelen van een site, zal tegen een aantal beperkingen aanlopen die hij wellicht niet had verwacht. In deze blog neem ik je mee langs een aantal van die hordes.
Met een site ontsluit je Salesforce voor gebruikers zonder licentie. Zo kun je geld besparen door gebruikers die slechts beperkte toegang tot jouw Salesforce organisatie nodig hebben, geen licentie te geven, maar een site.

Horde 1: De gastgebruiker van site is geen gewone gebruiker

Het belangrijkste om te begrijpen als je een site gaat bouwen, is dat je te maken hebt met een site-specifieke gebruiker, een gastgebruiker van site. Deze gastgebruiker van site komt niet voor in je lijst met normale gebruikers, heeft geen gebruikersnaam en wachtwoord, en je kunt de gastgebruiker dus ook niet gebruiken om in te loggen op Salesforce. Op het moment dat je jouw site bezoekt, zal alle interactie met Salesforce gebeuren op naam van de gastgebruiker van site. Pas je een record aan, dan zal de gastgebruiker van site zichtbaar zijn als degene die het record als laatst heeft aangepast. De gastgebruiker van site is niet te herleiden naar een natuurlijk persoon.

Horde 2: Het profiel van de gastgebruiker vraagt extra aandacht

Het ligt dan ook voor de hand om de gastgebruiker van site zo weinig mogelijk rechten te geven. De gastgebruiker van site heeft daarom zijn eigen, unieke, niet aan andere gebruikers toewijsbare profiel. Je vindt het profiel niet bij de profielen voor de normale Salesforce gebruikers, maar via de knop “Instellingen voor openbare toegang” in de Sitedetails. Geef in dat profiel niet meer dan de hoogst noodzakelijke rechten.

Horde 3: Een gastgebruiker van site kan geen standaardobjecten bewerken of verwijderen

Je kunt de gastgebruiker van site alle soorten rechten geven op custom objecten. Dat geldt niet voor standaard objecten. Accounts kun je wel lezen en maken via site, maar niet bewerken. In onderstaand screenshot zie je een deel van de standaardobjecten met hun mogelijkheden voor de gastgebruiker.

Horde 4: Soms zijn ingewikkelde constructies onvermijdelijk

Wil je bijvoorbeeld dat jouw klanten kunnen inloggen en hun eigen account kunnen bewerken? Dan is het eerste waar je aan zou moeten denken om je klant een (community) licentie te geven. Wil je dit niet, dan is een apart object met een lookup naar account wellicht een optie. Voldoet ook deze oplossing niet, dan zijn er twee manieren om vanuit site een account te bewerken of verwijderen:

  1. Schrijf de updates die je klant op zijn account moet doen, weg in een apart object en laat een Batch class dit object uitlezen en verwerken. Een batch class wordt uitgevoerd in de context van een echte Salesforce user en die wel accounts kan bewerken.
  2. Gebruik een e-mailhandler. Verstuur vanaf de site een e-mail, waar je de wijzigingen op account in de body zet. De e-mailhandler verwerkt deze e-mail als een bepaalde Salesforce gebruiker en kan dus ook het account updaten.

Horde 5: E-mailen vanaf een site moet met een bijzonder e-mailadres

Over e-mailen gesproken: als je e-mailt vanuit een site, krijgt de ontvanger een e-mail van “sitenaam gastgebruiker van site”. Dat kan natuurlijk een stuk netter. De enige manier hiervoor is het aanmaken van een “E-mailadres voor de gehele organisatie”. Zo’n e-mailadres kan worden gebruikt door een selectie van profielen. Omdat de gastgebruiker van site profiel geen standaard profiel is, is deze niet beschikbaar voor deze keuze. Je moet het e-mailadres beschikbaar maken voor “Alle profielen”, zodat ook jouw gastgebruiker van site dit e-mailadres kan gebruiken.

Horde 6: Sitepagina’s testen kan niet goed op de standaardmanier

Als Salesforce ontwikkelaar gebruik ik Illuminated Cloud. Hiermee kan ik bij het bewerken van een pagina op een icoontje van een webbrowser klikken om de pagina in die browser te openen. Ik word dan bijvoorbeeld naar https://docg-dev-ed–docg.eu10.visual.force.com/apex/HelloWorld geleid. Op dat moment ben ik ingelogd als Salesforce gebruiker, met mijn eigen rechten op objecten, velden en pagina’s (als jij nu op die link klikt, wordt je gevraagd in te loggen). Bij het ontwikkelen van sites wil je altijd testen in de context van de site: https://growteq-developer-edition.eu10.force.com/blog . Je ziet in deze url de domeinnaam terug die is ingesteld onder “Mijn domein”. Via deze url benader je de pagina als gastgebruiker van site, met zijn eigen specifieke rechten en beperkingen: precies wat je wilt als je goed wilt testen.

Horde 7: Foutopsporingslogboeken activeren vraagt extra werk

Als tester kom je dan bij de volgende kleine uitdaging: waar haal je je debug logs vandaan? Onder “Foutopsporingslogboeken” creëer je een nieuwe traceringsvlag voor “Blog Gastgebruiker van site” (mijn site heb ik ‘blog’ genoemd). In de sectie Foutopsporingslogboeken vind je de logboeken terug. Een traceringsvlag is beperkt geldig en moet dagelijks vernieuwd worden als je de logboeken wilt blijven bekijken.

Horde 8: Visualforce debuggen kan moeizaam zijn

Als er iets fout gaat in je controller, vind je in de logboeken de exceptions terug. Soms kun je helemaal niets met zo’n logboek: er staat dan alleen in dat er een authenticatiefout is opgetreden. Meestal moet je de oplossing dan in de visualforcepagina zoeken. Als je in apex een collectie niet hebt geïnitialiseerd krijg je een nette nullpointer exception. Maar als je in visualforce met een apex:repeat een null-waarde wilt gaan uitlezen, krijg je een scherm te zien met de mededeling dat je moet inloggen. Het logboek vertelt je hetzelfde. Mijn aanpak is om dan hele blokken visualforce te verwijderen tot ik de plek heb geïsoleerd waar de foutmelding door veroorzaakt wordt.

Horde 9: Url-parameters kunnen verdwijnen

Ik wil nog één punt aanstippen: het gebruik van parameters in de url. Een bedrijf stuurde e-mails uit naar klanten met een link waarop zij konden klikken om een Salesforce site openen. De url bevatte twee parameters, die beide belangrijk waren om de pagina überhaupt te kunnen zien. De eerste was het accountId, de tweede een accesstoken die beperkt geldig was. In de pagina maakte ik gebruik van actionFunctions in combinatie met een reRender. Om het herladen van de pagina te voorkomen sloot de apex-functie af met return null;. Op dat moment verdween de tweede parameter uit de url. Nu was de viewstate nog intact en leverde dat niet direct problemen op, maar je kunt je voorstellen dat de gebruiker raar opkeek toen hij de url kopieerde en in een ander tabblad plakte en de melding kreeg dat de url niet geldig was. Ik het opgelost door het bij één parameter te houden en daarin de accountId en accesstoken gescheiden door een ‘-’ op te nemen.

Tot slot

Er valt nog veel meer te schrijven over het ontwikkelen van pagina’s, componenten en site en wat je daarbij allemaal aan hordes kunt tegenkomen. Hopelijk heb je met deze blog een goed beeld gekregen van de top 9 hordes.

Meer weten over onze oplossingen?

Onze consultants hebben veel ervaring binnen een grote verscheidenheid aan branches.
Eens verder brainstormen over de mogelijkheden voor jouw organisatie?

Maak kennis met onze specialist Arnoud van der Heiden.

Wellicht herkent u een van deze vraagstukken.

Inmiddels hebben wij ruime ervaring opgedaan met customer engagement. Wij staan ook u graag te woord bij vragen of opmerkingen.

Salesforce is een Cloud gebaseerd softwareplatform dat organisaties helpt om hun verkoop, marketing en klantenservice te beheren en te automatiseren. Het kan een groot verschil maken in de manier waarop uw bedrijf zakendoet, zoals meer inzicht krijgen in de behoeften van uw klanten en uw salesproces stroomlijnen.

Growteq is een gecertificeerde Salesforce-partner met een team van ervaren consultants die de implementatie van Salesforce kunnen begeleiden. Ze hebben een bewezen trackrecord in het succesvol implementeren van Salesforce-oplossingen en bieden ondersteuning tijdens en na de implementatie. 

Een Salesforce-implementatie is het proces waarbij Salesforce wordt geïntegreerd in uw bedrijfsprocessen. Dit omvat onder meer het configureren van Salesforce om aan uw specifieke bedrijfsbehoeften te voldoen, het migreren van gegevens en het trainen van uw personeel om de nieuwe software te gebruiken. 

De duur van een Salesforce-implementatie hangt af van verschillende factoren, zoals de grootte van uw organisatie en de complexiteit van uw bedrijfsprocessen. Een typische implementatie duurt echter tussen de drie en zes maanden. 

De kosten van een Salesforce-implementatie kunnen variëren afhankelijk van de grootte van uw organisatie en de complexiteit van uw bedrijfsprocessen. Growteq biedt verschillende pakketten aan om aan de behoeften van verschillende klanten te voldoen. 

Ja, Salesforce is ontworpen om intuïtief en gebruiksvriendelijk te zijn. Bovendien biedt Growteq training en ondersteuning aan om ervoor te zorgen dat uw personeel de software goed begrijpt en kan gebruiken. 

Growteq biedt verschillende soorten ondersteuning, waaronder onderhoud, training en voortdurende ondersteuning voor het oplossen van problemen en het aanpassen van Salesforce aan uw veranderende bedrijfsbehoeften. 

Om te beginnen met de implementatie van Salesforce kunt u contact opnemen met Growteq om een afspraak te maken voor een gratis consult. Ze zullen u helpen bij het begrijpen van uw bedrijfsbehoeften en u adviseren over de beste manier om Salesforce te implementeren. 

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Fill out this field
Fill out this field
Geef een geldig e-mailadres op.

Categorieën

Categorieën

Vragen?

Onze specialisten geven graag antwoord op uw vragen!