Your SlideShare is downloading. ×
0
What’s New in Chatter?<br />Developers<br />Will Gradin: salesforce.com<br />Carter Thaxton: salesforce.com<br />Anjali Jo...
Safe Harbor<br />Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may c...
Agenda<br />Fundamental Concepts<br />Core API Entities<br />Groups<br />Patterns<br />Sample App: Post via Apex and Visua...
Force.com Architecture<br />
Terminology<br />A ‘Feed Item’ is an entry in the feed<br />Feed Tracked Change (change on a record)<br />Post (text, cont...
Terminology<br />All Feed Items have a ParentId<br />Record that changed<br />User who received post<br />
Terminology<br />And a CreatedBy (User who Performed the Action)<br />Updated record<br />Changed status<br />Authored pos...
Agenda<br />Fundamental Concepts<br />Core API Entities<br />Groups<br />Chatter Data Model<br />Patterns<br />Sample App:...
Basic API Entities<br />EntitySubscription<br />SubscriberId(the user) is following the ParentId (user or record)<br />** ...
Viewing the Feed<br />NewsFeed (Chatter Tab)<br />ParentId is followed by the user<br />or <br />I’m a member of the group...
Viewing the FeedUserProfileFeed(User Profile Page)<br />FeedItems where <br />parentId = user <br />or <br />createdById= ...
Viewing the FeedEntityFeed(Record Detail Page)<br />FeedItemswhere <br />parent.Type= Account, contact etc.<br />
FeedItem Children<br /><ul><li>Record creation or changing a field
Old and new values
N:1 relationship with Feed Item
Deleteable via API</li></ul>FeedTrackedChange<br /><ul><li>Text, Content, Link Posts or Status change
1:1 relationship with Feed Item</li></ul>FeedPost<br /><ul><li>CreatedBy is comment author
0 or more FeedComments per Feed Item
Can’t create directly</li></ul>FeedComment<br />
SecurityChatter does not alter force.com’s security model<br />Chatter changes how users see data<br />Pushed to them in a...
Agenda<br />Fundamental Concepts<br />Core API Entities<br />Groups<br />Chatter Data Model<br />Patterns<br />Sample App:...
Groups<br />Groups = Collection of users collaborating together<br />Any user can create groups<br />Share Text, Links, an...
Group Types<br />Public<br />Private<br /><ul><li>Anyone can join(no approval required)
Anyone can view the feed (even non-members)
Group admin controls membership
Only members can view feed</li></ul>Chatter is about collaborationMake groups public whenever possible<br />
Group API Access<br />API Entities<br />Collaboration<br />Group<br />CollaborationGroup Member<br />Create a<br />Group<b...
Specify name and type
Specify MemberId and CollaborationGroupID</li></li></ul><li>Agenda<br />Fundamental Concepts<br />Core API Entities<br />G...
Chatter Data Model<br />User status<br />Profile Image<br />Record can be any object that is Chatter enabled<br />*  All c...
Agenda<br />Fundamental Concepts<br />Core API Entities<br />Groups<br />Chatter Data Model<br />Patterns<br />Sample App:...
Writing Efficient Feed Queries<br />1<br />Always use a LIMIT Clause<br />We show 20 Feed Items per page in our web ui<br ...
Yes<br />No<br />Pagination – 2 Algorithms<br />Criteria<br /> 10 pages or less<br /> Extra response size isn’t a perfor...
Filter to required page in client</li></ul>Page by Page Iteration<br /><ul><li>Query with LIMIT Page Size + 1
Display the first page (eg 20 rows)
Compare the 20th and 21st rows’ CreatedDate to determine next query</li></li></ul><li>Analytics<br />SOQL + Feeds provides...
View the Results:<br /><ul><li>Just read from the custom object directly
Upcoming SlideShare
Loading in...5
×

What's New in Chatter?

2,049

Published on

Social networking in the enterprise is new and evolving quickly. In this session we'll provide you, as developers, with the information you need to leverage the latest advances in Chatter in the applications you're building. After all, better collaboration means happier users.

Published in: Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,049
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
67
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • Quick switch to demo in the dreamforce app…. Show feed item. Do a post. Ask people to comment on it and follow alongHow many of you have used chatter in the dreamforce app?
  • Quick switch to demo in the dreamforce app…. Show feed item.
  • Quick switch to demo in the dreamforce app…. Show feed item.
  • Do quick demo of enabling entity tracking.
  • Explain bullets in detail
  • Give example of a group. Talk about files in groups.
  • Fix Grey here. Probably not the standard template
  • Talk to Carter About this one.
  • Maybe show live feeds here. No other session will have this.
  • Transcript of "What's New in Chatter?"

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

      Clipping is a handy way to collect important slides you want to go back to later.

    ×