SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
Alert! Event Notification Options for
Force.com Apps
October 16, 2013
Safe Harbor
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 intellectual property and other litigation, risks associated with
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 nonsalesforce.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-Q for the most recent fiscal quarter ended July 31, 2012. This 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.

#forcewebinar
Speakers
Steve Bobrowski
Architect Evangelist
@sbob909

#forcewebinar

Josh Birk
Developer Evangelist
@JoshBirk
Follow Developer Force for the Latest News
@forcedotcom / #forcewebinar
Developer Force – Force.com Community
+DeveloperForce – Force.com Community
Developer Force
Developer Force Group
#forcewebinar
Architect Core Resources page

developer.force.com/architect

#forcewebinar
Have Questions?
§  We have an expert support team at the ready to answer your questions
during the webinar.
§  Ask your questions via the GoToWebinar Questions Pane.
§  The speaker(s) will chose top questions to answer live at the end of the
webinar.
§  Please post your questions as we go along!
§  Only post your question once; we’ll get to it as we go down the list.

#forcewebinar
Recognize this scenario in life?

Something
happens

#forcewebinar

Call to
action

Someone or
thing acts
Recognize this scenario in life?

Leaky
pipes

#forcewebinar

Call
plumber

Plumber fixes
the pipes
Recognize this scenario in business?

Event

#forcewebinar

Notification

Workflow
Recognize this scenario in business?

New Lead
created

#forcewebinar

Salesperson
gets alert

Salesperson
calls Lead and
makes a sale
Optimal event notification design for business apps
Know your …

Requirements

Options

Use an option
that meets your
requirements
#forcewebinar
Hot, Open Leads Scenario
Requirements

Implementation options

§  Notify both online & offline
users

§  Workflow rule

§  Notify users immediately

§  Database trigger with
email

§  Log all alerts
§  Respond to all alerts

#forcewebinar

§  Chatter feed with email
Stick around, here’s what you’ll learn …

Requirements
Approaches & implementation options
Demos & source code
#forcewebinar
Let’s get started …

#forcewebinar
Know your requirements
Event importance can dictate requirements
How important
is an event?
Critical
Insignificant

#forcewebinar
Event Notification Requirements: Importance

Requirement
Minimal Latency
Accountability
Response

#forcewebinar

Critical
Yes
Yes
Yes

Insignificant
No
No
No
Event frequency can dictate requirements
How often does
an event occur?
Frequent
Infrequent

#forcewebinar
Event Notification Requirements: Frequency

Requirement
Minimal Latency
Accountability
Response

#forcewebinar

Frequent
No
No
No

Infrequent
Yes
Yes
Yes
Requirements graph example
Determinant

Determinant

Requirement
Immediate
notification

Critical

Infrequent

Log
Mandatory
response

#forcewebinar
Requirements example
Determinant

Determinant

Requirement
Deferred
notification

Insignificant

Frequent

No log
Optional
response

#forcewebinar
Requirements graph example
Determinant

Determinant

Requirement
Immediate
notification

Critical

Frequent

Log
Optional
response

#forcewebinar
Know your requirements
Force.com event notification requirements

Determinants

Requirements

•  Importance
•  Frequency

•  Latency
•  Accountability
•  Resolution

#forcewebinar
Improv + Discovery = Satisfied Customers
How improvistational theatre techniques can
improve your discovery skills
T.K. Horeis, salesforce.com, Cloud and Industry Architect
@TKHoreis
Steve Bobrowski, salesforce.com,
@sbob909
Know your
options
Force.com event notification approaches & options

Dynamic
Web
pages

#forcewebinar

Near
real-time
messages

Deferred
messages
Force.com event notification approaches & options

Dynamic
Web
pages

#forcewebinar

Near
real-time
messages

Deferred
messages
Dynamic, auto-refreshing Web page
Characteristics
§  Teams of users are
online & watching
§  Missed events tolerated
§  Refreshes happen often
§  Receipt of event
notification not required

Stock ticker
#forcewebinar
Dynamic, auto-refreshing Web page
Force.com implementation options
Auto-refreshing …
§  Visualforce page
§  Report (browser plugin)
§  List view (browser plugin)

#forcewebinar
Force.com event notification approaches & options

Dynamic
Web
pages

#forcewebinar

Near
real-time
messages

Deferred
messages
Near real-time messages
Characteristics
§  Users cannot always be online
watching pages
§  Near real-time notification
§  Missed events not tolerable
§  Proof of individual event notification
required
§  Relatively few events, low noise

#forcewebinar

Messages

Events
Near real-time messages
Force.com implementation options
§  Workflow rule
–  Email
–  Outbound message
Messages

§  Chatter feed with email
§  Chatter feed trigger

Events

#forcewebinar
Force.com event notification approaches & options

Dynamic
Web
pages

#forcewebinar

Near
real-time
messages

Deferred
messages
Deferred messages
Requirements
§  Users cannot always be online
watching pages
§  Deferred (significantly) event
notifications tolerated

Message

§  Missed events tolerable
§  Receipt of individual event
notification not required
§  Data set is potentially large
§  Potentially many events
#forcewebinar

Events
Deferred messages
Force.com implementation options
§  Scheduled reports

Message

Events

#forcewebinar
Force.com event notification approaches & options

Dynamic Web
pages

Near real-time
messages

Deferred
messages

•  Visualforce pages
•  Reports
•  List views

