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

103
Getting into WorkBox Integrating with Notifications & Tasks @shihabhamid

description

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.

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

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

Getting into WorkBoxIntegrating with Notifications & Tasks

@shihabhamid

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

Why WorkBox?

@me

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

WorkBox Features

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

WorkBox Features

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

WorkBox Features

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

..all available on the go

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

Why should you care?

Get your plugin noticed

Email notifications now in-app

Think of cool integrations on top of WorkBox

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

Time for a QuickieExample 1

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

Time for a QuickieExample 1

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

SpeakEasy

Greasemonkey for your instance

Prototype your plugins fast

Example 1

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

SpeakEasy

Greasemonkey for your instance

Prototype your plugins fast

Example 1

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

Create a buttonCheck we’re on a page

Example 1

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

Create a buttonCheck we’re on a page

Example 1

Add the it to the right spot

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

Create a taskExample 1

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

Create a taskExample 1

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

Create a taskExample 1

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

Create a taskExample 1

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

Create a taskExample 1

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

Create a taskExample 1

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

Make it better!

Detect whether a page has a task

Example 1

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

Tasks APIREST Java

/mywork/1/task TaskService

GET find

POST createOrUpdate

PUT createOrUpdate

DELETE delete

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

When to use tasks?

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

When to use tasks?

Tasks are designed to be light-weight and personal

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

When to use tasks?

Tasks are designed to be light-weight and personal

Tasks only have the concept of complete/incomplete

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

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

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

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

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

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

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

What next?

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

What next?

Prototyped the plugin in SpeakEasy

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

What next?

Prototyped the plugin in SpeakEasy

Converted it to a <web resource/> plugin

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

What next?

Prototyped the plugin in SpeakEasy

Converted it to a <web resource/> plugin

Do your users know about your cool plugin?

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

Invite your users to tryExample 2

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

Invite your users to tryPlugins start with a PluginEnabledEvent

Example 2

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

Invite your users to tryPlugins start with a PluginEnabledEvent

Example 2

Notify your users of your cool plugin

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

Invite your users to tryExample 2

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

Invite your users to tryYou will spam users

Example 2

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

Invite your users to tryYou will spam users

when any plugin is enabled

Example 2

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

Invite your users to tryYou will spam users

when any plugin is enabled

every time your plugin is enabled

Example 2

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

Invite your users to tryYou will spam users

when any plugin is enabled

every time your plugin is enabled

Your notifications won’t be crash hot

Example 2

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

Spicing up your notificationExample 2

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

Spicing up your notificationExample 2

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

Spicing up your notificationExample 2

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

Your users are an assetIn-App Notifications are a powerful way of getting the attention of your users

Spamming them won’t make you more money

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

What is a Notification?

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

What is a Notification?

titleicon

aggregation read/unread

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

What is a Notification?item:title

action:iconavatar

description action

aggregation

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

What is a Notification?

entry actions

item actions

taskify

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

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

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

Taking a notification apart

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

Taking a notification apart

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

Taking a notification apart

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

Taking a notification apart

No#fica#on(

Ac#on(

En#ty( Page(

Like( Comment(

Jonathan(commented(on(Page(

Alice(commented(on(Page(

Share( Men#on(

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

Taking a notification apart

No#fica#on(

Ac#on(

En#ty( Page(

Like( Comment(

Jonathan(commented(on(Page(

Alice(commented(on(Page(

Share( Men#on(

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

Taking a notification apart

No#fica#on(

Ac#on(

En#ty( Page(

Like( Comment(

Jonathan(commented(on(Page(

Alice(commented(on(Page(

Share( Men#on(

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

One Last ExampleExample 3

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

One Last Example

Marketing team wants to monitor and react to tweets

Example 3

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

One Last Example

Marketing team wants to monitor and react to tweets

Let’s put them in WorkBox!

Example 3

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

The System

TwitterTwitterListener

NotificationService

I <3 the NewShinyFeature

yo…so goood!

Marketing Team

Twitter User

Example 3

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

The System

TwitterTwitterListener

NotificationService

I <3 the NewShinyFeature

yo…so goood!

Marketing Team

Twitter User

Example 3

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

Getting TweetsExample 3

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

Getting TweetsConfigure the client to track marketing’s key words

Example 3

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

Getting TweetsConfigure the client to track marketing’s key words

Example 3

Ping the marketing team when a new tweet matches

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

Getting TweetsConfigure the client to track marketing’s key words

Example 3

Ping the marketing team when a new tweet matches

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

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

Example 3

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

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

No#fica#on(

Ac#on(

En#ty( Tweet(

Post((Tweet/RT)(

Bob(tweeted(BLAH!(

Jenny(RT(BLAH!(

Example 3

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

Aggregating TweetsWe want RTs to aggregate with the original tweets

Example 3

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

Aggregating TweetsWe want RTs to aggregate with the original tweets

Example 3

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

Aggregating TweetsRegister i18n and use global IDs

Example 3

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

Aggregating TweetsRegister i18n and use global IDs

Example 3

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

Aggregating TweetsRegister i18n and use global IDs

Example 3

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

Notification Actions

We want our marketing team to be able to quickly

Reply to negative tweets

RT happy experiences

Example 3

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

Notification ActionsRegister the actions you want to appear at the item and notification instance level

Example 3

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

Notification ActionsRegister the actions you want to appear at the item and notification instance level

Example 3

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

Notification ActionsRegister the actions you want to appear at the item and notification instance level

Example 3

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

Notification ActionsExample 3

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

Notification ActionsExample 3

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

Notification ActionsExample 3

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

Notification ActionsExample 3

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

Notification ActionsExample 3

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

Social Media MonitoringExample 3

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

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

Example 3

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

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

No#fica#on(

Ac#on(

En#ty( Wall(Post(

Comment(

Alice(commented(“Cool!”(

Bob(commented(“I(hate(this”(

Example 3

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

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

No#fica#on(

Ac#on(

En#ty( Wall(Post(

Comment(

Alice(commented(“Cool!”(

Bob(commented(“I(hate(this”(

Example 3

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

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

Example 3

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

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

Example 3

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

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

Example 3

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

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

Example 3

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

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

Example 3

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

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

Urgent tweet

Example 3

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

When to use Notifications

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

When to use Notifications

Inform your users of a change that directly affects them

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

When to use Notifications

Inform your users of a change that directly affects them

Move email notifications to in-app

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

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

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

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

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

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

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

What’s coming up?

In WorkBox 1.1

JIRA Integration

Remote Java APIs

AppLinks: Trusted Apps & OAuth

Better Android compatibility

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

Get your hack on!Bamboo

No#fica#on(

Ac#on(

En#ty( Build(Plan(

Build(Execu#on(

Alice(broke(the(build(

Bob(Fixed(the(build(

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

Get your hack on!WorkBox Chrome Extension and Native App

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

Get your hack on!WorkBox CLI for tasks

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

Get your hack on!WorkBox CLI for tasks

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

It’s your turn!

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

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