Zettelkasten to Jira

I'm really getting into the Zettelkasten bandwagon. Since reading about it earlier the year I've attempted to use it as my work management system, with adjustments1. I view my jobs tracking as less knowledge synthesis by linking notes and more a hub that other notes can link to. So I don't add multiple files with the same base name and link them together for each job; a job is a discrete entity that has a format:

# YYYYMMDD-Title
#tag1 #tag2

-summary-

## Todo

- [ ] Not done
- [x] Done

## Updates

## Links
- [1](#1)
- [2](#2)

I've found it a great way to get information in one place, markdown makes it very easy to edit/ expand/ update, and just about anything can write or search it to find information. I have some specific tags of #project or #operational to group as well as #todo and #done or #notdone for search-based filtering with regexp. Works for me. But in a group environment, we don't all want to share our cloud-file-shares and have to search everyone's stuff. Our department is consolidating on Jira for task lists so I wanted to sync with that.

Jira's APIs are well documented and robust. Great. But how to put metadata in the files? Well as per previously I mentioned that YAML in Markdown is great, even better that's how this blog works. A Yaml front-matter and Markdown body. Using YAML for JiraID and other task-related metadata is a piece of cake.

ProjectId: "xxx"
JiraId: "xxx"
Status: "Done"
Others: ...
===
# YYYYMMDD-Title
etc.

A quick PHP wrapper script later, tying that in with my VisualStudio Code editor as a default build task, I've now got my Project and Operational tagged Zettelkasten files syncing as tasks in Jira. One issue I had is that Jira's WYSIWYG field is Wiki-templated, not HTML or Markdown. Frustrated for a while, I recalled pandoc and it's translation - investigation showed it actually had a specific JiraWiki export! So a quick spin of the markdown through pandoc and out comes nicely formatted descriptions in Jira tasks. Sweet! Managing my todos this way also means if we change to some other new-hotness task management system, my flow barely changes.

Happy to share the code if people are interested.


  1. Good? Bad? Who knows yet. ↩︎