•  Workflow rules
•  Chatter feed email
•  Chatter feed trigger

•  Scheduled reports

#forcewebinar
Enough theory …
Show me how!
Demos: Hot, Open Leads, every which way

Workflow rule

Dynamic Visualforce page

Scheduled report
#forcewebinar
Implementation 1: Dynamic Web page

Visualforce page
The Observer Pattern: Push vs. Pull
Update

Lead

push

pull (polling)

#forcewebinar
Implementation 1a: Polling with Apex actionPoller

Visualforce page
With <apex:actionPoller>

#forcewebinar

Controller
(Apex)

Force.com
database
Implementation 1a: Page
<apex:page showHeader=”true" controller=”leadListController" tabstyle="lead"
sidebar="false">

<apex:form >

<apex:pageBlock >

<apex:pageBlockTable id="leadList" value=”{!leads}" var="l">

<apex:column headerValue="Name">

<apex:outputLink value="/{!l.id}">{!l.Name}</apex:outputLink>

</apex:column>

<apex:column value="{!l.state}"/>

<apex:column value="{!l.company}"/>

<apex:column value="{!l.email}"/>

</apex:pageBlockTable>

<apex:actionPoller action=”{!pollAction}" reRender="leadList" interval="15"/>

</apex:pageBlock>

</apex:form>

