Creating reports with Butler

You can ask Butler to collect a group of cards from the current board and create a report with their content. For example, let's say we want to send an email with all the tasks completed this week. You can achieve this by entering this calendar-scheduled command:

every friday at 11:45 pm,
create a report with all cards in list "Done",
and send an email notification to every member of the board
with subject "Weekly Report for week #{weeknumber}"
and message "{$report}"

Notice the use of two variables in the content of the email:

  • {weeknumber} will be replaced at execution time with the number of the current week in the year (you can use {usweeknumber} instead if your team uses U.S. week numbering.)
  • {$report} will be replaced with the contents of the report.

Here's a screenshot of the process of entering the command:


Customizing the Report

The default format of the report is a simple list of card names linked to the respective cards. You can add more content or customize the report by specifying the 'using pattern' option (click on the pencil icon). The pattern is applied to each card in turn, replacing any variables with the content of the current card. For example:

create a report with all cards in list "Done"
using pattern "- [{cardname}]({cardlink}) ({cardmemberusernames}) {{%Priority}}"

A couple of things to notice:

  • The pattern uses markdown formatting. For example, the format [text](link) is used to produce a named link.
  • You can also use custom field variables to add custom field data (in this example, the Priority custom field).

You can create multiple reports in one command, and you can name the variables so that they can be used together. (Report variable names can only contain basic ASCII characters: letters 'a' to 'z' without accents, numeric digits, underscore.)

Example using multiple reports:

every friday at 11:45 pm,
create a report in variable "Doing"
with all cards in list "Doing"
using pattern "- [{cardname}]({cardlink}) ({cardmemberusernames}) {{%Priority}} => DUE on {cardduedate}",
create a report in variable "Done" with all cards in list "Done"
using pattern "- [{cardname}]({cardlink}) ({cardmemberusernames}) {{%Priority}} => DONE on {{%Completion Date}}",
and send an email notification to every member of the board
with subject "Report for week #{weeknumber}"
and message "Doing:\n\n{$Doing}\n\nDone:\n\n{$Done}"

Notes:

  • the sequence \n means 'new line', and to introduce a paragraph break in markdown, it needs to be entered twice in a row. The user interface automatically converts your carriage returns into these when you enter the command.
  • the second report uses a custom field named 'Completion Date' that in this example would be set automatically by another Butler command when the card moves to the 'Done' list.

The email generated by this command looks similar to this:


We're always improving Butler and take your feedback very much into account. If you would like more advanced reporting features, please contact us through https://trello.com/contact and let us know what you'd like to be able to achieve.