How We Built AppExchange and Our
Communities on the Salesforce Platform
​ Safe harbor statement under the Private Securities Litigation Reform Act of 1995:
​ This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties
materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed
or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-
looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any
statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new,
planned, or upgraded services or technology developments and customer contracts or use of our services.
​ The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new
functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our
operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any
litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our
relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our
service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger
enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our
annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter.
These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section
of our Web site.
​ Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available
and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features
that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
Safe Harbor
Heather Conklin
​ Lead Member Technical
Staff
​ Product Designer
Todd Reasinger Jochem Geerdink
​ Director, Product
Management
Meet Our Speakers
Our Team
​ Developers
​ Quality Engineers
​ Document Writers
​ UX Designers
​ Development Managers
​ Product Managers
​ The people responsible for
the AppExchange and the
Success & Partner
Communities
​ 
History & Overview
Three of the top Salesforce web properties
​ AppExchange
​ #1 Business App
Marketplace
​ https://appexchange.salesforce.com
​ Success Community
​ Community of 1.8M+
Salesforce Users
​ https://success.salesforce.com
​ Partner Community
​ Community for the
Partner Ecosystem
​ https://partners.salesforce.com
AppExchange Journey
Oct
2006
Dec
2009
Sept
2012
July
2015
Success Community Journey
2005 2013 Jan
2014
August
2014
Partner Community Journey
2009 Mar
2014
Feb
2015
July
2015
RETIRED
Architecture
Architecture
​ Built 100% on platform – we
work like you do
​ 3 sites run on 1 org
​ Integrate with 5 other orgs
​ Stripe and Recurly used for
payment processing
​ Salesforce on Salesforce
- Accounts, Cases, Leads, etc.
- Certifications
- Known Issues
- Partner Training
- Knowledge Articles & Docs
Architecture
​ 
Force.com Sites
Salesforce Communities
VFPages
Controllers
Utility Classes
DAO Classes
DO Classes
Customer Portal Users
Data
User Interface Creation
From Whiteboards to Products
​ 
Responsive Consistent On Platform
Apex, Visualforce, and LightningDesktop, Tablet, and Phone Looks like Salesforce
Three Basic Principles
​ Guide all requirements and designs
​ 
Data
Network
Identity
Product Development Process
Idea
Product
specifications
Information
architecture &
user experience
Visual
design
HTML
mockups
DevelopmentUser
testing
Product
Collaborate and iterate to deliver the best final product
HTML
​ 
•  Standard HTML
•  Consider browser support
•  Visualforce tags
<apex:inputTextArea
id="supportdescr"
styleClass="textarea-1000"
value="{!currentCase.description}"
html-maxlength="32000"/>
<textarea
id="supportdescr"
name="supportdescr"
class="textarea-1000"
maxlength="32000">
</textarea>
CSS
​ 
•  Custom CSS
•  showHeader is false
•  standardStylesheets is false
<apex:page
id="..."
showHeader="false"
standardStylesheets="false" ...>
...
</apex:page>
Override platform styling to create unique brand experience
CSS
​ Shared CSS stylesheets to maintain consistent look & feel
Responsive Web Design
​ Using CSS media queries and JavaScript
JavaScript
​ 
•  jQuery for easier web development
•  We use the platform wherever we can
<apex:actionFunction
name="removeSavedListing"
action="{!removeFromSaved}"
rerender="savedListingsContainer, savedListAmount"
onComplete="afterRemoveAction('{!listingId}');">
<apex:param name="slistingId" value=""/>
</apex:actionFunction>
Lesson #1: Build for Flexibility
Example: Marketing Content on AppExchange
​ 
Marketing can make changes any
time without involving the
development team
Custom object: LandingPages
Landing page content options:
•  Banner images
•  Table of listings
•  HTML blob
Declarative placement of listings and marketing materials
​ 
​ 
​ 
LandingPageSection: Banner
​ 
LandingPageSection: Banner
​ 
LandingPageSection: Table
​ 
LandingPageSection: Table
​ 
LandingPageSection: HTML
​ 
LandingPageSection: HTML
​ 
Lesson #2: Build Custom on the
Platform for Added Business Value
Why Custom Search?
​ 
Weight results by specific criteria to improve relevancy
Allow custom sort ordering – most popular, relevant, etc.
Combine results from multiple sources in single search
Example: Custom Search
​ 
Architecture
​ 
force.com Sites
Salesforce Communities
VFPages
Controllers
Utility Classes
DAO Classes
DO Classes
Customer Portal Users
Data
Custom Search
​ 
Listing
DO
Listing__c
Base
DO
Base Search
Engine
Listing Search
Engine
sObject
Custom Search
​ 
Listing Search Engine
•  Object and fields
•  Field weightings
•  Keywords
•  Filters
•  Sort order
Base Search Engine
•  SOSL keyword search (relevancy)
•  SOQL query (non-text or keyword
search)
•  Filter and sort
SearchPageController
initialize
search
List<BaseData>
Lesson #3: Integrate with APIs
Example: Connecting Multiple Salesforce Orgs
​ 
Salesforce Apps
Our Org Runs all 3 Sites
Chatter Content
Ideas
Answers
AppExchange Content
Data Needed:
Accounts
Cases
Leads
Certifications
Training
Known Issues
Knowledge Articles
Documentation
All your data in one place
​ 
Utility Classes
Platform Features
S2S
Rest Data
API
Custom
Rest API
Standard
Objects
Custom
Objects
Web
Services
Build for Flexibility Custom Adds Value Integrate with APIs
Connecting Multiple OrgsAppExchange Marketing Content Federated Search
3 Key Lessons
​ Remember these for your next development project
​ 
Questions?
Thank you

