Project overview
Our client askedus to create a new website integrated with an already existing Salesforce application. The app was created declaratively (without coding), internal user-oriented and meant mostly to store partners’ data with no frontend layer.
The website had two main goals:
To enable the client posting publicly available requests for ideas, with certain requirements. One of the challenges was that users could filter, sort, bookmark and set reminders.
To let website users reply to requests for ideas once they register and log in. The submissions would consist of a few different text inputs in a form of answers to some questions and file attachments, like images or .zip files. Users could potentially establish cooperation with the client if the idea fulfilled the requirements.
The submissions would consist of a few different text inputs in a form of answers to some questions and file attachments, like images or .zip files. Users could potentially establish cooperation with the client if the idea fulfilled the requirements.
Challenges
The new website had to be integrated with the existing Salesforce application and fullfill complex security requirements.
Complex requirements regarding sharing settings for internal users (client’s employees)
Creating functionalities for complying with data retention policy - for example, enabling the authorized internal users easily obfuscate external users' data if such request comes by
Creating a newsletter subscription functionality with only Experience Cloud, no Marketing Cloud – to avoid any additional costs and to keep things as simple as possible
Allowing external users to attach files and review them later on
Enabling the external and internal users to communicate freely within the application
Solution
We decided to create a new application that would work as an extension to the existing one. It doesn’t interfere with anything that was created earlier, only adds new functionalities on top of it.
We used declarative sharing wherever possible to enable simple maintenance of the permissions in the future – the client can edit the settings within Salesforce UI. The complex requirement of sharing data with a very specific, dynamically changing group of people was covered with the use of Apex managed sharing.
We created a flow which notifies authorized internal users about required actions regarding data retention policy and a button which can automatically scramble external users' data.
We implemented a batch email sender and a newsletter template to send multiple emails at once without the need to use other technology
We created file handling logic with the use of advanced external user licenses
We added a custom communication system to an object which stores users’ proposal data to enable the external and internal users to freely talk about the idea and attach extra files if needed
Outcome
We managed to deliver the project in a very short time. The app for internal users prevents them from abusing the functionality with many data validation rules required by the client. A friendly front end layer for external users was created.