Adding multiple Trello cards - trello-bulk

I’ve been using Trello boards for some of my basic task tracking for quite a while and as other people in my family have seen it in action, mostly via my huge TODO and BLOCKED columns, we’ve begun to use it in a more shared and collaborative way. In addition to the core usage of adhoc task tracking the more frequent use cases we’ve adopted are adding a set of cards on either a semi- periodic basis or a group of tasks when a certain event happens. Examples of the former are weekly setting of chores, monthly home maintenance or quarterly checking of bills and accounts. The latter are more event driven, planning a birthday party, organising a visit to the grandparents etc.

As someone with a dislike of manual clicking around web UIs and a love of putting recurring things into scripts and version control I decided to take a look at the Trello API and see if there was a way to bulk add cards and tasks to a board. There was, and with some ruby wrapping I’ve decided to name it Trello-Bulk.

Using the ubiquitous YAML as a way to represent the individual cards and their details I’ve exposed a few key Trello functions to allow some customisation in the card creation. For example you can add checklists and items to a card and set due dates based on relative values. Here you can see an example card with checklists and items:

cards:
  - title: Attend a user group (1) - tiny
    description: "Attend a technical user group and learn something new about %%namespace%%"
    checklists:
      "Register":      
        - Sign up
        - Add to calendar
      "Post event":
        - "Write blog post"

Here we have a sample incident card set that shows relative due dates and how you can easily use the basic template support to customise created cards without needing to hard code values or edit titles and descriptions in the UI.

cards:
  - title: "Initiate incident report for %%incident_id%%"
    description: "We start an incident report for %%incident_id%%"
  - title: "Review %%incident_id%%"
    description: "Review %%incident_id%% as a team"
    due: +2
  - title: "Publish incident report %%incident_id%%"
    description: "Document the incident, the review and the resolution"
    due: +4

You pass the replacement value in using the `–replace`` command line argument:

--replace '%%namespace%%==Orders_incident 004'

Unsurprisingly most of my family have no idea what YAML is, or how to run ruby from the command line (no matter how much time i spend telling them about it every Christmas) but as the person with the Trello account, who creates the boards and columns, it’s easy enough to run the periodic creations for them via cron. I’ve also started to use some customised card sets in my work life to help track larger parts of work that have predictable work flows. As the output are the cards everyone sees and collaborates on the way they get created is mostly irrelevant but by using trello-bulk I can add some more consistency and save myself some time and effort.