SlideShare une entreprise Scribd logo
1  sur  103
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à 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
 

Similaire à 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
 

Plus 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
 

Plus 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
 

Dernier

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
 

Dernier (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
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 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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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?
 

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