0
Getting into WorkBoxIntegrating with Notifications & Tasks                                        @shihabhamid
Why WorkBox?               @me
WorkBox Features
WorkBox Features
WorkBox Features
..all available on the go
Why should you care?Get your plugin noticedEmail notifications now in-appThink of cool integrations on top of WorkBox
Example 1Time for a Quickie
Example 1Time for a Quickie
Example 1SpeakEasyGreasemonkey foryour instancePrototype yourplugins fast
Example 1SpeakEasyGreasemonkey foryour instancePrototype yourplugins fast
Example 1Create a buttonCheck we’re on a page
Example 1Create a buttonCheck we’re on a pageAdd the it to the right spot
Example 1Create a task
Example 1Create a task
Example 1Create a task
Example 1Create a task
Example 1Create a task
Example 1Create a task
Example 1Make it better! Detect whether a page has a task
Tasks API       REST             Java   /mywork/1/task    TaskService        GET              find       POST         creat...
When to use tasks?
When to use tasks?Tasks are designed to be light-weight and personal
When to use tasks?Tasks are designed to be light-weight and personalTasks only have the concept of complete/incomplete
When to use tasks?Tasks are designed to be light-weight and personalTasks only have the concept of complete/incompleteTask...
When to use tasks?Tasks are designed to be light-weight and personalTasks only have the concept of complete/incompleteTask...
When to use tasks?Tasks are designed to be light-weight and personalTasks only have the concept of complete/incompleteTask...
What next?
What next?Prototyped the plugin in SpeakEasy
What next?Prototyped the plugin in SpeakEasyConverted it to a <web resource/> plugin
What next?Prototyped the plugin in SpeakEasyConverted it to a <web resource/> pluginDo your users know about your cool plu...
Example 2Invite your users to try
Example 2Invite your users to try Plugins start with a PluginEnabledEvent
Example 2Invite your users to try Plugins start with a PluginEnabledEvent Notify your users of your cool plugin
Example 2Invite your users to try
Example 2Invite your users to try You will spam users
Example 2Invite your users to try You will spam users   when any plugin is enabled
Example 2Invite your users to try You will spam users   when any plugin is enabled   every time your plugin is enabled
Example 2Invite your users to try You will spam users   when any plugin is enabled   every time your plugin is enabled You...
Example 2Spicing up your notification
Example 2Spicing up your notification
Example 2Spicing up your notification
Your users are an asset In-App Notifications are a powerful way of getting the attention of your users Spamming them won’t ...
What is a Notification?
What is a Notification?                         title  iconaggregation                     read/unread
What is a Notification?               item:title    aggregation action:icon      avatar                      description   ...
What is a Notification?             item actions                              taskify                            entry acti...
What is a Notification? A notification is an instance of an action on an item   item = page, issue, blog post   action = sha...
Taking a notification apart
Taking a notification apart
Taking a notification apart
Taking a notification apart  En#ty(                                Page(  Ac#on(     Like(           Comment(            Sh...
Taking a notification apart  En#ty(                                Page(  Ac#on(     Like(           Comment(            Sh...
Taking a notification apart  En#ty(                                Page(  Ac#on(     Like(           Comment(            Sh...
Example 3One Last Example
Example 3One Last ExampleMarketing team wants to monitor and react to tweets
Example 3One Last ExampleMarketing team wants to monitor and react to tweetsLet’s put them in WorkBox!
Example 3The System                              I <3 the                          NewShinyFeature                        ...
Example 3The System                              I <3 the                          NewShinyFeature                        ...
Example 3Getting Tweets
Example 3Getting TweetsConfigure the client to track marketing’s key words
Example 3Getting TweetsConfigure the client to track marketing’s key wordsPing the marketing team when a new tweet matches
Example 3Getting TweetsConfigure the client to track marketing’s key wordsPing the marketing team when a new tweet matches
Example 3Tweets as NotificationsOur marketing team only cares about tweets andretweets mentioning a certain key word
Example 3Tweets as NotificationsOur marketing team only cares about tweets andretweets mentioning a certain key word       ...
Example 3Aggregating TweetsWe want RTs to aggregate with the original tweets
Example 3Aggregating TweetsWe want RTs to aggregate with the original tweets
Example 3Aggregating TweetsRegister i18n and use global IDs
Example 3Aggregating TweetsRegister i18n and use global IDs
Example 3Aggregating TweetsRegister i18n and use global IDs
Example 3Notification Actions We want our marketing team to be able to quickly   Reply to negative tweets   RT happy experi...
Example 3Notification Actions Register the actions you want to appear at the item and notification instance level
Example 3Notification Actions Register the actions you want to appear at the item and notification instance level
Example 3Notification Actions Register the actions you want to appear at the item and notification instance level
Example 3Notification Actions
Example 3Notification Actions
Example 3Notification Actions
Example 3Notification Actions
Example 3Notification Actions
Example 3Social Media Monitoring
Example 3Make it better! We could add in social media monitoring support on Facebook fan pages
Example 3Make it better! We could add in social media monitoring support on Facebook fan pages            En#ty(          ...
Example 3Make it better! We could add in social media monitoring support on Facebook fan pages            En#ty(          ...
Example 3Make it even better! Notifications and Tasks can store arbitrary metadata
Example 3Make it even better! Notifications and Tasks can store arbitrary metadata
Example 3Make it even better! Notifications and Tasks have an Event API
Example 3Make it even better! Notifications and Tasks have an Event API
Example 3Make it even better! Notifications and Tasks have an Event API
Example 3Make it even better! Notifications and Tasks have an Event API                                            Urgent t...
When to use Notifications
When to use NotificationsInform your users of a change that directly affects them
When to use NotificationsInform your users of a change that directly affects themMove email notifications to in-app
When to use NotificationsInform your users of a change that directly affects themMove email notifications to in-appWhen ther...
When to use NotificationsInform your users of a change that directly affects themMove email notifications to in-appWhen ther...
When to use NotificationsInform your users of a change that directly affects themMove email notifications to in-appWhen ther...
What’s coming up?In WorkBox 1.1  JIRA Integration  Remote Java APIs  AppLinks: Trusted Apps & OAuth  Better Android compat...
Get your hack on!Bamboo         En#ty(            Build(Plan(                             Build(         Ac#on(           ...
Get your hack on!WorkBox Chrome Extension and Native App
Get your hack on!WorkBox CLI for tasks
Get your hack on!WorkBox CLI for tasks
It’s your turn!
Further ReadingAPI Documentation  http://docs.atlassian.com/mywork-api/1.0.2/  http://docs.atlassian.com/mywork-confluence-...
Code ExamplesCode from the talk  https://bitbucket.org/shamid/mywork-ril  https://bitbucket.org/shamid/mywork-tweetsOther ...
Upcoming SlideShare
Loading in...5
×

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

