5. Agenda
● 5:40 PM Evolution of Expertise: Transitioning from Oracle Consulting to Salesforce
Ecosystem, by Tom Souza
● 6:00 PM Platform Events, by Ernesto Rodríguez
● 6:20 PM Connecting Salesforce Orgs/Communities/External Products using
Salesforce SAML Capabilities, by Sushil Kumar
● 6:40 PM Empowering Nonprofits Orgs: Leveraging Salesforce for Church Ministries
Internal Operations, by Alfredo Salcedo
● 7:00 PM Greeting and refreshments
6.
7. Disclaimer: Professional Background
• 3 Years as a Developer: Java, VB.Net, C#, Cobol, and VBA.
• 1 Year in IT Support: resolving desktop hardware issues, proficient
with Windows, networks, and skilled in Microsoft Office applications
including PowerPoint and Excel.
• 10 Years as Oracle Consultant: expertise in Linux environments,
database management, middleware, web servers, security protocols,
and user management, including authentication and authorization.
8. Timeline 1/3
2012:
• Initial encounter with Salesforce during a Single Sign-On project between Oracle and
Salesforce.
2012 - 2020:
• Faced numerous challenges with on-premises setups, including firewall issues and
misconfigurations.
• Utilized Salesforce Dev Orgs to validate Oracle SSO implementations.
9. Timeline 2/3
Feb/2020 - Feb/2021:
• Company started a Salesforce Practice.
• Assisted in establishing the new practice by engaging customers to identify Salesforce
points of contact.
• Sought guidance from VP on learning Salesforce.
• Immersed myself in Trailhead modules and SuperBadges.
• Transition to Salesforce was a long-desired change, propelled by a clear opportunity.
• Received support from Manager, Director, and VP to learn Salesforce alongside Oracle
duties.
• Maintained regular communication with Salesforce Team members through 1:1
interactions, sharing Trailhead achievements and addressing questions.
10. Timeline 3/3
Jan/2021:
• Negotiated part-time involvement in SF tickets.
• Initially contributed as an SF Admin on an internal project.
• Transitioned to handling external assignments.
• Conducted numerous Knowledge Transfer sessions with Oracle peers.
• Participated in candidate interviews for my replacement.
Oct/2021:
• Official transition from Oracle to Salesforce Practice, marking nearly 2 years since the first
Trailhead module.
Nov/2023:
• Hired as Salesforce Developer by Southern Glazer's Wine & Spirits, two years after
transitioning from Oracle
11. So Good They Can't Ignore You:
Why Skills Trump Passion in
the Quest for Work You Love
Cal Newport
12. 1.Curiosity
● Curiosity is the spark that fuels
continuous learning.
● It drives adaptability across diverse
technology stacks.
● Remember, there's always something
waiting to ignite your inner curiosity.
○ Software Development topics catch my eye,
attention, and heart.
13. 2.Embracing Self-Learning
● The ability to self-learn and upskill is
invaluable.
● While learning from others is great,
self-learning, like exploring YouTube
videos, can be essential.
● Find your style and the best time to
focus.
14. 3.Continuous Learning
● Continuous learning should be
enjoyable(if possible) - it brings
us closer to our end goal.
● Find ways to maintain your
knowledge.
15. 4.Embracing Persistence
● Persistence is key, especially when
things get tough.
● Getting certifications is attention-
grabbing, but it's just the
beginning.
16. 5.Marketing & Sales
● Job interviews are sales
opportunities. Most of us sell
ourselves short.
○ Don't underestimate the power of
selling your skills.
● Tie results and customer trust to
inside sales. Your results are
your 'brand'.
17. 6.Effective Communication
● Communication sets clear goals
and facilitates giving and
receiving feedback.
● Even the smartest talents can
struggle with communication.
18. 7.Mastering Negotiation
● Negotiation helps secure projects,
guide customer decisions, and
even determine salary and time
off.
● 'No Paralysis through Analysis'.
20. 9.Leading by Example
● Leadership isn't just about being
loud.
● Helping and unblocking teammates
is leadership too.
● Start with a small group; their
success is yours.
21. 10.Embracing Courage
● Give it a try - even if you don't feel prepared or confident
enough.
● If you’re feeling well-prepared, you may have lost precious time
that could've propelled your knowledge further.
25. Real-time Integration with Platform Events
Event Driven Architecture:
● Need for real-time data processing
● A design pattern where components communicate via
events.
● Events signal significant changes in state.
● Decouples components
Key Components:
● Event message: Data about the event
● Event producers: Publisher of the event message
● Event channels: Pathways for event transmission
● Event consumers: Subscriber to channel, react to events
● Event Bus: Centralized event management and dispatch
Advantages:
● Scalability: Handles varying loads efficiently
● Flexibility: Easy to add or modify components
● Responsiveness: Real-time reaction to state changes
Event Bus
Event
Producer
Event
Producer
Event
Producer
Event
Consumer
Event
Consumer
26. Understanding Platform Events
● Event-driven messaging system within Salesforce
● Enables communication between Salesforce and
external systems or within Salesforce itself.
● sObject similar schema without database persistence.
● Give it a name and add custom fields
● High-volume: 72h retention in Event Bus
● Publish events by using Apex, Processes, Flows or via
API
● Subscribe via Apex triggers, Processes, Flows or
CometD for external apps
● Pre-built connectors with stream processing
middleware (E.g MuleSoft)
● Asynchronous thread with additional controls
○ Set batch size up to 2000 (Metadata API)
○ Set running user (Metadata API)
○ Set Apex checkpoint for trigger resumption
○ Replay lost events from event bus (CometD)
Event Bus
Processes Flows Apex API
27. Use Case: Real-time Order Processing
Event Bus
Site
Shipping
Management
Publish 'ORDER' Publish 'SHIPMENT'
subscribe 'ORDER' subscribe 'ORDER'
Consumer App
Reporting
System
Billing System
subscribe 'ORDER' subscribe 'SHIPMENT'
Event
Producers
Event
Transport
Event
Consumers Shipping
Management
28. Ultimate Dream Scenario
Event Bus
CRM
Shipping
Management
Event
Producers
Event
Transport
Consumer App
Order
Management
30. Design Considerations
● Publish Behaviour - "Publish immediately" vs "Publish after Commit"
● Use to communicate across packages
● Balance resources and limits consumption of an org
● Be mindful of execution order
● Monitor usage limits via Apex limits & Rest limits endpoints
● For External subscribers, build error handling capabilities to read through Event bus
with replayID
● Limit number of fields and data to stay under 1 MB message size limit or keep a
check, e.g JSON serialize and check bite size
● Define number of platform events while balancing across limits:
○ Have specific definitions for each use case
○ Have generic definitions to reuse for many use cases
31.
32.
33. About me
❖ Salesforce Technical Architect at UKG
❖ In Salesforce World for 12+ Years
❖ Ex Java Developer
❖ 2 Kids(10 and 3)
❖ Recent Hobby - Playing Pickleball
34. What is SAML
SAML (Security Assertion Markup Language) is an XML-based framework used for exchanging
authentication and authorization data between identity providers (IdPs) and service providers (SPs).
<saml2:Subject>
<saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">rose@edge.com</saml2:NameID>
<saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml2:SubjectConfirmationData NotOnOrAfter="2024-03-08T19:12:58.925Z" Recipient="https://creative-narwhal-5ahnz1-
dev-ed.trailblaze.my.site.com/login"></saml2:SubjectConfirmationData>
</saml2:SubjectConfirmation>
</saml2:Subject>
35. Service Provider User Agent Identity Provider
Identity Provider Initiated SSO Flow
Redirect to Service Provider with
SAML Assertion
Post SAML Assertion to ACS Endpoint
Respond with requested Target
Resource
User Clicks on Link with within IDP(e.g.
Clicking training system link from your
community)
Example - From your community, You want your customers/partners
to SSO into other apps like your LMS
36. Setup Salesforce as IDP
1. To setup salesforce as IDP, We need to create SAML enabled connected app in Salesforce.
2. Provide relevant user profiles/permission sets access to the connected app.
3. Expose the IDP Initiated Login url in community as Link
37. Service Provider User Agent Identity Provider
Request Target
Resource
Redirect to Identity Provider for
SSO Service
Request SSO Service from
Identity Provider
Service Provider Initiated SSO Flow
Redirect to Service Provider with
SAML Assertion
Post SAML Assertion to ACS Endpoint
Respond with requested Target
Resource
Authenticate the User
SP Flow Example - You go to your production url(which ends
with my.salesforce.com and it redirects you to your company
Identity provider like Okta)
38. Setup Salesforce as Service Provider
1. To setup salesforce as Service Provider, We need to create single sign on setting in salesforce.
2. Identity provider should share the certificate that you can upload in your single sign on settings.
3. SAML Identity Type Determines which field SP should compare in org before it let user in. (e.g. federation
id(can be custom value, username or user id)
39. Demo Setup for Universal Containers
UC Product UC Community UC LMS
IDP SP and IDP SP
Scenarios -
1. IDP Initiated SSO - User is already logged into IDP(Your community) and clicks on IDP url(from
connected app) and IDP posts SAML to SP and user is logged into SP
2. Relay State – Parameter passed by IDP to SP so SP can redirect user to particular url after login to SP
3. SP Initiated SSO – User starts from SP and gets redirected to IDP if its only one IDP. If more than one
IDP setup, user gets choice.
4. Passthrough - In above example, UC Product is IDP for community and UC community is IDP for UC
LMS. Now if you want to go from product directly to LMS, You can use passthrough approach.
5. SAML Identity Type – Main field that is used to validate particular user during single sign on process.
In SAML xml its called subject. So depending upon use case, there should be a record in SP to
validate the user coming in. Some SPs dont validate the user, they just look at other attributes sent
in SAML response.
42. Some additional features
1. Just In Time User Provisioning
a. When setting Salesforce as Service Provider, You can enable Just In Time User
Provisioning which allows user to be provisioned if it does not exist in org
already.
2. Protecting Community with another Auth Provider
a. You can remove login options from community and protect it with another
authentication provider like another community.
3. Connected App Handler
a. Allows you to write custom Apex Logic to add additional attributes to SAML
Response that is sent to service provider.
43.
44.
45. Alfredo
Salcedo
● 16+ years career with salesforce as platform with
DHL Global Forwarding in the temperature
controlled shipments sector as Business Analyst &
process improvement and innovation manager.
● Partner to a consulting firm (FDS Consulting ) that
help small startup businesses transition to mid-
sized business
● Proud member at Presencia Viva, Christian Church
as operational platform leader Xcellence (Sales force
operational platform)
47. USE CASE
Just like other businesses operation, churches have the need
to adapt to their operational growth while upholding core
values to their members and in Presencia Viva we make sure
this DO NOT DEVIATE
○ We Do Things With Excellence
○ Church with Integrity
○ We Have A Generational Mentality
○ We Love People
○ We Are Worshipers
○ We Have A Purpose
○ We Are Generous
48. USE CASE
● Operational Systems Support Growth
● Effective Resource Utilization
● Streamlined Processes
● Focus on Core Mission
● Maintaining Core Values
● Authenticity in Expansion
● Enhanced Community Impact in our
family core values.
49. Salesforce: Power of Us Program.
More than 56,000
nonprofit
organizations &
educational institutions
started their journey
with the Power of Us
Program.
Resources:
● https://www.sa
lesforce.org/po
wer-of-us/
50. ● Operational Tasks system
● Inventory System
● Pastoral Care
● Volunteer Care
● Church Members Care
● Quality Management System
● Training Center
● Project Tools ( events )
51. Let use technology for good and
make a meaningful impact on
people's lives
Jesus said, 'It is more blessed to give than
to receive' Acts 20:35.