</apex:page>	
#forcewebinar
Implementation 1a: Controller
public with sharing class leadListController {










Transient Lead[] leads;

String query = 'SELECT Id, Name, State, Company, Email, 	LastModifiedDate FROM
Lead WHERE Status = 'Open - Not Contacted'
	AND Rating = 'Hot' ORDER BY
LastModifiedDate DESC LIMIT 100';

public Lead[] getLeads() {

leads = Database.query(query);

return leads;

}

public PageReference pollAction() {

leads = Database.query(query);

return null;

}

#forcewebinar
Traditional polling implementation: Pros & cons
Pros

Cons

§  Easy

§  Wasteful

§  Partial page refresh

§  Consumptive

§  WHERE clause in query

§  View state

§  Transient controller
variable
§  No API calls
#forcewebinar
Implementation 1b: Streaming API

Push
topic
Force.com
database

#forcewebinar

push

Visualforce page
“subscriber” to the push topic
Force.com Streaming API factoids
§  Push on CREATE or UPDATE
§  Push topic queries cannot:
–  Use relationships (join data)
–  Aggregate data (SUM, AVG, etc.)
–  Reference formula fields
–  Other limitations

#forcewebinar
Implementation 1b: Streaming API

Insert
Update
Delete

Lead

#forcewebinar

trigger

Push
topic

HOL__c

Visualforce page
“subscriber” to the push topic
Implementation 1b: Intermediary object

#forcewebinar
Implementation 1b: Push topic
PushTopic pushTopic = new PushTopic();

pushTopic.Name = 'HOL';

	
pushTopic.Query = 'SELECT Id, Name, Action__c, Lead_Name__c,
Company__c, State__c, Email__c, Lead__c FROM Hot_Open_Lead__c';	



pushTopic.ApiVersion = 28.0;

pushTopic.NotifyForOperations = 'All';

pushTopic.NotifyForFields = 'Referenced';

insert pushTopic;

#forcewebinar
Implementation 1b: Controller
@RemoteAction

static public Lead[] getHotLeads() {

String query = 'SELECT Id, Name, State, Company, Email,
LastModifiedDate FROM Lead WHERE Status = 'Open - Not
Contacted' AND Rating = 'Hot' ORDER BY LastModifiedDate
DESC';

Lead[] leads = Database.query(query);

return leads;

}

#forcewebinar
Implementation 1b: Static Resources
<apex:includeScript value="{!$Resource.cometd}"/>

<apex:includeScript value="{!$Resource.jquery}"/>

<apex:includeScript value="{!$Resource.json2}"/>

<apex:includeScript value="{!$Resource.jquery_cometd}"/>

<apex:includeScript value="{!URLFOR($Resource.jquery_ui,'/
jquery-ui-1.10.3/ui/jquery-ui.js')}"/>

<apex:includeScript value="{!$Resource.underscore}"/>

#forcewebinar
Implementation 1b: Load Initial Table
var template = $("#holList").html();

leadListController.getHotLeads(function(res,mes) {

	
hotLeads = res;

$("#leadTable").html(_.template(template,{items:hotLeads}));

	
});

#forcewebinar
Implementation 1b: Script Template
<tbody>

<%

%>


<%

%>

</tbody>

// repeat items 

_.each(items,function(item){



<tr id="lead-<%= item.Id %>" class="dataRow">

<!-- use variables -->

<td><a href="/<%= item.Id %>"><%= item.Name %></a></td>

<td><%= item.State %></td>

<td><%= item.Company %></td>

<td><%= item.Email %></td>


</tr>

});


#forcewebinar
Implementation 1b: Respond to Streaming API
// Connect to the CometD endpoint

$.cometd.init({

url: window.location.protocol+'//'+window.location.hostname+'/
cometd/24.0/',

requestHeaders: { Authorization: 'OAuth {!$Api.Session_ID}'}

});

// Subscribe to the push topic

$.cometd.subscribe('/topic/HOL', function(message) {

updateHotLeads(message); 

});

#forcewebinar
Live demo
Long polling implementation: Pros & cons
Pros

Cons

§  Minimal page refreshes

§  Requires some code

§  Partial page refreshes

§  Complex use cases require
some thought

§  No view state
§  Easy on the database
§  Centralized logic
§  Overcomes Streaming API
challenges
#forcewebinar
Implementation 2: Near-real time messaging

Workflow rule

Messages

Events
Live demo
Workflow rule: Pros & cons
Pros

Cons

§  No code

§  Could get noisy

§  Near real-time messages
§  Accountability (logs)

#forcewebinar
Implementation 3: Deferred messaging

Scheduled report
Message

Events
Live demo
Scheduled report: Pros & cons
Pros

Cons

§  No code

§  Lag time

§  No noise

§  Missed events

§  Accountability (logs)

#forcewebinar
Summary
Source code
§  Github repo: http://bit.ly/1hR3aMw

#forcewebinar
Article
Access article link on
developer.force.com/architect

#forcewebinar
Even more stuff …
Architect Core Resources page

developer.force.com/architect

#forcewebinar
Q&A
Steve Bobrowski
Architect Evangelist
@sbob909

#forcewebinar

Josh Birk
Developer Evangelist
@JoshBirk

Más contenido relacionado

La actualidad más candente

Salesforce Cloud Infrastructure and Challenges - A Brief Overview
Salesforce Cloud Infrastructure and Challenges - A Brief OverviewSalesforce Cloud Infrastructure and Challenges - A Brief Overview
Salesforce Cloud Infrastructure and Challenges - A Brief OverviewSalesforce Engineering
 
Publishing Data to REST APIs with Lightning Process Builder
Publishing Data to REST APIs with Lightning Process BuilderPublishing Data to REST APIs with Lightning Process Builder
Publishing Data to REST APIs with Lightning Process BuilderScott Coleman
 
Understanding Multitenancy and the Architecture of the Salesforce Platform
Understanding Multitenancy and the Architecture of the Salesforce PlatformUnderstanding Multitenancy and the Architecture of the Salesforce Platform
Understanding Multitenancy and the Architecture of the Salesforce PlatformSalesforce Developers
 
Technical App Innovators Webinar (January 18, 2017)
Technical App Innovators Webinar (January 18, 2017)Technical App Innovators Webinar (January 18, 2017)
Technical App Innovators Webinar (January 18, 2017)Salesforce Partners
 
Spring ’15 Release Preview - Platform Feature Highlights
Spring ’15 Release Preview - Platform Feature HighlightsSpring ’15 Release Preview - Platform Feature Highlights
Spring ’15 Release Preview - Platform Feature HighlightsSalesforce Developers
 
Lightning connect sap_integration_df2015
Lightning connect sap_integration_df2015Lightning connect sap_integration_df2015
Lightning connect sap_integration_df2015Dreamforce
 
Bringing Your Back Office Data To Life with Salesforce Connect
Bringing Your Back Office Data To Life with Salesforce ConnectBringing Your Back Office Data To Life with Salesforce Connect
Bringing Your Back Office Data To Life with Salesforce ConnectEugenio Roldán Romasanta
 
How Data.com Drives Data Quality
How Data.com Drives Data QualityHow Data.com Drives Data Quality
How Data.com Drives Data QualitySalesforce Partners
 
Automate All The Things with Flow
Automate All The Things with FlowAutomate All The Things with Flow
Automate All The Things with FlowSalesforce Admins
 
Supercharge your Salesforce Reports and Dashboards
Supercharge your Salesforce Reports and DashboardsSupercharge your Salesforce Reports and Dashboards
Supercharge your Salesforce Reports and DashboardsNetStronghold
 
Salesforce admin training 4
Salesforce admin training 4Salesforce admin training 4
Salesforce admin training 4HungPham381
 
Implement Data Governance Around Packaged Apps in Force.com
Implement Data Governance Around Packaged Apps in Force.comImplement Data Governance Around Packaged Apps in Force.com
Implement Data Governance Around Packaged Apps in Force.comSalesforce Developers
 
JDF18 - Connecting the customer success platform
JDF18 - Connecting the customer success platformJDF18 - Connecting the customer success platform
JDF18 - Connecting the customer success platformDeepu Chacko
 
The SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.js
The SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.jsThe SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.js
The SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.jsShashank Srivatsavaya (ShashForce)
 
Capture and Feed Telecom Network Data and More Into SAP HANA - Quicky and Aff...
Capture and Feed Telecom Network Data and More Into SAP HANA - Quicky and Aff...Capture and Feed Telecom Network Data and More Into SAP HANA - Quicky and Aff...
Capture and Feed Telecom Network Data and More Into SAP HANA - Quicky and Aff...SAP Solution Extensions
 
Let's Learn About Heroku and How to Integrate with Salesforce
Let's Learn About Heroku and How to Integrate with SalesforceLet's Learn About Heroku and How to Integrate with Salesforce
Let's Learn About Heroku and How to Integrate with SalesforceSudipta Deb ☁
 

La actualidad más candente (20)

Salesforce Cloud Infrastructure and Challenges - A Brief Overview
Salesforce Cloud Infrastructure and Challenges - A Brief OverviewSalesforce Cloud Infrastructure and Challenges - A Brief Overview
Salesforce Cloud Infrastructure and Challenges - A Brief Overview
 
Publishing Data to REST APIs with Lightning Process Builder
Publishing Data to REST APIs with Lightning Process BuilderPublishing Data to REST APIs with Lightning Process Builder
Publishing Data to REST APIs with Lightning Process Builder
 
Understanding Multitenancy and the Architecture of the Salesforce Platform
Understanding Multitenancy and the Architecture of the Salesforce PlatformUnderstanding Multitenancy and the Architecture of the Salesforce Platform
Understanding Multitenancy and the Architecture of the Salesforce Platform
 
Exploring the Salesforce REST API
Exploring the Salesforce REST APIExploring the Salesforce REST API
Exploring the Salesforce REST API
 
Technical App Innovators Webinar (January 18, 2017)
Technical App Innovators Webinar (January 18, 2017)Technical App Innovators Webinar (January 18, 2017)
Technical App Innovators Webinar (January 18, 2017)
 
Spring ’15 Release Preview - Platform Feature Highlights
Spring ’15 Release Preview - Platform Feature HighlightsSpring ’15 Release Preview - Platform Feature Highlights
Spring ’15 Release Preview - Platform Feature Highlights
 
Org Merge Best Practices
Org Merge Best PracticesOrg Merge Best Practices
Org Merge Best Practices
 
Lightning connect sap_integration_df2015
Lightning connect sap_integration_df2015Lightning connect sap_integration_df2015
Lightning connect sap_integration_df2015
 
Bringing Your Back Office Data To Life with Salesforce Connect
Bringing Your Back Office Data To Life with Salesforce ConnectBringing Your Back Office Data To Life with Salesforce Connect
Bringing Your Back Office Data To Life with Salesforce Connect
 
How Data.com Drives Data Quality
How Data.com Drives Data QualityHow Data.com Drives Data Quality
How Data.com Drives Data Quality
 
Automate All The Things with Flow
Automate All The Things with FlowAutomate All The Things with Flow
Automate All The Things with Flow
 
Supercharge your Salesforce Reports and Dashboards
Supercharge your Salesforce Reports and DashboardsSupercharge your Salesforce Reports and Dashboards
Supercharge your Salesforce Reports and Dashboards
 
Beyond Custom Metadata Types
Beyond Custom Metadata TypesBeyond Custom Metadata Types
Beyond Custom Metadata Types
 
SAP LoadRunner by HP Solution Brief
SAP LoadRunner by HP Solution Brief SAP LoadRunner by HP Solution Brief
SAP LoadRunner by HP Solution Brief
 
Salesforce admin training 4
Salesforce admin training 4Salesforce admin training 4
Salesforce admin training 4
 
Implement Data Governance Around Packaged Apps in Force.com
Implement Data Governance Around Packaged Apps in Force.comImplement Data Governance Around Packaged Apps in Force.com
Implement Data Governance Around Packaged Apps in Force.com
 
JDF18 - Connecting the customer success platform
JDF18 - Connecting the customer success platformJDF18 - Connecting the customer success platform
JDF18 - Connecting the customer success platform
 
The SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.js
The SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.jsThe SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.js
The SEAN stack - Build Web Apps With Salesforce, Express, Angular and Node.js
 
Capture and Feed Telecom Network Data and More Into SAP HANA - Quicky and Aff...
Capture and Feed Telecom Network Data and More Into SAP HANA - Quicky and Aff...Capture and Feed Telecom Network Data and More Into SAP HANA - Quicky and Aff...
Capture and Feed Telecom Network Data and More Into SAP HANA - Quicky and Aff...
 
Let's Learn About Heroku and How to Integrate with Salesforce
Let's Learn About Heroku and How to Integrate with SalesforceLet's Learn About Heroku and How to Integrate with Salesforce
Let's Learn About Heroku and How to Integrate with Salesforce
 

Destacado

Webinar: Integrating Salesforce and Slack (05 12-16)
Webinar: Integrating Salesforce and Slack (05 12-16)Webinar: Integrating Salesforce and Slack (05 12-16)
Webinar: Integrating Salesforce and Slack (05 12-16)Salesforce Developers
 
Secure Development on the Salesforce Platform - Part 3
Secure Development on the Salesforce Platform - Part 3Secure Development on the Salesforce Platform - Part 3
Secure Development on the Salesforce Platform - Part 3Mark Adcock
 
Secure Development on the Salesforce Platform - Part I
Secure Development on the Salesforce Platform - Part ISecure Development on the Salesforce Platform - Part I
Secure Development on the Salesforce Platform - Part ISalesforce Developers
 
Build, Manage, and Deploy Mobile Apps Faster with App Cloud Mobile
Build, Manage, and Deploy Mobile Apps Faster with App Cloud MobileBuild, Manage, and Deploy Mobile Apps Faster with App Cloud Mobile
Build, Manage, and Deploy Mobile Apps Faster with App Cloud MobileSalesforce Developers
 
Analyze billions of records on Salesforce App Cloud with BigObject
Analyze billions of records on Salesforce App Cloud with BigObjectAnalyze billions of records on Salesforce App Cloud with BigObject
Analyze billions of records on Salesforce App Cloud with BigObjectSalesforce Developers
 
Advanced Platform Series - OAuth and Social Authentication
Advanced Platform Series - OAuth and Social AuthenticationAdvanced Platform Series - OAuth and Social Authentication
Advanced Platform Series - OAuth and Social AuthenticationSalesforce Developers
 
Secure Development on the Salesforce Platform - Part 2
Secure Development on the Salesforce Platform - Part 2Secure Development on the Salesforce Platform - Part 2
Secure Development on the Salesforce Platform - Part 2Salesforce Developers
 

Destacado (8)

Using Apex for REST Integration
Using Apex for REST IntegrationUsing Apex for REST Integration
Using Apex for REST Integration
 
Webinar: Integrating Salesforce and Slack (05 12-16)
Webinar: Integrating Salesforce and Slack (05 12-16)Webinar: Integrating Salesforce and Slack (05 12-16)
Webinar: Integrating Salesforce and Slack (05 12-16)
 
Secure Development on the Salesforce Platform - Part 3
Secure Development on the Salesforce Platform - Part 3Secure Development on the Salesforce Platform - Part 3
Secure Development on the Salesforce Platform - Part 3
 
Secure Development on the Salesforce Platform - Part I
Secure Development on the Salesforce Platform - Part ISecure Development on the Salesforce Platform - Part I
Secure Development on the Salesforce Platform - Part I
 
Build, Manage, and Deploy Mobile Apps Faster with App Cloud Mobile
Build, Manage, and Deploy Mobile Apps Faster with App Cloud MobileBuild, Manage, and Deploy Mobile Apps Faster with App Cloud Mobile
Build, Manage, and Deploy Mobile Apps Faster with App Cloud Mobile
 
Analyze billions of records on Salesforce App Cloud with BigObject
Analyze billions of records on Salesforce App Cloud with BigObjectAnalyze billions of records on Salesforce App Cloud with BigObject
Analyze billions of records on Salesforce App Cloud with BigObject
 
Advanced Platform Series - OAuth and Social Authentication
Advanced Platform Series - OAuth and Social AuthenticationAdvanced Platform Series - OAuth and Social Authentication
Advanced Platform Series - OAuth and Social Authentication
 
Secure Development on the Salesforce Platform - Part 2
Secure Development on the Salesforce Platform - Part 2Secure Development on the Salesforce Platform - Part 2
Secure Development on the Salesforce Platform - Part 2
 

Similar a Alert! Event Notification Options for Force.com Apps Webinar

CodeLive with Cynthia Thomas - Refactoring data dependent code.
CodeLive with Cynthia Thomas - Refactoring data dependent code.CodeLive with Cynthia Thomas - Refactoring data dependent code.
CodeLive with Cynthia Thomas - Refactoring data dependent code.JackGuo20
 
Force.com Friday: Intro to Force.com Slides
Force.com Friday: Intro to Force.com SlidesForce.com Friday: Intro to Force.com Slides
Force.com Friday: Intro to Force.com SlidesSalesforce Developers
 
Build Customer Centric Applications Using the Salesforce Toolkits for .NET
Build Customer Centric Applications Using the Salesforce Toolkits for .NETBuild Customer Centric Applications Using the Salesforce Toolkits for .NET
Build Customer Centric Applications Using the Salesforce Toolkits for .NETSalesforce Developers
 
Build Customer Centric Applications Using the Salesforce Toolkits for .NET
Build Customer Centric Applications Using the Salesforce Toolkits for .NETBuild Customer Centric Applications Using the Salesforce Toolkits for .NET
Build Customer Centric Applications Using the Salesforce Toolkits for .NETSalesforce Developers
 
Code live with Brian Kwong - Visualforce to Lwc
Code live with Brian Kwong - Visualforce to LwcCode live with Brian Kwong - Visualforce to Lwc
Code live with Brian Kwong - Visualforce to LwcJackGuo20
 
Mastering Force.com: Advanced Visualforce
Mastering Force.com: Advanced VisualforceMastering Force.com: Advanced Visualforce
Mastering Force.com: Advanced VisualforceSalesforce Developers
 
Intro to Apex - Salesforce Force Friday Webinar
Intro to Apex - Salesforce Force Friday Webinar Intro to Apex - Salesforce Force Friday Webinar
Intro to Apex - Salesforce Force Friday Webinar Abhinav Gupta
 
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...JackGuo20
 
Final user provisioning webinar draft 2
Final user provisioning webinar   draft 2Final user provisioning webinar   draft 2
Final user provisioning webinar draft 2Salesforce Developers
 
Summer '15: User Provisioning for Connected Apps
Summer '15: User Provisioning for Connected AppsSummer '15: User Provisioning for Connected Apps
Summer '15: User Provisioning for Connected AppsSalesforce Developers
 
Intro to Salesforce1 Mobile App Development Webinar
Intro to Salesforce1 Mobile App Development WebinarIntro to Salesforce1 Mobile App Development Webinar
Intro to Salesforce1 Mobile App Development WebinarSalesforce Developers
 
Intro to the Salesforce Mobile SDK: Building Android Apps
Intro to the Salesforce Mobile SDK: Building Android AppsIntro to the Salesforce Mobile SDK: Building Android Apps
Intro to the Salesforce Mobile SDK: Building Android AppsSalesforce Developers
 
Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...
Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...
Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...Salesforce Developers
 
Design Patterns Every ISV Needs to Know (October 15, 2014)
Design Patterns Every ISV Needs to Know (October 15, 2014)Design Patterns Every ISV Needs to Know (October 15, 2014)
Design Patterns Every ISV Needs to Know (October 15, 2014)Salesforce Partners
 
Spring '14 Release Developer Preview Webinar
Spring '14 Release Developer Preview WebinarSpring '14 Release Developer Preview Webinar
Spring '14 Release Developer Preview WebinarSalesforce Developers
 
Java Best Practices - Tools, Performance, and Deployment
Java Best Practices - Tools, Performance, and DeploymentJava Best Practices - Tools, Performance, and Deployment
Java Best Practices - Tools, Performance, and DeploymentSalesforce Developers
 
Embed Customer Support into your Apps with Snap-ins
Embed Customer Support into your Apps with Snap-insEmbed Customer Support into your Apps with Snap-ins
Embed Customer Support into your Apps with Snap-insSalesforce Developers
 

Similar a Alert! Event Notification Options for Force.com Apps Webinar (20)

CodeLive with Cynthia Thomas - Refactoring data dependent code.
CodeLive with Cynthia Thomas - Refactoring data dependent code.CodeLive with Cynthia Thomas - Refactoring data dependent code.
CodeLive with Cynthia Thomas - Refactoring data dependent code.
 
Force.com Friday: Intro to Force.com Slides
Force.com Friday: Intro to Force.com SlidesForce.com Friday: Intro to Force.com Slides
Force.com Friday: Intro to Force.com Slides
 
Build Customer Centric Applications Using the Salesforce Toolkits for .NET
Build Customer Centric Applications Using the Salesforce Toolkits for .NETBuild Customer Centric Applications Using the Salesforce Toolkits for .NET
Build Customer Centric Applications Using the Salesforce Toolkits for .NET
 
Build Customer Centric Applications Using the Salesforce Toolkits for .NET
Build Customer Centric Applications Using the Salesforce Toolkits for .NETBuild Customer Centric Applications Using the Salesforce Toolkits for .NET
Build Customer Centric Applications Using the Salesforce Toolkits for .NET
 
Code live with Brian Kwong - Visualforce to Lwc
Code live with Brian Kwong - Visualforce to LwcCode live with Brian Kwong - Visualforce to Lwc
Code live with Brian Kwong - Visualforce to Lwc
 
Mastering Force.com: Advanced Visualforce
Mastering Force.com: Advanced VisualforceMastering Force.com: Advanced Visualforce
Mastering Force.com: Advanced Visualforce
 
Intro to Apex - Salesforce Force Friday Webinar
Intro to Apex - Salesforce Force Friday Webinar Intro to Apex - Salesforce Force Friday Webinar
Intro to Apex - Salesforce Force Friday Webinar
 
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
 
Final user provisioning webinar draft 2
Final user provisioning webinar   draft 2Final user provisioning webinar   draft 2
Final user provisioning webinar draft 2
 
Summer '15: User Provisioning for Connected Apps
Summer '15: User Provisioning for Connected AppsSummer '15: User Provisioning for Connected Apps
Summer '15: User Provisioning for Connected Apps
 
Intro to Salesforce1 Mobile App Development Webinar
Intro to Salesforce1 Mobile App Development WebinarIntro to Salesforce1 Mobile App Development Webinar
Intro to Salesforce1 Mobile App Development Webinar
 
Intro to the Salesforce Mobile SDK: Building Android Apps
Intro to the Salesforce Mobile SDK: Building Android AppsIntro to the Salesforce Mobile SDK: Building Android Apps
Intro to the Salesforce Mobile SDK: Building Android Apps
 
Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...
Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...
Webinar: From Sandbox to Production: Demystifying Force.com Release Managemen...
 
Design Patterns Every ISV Needs to Know (October 15, 2014)
Design Patterns Every ISV Needs to Know (October 15, 2014)Design Patterns Every ISV Needs to Know (October 15, 2014)
Design Patterns Every ISV Needs to Know (October 15, 2014)
 
Apex for Admins: Beyond the Basics
Apex for Admins: Beyond the BasicsApex for Admins: Beyond the Basics
Apex for Admins: Beyond the Basics
 
Spring '14 Release Developer Preview Webinar
Spring '14 Release Developer Preview WebinarSpring '14 Release Developer Preview Webinar
Spring '14 Release Developer Preview Webinar
 
Winter 14 Release Developer Preview
Winter 14 Release Developer PreviewWinter 14 Release Developer Preview
Winter 14 Release Developer Preview
 
Introduction to Apex Triggers
Introduction to Apex TriggersIntroduction to Apex Triggers
Introduction to Apex Triggers
 
Java Best Practices - Tools, Performance, and Deployment
Java Best Practices - Tools, Performance, and DeploymentJava Best Practices - Tools, Performance, and Deployment
Java Best Practices - Tools, Performance, and Deployment
 
Embed Customer Support into your Apps with Snap-ins
Embed Customer Support into your Apps with Snap-insEmbed Customer Support into your Apps with Snap-ins
Embed Customer Support into your Apps with Snap-ins
 

Más de Salesforce Developers

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSalesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceSalesforce Developers
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base ComponentsSalesforce Developers
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsSalesforce Developers
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaSalesforce Developers
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentSalesforce Developers
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsSalesforce Developers
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsSalesforce Developers
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsSalesforce Developers
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and TestingSalesforce Developers
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilitySalesforce Developers
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce dataSalesforce Developers
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionSalesforce Developers
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPSalesforce Developers
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceSalesforce Developers
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureSalesforce Developers
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DXSalesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectSalesforce Developers
 

Más de Salesforce Developers (20)

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
 

Último

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Último (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Alert! Event Notification Options for Force.com Apps Webinar

  • 1. Alert! Event Notification Options for Force.com Apps October 16, 2013
  • 2. Safe Harbor 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 intellectual property and other litigation, risks associated with 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 nonsalesforce.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-Q for the most recent fiscal quarter ended July 31, 2012. This 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. #forcewebinar
  • 4. Follow Developer Force for the Latest News @forcedotcom / #forcewebinar Developer Force – Force.com Community +DeveloperForce – Force.com Community Developer Force Developer Force Group #forcewebinar
  • 5. Architect Core Resources page developer.force.com/architect #forcewebinar
  • 6. Have Questions? §  We have an expert support team at the ready to answer your questions during the webinar. §  Ask your questions via the GoToWebinar Questions Pane. §  The speaker(s) will chose top questions to answer live at the end of the webinar. §  Please post your questions as we go along! §  Only post your question once; we’ll get to it as we go down the list. #forcewebinar
  • 7. Recognize this scenario in life? Something happens #forcewebinar Call to action Someone or thing acts
  • 8. Recognize this scenario in life? Leaky pipes #forcewebinar Call plumber Plumber fixes the pipes
  • 9. Recognize this scenario in business? Event #forcewebinar Notification Workflow
  • 10. Recognize this scenario in business? New Lead created #forcewebinar Salesperson gets alert Salesperson calls Lead and makes a sale
  • 11. Optimal event notification design for business apps Know your … Requirements Options Use an option that meets your requirements #forcewebinar
  • 12. Hot, Open Leads Scenario Requirements Implementation options §  Notify both online & offline users §  Workflow rule §  Notify users immediately §  Database trigger with email §  Log all alerts §  Respond to all alerts #forcewebinar §  Chatter feed with email
  • 13. Stick around, here’s what you’ll learn … Requirements Approaches & implementation options Demos & source code #forcewebinar
  • 14. Let’s get started … #forcewebinar
  • 16. Event importance can dictate requirements How important is an event? Critical Insignificant #forcewebinar
  • 17. Event Notification Requirements: Importance Requirement Minimal Latency Accountability Response #forcewebinar Critical Yes Yes Yes Insignificant No No No
  • 18. Event frequency can dictate requirements How often does an event occur? Frequent Infrequent #forcewebinar
  • 19. Event Notification Requirements: Frequency Requirement Minimal Latency Accountability Response #forcewebinar Frequent No No No Infrequent Yes Yes Yes
  • 24. Force.com event notification requirements Determinants Requirements •  Importance •  Frequency •  Latency •  Accountability •  Resolution #forcewebinar
  • 25. Improv + Discovery = Satisfied Customers How improvistational theatre techniques can improve your discovery skills T.K. Horeis, salesforce.com, Cloud and Industry Architect @TKHoreis Steve Bobrowski, salesforce.com, @sbob909
  • 27. Force.com event notification approaches & options Dynamic Web pages #forcewebinar Near real-time messages Deferred messages
  • 28. Force.com event notification approaches & options Dynamic Web pages #forcewebinar Near real-time messages Deferred messages
  • 29. Dynamic, auto-refreshing Web page Characteristics §  Teams of users are online & watching §  Missed events tolerated §  Refreshes happen often §  Receipt of event notification not required Stock ticker #forcewebinar
  • 30. Dynamic, auto-refreshing Web page Force.com implementation options Auto-refreshing … §  Visualforce page §  Report (browser plugin) §  List view (browser plugin) #forcewebinar
  • 31. Force.com event notification approaches & options Dynamic Web pages #forcewebinar Near real-time messages Deferred messages
  • 32. Near real-time messages Characteristics §  Users cannot always be online watching pages §  Near real-time notification §  Missed events not tolerable §  Proof of individual event notification required §  Relatively few events, low noise #forcewebinar Messages Events
  • 33. Near real-time messages Force.com implementation options §  Workflow rule –  Email –  Outbound message Messages §  Chatter feed with email §  Chatter feed trigger Events #forcewebinar
  • 34. Force.com event notification approaches & options Dynamic Web pages #forcewebinar Near real-time messages Deferred messages
  • 35. Deferred messages Requirements §  Users cannot always be online watching pages §  Deferred (significantly) event notifications tolerated Message §  Missed events tolerable §  Receipt of individual event notification not required §  Data set is potentially large §  Potentially many events #forcewebinar Events
  • 36. Deferred messages Force.com implementation options §  Scheduled reports Message Events #forcewebinar
  • 37. Force.com event notification approaches & options Dynamic Web pages Near real-time messages Deferred messages •  Visualforce pages •  Reports •  List views •  Workflow rules •  Chatter feed email •  Chatter feed trigger •  Scheduled reports #forcewebinar
  • 40. Demos: Hot, Open Leads, every which way Workflow rule Dynamic Visualforce page Scheduled report #forcewebinar
  • 41. Implementation 1: Dynamic Web page Visualforce page
  • 42. The Observer Pattern: Push vs. Pull Update Lead push pull (polling) #forcewebinar
  • 43. Implementation 1a: Polling with Apex actionPoller Visualforce page With <apex:actionPoller> #forcewebinar Controller (Apex) Force.com database
  • 44. Implementation 1a: Page <apex:page showHeader=”true" controller=”leadListController" tabstyle="lead" sidebar="false">
 <apex:form >
 <apex:pageBlock >
 <apex:pageBlockTable id="leadList" value=”{!leads}" var="l">
 <apex:column headerValue="Name">
 <apex:outputLink value="/{!l.id}">{!l.Name}</apex:outputLink>
 </apex:column>
 <apex:column value="{!l.state}"/>
 <apex:column value="{!l.company}"/>
 <apex:column value="{!l.email}"/>
 </apex:pageBlockTable>
 <apex:actionPoller action=”{!pollAction}" reRender="leadList" interval="15"/>
 </apex:pageBlock>
 </apex:form>
 </apex:page> #forcewebinar
  • 45. Implementation 1a: Controller public with sharing class leadListController {
 
 
 
 Transient Lead[] leads;
 String query = 'SELECT Id, Name, State, Company, Email, LastModifiedDate FROM Lead WHERE Status = 'Open - Not Contacted' AND Rating = 'Hot' ORDER BY LastModifiedDate DESC LIMIT 100';
 public Lead[] getLeads() {
 leads = Database.query(query);
 return leads;
 }
 public PageReference pollAction() {
 leads = Database.query(query);
 return null;
 } #forcewebinar
  • 46. Traditional polling implementation: Pros & cons Pros Cons §  Easy §  Wasteful §  Partial page refresh §  Consumptive §  WHERE clause in query §  View state §  Transient controller variable §  No API calls #forcewebinar
  • 47. Implementation 1b: Streaming API Push topic Force.com database #forcewebinar push Visualforce page “subscriber” to the push topic
  • 48. Force.com Streaming API factoids §  Push on CREATE or UPDATE §  Push topic queries cannot: –  Use relationships (join data) –  Aggregate data (SUM, AVG, etc.) –  Reference formula fields –  Other limitations #forcewebinar
  • 49. Implementation 1b: Streaming API Insert Update Delete Lead #forcewebinar trigger Push topic HOL__c Visualforce page “subscriber” to the push topic
  • 50. Implementation 1b: Intermediary object #forcewebinar
  • 51. Implementation 1b: Push topic PushTopic pushTopic = new PushTopic();
 pushTopic.Name = 'HOL';
 pushTopic.Query = 'SELECT Id, Name, Action__c, Lead_Name__c, Company__c, State__c, Email__c, Lead__c FROM Hot_Open_Lead__c'; 
 pushTopic.ApiVersion = 28.0;
 pushTopic.NotifyForOperations = 'All';
 pushTopic.NotifyForFields = 'Referenced';
 insert pushTopic; #forcewebinar
  • 52. Implementation 1b: Controller @RemoteAction
 static public Lead[] getHotLeads() {
 String query = 'SELECT Id, Name, State, Company, Email, LastModifiedDate FROM Lead WHERE Status = 'Open - Not Contacted' AND Rating = 'Hot' ORDER BY LastModifiedDate DESC';
 Lead[] leads = Database.query(query);
 return leads;
 } #forcewebinar
  • 53. Implementation 1b: Static Resources <apex:includeScript value="{!$Resource.cometd}"/>
 <apex:includeScript value="{!$Resource.jquery}"/>
 <apex:includeScript value="{!$Resource.json2}"/>
 <apex:includeScript value="{!$Resource.jquery_cometd}"/>
 <apex:includeScript value="{!URLFOR($Resource.jquery_ui,'/ jquery-ui-1.10.3/ui/jquery-ui.js')}"/>
 <apex:includeScript value="{!$Resource.underscore}"/> #forcewebinar
  • 54. Implementation 1b: Load Initial Table var template = $("#holList").html();
 leadListController.getHotLeads(function(res,mes) {
 hotLeads = res;
 $("#leadTable").html(_.template(template,{items:hotLeads}));
 }); #forcewebinar
  • 55. Implementation 1b: Script Template <tbody>
 <%
 %>
 <%
 %>
 </tbody> // repeat items 
 _.each(items,function(item){ 
 <tr id="lead-<%= item.Id %>" class="dataRow">
 <!-- use variables -->
 <td><a href="/<%= item.Id %>"><%= item.Name %></a></td>
 <td><%= item.State %></td>
 <td><%= item.Company %></td>
 <td><%= item.Email %></td> 
 </tr>
 });
 #forcewebinar
  • 56. Implementation 1b: Respond to Streaming API // Connect to the CometD endpoint
 $.cometd.init({
 url: window.location.protocol+'//'+window.location.hostname+'/ cometd/24.0/',
 requestHeaders: { Authorization: 'OAuth {!$Api.Session_ID}'}
 });
 // Subscribe to the push topic
 $.cometd.subscribe('/topic/HOL', function(message) {
 updateHotLeads(message); 
 }); #forcewebinar
  • 58. Long polling implementation: Pros & cons Pros Cons §  Minimal page refreshes §  Requires some code §  Partial page refreshes §  Complex use cases require some thought §  No view state §  Easy on the database §  Centralized logic §  Overcomes Streaming API challenges #forcewebinar
  • 59. Implementation 2: Near-real time messaging Workflow rule Messages Events
  • 61. Workflow rule: Pros & cons Pros Cons §  No code §  Could get noisy §  Near real-time messages §  Accountability (logs) #forcewebinar
  • 62. Implementation 3: Deferred messaging Scheduled report Message Events
  • 64. Scheduled report: Pros & cons Pros Cons §  No code §  Lag time §  No noise §  Missed events §  Accountability (logs) #forcewebinar
  • 66. Source code §  Github repo: http://bit.ly/1hR3aMw #forcewebinar
  • 67. Article Access article link on developer.force.com/architect #forcewebinar
  • 69. Architect Core Resources page developer.force.com/architect #forcewebinar