Integrating with Confluence Notifications and Tasks (aka, WorkBox), AtlasCamp US 2012

  • 1,828 views
Uploaded on

Shihab Hamid, Integration Dev Team Lead …

Shihab Hamid, Integration Dev Team Lead

With Confluence 4.3 introduced an amazing new feature – Tasks and Notifications. Plugin developers can take advantage of both to offer richer experiences. This talk will show you how.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,828
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
13
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Getting into WorkBoxIntegrating with Notifications & Tasks @shihabhamid
  • 2. Why WorkBox? @me
  • 3. WorkBox Features
  • 4. WorkBox Features
  • 5. WorkBox Features
  • 6. ..all available on the go
  • 7. Why should you care?Get your plugin noticedEmail notifications now in-appThink of cool integrations on top of WorkBox
  • 8. Example 1Time for a Quickie
  • 9. Example 1Time for a Quickie
  • 10. Example 1SpeakEasyGreasemonkey foryour instancePrototype yourplugins fast
  • 11. Example 1SpeakEasyGreasemonkey foryour instancePrototype yourplugins fast
  • 12. Example 1Create a buttonCheck we’re on a page
  • 13. Example 1Create a buttonCheck we’re on a pageAdd the it to the right spot
  • 14. Example 1Create a task
  • 15. Example 1Create a task
  • 16. Example 1Create a task
  • 17. Example 1Create a task
  • 18. Example 1Create a task
  • 19. Example 1Create a task
  • 20. Example 1Make it better! Detect whether a page has a task
  • 21. Tasks API REST Java /mywork/1/task TaskService GET find POST createOrUpdate PUT createOrUpdate DELETE delete
  • 22. When to use tasks?
  • 23. When to use tasks?Tasks are designed to be light-weight and personal
  • 24. When to use tasks?Tasks are designed to be light-weight and personalTasks only have the concept of complete/incomplete
  • 25. When to use tasks?Tasks are designed to be light-weight and personalTasks only have the concept of complete/incompleteTasks allow users to make their own notes
  • 26. When to use tasks?Tasks are designed to be light-weight and personalTasks only have the concept of complete/incompleteTasks allow users to make their own notesUsers can prioritise their tasks
  • 27. When to use tasks?Tasks are designed to be light-weight and personalTasks only have the concept of complete/incompleteTasks allow users to make their own notesUsers can prioritise their tasksTasks can be used as pointers to things that need toget done
  • 28. What next?
  • 29. What next?Prototyped the plugin in SpeakEasy
  • 30. What next?Prototyped the plugin in SpeakEasyConverted it to a <web resource/> plugin
  • 31. What next?Prototyped the plugin in SpeakEasyConverted it to a <web resource/> pluginDo your users know about your cool plugin?
  • 32. Example 2Invite your users to try
  • 33. Example 2Invite your users to try Plugins start with a PluginEnabledEvent
  • 34. Example 2Invite your users to try Plugins start with a PluginEnabledEvent Notify your users of your cool plugin
  • 35. Example 2Invite your users to try
  • 36. Example 2Invite your users to try You will spam users
  • 37. Example 2Invite your users to try You will spam users when any plugin is enabled
  • 38. Example 2Invite your users to try You will spam users when any plugin is enabled every time your plugin is enabled
  • 39. Example 2Invite your users to try You will spam users when any plugin is enabled every time your plugin is enabled Your notifications won’t be crash hot
  • 40. Example 2Spicing up your notification
  • 41. Example 2Spicing up your notification
  • 42. Example 2Spicing up your notification
  • 43. Your users are an asset In-App Notifications are a powerful way of getting the attention of your users Spamming them won’t make you more money
  • 44. What is a Notification?
  • 45. What is a Notification? title iconaggregation read/unread
  • 46. What is a Notification? item:title aggregation action:icon avatar description action
  • 47. What is a Notification? item actions taskify entry actions
  • 48. What is a Notification? A notification is an instance of an action on an item item = page, issue, blog post action = share, comment, mention, like
  • 49. Taking a notification apart
  • 50. Taking a notification apart
  • 51. Taking a notification apart
  • 52. Taking a notification apart En#ty( Page( Ac#on( Like( Comment( Share( Men#on( Jonathan( Alice(No#fica#on( commented( on(Page( commented( on(Page(
  • 53. Taking a notification apart En#ty( Page( Ac#on( Like( Comment( Share( Men#on( Jonathan( Alice(No#fica#on( commented( on(Page( commented( on(Page(
  • 54. Taking a notification apart En#ty( Page( Ac#on( Like( Comment( Share( Men#on( Jonathan( Alice(No#fica#on( commented( on(Page( commented( on(Page(
  • 55. Example 3One Last Example
  • 56. Example 3One Last ExampleMarketing team wants to monitor and react to tweets
  • 57. Example 3One Last ExampleMarketing team wants to monitor and react to tweetsLet’s put them in WorkBox!
  • 58. Example 3The System I <3 the NewShinyFeature yo…so goood! Twitter Twitter Listener Twitter User Notification Service Marketing Team
  • 59. Example 3The System I <3 the NewShinyFeature yo…so goood! Twitter Twitter Listener Twitter User Notification Service Marketing Team
  • 60. Example 3Getting Tweets
  • 61. Example 3Getting TweetsConfigure the client to track marketing’s key words
  • 62. Example 3Getting TweetsConfigure the client to track marketing’s key wordsPing the marketing team when a new tweet matches
  • 63. Example 3Getting TweetsConfigure the client to track marketing’s key wordsPing the marketing team when a new tweet matches
  • 64. Example 3Tweets as NotificationsOur marketing team only cares about tweets andretweets mentioning a certain key word
  • 65. Example 3Tweets as NotificationsOur marketing team only cares about tweets andretweets mentioning a certain key word En#ty( Tweet( Post( Ac#on( (Tweet/RT)( Bob(tweeted( Jenny(RT( No#fica#on( BLAH!( BLAH!(
  • 66. Example 3Aggregating TweetsWe want RTs to aggregate with the original tweets
  • 67. Example 3Aggregating TweetsWe want RTs to aggregate with the original tweets
  • 68. Example 3Aggregating TweetsRegister i18n and use global IDs
  • 69. Example 3Aggregating TweetsRegister i18n and use global IDs
  • 70. Example 3Aggregating TweetsRegister i18n and use global IDs
  • 71. Example 3Notification Actions We want our marketing team to be able to quickly Reply to negative tweets RT happy experiences
  • 72. Example 3Notification Actions Register the actions you want to appear at the item and notification instance level
  • 73. Example 3Notification Actions Register the actions you want to appear at the item and notification instance level
  • 74. Example 3Notification Actions Register the actions you want to appear at the item and notification instance level
  • 75. Example 3Notification Actions
  • 76. Example 3Notification Actions
  • 77. Example 3Notification Actions
  • 78. Example 3Notification Actions
  • 79. Example 3Notification Actions
  • 80. Example 3Social Media Monitoring
  • 81. Example 3Make it better! We could add in social media monitoring support on Facebook fan pages
  • 82. Example 3Make it better! We could add in social media monitoring support on Facebook fan pages En#ty( Wall(Post( Ac#on( Comment( Alice( Bob( No#fica#on( commented( commented( “Cool!”( “I(hate(this”(
  • 83. Example 3Make it better! We could add in social media monitoring support on Facebook fan pages En#ty( Wall(Post( Ac#on( Comment( Alice( Bob( No#fica#on( commented( commented( “Cool!”( “I(hate(this”(
  • 84. Example 3Make it even better! Notifications and Tasks can store arbitrary metadata
  • 85. Example 3Make it even better! Notifications and Tasks can store arbitrary metadata
  • 86. Example 3Make it even better! Notifications and Tasks have an Event API
  • 87. Example 3Make it even better! Notifications and Tasks have an Event API
  • 88. Example 3Make it even better! Notifications and Tasks have an Event API
  • 89. Example 3Make it even better! Notifications and Tasks have an Event API Urgent tweet
  • 90. When to use Notifications
  • 91. When to use NotificationsInform your users of a change that directly affects them
  • 92. When to use NotificationsInform your users of a change that directly affects themMove email notifications to in-app
  • 93. When to use NotificationsInform your users of a change that directly affects themMove email notifications to in-appWhen there are quick actions users can take
  • 94. When to use NotificationsInform your users of a change that directly affects themMove email notifications to in-appWhen there are quick actions users can takeBe aware that users can create tasks from notifications
  • 95. When to use NotificationsInform your users of a change that directly affects themMove email notifications to in-appWhen there are quick actions users can takeBe aware that users can create tasks from notificationsNotifications are transient
  • 96. What’s coming up?In WorkBox 1.1 JIRA Integration Remote Java APIs AppLinks: Trusted Apps & OAuth Better Android compatibility
  • 97. Get your hack on!Bamboo En#ty( Build(Plan( Build( Ac#on( Execu#on( Alice(broke( Bob(Fixed( No#fica#on( the(build( the(build(
  • 98. Get your hack on!WorkBox Chrome Extension and Native App
  • 99. Get your hack on!WorkBox CLI for tasks
  • 100. Get your hack on!WorkBox CLI for tasks
  • 101. It’s your turn!
  • 102. Further ReadingAPI Documentation http://docs.atlassian.com/mywork-api/1.0.2/ http://docs.atlassian.com/mywork-confluence-host-plugin/ REST/1.0.2/Tutorials https://developer.atlassian.com/display/CONFDEV/Working +with+the+Tasks+REST+API+in+Confluence https://developer.atlassian.com/display/CONFDEV/Posting +Notifications+in+Confluence
  • 103. Code ExamplesCode from the talk https://bitbucket.org/shamid/mywork-ril https://bitbucket.org/shamid/mywork-tweetsOther code examples https://bitbucket.org/cofarrell/mywork-example https://bitbucket.org/sherif/workday-chrome-extension https://bitbucket.org/samtardif/workbox-cli