Script for automating space or blog watching?
Asked by Tsol:

Hi everybody,

i have just started using Scriptrunner for Confluence.

A thing that i would like to do is to manage watchers of a space or blog centrally or to be able to add new users as watchers to spaces.

I had a look in Confluence API but i didn't manage to find something.

Thanx in advance for the help.

Kostas


Answers:
author: Tsol
body: Here is the script i have created for managing Space watchers. It has as inputs a group of users, the Space key and the content type.

```
import bucket.user.UserAccessor//import com.atlassian.confluence.userimport com.atlassian.spring.container.ContainerManager;import com.atlassian.confluence.mail.notification.NotificationManager;import com.atlassian.confluence.user.DefaultUserDetailsManager;import com.atlassian.confluence.spaces.SpaceManager;import com.atlassian.confluence.search.service.ContentTypeEnumimport org.apache.log4j.Level;import org.apache.log4j.Logger;def log = Logger.getLogger("com.onresolve.confluence.scripting.WatchSpace")// Get the default Notification Managerdef notificationManager = (NotificationManager) ContainerManager.getComponent('notificationManager')//def userDetailsManager = (DefaultUserDetailsManager) ContainerManager.getComponent('userDetailsManager')// Get User Accessordef userAccessor = (UserAccessor) ContainerManager.getComponent('userAccessor')// Get Space Managerdef spaceManager = ContainerManager.getComponent("spaceManager") as SpaceManager //def users = userAccessor.getUsers() //define the group that you want to add as watchersdef group = userAccessor.getGroup('Add group here')def users = userAccessor.getMemberNames(group)  //define the space that users will watch.def space_for_watch = spaceManager.getSpace("Add space key here")users.each{user-&gt;  log.warn (user)  def username = userAccessor.getUser(user)  boolean isWatching = notificationManager.isUserWatchingPageOrSpace(username, space_for_watch, null)  if (!isWatching) { //Choose the content type of space that users will watch. Add BLOG  for watching Space Blogs, leave blank for watching entire content  notificationManager.addSpaceNotification(username, space_for_watch, BLOG)     }}
```


author: Nick Muldoon
body: Hi Kostas,

I know you got this sorted for your instance. If anyone stumbles on this and wants a turnkey solution I invite you to look at *[Better Blogs for Confluence](https://marketplace.atlassian.com/plugins/com.arijea.plugins.betterblogs)*. It is a paid add-on that allows Space Administrators to subscribe users and groups to email notifications of new blogs in a space.

At Twitter we needed this feature to ensure every member of our product, design and engineering organisation (\>1,500 people) were notified of new blog posts in the Engineering space. The Engineering Blog enabled VP's to communicate one-to-many and teams to share details of the technology and features they were working on. It didn't make sense to ask every new employee to subscribe to the blog in that space, hence Better Blogs was born.

With Better Blogs you can keep everyone informed, and do so with ease. For those wishing to take advantage of early bird pricing use the promotion code [HHYUWD](https://promo.atlassian.com/HHYUWD) before the end of October 2015.

If you have feedback on the Better Blogs for Confluence add-on contact me via [nick@arijea.com^![](https://jira.atlassian.com/images/icons/mail_small.gif)^](mailto:nick@arijea.com) or +1 415 568 7064.

Thanks Kostas, hope you don't mind me dropping this note here.

Cheers,  
Nicholas Muldoon  
[Arijea](http://arijea.com/)

comments: author: Tsol
body: Hi @Nick Muldoon,no problem at all.Thanks for the update on that.Indeed for large instances of Confluence, asking new users to subscribe to the blog doesn't make sense. Our instance has 90 users so far, so i use the script every time that a new user is added.I will take a look on Better Blogs.For any comment, feedback etc i will let you know.Cheers,Kostas


author: Nick Muldoon
body: Thanks Kostas


author: Matthew J. Horn
body: It looks like you can do it with the RPC and SOAP APIs. Although I haven't used any of these, it looks like watching pages and spaces can be automated with the following services:

* WikiSoapService
* XhtmlSoapService
* ConfluenceSoapService
* NotificationsRpc
* ConfluenceXmlRpcHandler

You can also do some automation by writing a user macro, although my success with page and space watching has been mixed with this approach.

comments: author: Tsol
body: Hey Matthew thanks for the help. I managed to write a script for adding space watchers. Is listed in my answer below. Cheers


author: Vera Henrichs
body: And how about this feature? <https://jira.atlassian.com/browse/CONF-40582> Please vote!


Tags: addon-com.arijea.plugins.betterblogs

confluence-administration

scriptrunner

space

watch