How We Built AppExchange and our Communities on the App Cloud (Platform)

  • 1.
    How We BuiltAppExchange and Our Communities on the Salesforce Platform
  • 2.
    ​ Safe harbor statementunder the Private Securities Litigation Reform Act of 1995: ​ This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward- looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. ​ The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. ​ Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements. Safe Harbor
  • 3.
    Heather Conklin ​ Lead MemberTechnical Staff ​ Product Designer Todd Reasinger Jochem Geerdink ​ Director, Product Management Meet Our Speakers
  • 4.
    Our Team ​ Developers ​ Quality Engineers ​ DocumentWriters ​ UX Designers ​ Development Managers ​ Product Managers ​ The people responsible for the AppExchange and the Success & Partner Communities ​ 
  • 5.
  • 6.
    Three of thetop Salesforce web properties ​ AppExchange ​ #1 Business App Marketplace ​ https://appexchange.salesforce.com ​ Success Community ​ Community of 1.8M+ Salesforce Users ​ https://success.salesforce.com ​ Partner Community ​ Community for the Partner Ecosystem ​ https://partners.salesforce.com
  • 7.
  • 8.
    Success Community Journey 20052013 Jan 2014 August 2014
  • 9.
    Partner Community Journey 2009Mar 2014 Feb 2015 July 2015 RETIRED
  • 10.
  • 11.
    Architecture ​ Built 100% onplatform – we work like you do ​ 3 sites run on 1 org ​ Integrate with 5 other orgs ​ Stripe and Recurly used for payment processing ​ Salesforce on Salesforce - Accounts, Cases, Leads, etc. - Certifications - Known Issues - Partner Training - Knowledge Articles & Docs
  • 12.
    Architecture ​  Force.com Sites Salesforce Communities VFPages Controllers UtilityClasses DAO Classes DO Classes Customer Portal Users Data
  • 13.
  • 14.
    From Whiteboards toProducts ​ 
  • 15.
    Responsive Consistent OnPlatform Apex, Visualforce, and LightningDesktop, Tablet, and Phone Looks like Salesforce Three Basic Principles ​ Guide all requirements and designs ​  Data Network Identity
  • 16.
    Product Development Process Idea Product specifications Information architecture& user experience Visual design HTML mockups DevelopmentUser testing Product Collaborate and iterate to deliver the best final product
  • 17.
    HTML ​  •  Standard HTML • Consider browser support •  Visualforce tags <apex:inputTextArea id="supportdescr" styleClass="textarea-1000" value="{!currentCase.description}" html-maxlength="32000"/> <textarea id="supportdescr" name="supportdescr" class="textarea-1000" maxlength="32000"> </textarea>
  • 18.
    CSS ​  •  Custom CSS • showHeader is false •  standardStylesheets is false <apex:page id="..." showHeader="false" standardStylesheets="false" ...> ... </apex:page> Override platform styling to create unique brand experience
  • 19.
    CSS ​ Shared CSS stylesheetsto maintain consistent look & feel
  • 20.
    Responsive Web Design ​ UsingCSS media queries and JavaScript
  • 21.
    JavaScript ​  •  jQuery foreasier web development •  We use the platform wherever we can <apex:actionFunction name="removeSavedListing" action="{!removeFromSaved}" rerender="savedListingsContainer, savedListAmount" onComplete="afterRemoveAction('{!listingId}');"> <apex:param name="slistingId" value=""/> </apex:actionFunction>
  • 22.
    Lesson #1: Buildfor Flexibility
  • 23.
    Example: Marketing Contenton AppExchange ​  Marketing can make changes any time without involving the development team Custom object: LandingPages Landing page content options: •  Banner images •  Table of listings •  HTML blob Declarative placement of listings and marketing materials
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
    Lesson #2: BuildCustom on the Platform for Added Business Value
  • 34.
    Why Custom Search? ​  Weightresults by specific criteria to improve relevancy Allow custom sort ordering – most popular, relevant, etc. Combine results from multiple sources in single search
  • 35.
  • 36.
    Architecture ​  force.com Sites Salesforce Communities VFPages Controllers UtilityClasses DAO Classes DO Classes Customer Portal Users Data
  • 37.
  • 38.
    Custom Search ​  Listing SearchEngine •  Object and fields •  Field weightings •  Keywords •  Filters •  Sort order Base Search Engine •  SOSL keyword search (relevancy) •  SOQL query (non-text or keyword search) •  Filter and sort SearchPageController initialize search List<BaseData>
  • 39.
  • 40.
    Example: Connecting MultipleSalesforce Orgs ​  Salesforce Apps Our Org Runs all 3 Sites Chatter Content Ideas Answers AppExchange Content Data Needed: Accounts Cases Leads Certifications Training Known Issues Knowledge Articles Documentation
  • 41.
    All your datain one place ​  Utility Classes Platform Features S2S Rest Data API Custom Rest API Standard Objects Custom Objects Web Services
  • 42.
    Build for FlexibilityCustom Adds Value Integrate with APIs Connecting Multiple OrgsAppExchange Marketing Content Federated Search 3 Key Lessons ​ Remember these for your next development project ​ 
  • 43.
  • 44.