Help me create an salesforce experience cloud portal with below details
Portal functions for launch We would like to launch with the following functions: • An events calendar that Ara Taiohi admins can add events to o If these events could be tagged with key words, that would be great o Would it be possible to restrict access by tag? We could intro this later if not possible for launch date (e.g. a Korowai Tupu tag: if an event has this tag, only Korowai Tupu members and admins can see it) o Events would need to show title, date, short description, and link to sign up/ more info. • A zoom-able map of New Zealand that is populated with membership locations o We would want all Group Members to be visible on the map by default. The primary contact of the Group Member could choose to switch this off OR only include them by their city, region rather than a street address. o We would want all Personal and Korowai Tupu members to be asked whether they would like to be displayed on the map by their city and region. There would not be the option for full addresses to be shared for these members • A resource hub that Ara Taiohi admins can upload important documents to o If these documents could be tagged with key words, that would be great o Document formats would be PDF, doc, png, jpg, weblinks? o Each entry would need a heading, short description, and list of tags. • A membership survey question o We would plan to ask a new question each month o Once a person answers the question, they can see the results in a graph format, e.g. pie chart, bar graph, word cloud o After answering the q, the info would update whenever someone comes back to the main home page • Previous pānui (newsletters) o Entries by date and tag (general, member-only, Korowai Tupu, Ngā Kaihoe). Restrict access by tag o I’d love to explore to you how we could best format these entries
Answering your questions: Your Q My response What are the different external links we need to add to the portal and where, for example: Our website. Yes, link to main page: www.arataiohi.org.nz
Social media pages. Yes, if we could have links to... Facebook page: https://www.facebook.com/AraTaiohi/ Instagram page: https://www.instagram.com/arataiohi/
Sister websites www.involve.org.nz
Any other useful links? Could we please also link to https://arataiohi.org.nz/youthweek/
Any click to call number. No we wouldn’t want this feature at this stage. Some initial group names, which of them need to be public/private? When you say group names, I may have misunderstood you. I think for our launch we would want to just stick to membership types plus Ngā Kaihoe as the potential groups people can belong to. These groups can be public as default Group Member Personal Member Korowai Tupu Member Ngā Kaihoe Anything else we need to add to the portal? I’d love to discuss with you how it would look to link to our website’s shop in a way that could give access to membership discounts on shop purchases. This may need to be discussed as a post-launch project.
I'll help you create a Salesforce Experience Cloud portal based on your requirements. Let me outline how we can implement each of the requested functions and provide some code examples for key components.
Based on your requirements, we'll need to implement:
Let's break down how to implement each of these components in Salesforce Experience Cloud.
For the events calendar, we'll use a combination of custom objects and Lightning components.
force-app/main/default/classes/EventController.cls
Now, let's create the Lightning Web Component for the calendar:
force-app/main/default/lwc/eventsCalendar/eventsCalendar.js
For the zoomable map of New Zealand with membership locations:
force-app/main/default/lwc/membershipMap/membershipMap.js
And the corresponding Apex controller:
force-app/main/default/classes/MembershipMapController.cls
For the resource hub with document management:
force-app/main/default/classes/ResourceHubController.cls
And the corresponding Lightning Web Component:
force-app/main/default/lwc/resourceHub/resourceHub.js
For the monthly membership survey with result visualization:
force-app/main/default/classes/SurveyController.cls
And the corresponding Lightning Web Component:
force-app/main/default/lwc/membershipSurvey/membershipSurvey.js
For the newsletters with access restrictions:
force-app/main/default/classes/NewsletterController.cls
And the corresponding Lightning Web Component:
force-app/main/default/lwc/newsletterHub/newsletterHub.js
Now, let's create a homepage that brings all these components together:
force-app/main/default/lwc/araTaiohiPortalHome/araTaiohiPortalHome.js
To set up the Experience Cloud portal, follow these steps:
Create a New Experience Cloud Site:
Configure Theme and Branding:
Create Custom Objects:
Create the following custom objects in Salesforce:
Deploy Lightning Web Components:
Deploy all the LWC components we've created:
Configure Experience Builder Pages:
Create dedicated pages for each major feature:
Set Up Navigation:
Configure the navigation menu with links to:
Configure Member Access:
Set up permission sets for different member types:
Add External Links:
Add links to:
Let's define the fields for each custom object:
To support the different membership types, we'll need to:
Create a custom field on the User object:
Configure permission sets for each member type to control access to:
If you need to integrate with external systems for event registration or other functionality, we can use Salesforce Connect or custom API integrations.
All components are designed to be responsive and work well on mobile devices, which is important for member engagement.
For post-launch enhancements, we can consider:
Development Phase (4-6 weeks):
Testing Phase (2-3 weeks):
Launch Phase (1-2 weeks):
Post-Launch Support (Ongoing):
Would you like me to elaborate on any specific aspect of this implementation plan? I can provide more detailed code examples or configuration steps for any part of the portal.
Let's leverage Salesforce's standard features and the latest technology rather than creating custom objects where possible. This will make the implementation more maintainable and aligned with Salesforce best practices.
Instead of creating a custom Event__c object, we can use Salesforce's standard Calendar and Event objects with some customizations:
force-app/main/default/classes/EventCalendarController.cls
For the Lightning Web Component, we'll use the latest Lightning Web Components (LWC) features and the Lightning Design System:
force-app/main/default/lwc/communityEventCalendar/communityEventCalendar.js
The HTML template for the calendar component:
force-app/main/default/lwc/communityEventCalendar/communityEventCalendar.html
CSS for the calendar component:
force-app/main/default/lwc/communityEventCalendar/communityEventCalendar.css
For the interactive map, we'll use the Leaflet library with LWC:
force-app/main/default/lwc/membershipMap/membershipMap.js
The Apex controller for the map:
force-app/main/default/classes/MembershipMapController.cls
Instead of creating a custom Resource__c object, we can leverage Salesforce Files and Content Libraries:
force-app/main/default/classes/ResourceHubController.cls
The Lightning Web Component for the Resource Hub:
force-app/main/default/lwc/resourceHub/resourceHub.js
HTML template for the Resource Hub:
force-app/main/default/lwc/resourceHub/resourceHub.html
CSS for the Resource Hub:
force-app/main/default/lwc/resourceHub/resourceHub.css
For the membership survey with result visualization:
force-app/main/default/classes/SurveyController.cls
The Lightning Web Component for the survey:
force-app/main/default/lwc/membershipSurvey/membershipSurvey.js
HTML template for the survey component:
force-app/main/default/lwc/membershipSurvey/membershipSurvey.html
For the newsletters with access restrictions:
force-app/main/default/classes/NewsletterController.cls
The Lightning Web Component for the newsletters:
force-app/main/default/lwc/newsletterHub/newsletterHub.js
HTML template for the Newsletter Hub:
force-app/main/default/lwc/newsletterHub/newsletterHub.html
CSS for the Newsletter Hub:
force-app/main/default/lwc/newsletterHub/newsletterHub.css
Now, let's create a homepage that brings all these components together using the latest Lightning Web Components:
force-app/main/default/lwc/araTaiohiPortalHome/araTaiohiPortalHome.js
HTML template for the homepage:
force-app/main/default/lwc/araTaiohiPortalHome/araTaiohiPortalHome.html
CSS for the homepage:
force-app/main/default/lwc/araTaiohiPortalHome/araTaiohiPortalHome.css
To set up the Experience Cloud portal using the latest Salesforce technology:
Create a New Experience Cloud Site:
Configure Theme and Branding:
Custom Fields for Standard Objects:
Add custom fields to the standard Event object:
Add custom fields to the Contact object:
Add custom fields to the ContentVersion object:
Create Custom Objects for Survey:
Survey_Question__c:
Survey_Response__c:
Deploy Lightning Web Components:
Deploy all the LWC components we've created:
Configure Experience Builder Pages:
Set Up Navigation:
Configure the navigation menu with links to:
Configure Member Access:
Set up permission sets for different member types:
Add External Links:
Add links to:
To support the different membership types, we'll need to:
Create a custom field on the User object:
Configure permission sets for each member type to control access to:
For better content management, we can use Salesforce CMS to manage the content for the portal, which is the latest recommended approach for Experience Cloud sites.
All components are designed to be responsive and work well on mobile devices using the latest SLDS (Salesforce Lightning Design System) grid system.
For post-launch enhancements, we can consider:
Development Phase (4-6 weeks):
Testing Phase (2-3 weeks):
Launch Phase (1-2 weeks):
Post-Launch Support (Ongoing):
This revised implementation leverages standard Salesforce features and the latest technology, making it more maintainable and aligned with Salesforce best practices.