SlideShare uma empresa Scribd logo
1 de 103
Baixar para ler offline
Getting into WorkBox
Integrating 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 noticed
Email notifications now in-app
Think of cool integrations on top of WorkBox
Example 1


Time for a Quickie
Example 1


Time for a Quickie
Example 1


SpeakEasy


Greasemonkey for
your instance
Prototype your
plugins fast
Example 1


SpeakEasy


Greasemonkey for
your instance
Prototype your
plugins fast
Example 1


Create a button
Check we’re on a page
Example 1


Create a button
Check we’re on a page




Add the it to the right spot
Example 1


Create a task
Example 1


Create a task
Example 1


Create a task
Example 1


Create a task
Example 1


Create a task
Example 1


Create a task
Example 1


Make it better!


 Detect whether a page has a task
Tasks API
       REST             Java

   /mywork/1/task    TaskService

        GET              find

       POST         createOrUpdate

        PUT         createOrUpdate

      DELETE            delete
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 personal
Tasks only have the concept of complete/incomplete
When to use tasks?

Tasks are designed to be light-weight and personal
Tasks only have the concept of complete/incomplete
Tasks allow users to make their own notes
When to use tasks?

Tasks are designed to be light-weight and personal
Tasks only have the concept of complete/incomplete
Tasks allow users to make their own notes
Users can prioritise their tasks
When to use tasks?

Tasks are designed to be light-weight and personal
Tasks only have the concept of complete/incomplete
Tasks allow users to make their own notes
Users can prioritise their tasks
Tasks can be used as pointers to things that need to
get done
What next?
What next?


Prototyped the plugin in SpeakEasy
What next?


Prototyped the plugin in SpeakEasy
Converted it to a <web resource/> plugin
What next?


Prototyped the plugin in SpeakEasy
Converted it to a <web resource/> plugin
Do your users know about your cool plugin?
Example 2


Invite your users to try
Example 2


Invite your users to try
 Plugins start with a PluginEnabledEvent
Example 2


Invite your users to try
 Plugins start with a PluginEnabledEvent


 Notify your users of your cool plugin
Example 2


Invite your users to try
Example 2


Invite your users to try
 You will spam users
Example 2


Invite your users to try
 You will spam users
   when any plugin is enabled
Example 2


Invite your users to try
 You will spam users
   when any plugin is enabled
   every time your plugin is enabled
Example 2


Invite 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
Example 2


Spicing up your notification
Example 2


Spicing up your notification
Example 2


Spicing 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 make you more money
What is a Notification?
What is a Notification?

                         title
  icon



aggregation
                     read/unread
What is a Notification?
               item:title    aggregation




 action:icon
      avatar

                      description          action
