Original Question
I am trying to use org-mode to remind me of whom I will have to follow up with, and when in a conversation with someone which topics I need to discuss with them.
My current plan is to query for TODO items that also have a specific value of the property WITH
. The WITH
property keys will be populated with my colleagues and clients names that I am working with on these tasks. To make it quick to retrieve this information, I thought of setting up a custom agenda view with an interactive user-input to fill in the keys for the WITH
property.
I found documentation on how to setup "hardcoded" agenda views. How do I fill some parts of these queries with values provided by the user?
Background: I decided to try emacs for its org-mode a week ago. So I am quite new to emacs. I am try to explore as much of its potential as quickly as I can so I gauge whether or not emacs has the potential to solve my issues. So this question is potentially a mix of an org-mode specific and a generic beginners emacs question.
Intended Workflow
(I am adding this as requested in the comments)
Background
I am managing different projects and interface with various systems, clients and internal teams. Due to this there is no single system used by everyone that would make sure tickets can be filed and tracked. Often I get ad-hoc requests that I cannot complete in real-time for various reasons. If I cannot complete a request in real-time, I want to file it away and retrieve it on demand: when deadline approaches (easy), when looking for open internal or external requests, ideas (easy), or when I have a catchup with any involved party (the tricky bit)
Plan
My plan so far is to create TODOs with various stages. The exact TODO states are not important, but lets say they are: NEW_REQUEST, PROCESSING, BLOCKED | COMPLETED
These TODOs can be of various kinds. I was thinking of using tags for this, like: :inbound:outbound:internal:request:idea
Because essentially I am an (not very well defined) API between different parties and individuals, I want to log which individuals are involved in each request. This will allow me to follow up on any open task whenever I speak to any involved person. For this I was planning to use properties, specifically the WITH
keyword as I was looking for a short signifier.
As an example, a task could look like:
* PROCESSING Alice: setup computer for Bob :internal:request:
DEADLINE: <2020-05-22>
:PROPERTIES:
:WITH: Alice, Bob
:END:
I will configure org-capture to make it fast to create such a task. I can use / configure the agenda to show me tasks by completion based on deadline and tags.
However, I have regular catchups with most people I interface with on regular intervals (which might be weekly). For non-urgent tasks I want to batch up all my requests that involve a person when I meet them anyway. If I have to report to anyone, I want to be able to get all their tasks and report what the status of the tasks they gave me is.
Because this system needs to scale to 20+ people, multiple TODO states and tags, hardcoding all the combinations is impractical. In the same time retyping the match-strings all the time is not practical either. But something inbetween would potentially possible.
I can define a few template searches I regularly need. For instance open tickets that are inbound involving person XXX:
TODO="-CLOSED"+inbound+WITH="XXX"
Since C-c a m
asks the user for the match string, I thought I could do the same. The user would just need to navigate to the custom query, and type in Alice
and an agenda view TODO="-CLOSED"+inbound+WITH="Alice"
would get created.
This is is what this question was about. I have tried setting org-agenda-custom-commands
and it does work for static queries. But I cannot find out how to add a user-prompt to it. (might not be possible, as one of the answerers pointed out)
TODO="-CLOSED"+inbound+WITH="Alice"
would work. That's one possible problem with using a property for this."
around the search term and instead wrapping it with{
and}
.