2,089

Published on

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.

Published in: Technology, News & Politics
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,089
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
15
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

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

  1. 1. Getting into WorkBoxIntegrating with Notifications & Tasks @shihabhamid
  2. 2. Why WorkBox? @me
  3. 3. WorkBox Features
  4. 4. WorkBox Features
  5. 5. WorkBox Features
  6. 6. ..all available on the go
  7. 7. Why should you care?Get your plugin noticedEmail notifications now in-appThink of cool integrations on top of WorkBox
  8. 8. Example 1Time for a Quickie
  9. 9. Example 1Time for a Quickie
  10. 10. Example 1SpeakEasyGreasemonkey foryour instancePrototype yourplugins fast
  11. 11. Example 1SpeakEasyGreasemonkey foryour instancePrototype yourplugins fast
  12. 12. Example 1Create a buttonCheck we’re on a page
  13. 13. Example 1Create a buttonCheck we’re on a pageAdd the it to the right spot
  14. 14. Example 1Create a task
  15. 15. Example 1Create a task
  16. 16. Example 1Create a task
  17. 17. Example 1Create a task
  18. 18. Example 1Create a task
  19. 19. Example 1Create a task
  20. 20. Example 1Make it better! Detect whether a page has a task
  21. 21. Tasks API REST Java /mywork/1/task TaskService GET find POST createOrUpdate PUT createOrUpdate DELETE delete
  22. 22. When to use tasks?
  23. 23. When to use tasks?Tasks are designed to be light-weight and personal
  24. 24. When to use tasks?Tasks are designed to be light-weight and personalTasks only have the concept of complete/incomplete
  25. 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. 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. 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. 28. What next?
  29. 29. What next?Prototyped the plugin in SpeakEasy
  30. 30. What next?Prototyped the plugin in SpeakEasyConverted it to a <web resource/> plugin
  31. 31. What next?Prototyped the plugin in SpeakEasyConverted it to a <web resource/> pluginDo your users know about your cool plugin?
  32. 32. Example 2Invite your users to try
  33. 33. Example 2Invite your users to try Plugins start with a PluginEnabledEvent
  34. 34. Example 2Invite your users to try Plugins start with a PluginEnabledEvent Notify your users of your cool plugin
  35. 35. Example 2Invite your users to try
  36. 36. Example 2Invite your users to try You will spam users
  37. 37. Example 2Invite your users to try You will spam users when any plugin is enabled
  38. 38. Example 2Invite your users to try You will spam users when any plugin is enabled every time your plugin is enabled
  39. 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. 40. Example 2Spicing up your notification
  41. 41. Example 2Spicing up your notification
  42. 42. Example 2Spicing up your notification
  43. 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. 44. What is a Notification?
  45. 45. What is a Notification? title iconaggregation read/unread
  46. 46. What is a Notification? item:title aggregation action:icon avatar description action
  47. 47. What is a Notification? item actions taskify entry actions
  48. 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. 49. Taking a notification apart
  50. 50. Taking a notification apart
  51. 51. Taking a notification apart
  52. 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. 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. 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. 55. Example 3One Last Example
  56. 56. Example 3One Last ExampleMarketing team wants to monitor and react to tweets
  57. 57. Example 3One Last ExampleMarketing team wants to monitor and react to tweetsLet’s put them in WorkBox!
  58. 58. Example 3The System I <3 the NewShinyFeature yo…so goood! Twitter Twitter Listener Twitter User Notification Service Marketing Team
  59. 59. Example 3The System I <3 the NewShinyFeature yo…so goood! Twitter Twitter Listener Twitter User Notification Service Marketing Team
  60. 60. Example 3Getting Tweets
  61. 61. Example 3Getting TweetsConfigure the client to track marketing’s key words
  62. 62. Example 3Getting TweetsConfigure the client to track marketing’s key wordsPing the marketing team when a new tweet matches
  63. 63. Example 3Getting TweetsConfigure the client to track marketing’s key wordsPing the marketing team when a new tweet matches
  64. 64. Example 3Tweets as NotificationsOur marketing team only cares about tweets andretweets mentioning a certain key word
  65. 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. 66. Example 3Aggregating TweetsWe want RTs to aggregate with the original tweets
  67. 67. Example 3Aggregating TweetsWe want RTs to aggregate with the original tweets
  68. 68. Example 3Aggregating TweetsRegister i18n and use global IDs
  69. 69. Example 3Aggregating TweetsRegister i18n and use global IDs
  70. 70. Example 3Aggregating TweetsRegister i18n and use global IDs
  71. 71. Example 3Notification Actions We want our marketing team to be able to quickly Reply to negative tweets RT happy experiences
  72. 72. Example 3Notification Actions Register the actions you want to appear at the item and notification instance level
  73. 73. Example 3Notification Actions Register the actions you want to appear at the item and notification instance level
  74. 74. Example 3Notification Actions Register the actions you want to appear at the item and notification instance level
  75. 75. Example 3Notification Actions
  76. 76. Example 3Notification Actions
  77. 77. Example 3Notification Actions
  78. 78. Example 3Notification Actions
  79. 79. Example 3Notification Actions
  80. 80. Example 3Social Media Monitoring
  81. 81. Example 3Make it better! We could add in social media monitoring support on Facebook fan pages
  82. 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. 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. 84. Example 3Make it even better! Notifications and Tasks can store arbitrary metadata
  85. 85. Example 3Make it even better! Notifications and Tasks can store arbitrary metadata
  86. 86. Example 3Make it even better! Notifications and Tasks have an Event API
  87. 87. Example 3Make it even better! Notifications and Tasks have an Event API
  88. 88. Example 3Make it even better! Notifications and Tasks have an Event API
  89. 89. Example 3Make it even better! Notifications and Tasks have an Event API Urgent tweet
  90. 90. When to use Notifications
  91. 91. When to use NotificationsInform your users of a change that directly affects them
  92. 92. When to use NotificationsInform your users of a change that directly affects themMove email notifications to in-app
  93. 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. 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. 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. 96. What’s coming up?In WorkBox 1.1 JIRA Integration Remote Java APIs AppLinks: Trusted Apps & OAuth Better Android compatibility
  97. 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. 98. Get your hack on!WorkBox Chrome Extension and Native App
  99. 99. Get your hack on!WorkBox CLI for tasks
  100. 100. Get your hack on!WorkBox CLI for tasks
  101. 101. It’s your turn!
  102. 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. 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
  1. A particular slide catching your eye?

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

×