What is a Notification?
             item actions

                              taskify




                            entry actions
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
Taking a notification apart
Taking a notification apart
Taking a notification apart
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(
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(
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(
Example 3


One Last Example
Example 3


One Last Example


Marketing team wants to monitor and react to tweets
Example 3


One Last Example


Marketing team wants to monitor and react to tweets
Let’s put them in WorkBox!
Example 3


The System
                              I <3 the
                          NewShinyFeature
                           yo…so goood!




           Twitter
                       Twitter
          Listener


                                            Twitter User

        Notification
         Service




      Marketing Team
Example 3


The System
                              I <3 the
                          NewShinyFeature
                           yo…so goood!




           Twitter
                       Twitter
          Listener


                                            Twitter User

        Notification
         Service




      Marketing Team
Example 3


Getting Tweets
Example 3


Getting Tweets
Configure the client to track marketing’s key words
Example 3


Getting Tweets
Configure the client to track marketing’s key words




Ping the marketing team when a new tweet matches
Example 3


Getting Tweets
Configure the client to track marketing’s key words




Ping the marketing team when a new tweet matches
Example 3


Tweets as Notifications
Our marketing team only cares about tweets and
retweets mentioning a certain key word
Example 3


Tweets as Notifications
Our marketing team only cares about tweets and
retweets mentioning a certain key word


        En#ty(                  Tweet(



                                    Post(
        Ac#on(                (Tweet/RT)(



                     Bob(tweeted(           Jenny(RT(
      No#fica#on(        BLAH!(               BLAH!(
Example 3


Aggregating Tweets
We want RTs to aggregate with the original tweets
Example 3


Aggregating Tweets
We want RTs to aggregate with the original tweets
Example 3


Aggregating Tweets
Register i18n and use global IDs
Example 3


Aggregating Tweets
Register i18n and use global IDs
Example 3


Aggregating Tweets
Register i18n and use global IDs
Example 3


Notification Actions


 We want our marketing team to be able to quickly
   Reply to negative tweets
   RT happy experiences
Example 3


Notification Actions
 Register the actions you want to appear at the item
 and notification instance level
Example 3


Notification Actions
 Register the actions you want to appear at the item
 and notification instance level
Example 3


Notification Actions
 Register the actions you want to appear at the item
 and notification instance level
Example 3


Notification Actions
Example 3


Notification Actions
Example 3


Notification Actions
Example 3


Notification Actions
Example 3


Notification Actions
Example 3


Social Media Monitoring
Example 3


Make it better!
 We could add in social media monitoring support on
 Facebook fan pages
Example 3


Make 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”(
Example 3


Make 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”(
Example 3


Make it even better!
 Notifications and Tasks can store arbitrary metadata
Example 3


Make it even better!
 Notifications and Tasks can store arbitrary metadata
Example 3


Make it even better!
 Notifications and Tasks have an Event API
Example 3


Make it even better!
 Notifications and Tasks have an Event API
Example 3


Make it even better!
 Notifications and Tasks have an Event API
Example 3


Make it even better!
 Notifications and Tasks have an Event API




                                            Urgent tweet
When to use Notifications
When to use Notifications

Inform your users of a change that directly affects them
When to use Notifications

Inform your users of a change that directly affects them
Move email notifications to in-app
When to use Notifications

Inform your users of a change that directly affects them
Move email notifications to in-app
When there are quick actions users can take
When to use Notifications

Inform your users of a change that directly affects them
Move email notifications to in-app
When there are quick actions users can take
Be aware that users can create tasks from notifications
When to use Notifications

Inform your users of a change that directly affects them
Move email notifications to in-app
When there are quick actions users can take
Be aware that users can create tasks from notifications
Notifications are transient
What’s coming up?

In WorkBox 1.1
  JIRA Integration
  Remote Java APIs
  AppLinks: Trusted Apps & OAuth
  Better Android compatibility
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(
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 Reading
API 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
Code Examples
Code from the talk

  https://bitbucket.org/shamid/mywork-ril

  https://bitbucket.org/shamid/mywork-tweets

Other code examples

  https://bitbucket.org/cofarrell/mywork-example

  https://bitbucket.org/sherif/workday-chrome-extension

  https://bitbucket.org/samtardif/workbox-cli

Mais conteúdo relacionado

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

Paul Fabretti Blogging Presentation 11th April 2008
Paul Fabretti Blogging Presentation   11th April 2008Paul Fabretti Blogging Presentation   11th April 2008
Paul Fabretti Blogging Presentation 11th April 2008
InBlackandWhite
 

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

Adopting A Whole Team Approach To Quality
Adopting  A  Whole  Team  Approach  To  QualityAdopting  A  Whole  Team  Approach  To  Quality
Adopting A Whole Team Approach To Quality
 
Blogging practices to support project work
Blogging practices to support project workBlogging practices to support project work
Blogging practices to support project work
 
Success at scale be cool, be generous, be Voltron
Success at scale be cool, be generous, be Voltron  Success at scale be cool, be generous, be Voltron
Success at scale be cool, be generous, be Voltron
 
Microblogging 101 for Corporate Communicators
Microblogging 101 for Corporate CommunicatorsMicroblogging 101 for Corporate Communicators
Microblogging 101 for Corporate Communicators
 
Monitor the Unmeasurable
Monitor the UnmeasurableMonitor the Unmeasurable
Monitor the Unmeasurable
 
Lean UX + UX Strat, from UX Strat conference, September 2013
Lean UX + UX Strat, from UX Strat conference, September 2013Lean UX + UX Strat, from UX Strat conference, September 2013
Lean UX + UX Strat, from UX Strat conference, September 2013
 
Paul Fabretti Blogging Presentation 11th April 2008
Paul Fabretti Blogging Presentation   11th April 2008Paul Fabretti Blogging Presentation   11th April 2008
Paul Fabretti Blogging Presentation 11th April 2008
 
Creating Amazing Landing Page That Convert [Nick Sal. at Hubspot]
Creating Amazing Landing Page That Convert [Nick Sal. at Hubspot]Creating Amazing Landing Page That Convert [Nick Sal. at Hubspot]
Creating Amazing Landing Page That Convert [Nick Sal. at Hubspot]
 
Building on the Shoulders of Giants: the Story of Bitbucket Pipelines
Building on the Shoulders of Giants: the Story of Bitbucket PipelinesBuilding on the Shoulders of Giants: the Story of Bitbucket Pipelines
Building on the Shoulders of Giants: the Story of Bitbucket Pipelines
 
GNUnify 2017 - Working on my first BUG.
GNUnify 2017 - Working on my first BUG.GNUnify 2017 - Working on my first BUG.
GNUnify 2017 - Working on my first BUG.
 
Using social media in media relations
Using social media in media relationsUsing social media in media relations
Using social media in media relations
 
Creating Loyalty Through Experience
Creating Loyalty Through ExperienceCreating Loyalty Through Experience
Creating Loyalty Through Experience
 
Dictioneries and sets in python
Dictioneries and sets in python Dictioneries and sets in python
Dictioneries and sets in python
 
How to engage visitors on your website
How to engage visitors on your websiteHow to engage visitors on your website
How to engage visitors on your website
 
Agilia Budapest - Driving Business Decisions with Pirate Metrics
Agilia Budapest - Driving Business Decisions with Pirate MetricsAgilia Budapest - Driving Business Decisions with Pirate Metrics
Agilia Budapest - Driving Business Decisions with Pirate Metrics
 
Creating Immortal Content | Pubcon 2013
Creating Immortal Content | Pubcon 2013Creating Immortal Content | Pubcon 2013
Creating Immortal Content | Pubcon 2013
 
Optimizing developer onboarding
Optimizing developer onboardingOptimizing developer onboarding
Optimizing developer onboarding
 
Finding the Center
Finding the CenterFinding the Center
Finding the Center
 
L’art de la publication sur LinkedIn en 2022
L’art de la publication sur LinkedIn en 2022L’art de la publication sur LinkedIn en 2022
L’art de la publication sur LinkedIn en 2022
 
Internal Tools
Internal ToolsInternal Tools
Internal Tools
 

Mais de Atlassian

Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
Atlassian
 

Mais de Atlassian (20)

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App Showcase
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UI
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge Triggers
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in Forge
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy Model
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI System
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the Hood
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIs
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the Building
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that Matter
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in Mind
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced Teams
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in Mind
 

Último

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
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

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