force.com canvas: 2 case studies and a roadmap
TRANSCRIPT
Force.com Canvas
2 Case Studies and a Roadmap
Jay Hurst, salesforce.com, Product Manager
@extraidea
Safe harborSafe 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.
Jay Hurst
Product Manager
@extraidea
Questions
Who has heard about Force.com
Canvas?
Who has thought of at least one potential
app that could be used with Force.com
Canvas?
Who has actually developed a Force.com
Canvas App?
What is Force.com Canvas
Introducing Force.com Canvas
Platform service to allow external applications to be easily and
securely integrated into Salesforce from their native environment
with little re-design.
Services Include
• JavaScript SDK
• Simplified Authentication (Signed Request or OAuth)
• Context Services (Including Custom Parameters)
• Cross Domain API Calls
• Eventing model
• App Registration and Management
What does Force.com Canvas do?
Your Web Application is surfaced inside salesforce.com
• Displayed using standard web technology
• JavaScript SDK allows communication between apps
• Installation and management of the app is controlled by the admin
Force.com Canvas Usage Flow
1. Canvas App is opened which sends a
Signed Request to the 3rd Party App
2. The 3rd Party App responds with HTML
that is loaded into the salesforce UI
3. The user interacts with the 3rd party app
4. The 3rd party app uses the Canvas
JavaScript SDK to make a call to a
server side JavaScript library
5. Salesforce acts on the behalf of the
user and posts to the request
6. Alternatively, the 3rd party app can
communicate server-to-server with
salesforce via the standard APIs 3rd Party App
<script
var a=
var xl
if(xls
Client-Side JS (canvas-all.js)
3rd PartyDatabase
Web UI
Salesforce.com UI
Canvas Link
if(conn
SELEC
WHERE
Server-side JS
Salesforce.com Database
1 2
3
4
5
6Chatter Tab
Server
What is the Signed Request Access Method?
The signed request is the default (and recommended) access
method.
When you click the Canvas app, we POST a signed request to your endpoint
You can verify the request was sent by salesforce and then view context info
Context contains data like:
• Scoped OAuth Token
• User Info (Name, email, ID, etc..)
• Company Info (Company name, ID, etc…)
• Environment Info (page is the canvas on, size of the iFrame)
• Useful Links
Force.com Canvas – You code it, we show it!
Regardless of your language of choice, JavaScript libraries allow
your app to connect with salesforce at a UI and API layer:
SD
K
Force.com Canvas – Summer ‘13
Canvas Locations – Chatter Tab
Add a Canvas App to the Chatter Tab
List of Apps appear in the Chatter Applications List
Clicking the App opens in the Chatter Main Window
Salesforce.com Confidential
Canvas Locations – Visualforce Component
Add a Force.com Canvas App to any Visualforce Page
Tabs, Inline, and Standalone Visualforce Pages
Ability to specify Canvas height and width
Signed Request/Context delivers Page and Record specific information
Salesforce.com Confidential
Force.com Canvas – Eventing
Send simple JSON events between Canvas Apps
Apps can publish and subscribe to events
Eventing allows cross-domain communication
Happens in the browser
Salesforce.com Confidential
Force.com Canvas – Scrolling and Resizing
The canvas app can resize itself, and detect when the parent frame is
scrolling
Allows for a richer, more seamless user experience
App can resize up to the allowed limits
Infinite scrolling is also supported
Salesforce.com Confidential
Force.com Canvas – Winter ‘14
Canvas Enhancements
Metadata API
You can now retrieve and deploy Canvas Apps through MDAPI
• Allows a canvas app to be migrated between orgs
• Consumer Key is still unique, so app can be recreated, not copied
Streaming API
Canvas Apps can now hook into the streaming API via the Canvas SDK
• Allows you to build rich apps that receive info from salesforce.com
• Each page only needs a single Streaming connection
- Managed by the Canvas SDK
• CometD connection is managed for you
Salesforce.com Confidential
Canvas Locations – Winter ‘14
List has expanded to a few more places
Open CTI and Console
• Allows a canvas app to interact natively inside of the Service Cloud Console
• You do not need to house the Canvas App in a VF page
Publisher (Pilot)
• Allows you to develop a Canvas App for the Publisher
- Create a place for common actions that exist in your app
Chatter Feed (Pilot)
• Allows you to develop a Canvas App that can appear in a user’s Chatter Feed
- Add your information into the Salesforce Chatter Feed giving a single information
stream to your users
Salesforce.com Confidential
Publisher Location (Pilot)
Your actions in our publisher
Uses the Quick Action framework to allow placement in different publishers
The developer can choose their own icon (or use the default canvas icon)
The app ties directly into the Chatter Lifecycle to publish the feed item
Salesforce.com Confidential
Canvas Feed Location (Pilot)
Your information in our feed
The developer can choose their own icon (or use the default canvas icon)
The app has a linked title and description
• When the link is clicked, the app switches between open to closed
In the open mode, your app displays inline in the feed
Salesforce.com Confidential
Canvas in Salesforce1 (Pilot)
Provide full parity with Web UI
Ability to view Canvas Feed Apps
Ability to view Canvas Publisher Apps
Ability to add Canvas Apps on VF pages in Stage Left and on
Record Detail views
Sam Henechowicz
CTO, SalesWays Corp
@salesways
• Toronto, Canada
• Creators of
• Fun, Easy, Visual, Universal Sales Methodology
• Stage does not equal Probability, Priority
Why Canvas?
• Existing Cloud App with Interactive Interface
• Avoided Porting Algorithms from LAMP Stack
• Rapid Development, Easy Updates
• Quick Setup for Admins
Architecture
Demo
Areas of Focus
• Canvas works best for visual, one directional apps
• Data not automatically synchronized with Force.com
• Not easy to replicate Sharing Rules on 3rd Party App
• Additional Security Review Steps
• Burp Scanner Report
Thank You!
http://www.salesways.com
@salesways
Gordon Bockus
UI Lead, Spanning
@SpanningBackup
About Spanning
Spanning provides data protection for cloud applications,
ensuring that potential data disasters turn into non-events.
Founded 2010 in Austin, Texas
Funded 2011 $3m Series A, 2013 $6m Series B
Products:
Spanning Backup for Salesforce
Spanning Backup for Google Apps
Multiple free tools
~3000 customers worldwide
~40 full-time employees
Spanning Backup for Salesforce
Automates daily and on-demand backups of Salesforce
What we back up:
• Base objects, custom objects and custom attributes
• Metadata (customizations and personalization)
• Attachments and files
Key features:
• Automates, manages and monitors daily backups
• Enables recovery of objects and metadata from any daily or on-demand backup
• Canvas-enabled Chatter posts for key activities
• Allows the customer to control the API usage
Spanning Backup for Salesforce
Product Release Timeline
• In Beta now, www.spanning.com/salesforce
• Submitted for security assessment
• Per-user pricing, unlimited storage
Launches in January 2014!
Spanning Backup for Salesforce
We started with Canvas!
Let us do what we do best, build web apps fast
• Team of 4, expertise in Java and JavaScript
• Minimal to moderate Salesforce knowledge
• Developed v1 in 4 months
Product architecture
• Server side Node.js extracts data to Amazon S3 and RDS
• Client side JavaScript UI leveraging Angular.js and Bootstrap
• Visual force pages and components built with Canvas
• Utilize the Force.com Rest and SOAP API
Bootstrap
Spanning Backup for Salesforce
Canvas Development Process
Benefits of Canvas
• Allowed us to develop how we wanted, aligned with our expertise
• Enabled rapid development and lower cost to enter the market
• Seamless integration with Salesforce platform
• Integration with multiple parts of Salesforce via a single App
• Simplified authentication
Spanning Backup for Salesforce
Canvas Development Process
Challenges
• Limited ability to build a fully responsive application
• Must serve SSL in development
• Browser support dictated by the Salesforce CRM
• Demo domain for testing
Force.com Canvas wrapped in a little bow
In today’s session we have:
Walked through the basics of Force.com Canvas
• What does Force.com Canvas Allow you to do
• Where can Force.com Canvas display
Discovered how current Partners have begun using the Force.com
Canvas
Jay Hurst
Product Manager,
Salesfore.com
@extraidea
Sam Henechowicz Gordon Bocks
CTO,
SalesWays Corp
@salesways
UI Lead,
Spanning
@SpanningBackup
Where to next? Other Force.com Canvas Sessions
11/19 5:15-6:00 - Force.com Canvas in the Publisher and Chatter Feed
11/20 9:00-9:45 - Introduction to Force.com Canvas Apps
11/21 10:00-12:30 - Hands-on Training: Integrate an External App with the Salesforce UI Using Canvas
11/21 11:30-12:30 - Integrate Third-party Web Apps Using Force.com Canvas
Force.com Canvas Integration Workbook in the DevZone
Force.com Canvas Developer Page
Force.com Canvas Topic Page – http://bit.ly/forcecanvas
Email or tweet Jay – [email protected]/@extraidea
SalesWays – Sam Henechowicz - @salesways
Spanning Contact – Gordon Bockus - @SpanningBackup