OutLinker 2.01

The 31Mar08 version of OutLinker I posted about yesterday had a last minute bug introduced. See comments on previous post for instructions to fixing your queue if needed. The latest version (1Apr08) is a roll-back that should work better. My apologies.


  1. Marco van Laerhoven said,

    April 2, 2008 @ 2:47 pm

    Thanks for the recent dates!

    While Outlinker is keeping track of how many items have been archived, deleted and more, I’d be interested in knowing the number of items that have been converted into an action item. This would give an idea on the number of items I needed to work on, next to the “no action for reference” items (a), the “trash” items (d) and the “actions that can be performed within 2 minutes” (r).

    BTW: what is your policy in code updates, do you have a group of people that help you maintain the code or suggest changes or is this completely in your own area.
    I’m asking, because I’ve gained so much from your work I feel I’d like to contribute to leverage if possible.

  2. Marco van Laerhoven said,

    April 2, 2008 @ 2:56 pm

    …. then again, this may already be in there – I think this is what “TRANSFERCOUNT” is tracking …

    So, maybe you should just skip the first part of my post :$

  3. ActivityOwner said,

    April 2, 2008 @ 8:07 pm

    Yes — I meant to point out the transfercount out to you based on your wiki suggestion. It might be nice to separate out transferred actions from infoonly, but that would require outlinker do some mindreader parsing for infoonly keywords
    based on mindreader.mmap, which would slow it down.

    I welcome whatever folks can contribute in terms of documentation improvements on the wiki and suggestions. I handle all actual code changes so I’m fully up to speed on how things work and can ensure things fit together and don’t get too complex. I welcome code snippets/edits but can’t promise they will be folded into main versions . Several people are fully versed in in the code and have made great contributions to it over time.

  4. gjoesten said,

    April 4, 2008 @ 9:52 am

    Hello AO,

    Thank you for all your efforts — this is really some amazing stuff.

    I performed the upgrade and now I am having an issue. whenever I attempt to send an email via outlinker to Mindmanager, the message fails to get to my daily capture map. I do get the following error message

    “Make sure you have the path to GyroQ set correctly in your mindreader.mmap options. I’ve triple checked this and the downloaded a whole new AO pack thinking maybe if I started from scratch it would work, no luck.

    If I submit directly from Gyroq, messages are reaching the daily capture map.

    I am on the following versions:
    Outlook 2007 12.0.6300.5000 SP1 MSO 12.0.6213.1000
    Mindmanager 7.1.388
    Resultsmanager 2.7.9 build 279.2
    The April 1st version of the Outlinker Macro
    A freshly downloaded AO pack
    Any ideas on how I can get outlinker working again?

  5. ActivityOwner said,

    April 4, 2008 @ 5:08 pm

    Sorry about that — that error message is out of date. At one point outlinker was pulling the gyroq path from the mindreader.mmap, but it moved this to the outlinker settings to avoid need for mindreader.mmap to be open.

    Can you check to see if the gyroqpath entry in the outlinker settings notes folder matches the location of your gyroactivator.exe:


    By default it should be set to “c:\program files\gyronix\gyroq\”. If that is a match, it means the program is encountering an different error while trying to run the progam and we’ll need to look into it deeper.

    Let me know how it goes.

  6. gjoesten said,

    April 5, 2008 @ 10:58 am

    amazing what a missing “\” will do! All better thanks for your help and all the great stuff…

  7. gjoesten said,

    April 5, 2008 @ 1:28 pm


    A minor issue in Outlook 2007 — when reviewing a big batch, some but not all messages only display their header with the body showing up blank with the loading ribbon bar continuously pulsating. If I skip these messages and return to them in a later batch they may display properly and others that were showing will not display the next time around. Also when I use “i” to interact the message body shows instantly.

    I ran the registry update. Any ideas?

  8. ActivityOwner said,

    April 6, 2008 @ 4:18 pm

    No — I haven’t seen that behavior. I only use Outlook 2003 at the moment. The display of the message is just a single command inside the macro (obj.display) so its up to outlook to show the message body. Perhaps others have noticed it and can comment?

  9. Ron said,

    April 17, 2008 @ 9:04 pm

    I am consistently getting an error when I use the RAD or RD functions. The error is:
    “Run-time error: ‘-1560018678 (a304010a)’:
    Method ‘EntryId’ of object ‘MailItem’ failed

    Debug points to line 134:
    If Not jumpahead Or ((obj.EntryID = lastentry.EntryID) And Not gone(i)) Then

  10. ActivityOwner said,

    April 17, 2008 @ 11:48 pm

    Sorry about that Ron — I seen this as well and fixed it on my local copy but didn’t realize I hadn’t uploaded it to the wiki. It’s uploaded now.

  11. Ron said,

    May 1, 2008 @ 9:26 am

    This patch fixed the errors – thanks.

    I have noticed one other minor issue with RD and RAD now that they are functioning for me. If I am processing a list of emails and use one of these functions, I am returned to the begining of the list and not to the point I was at prior to doing an RD/RAD. The “I” function on the other hand returns me to the item I was working on, not to the begining of the list. The “I” functionality is what I would expect to happen.

    This is an issue for me because I tend to make two passes through my emails when I have a long list to process. The first is just to weed out those emails that I do not have to do anything further about – “A” or “D” (my personal favorite) – or those that I can address quickly – “I”. Those that I have to do something about or think about for more than a few seconds I skip “S”. I realize that this is not pure GTD and violates the “touch it once” rule, but it works for me.

    In following this process I often end up with 10-20 or more items that I have skipped as I progress through my list. If I then RD or RAD an item I am forced to skip through all of those items again to get back to the point I was at – not a big deal, but not what I would expect/like to see.

    Thanks again for all of your incredible work on these tools and your generosity in sharing them.


  12. ActivityOwner said,

    May 1, 2008 @ 7:50 pm

    OK Ron — I’ll give you a pass on violating the “handle it once rule”. Did you noticed how quickly I got rid of the “skip count” metric :-). I also often use a two pass approach. I like to “thin the herd” with fast “a”/”d”/”g” processing once through (3-5 sec/message) and then circle back. I see it as analogous to throwing out junk mail in the kitchen before carrying the real mail up to the desk for processing. In particular I often use the first pass to delete redundant messages from earlier in conversation threads while you still have the original to compare to for reference. I tend to use “n” and “p” as these allow you to loop back to the top without exiting. The “s” command marks it as something you don’t want to revisit in that round.

    The problem here was I literally hadn’t incorporated rd/rad into my routine use (even though I routinely “r” then “d”) and wasn’t aware this problem was persisting in these commands. The problem is that the pointer to lastentry has to be set back to point to the “previousentry” befor the program exits. Getting this to work right was one of the bigger challenges in outlinker development as the pointer to a deleted item doesn’t come back as “= nothing” so other methods need to be used to determine when things disappear. I think I’ve got “rd” and “rad” working correctly now. Give them a try.

    What are you “processed” totals at? I’m at ~7700 at work and 2800 at home for a total of 10,500 in last 5 months (~100 messages/work-day). I always fully process my sent items at work so that is not all incoming traffic.

    I’m also curious if you use with gmail and utilize the “g” command?

  13. Ron said,

    May 5, 2008 @ 1:26 pm

    Hmmmm – I replied to this last week but my reply does not seem to have made it here…

    What I wrote last week was that I had just completed a pass through my inbox using “n” and “p” (mostly “n”) rather than “s”. RD/RAD are working better, but not quite there yet. I am not being returned to the top of the list now, but I am also not being returned to the next email in the list after the one on which I used RD/RAD. I believe I am being returned to the message after the last time I used RD/RAD – but am not positive on this yet.

    I like your “throwing out the junk mail” analogy – that is exactly what I am doing.

    As for my processed totals, I am still in the Minor leagues as compared to you. My totals are around 2,900. I have not yet gotten to processing my sent mail and I have not really implemented GTD in my home life – though I am pretty sure my wife would be happy if I did…

    Both of those are fairly long term Someday/Maybe items for me. I know I would benefit from doing them, but just can’t seem to pull the trigger yet.

    Finally, I do not use the “g” function. While I do have a gmail account, I cannot (or at least am not supposed to) access it from work and I’ve already spoken about my lack of use of GTD in my personal life. Again maybe someday…


  14. ActivityOwner said,

    May 5, 2008 @ 8:05 pm

    Thanks Ron — Great suggestion. You are right — the code was set up to go to the previous entry when the current entry was deleted. Going to the next entry obviously makes more sense. I’ve uploaded a new version.

    The reason for the previous behavior was that I initially was looping through the messages with a “for each message in selection” loop so I didn’t have a simple way of storing a pointer to the next message. The program subsequently changed to use a “for i=1 to totalitems” loop so its easy to store the next entry.

  15. Ron said,

    May 8, 2008 @ 1:58 pm

    This is working well – thank you.

  16. Marco said,

    May 16, 2008 @ 4:16 am

    I recently ran into some errors while using outlinker – I changed the settings to be using GyroQ and Mindreader – in some cases I get the following error:
    “run time error 5, invalid procedure call or argument”.

    The error is always triggered in the WriteTextToFile function, in the line
    a.WriteLine (sContent)

    After I changed to not be using GyroQ, the problem no longer occurred – but I’d like to switch it back as it saves a lot of time …

    If it helps, I can send you some screenshots and a sample of sContent when it crashed – I believe this happens when there are attachments in the message.

  17. Marco said,

    May 16, 2008 @ 11:24 am

    As a side note; maybe it is a good idea to wait with moving the message to the archive until all processing is done … it saves time searching for the message (and possibly forgetting about the action if you don’t do it right away).

  18. ActivityOwner said,

    May 18, 2008 @ 7:05 pm

    Hi Marco — I’m not sure what is going on. If the attachments are embedded into the body of the message perhaps it gets confused when it tries to convert that to text. The error is occuring at the step at which it is writing the body text information into the GyroQ queue text file.

    Can you replicate the problem consistently with certain messages? If so, it would be useful to see the message and/or scontent causing the problem. If we can figure out what is happening, we should be able to filter it out before it gets to the point of causing the error.

    I don’t think a delayed move to the archive would be feasible. MindManager needs the hyperlink address of the message to stay constant and moving it after the link has been established in mindmanager (or sent on its way via the queue), would break it. I may not be following what you are suggesting so feel free to clarify.

  19. Marco van Laerhoven said,

    May 21, 2008 @ 2:01 pm

    Yes, I have the problem consistently on some messages – I will send you an example and the content of sContent too so you can see what is going on (the attachments are not embedded).
    I see your point with the moving of the message – what I was trying to achieve is in case of issues like I had, to leave the message that was not processed correctly in the inbox (currently it is moved out, and if the action item is not created it can be a little tricky finding it in the main archive)

  20. ActivityOwner said,

    May 23, 2008 @ 7:25 am

    It looks like Marco and I have resolved this. The problem was not being able to write Japanese characters inside messages to the gyroq queue file. The new version on the website addresses this.

  21. Vakthund said,

    October 8, 2008 @ 8:28 am

    This tool is awesome for stuff that has been stuck in my in or out box. Does anyone have a solution for real-time items? I would love to capture the commitment as I send or respond to an e-mail instead of waiting until I empty my mailbox at the end of the day / week / month / year / decade.


  22. ActivityOwner said,

    October 8, 2008 @ 8:00 pm

    You can run outlinker on an individual message by just selecting one if you want to process it immediately. Note that you can have the item go to the active map/topic in real-time (rather than to queue) by adding a “s2am” keyword (send to active map).

    In theory there could be a dedicated macro button added to the message toolbar to replace “send” with “sendandprocess” that sent the active message and then ran it through outlinker.

    Unfortunately the software is keeping me far too focused on my day job/projects to get sidetracked into programming this at the moment :-).

    I’m thinking that the next post on the site could be a laundry list of features/ideas that others might want to jump in and contribute to.

  23. Marco said,

    October 9, 2008 @ 5:57 am

    As a “heavyweight user” of outlinker (now processed around 7000 messages) I ran into a small issue that was preventing some of my messages to be processed.
    It was in the function “WriteToTextfile” – counter i is sometimes overflowing (loooong messages ;-D). I have replaced the definition (integer) to long and so far the problem has not occurred…

  24. Ben said,

    October 16, 2008 @ 3:35 pm

    Marco is this update posed on this site or only modified in your local code?

  25. ActivityOwner said,

    October 16, 2008 @ 9:43 pm

    The fix is incorporated on the wiki version now:-). I haven’t run into this particular issue. I have occasionally seen stray characters in the body of a message lead to problems in the queue (e.g. Japanese). In those cases you need to go into the queue text file and edit out the offending text. You can minimize that risk by setting the new option to not transfer the body of the message to the topic notes.

    Ocassionally the script will get into trouble and require outlook to be restarted to clear the problem.

    I’m at 23,116 processed over the last 10 months between home and work. I routinely process my sent mail at work so that adds to the volume. It works out to about 110 messages per work day. That’s probably not atypical for knowledge workers these days and doesn’t include “bulk” mail which I filter off to to a separate folder. What is striking to me is that if I’m away from my desk for a few days, the backlog works out so this average is sustained.

    I’m pleased the script is relatively robust and stable over past several months, but most happy that it works well enough that I haven’t had the urge to tinker with it and avoid real work!

  26. Curtis N. Bingham said,

    November 10, 2008 @ 6:49 pm

    I’m in love with Outlinker. In the past, I would get too wrapped up in quickly handling the message and it would take me 3 hours to run through my email. Because it is slightly harder to get access to the message to “handle it”, I’m running through my 100+ daily messages very fast, and on to the actual daily planning! Now to see if I can keep my maps from becoming overly cluttered!

RSS feed for comments on this post · TrackBack URI

Leave a Comment

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.