Post on 21-Jan-2015
description
What’s New in Chatter?Developers
Will Gradin: salesforce.comCarter Thaxton: salesforce.comAnjali Joshi: Timba Software
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 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, 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 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 ended January 31, 2010. This documents and others 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 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.
Agenda
Fundamental Concepts
Core API Entities
Groups
Patterns
Sample App: Post via Apex and Visualforce
Demo: Twitter Chatter Integration
Recommended Reading
Force.com Architecture
Terminology
Feed Tracked Change (change on a record)
Post (text, content, or link)
Status update (change to UserStatus field on User)
A ‘Feed Item’ is an entry in the feed
Terminology
Record that changed
All Feed Items have a ParentId
User who received post
Terminology
And a CreatedBy (User who Performed the Action)
Updated record
Changed status
Authored post
Agenda
Fundamental Concepts
Core API Entities
Groups
Chatter Data Model
Patterns
Sample App: Post via Apex and Visualforce
Demo: Twitter Chatter Integration
Recommended Reading
Basic API EntitiesEntitySubscription
SubscriberId (the user) is following
the ParentId (user or record)
** Everyone implicitly follows themselves
Viewing the Feed
ParentId is followed by the user
or
I’m a member of the group
NewsFeed (Chatter Tab)
Viewing the FeedUserProfileFeed (User Profile Page)
FeedItems where
parentId = user
or
createdById = user
Viewing the FeedEntityFeed (Record Detail Page)
FeedItems where
parent.Type = Account, contact etc.
FeedItem Children Record creation or changing a field
Old and new values
N:1 relationship with Feed Item
Deleteable via API
Text, Content, Link Posts or Status change
1:1 relationship with Feed Item
CreatedBy is comment author
0 or more FeedComments per Feed Item
Can’t create directly
FeedTrackedChange
FeedPost
FeedComment
SecurityChatter does not alter force.com’s security model
Chatter changes how users see
data– Pushed to them in a feed
Not what they can see– Viewing a FeedItem requires read-
access on the ParentId
– If a user loses access, they will no
longer see the FeedItem
User Profile Feeds are public
Agenda
Fundamental Concepts
Core API Entities
Groups
Chatter Data Model
Patterns
Sample App: Post via Apex and Visualforce
Demo: Twitter Chatter Integration
Recommended Reading
Groups
Any user can create groups
Share Text, Links, and files with the group
Posts appear in members’ NewsFeed
Groups = Collection of users collaborating together
Group Types
Chatter is about collaborationMake groups public whenever possible
Public
Anyone can join(no approval required)
Anyone can view the feed (even non-members)
Private
Group admin controls membership
Only members can view feed
Group API Access
API Entities
CollaborationGroup
CollaborationGroup Member
Create aGroup
Create aGroup Member
Insert CollaborationGroup
Specify name and type
Specify MemberId and CollaborationGroupID
Agenda
Fundamental Concepts
Core API Entities
Groups
Chatter Data Model
Patterns
Sample App: Post via Apex and Visualforce
Demo: Twitter Chatter Integration
Recommended Reading
Chatter Data Model
Record can be any object that is Chatter enabled
* All custom objects are Chatter “enabled”.* A user is an object.
User statusProfile Image
Agenda
Fundamental Concepts
Core API Entities
Groups
Chatter Data Model
Patterns
Sample App: Post via Apex and Visualforce
Demo: Twitter Chatter Integration
Recommended Reading
Writing Efficient Feed Queries
Always use a LIMIT Clause• We show 20 Feed Items per page in our web ui
Use ‘ORDER BY CreatedDate DESC, ID DESC’• Shows most recent feed items• Handled efficiently internally
For EntityFeeds, include ParentId = <record id> filter
Efficient Filters• ParentId, Id, FeedPostId• Parent.Type (eg User, Account)• CreatedDate
1
2
3
4
Yes
No
Pagination – 2 Algorithms
Fixed Page List Query with LIMIT
page_size * 10(e.g., 200)
Filter to required page in client
Criteria
10 pages or less
Extra response size isn’t a performance concern
Page by Page Iteration Query with LIMIT Page Size + 1 Display the first page (eg 20 rows) Compare the 20th and 21st rows’
CreatedDate to determine next query
Analytics
For example, show top 10 users who receive the most posts
SELECT Parent.Name, COUNT(id)
FROM UserFeed
WHERE Type IN ('TextPost', 'LinkPost', 'ContentPost')
GROUP BY Parent.Name
ORDER BY Count(id) DESC
LIMIT 10
But… analytic queries are expensive
SOQL + Feeds provides powerful
mechanism to
gather statistics
View the Results: Just read from the custom
object directly Efficient because only
reading materialized results
Analytics – A Better Way
Typically rematerialize data hourly or even daily
Store the Results Periodically run scheduled
apex job to update statistics Materialize data into a
custom object
Reality: You’re most likely looking for trends so data changes slowly
Polling
Best Practices:
…zzz
Avoid high polling rates
Poll interval should be minutes not seconds
Poll less often with user inactivity
Be cautious of consuming user’s api limits
Agenda
Fundamental Concepts
Core API Entities
Groups
Chatter Data Model
Patterns
Sample App: Post via Apex and Visualforce
Demo: Twitter Chatter Integration
Recommended Reading
Post to Chatter via Apex and Visualforce
Carter Thaxton, Developer
Agenda
Fundamental Concepts
Core API Entities
Groups
Chatter Data Model
Patterns
Sample App: Post via Apex and Visualforce
Demo: Twitter Chatter Integration
Recommended Reading
Twitter Chatter Integration
Anjali Joshi, Partner Timba Software
Agenda
Fundamental Concepts
Core API Entities
Groups
Chatter Data Model
Patterns
Sample App: Twitter Chatter Integration
Recommended Reading
Recommended Reading
Chatter Code Recipes– http://wiki.developerforce.com/index.php/Chatter_Code_Recipes
Chatter Entity Relationship Diagram– http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_erd_chatter.htm
Chatter Development Discussion Board– http://community.salesforce.com/t5/Chatter-Development/bd-p/chatter
Q&A
How Could Dreamforce Be Better? Tell Us!
Log in to the Dreamforce app to submit
surveys for the sessions you attendedUse the
Dreamforce Mobile app to submit
surveysEvery session survey you submit is
a chance to win an iPod nano!
OR
Get Your Whole Company on for Free!
Visit the Campgroundto learnhow
D I S C O V E R
Visit the Developer Training and Support Booth in Force.com Zone
Discover
Developer
Learning Paths
Developer training, certification and support resources
S U C C E S SFind us in the Partner Demo Area of
Force.com Zone 2nd Floor Moscone West
that help you achieve
Learn about Developer
Certifications
Remember. . .
Check Chatter for additional session information
Get your developer Workbooks and Cheat Sheets in
the Force.com Zone
Visit for more information related
to this topicDon’t forget the survey!