Who needs the Web for surfing? Most organizations that use Notes have so many databases with cool content that you could spend your whole work day just surfing through them. Keeping up with the topics that interest you and keeping an eye out for responses to your postings can become a full-time job in itself. For this reason, Iris developer Thomas Gumz developed a tool called Responder. Just like you can get Web content "pushed" to your desktop, Responder is a Notes proxy agent that can watch the databases that you're interested in, and then push the content to you.
The way Responder works is that you simply tell it the databases you want to watch, and whether you want to watch for responses to your discussion topics, and/or certain keywords in documents. You can have Responder scan the databases immediately, or run as a background agent. Responder then sends you doclinks in a mail message whenever relevant documents appear in the databases. "It's all about time management," says Julius Liu, a program manager/product advocate in the Lotus Worldwide Field Enablement group, who's used Responder for about seven months. "You get the information you need in a single location -- actually mailed to you."
Responder may seem familiar to you because it's very similar to the Interest Profile that's been included in discussion database templates since Release 4. Both tools can monitor a database for new documents containing desired information and send you the results in a newsletter format with relevant doclinks. However, an Interest Profile is limited to running full-text searches on only one discussion database.
In contrast, Responder can:
- Watch multiple databases, regardless of their design or location.
- Search databases with or without a full-text index.
- Search only for new documents since the last search.
- Run as a proxy agent on your local workstation, which means you don't need special rights to any of the databases (other than Reader access or higher in the database ACL).
The best part is that Responder is available for immediate, free download from Notes.net. Responder 3.0 runs on all the platforms supported by Notes 4.6. It includes detailed help, so you can get started using it, without even reading this article! Although Responder is unsupported by Lotus and Iris, we do welcome your feedback, so please send comments and questions to tgumz@iris.com.
Some background
As you can tell by its release number, Responder 3.0 is not really the new kid on the block. Thomas Gumz first saw the need for a tool like Responder back in mid-1996, when he was in the product management group at Lotus. In his group, potential sales depended on his group being able to stay on top of several discussion databases and answering questions for field sales people. This meant keeping a continuous watch on new postings, as well as digging through the posts to find the specific threads that you were interested in. Gumz wondered why not have an agent do some of this for you? -- and Responder was born.
Using LotusScript, Gumz designed Responder as a Notes proxy agent -- an agent that could search databases on behalf of you. With the same key functionality as the current version, Responder 1.0 could search for responses to your name and for specific keywords in discussion databases. All you needed was Reader access to the databases. The databases didn't need to be full-text indexed, and they could reside on any server. And because it was written in LotusScript, you could use the tool on any platform supported by Notes.
Gumz distributed Responder 1.0 to the folks in the management group as well as the field sales offices, and promptly fixed several bugs that were discovered. Shortly thereafter, he created Responder 1.1, which featured support for non-discussion databases and allowed you to copy database links for creating profiles. He also posted Responder 1.1 in the Business Partner forum and on the Lotus Web site. (Responder 1.1 is also available for downloading from Notes.net, in case you're running Notes on a platform not supported for 4.6.)
Praise and feedback on the way to 3.0
Responder 1.1 met immediate praise from both the Business Partner and Lotus community. John D. Head, a Business Partner and Technical Director of Artron Products, has liked using Responder since the very first version. "I like it because it does what no other Notes feature in a discussion database can do right now: tell me when someone has responded to a document I have created, no matter if it's a main topic, response, or response to response."
Head says that he uses Responder to keep up with several databases, including the Lotus Business Partner Technical Forum, the Penumbra Group Discussion Forum, and various Internet newsgroup databases hosted on his company's Domino 4.6 server. "I usually open the Business Partner forum and read the past three days directly from the database," explains Head, "but anything past that is a navigation nightmare. I use Responder to read the rest."
And, Responder met the needs of Gumz's colleagues at Lotus. "In my day-to-day work, I have to check roughly 10 different databases to ensure that any queries or outstanding questions are answered in a timely fashion," says Carl Tyler, Internet SmartSuite Marketing Manager in the Lotus Internet Applications division. "Rather than my having to keep checking multiple databases, Responder informs me of any topics or responses I may be interested in."
Robert Schneider, a product sales manager in the Lotus Worldwide Sales group in Germany, has used Responder both to track important databases and to show off the technology to customers. "I use Responder as a demo in the Munich Lotus Technology Center to show our prospects and customers the massive value in combining pull technology (discussion databases) with push technology (proactive notification)," says Schneider. "In fact, every customer who I showed the tool to in the center downloaded it the very next day to make use of it."
And now, Gumz has incorporated all the feedback to develop Responder 3.0, a new version that uses Notes 4.6 features. (Responder 2 was an unreleased, incremental improvement on the way to version 3.) For example, Responder 3.0 uses the enhanced 4.6 graphics support for the GUI, new rich-text formatting features for the newsletter, and new LotusScript calls under the hood. Responder 3.0 also includes other improvements: you can manually scan only selected profiles, designate profiles as "high priority" so they run first, reset the cut-off date separately for responses and keyword searches, receive only one report per profile, and view logs within the profiles.
Under the hood of Responder
The Responder agent code involves three main tasks:
- Collecting responses
- Collecting keywords
- Creating the newsletter
Collecting responses
To actually find responses to your documents, the Responder agent builds a collection of all the new documents of form type "Response" and "Response to Response." It only collects responses posted since the last time it ran, which is represented by the cut-off date. To do this, it uses the following code.
'search for all NEW responses since last search (cutoff date)
Set NDT_CutOffDate = New NotesDateTime (hND_Profile.pCutoff_R(0))
Set NDC_Collection = hNDB_RemoteDB.Search ("@IsResponseDoc", NDT_CutOffDate, 0)
Then, the Responder agent basically loops through the document collection and gets the parent document for each response document, checking whether you are the author of that parent document. To do this, it uses the following code.
For iCount = 1 To NDC_Collection.Count
.
.
'get a responseDoc and find it's parentDoc
Set ND_Doc = NDC_Collection.GetNthDocument( iCount )
Set ND_Parent = hNDB_RemoteDB.GetDocumentByUNID(ND_Doc.ParentDocumentUNID)
.
.
Next
Collecting keywords
Responder uses this same idea for keyword searches, but this time it's a two-step process. First, the agent searches for all new documents, both response and non-response documents. Again, it only collects documents posted since the last time it ran, which is represented by the cut-off date. To do this, it uses the following code.
Set NDT_CutOffDate = New NotesDateTime( hND_Profile.pCutoff_K(0))
Set NDC_Collection = hNDB_RemoteDB.Search( "@All", NDT_CutOffDate, 0 )
Now, the agent can search this collection of new/modified documents to see if any of them contain your keywords. As shown in the following code, the variable "sQuery$" contains your keywords from the profile. The "FTSearch" method works whether or not the database has a full-text index. Of course, the search is significantly faster with the FTIndex. But the important thing here is that the code never breaks, it'll always work.
'search...
Call NDC_Collection.FTSearch ( sQuery$, 0 )
Creating the newsletter
When Responder finds a response document and/or keyword match for you, it adds a doclink to the relevant document in the newsletter it sends to you. But don't be fooled by the name "newsletter," because the Responder agent doesn't use the standard LotusScript "Newsletter" class. Instead, it manually creates the report using the following Richtext methods:
- .AppendText -- to create the text like subject, keywords, authorname, dates, and so on.
- .AddTab -- to format the output.
- .AppendDocLink -- to create the doclinks to the documents in the remote databases.
Pushing responses to you
Now that you know how Responder works, you can get started using it. There are just two easy steps for using Responder:
- Creating profiles for the databases you want to watch.
- Setting up Responder to scan the databases.
Creating database profiles
The key step for using Responder is setting up database profiles for the databases you're interested in. You simply open the Responder database and choose Create - Profile. Then, switch to the workspace, select the icon for the database you're interested in, and choose Edit - Copy as Link - Database Link. Then, click "Paste database link" and complete the rest of the profile.
As shown below, Responder can watch for responses to your user name as well as any other aliases. We want to know about new responses to both Thomas Gumz/Iris and Thomas Gumz/CAM/Lotus. (You'll be notified of any direct responses to your postings, but not of any cascading responses. This "thread monitoring" functionality may be added in the next release.)
You can also enter an unlimited number of keywords that you're interested in; just use a new line for each keyword. The keyword can be a phrase or the appearance of your name, and you can use an asterisk (*) as a wildcard. For example, we've entered WebAdmin* to find documents that may reference WebAdmin.nsf, WebAdmin.ntf, or just the WebAdmin tool in general.
You might also have noticed that you can enter advanced keyword searches, like we've entered "web* & admin*" to find documents that contain both of these. For more information about the syntax for advanced keyword searches, click the "Click here for HELP" at the bottom of the profile screen.
After you've selected one or both notification methods, you're all set! Save and Close the profile. You can then create additional profiles, as necessary. (You can have an unlimited number or profiles, and then have Responder only scan a subset of those profiles at one time.)
Scanning your profiles
From the main view of the database, you can select to "Scan selected profiles" or "Scan all" profiles. The first time Responder runs, it will scan the entire database for relevant responses posted one-day prior to the profile's creation date. Then, for subsequent executions, Responder only scans for new documents posted since its last successful run. To set the cut-off date back, edit the profile and click "Reset cutoff date."
The significance is that you can control how much of the database Responder has to search each time. A normal full-text search always goes through the whole database. If you read and respond to 60 documents one day, with full-text search, you'll see those same 60 documents the next day mixed in with all the new ones. In addition, the full-text index must always be updated for those new documents. Responder removes those limitations.
Responder can also run as a scheduled agent, and automatically scan for new documents in the background. Enable the background agent by choosing "Actions" - "Enable/Disable scheduled agent." The first time you enable the background agent, you'll need to select where the agent should run. By default, it runs on your local machine, and runs every 30 minutes. (You'll also need to have scheduled agents enabled on your machine. To do this, choose File - Tools - User Preferences, and select "Enable scheduled local agents.")
As shown below, the Responder database uses many icons to show you the status of its scans. For example, the stoplight icon at the beginning of each profile indicates whether a profile is enabled (green) or disabled (red). The "thumbs up" icon represents a successful run, while a stop sign is for an unsuccessful run. You can also see if a profile searches for responses (person icon) and/or specific keywords (newspaper icon). For more information on the Responder View Layout, click Help.
To verify that Responder is running correctly, you can open any profile and click "Show log." This shows you a detailed log of the last run and whether any errors occurred. For example, if a database is not full-text indexed, the Responder shows that it used a slow formula search for the scan. The Details sections of the profile shows similar information, but in a more statistical format.
After a successful run, the Responder generates the following sample newsletter, and sends it to your mail file. The newsletter lists doclinks that go directly to your responses and/or documents that contain the specific keywords. For keywords, the doclinks are listed according to their "Score," or how often the document contained your keywords. The more successful keyword matches appear at the top of the list. You can also go directly to the profile for this database, and modify it if you're unhappy with the results.
Advanced settings
You can also modify Responder to search for the exact information you're interested in. One way to do this is by using an advanced keyword search, like we discussed earlier. For example, if you're the approver for new purchase requests, you can set up Responder to search for your name, and for fields that are greater than $500. You'd enter something like "Field TOTAL_AMOUNT>50" for the keyword search.
Another way to customize Responder is by having it search for a different field in databases. By default, Responder searches the Subject field to create the newsletter that it sends to you. However, the Subject field might not be the appropriate field to search in custom databases. (If this is the case, Responder might send you a newsletter without descriptions next to the doclinks.) So, to monitor these custom databases, you can click "Advanced options" on the profile screen, and specify a different field.
To find the field you want to monitor, you can open the database, right-click on a document, and select Document Properties. The Fields tab shows all of the fields for that document. You can then enter one of these fields for Responder to use when it searches the database.
Troubleshooting tips
In order for Responder to run correctly, it needs to have certain ECL (Execution Control List) rights. The ECL rights are tied to the signature (developer's ID) on the tool. Because Gumz developed the tool, you actually assign the ECL rights to Thomas Gumz/Iris. Choose File - Tools - User Preferences, and click Security Options. Click Add, type "Thomas Gumz/Iris" and select the following ECL rights:
- Access to current database
- Access to external code
- Ability to modify other databases
- Ability to read other databases
- Ability to send mail
The other option is to sign the database with your own ID. To do this, choose File - Tools - Server Administration, click Database Tools and select to Sign a Database.
If a scan doesn't complete successfully, Responder will not reset the cut-off date (for example, if a network problem occurs or if a server is shut down). Responder simply logs that it was unable to open the database, and the next time you run the search, it looks back to the date of the last successful run.
Although the Responder database can be located on a server, you must run it from the workstation with your user ID. The reason is that Responder runs as a proxy agent for you.
Conclusion
Responder is a great way to put the Notes client to work for you. Some possible enhancements may include: having Responder send a single e-mail with a newsletter for all of the databases, creating a UI for navigating the search results right within the Responder database, allowing Responder to send messages about a particular subject to a pager, and perhaps some kind of admin tool to set the tool up for users automatically.
A good application is that if you connect to Notes.net through your Notes client, you can use Responder to monitor the forums in the Iris Cafe. Then, Responder can automatically notify you when responses and/or keywords appear in the forums, with doclinks ranked by importance. This level of detail requires the feature-rich Notes client. Browsers just don't have the same power as Notes -- unless you're wanting to surf!
ABOUT THOMAS
Thomas Gumz was working with computers and the like since he was a teenager and owned all those devices starting with the good ol' Commodore C64, Atari STs, IBM PC and could never resist teaching them to do "some useful stuff." Currently at Iris he is allowed to design the new upcoming R5 Administration client software. Before growing a ponytail and getting real geeky at Iris :-) , he was a worldwide product manager for Lotus Notes, focusing on NT platform integration. Prior to that, he was a Sales Engineer for Lotus' Communication Products for Central and Eastern Europe, based in the Octoberfest capital of the word, Munich, Germany. Before joining Lotus, he was with W.R. GRACE in Germany where he was a Business Marketing Analyst, again, teaching Lotus 1-2-3 spreadsheets to do some useful stuff :-)
Copyright 1997 Iris Associates, Inc. All rights reserved.