1 min read

Ghost in the invoice machine

Working with bigger companies meant figuring out how to plug ourselves into lots of standard big-company processes. One of the processes we had to learn was how to tell customers how much money they owed us so that we could get paid. We needed to generate invoices.

Cal wrote the initial invoice system. We did a few google searches for “invoice template” to figure out what goes on an invoice. He created a basic Smarty template to lay out the format, added static elements like our logo and address, and dynamically pulled other information from our database like the customer’s name and how much they owed us. As with most things, this was not a separate piece of software we built — Cal just wired it up into the Slack back end, and we accessed it through our internal tooling.

At some point we decided to add the name of the customer’s account manager to the invoice. This would’ve been simple enough, just another dynamic field to put in the Smarty template. Since this was written in Slack’s back end, the name of the account manager that went into the invoices was their display name in Slack-the-product itself.

Now then. If you were on Twitter (RIP) in the mid-2010s, you may remember the Halloween tradition of spooky names, where people would change their Twitter name to spooky-season rhymes of their own name. This tradition reached into our own instance of Slack, with dozens of employees changing their name inside Slack to something spooky for a week or so before Halloween. So irreverent! So fun! 

Do you see where this is going?

We sent out literally dozens of invoices in October 2018 with spooky names in the Account Manager field before someone caught it. Oops!

Happy Halloween!

Thanks to Julian Brophy for having the foresight to save this all-time classic.