How to sell and fulfill limited edition ebooks for free

My friend (and brother in law) Tom Alexander is a writer / artist / publisher / very clever guy. His latest project is Six Six Six – one hundred and eleven six-word stories about Hell, in three editions.

I helped with the logistics for fully automating selling the limited edition ebook, and this post explains how we approached it.

TLDR: use Stripe Payments, Zapier and Google Script.

The problem

Tom’s idea was to allow customers to purchase a limited edition ebook. This ebook should then be emailed to the customer, and this process should be automated. Each ebook would have the edition number embedded in it, and the email to the customer would also know which edition the customer was getting.

Each ebook costs 66p, so the budget was very limited and certainly couldn’t sustain ongoing monthly costs.

Limited edition ebooks are not normally a thing people want, so there’s no established way to handle this.

Thankfully, Tom wasn’t worried about DRM or other file sharing protections for this project, so we didn’t have to take that into account. 

The ideas

We considered generating the ebooks on demand, with the edition number embedded in them on creation, but this seemed unnecessarily complicated. Instead, Tom created 600 separate pdfs using Affinity and a merge, and then used a python script to split the file into the individual books. 

To sell the ebooks I initially thought we could sell through SquareSpace, where Tom hosts his site. SquareSpace allows you to sell digital products, but doesn’t allow you to do something as odd as sell individual digital products only once. We could have tried to treat them like physical products. However, the automation of sending them would need to be outside the system, and the automation options with SquareSpace are limited. 

We hatched a plan to use a Stripe Payment and then process the orders using Zapier. This worked quite well. I created a Zap that checks for Stripe checkouts, filters based on what was bought, extracts the customer email, increments a number in a table in Zapier, finds the correct file in Dropbox or on Google Drive, and then sends it to the customer through Gmail. Incredible. 

But. Due to the complexity of the Zap, this not unreasonably required a Zapier subscription, which Tom did not already have. This made it prohibitively expensive for sending 66p ebooks. I looked at the Zapier alternatives, but none of them seemed to work as well, and none of them were magically free.

The solution

Then I discovered Google Script. This let you tie together bits of your Google landscape to do all sorts of clever things. For example, you can write a script to format a spreadsheet for you. Or to read a spreadsheet and do something with the data. Or send an email. Do you see where this is going? 

In our case, we used a free Zap from Zapier to write to a Google Sheet whenever someone buys one of Tom’s books (Zapier lets you do one-step processes like this for free). Then the Google Script checks that Sheet on a regular basis. When it finds a new book order it assigns it a book number, incrementing by 1 each time, then finds the book in Tom’s Google Drive, and sends the book to the customer through Tom’s Gmail. 

Simple and effective. 

This was a really fun challenge to wrap my head around. Take a look at Tom’s site to see the range of what he does. He’s incredible. And let me know if you’ve got something fun like this that I could help with somehow. 

Weeknotes 42 (Nov ’20): The ‘she what?!’ factor

  • I’ve attended a couple of group meditations online. An odd experience, but good. Don’t rule it out.
  • Managed to run 3 times this week, out the door at 7am. I never imagined I would be someone who would do that. I am intrigued to see how long it will last. A long time, I hope. It feels great so far.
  • Watched Selma on Netflix. I knew nothing about that part of US history and found it fascinating and alarming. Sarah told me that Obama walked over the bridge on the anniversary of the protest, and that is an astonishing thought.
  • We’re also dipping into the Crown. Thatcher ironing her husband’s shirts is obviously included for the ‘she what?!’ factor, and it works. There is something so insane about the cultural idea of women looking after the home, as if men are incapable of taking care of their own space and clothing and so forth. This is such a surrender of the home, by the men who allow it. They pay a price for that service. (Don’t misunderstand me – obviously I am not suggesting men have the worse end of this deal.) And this insane idea still prevails in many households today. Just mind boggling.

Weeknotes 41 (Nov ’20): Alternating between engaging and astonishingly dull

  • I took advantage of lockdown to have some minor surgery that stops me from exercising for a week. I’ve been wanting to have it down for about a year, but it hasn’t warranted missing teaching class. Trying to look on the bright side.
  • I sorted through all our paper files, shredded several bags of paper, and recycled the same amount. It’s cleansing to get rid of stuff, even if the shelves look pretty much the same as they did before I started. I’m trying to maintain momentum and keep with the sorting. Lighter is better.
  • I’m learning JavaScript, so spent a lot of this week doing practice exercises. They alternate between engaging and astonishingly dull. Which is quite representative of life as a programmer, I think, so good training. The trick is to drive through the astonishingly dull, and not get sloppy. Sloppy just leads to more and more astonishingly dull. Get it right first time and move on, if you possibly can.
  • I helped my yoga teacher find the Zoom spotlight button this week. Far better class! Next week, I might try to help the other students find their mute buttons. These experiences are great, because it’s so easy to imagine that everyone using this stuff means everyone knows how to use it. It’s just not true. In just the same way that everyone who uses Word or Excel or web browser is not using it as I might.

Weeknotes 40 (Oct / Nov ’20): Smiling, proud faces

  • Eventful week. We managed to hold a taekwondo grading, recorded it and sent it to our Grandmaster to grade. At the moment, this feels like a massive achievement both for the club and for the students who graded. And the smiling, proud faces afterwards made it all more than worthwhile.
  • Risk assessments have been a large part of our return to training. The struggle has been in working out what guidance is required vs optional, and what the reasoning is for it. While everyone needs to have a risk assessment in order to return to play, or open certain businesses, I was unable to find a clear definition anywhere of the risks we’re trying to manage. Of course, distancing and not touching the same things as each other are a given, and for training we have rules about not breathing heavily, but it’s hard to find anything in official documentation that spells out why.
  • Another lockdown. This time, we know to wait a couple of days before making any decisions about anything. Announcements get made. Then goal posts moved. It’s mentally and emotionally exhausting, no?
  • Running continues. Just getting out of the door early in the day several times a week has been massively beneficial.

Weeknotes 39 (Oct 20): An awful lot and nothing at all

  • I’ve reduced my digital input for October, so no Facebook, no Instagram and no RSS feeds. I also made it harder to check my email on my phone and muted WhatsApp group chat alerts. I wouldn’t say it’s taught me an awful lot I didn’t already know, but it’s been fairly pleasant. I suspect at the end of this experiment I’ll introduce a routine of checking my currently banned accounts once a week, and reduce the number of people I ‘follow’. I miss the RSS the most.
  • As a result of my reduced digital diet, I found myself a bit ambivalent about these weeknotes. On the one hand I like looking back over them and seeing what I was thinking or feeling at a certain time. On the other hand, why do that in public? Who am I sharing with and why? I have had different answers to this over time, so we’ll see where I land this time.
  • It’s a long and tedious story, but it’s possibly my biggest personal achievement in taekwondo will involve sensible risk assessments during the pandemic. I don’t want to downplay that, but I didn’t see that one coming.
  • We went to Whitstable with my mother for a day trip. We got a puncture on the motorway and the eventfulness of changing the tyre at the service station was maybe the highlight of the trip. The restaurant meal and walk along the seafront were good, too.

Weeknotes 38 (Oct ’20): Plenty of room for improvement

  • We took a day trip to the White Cliffs of Dover this week. We decided on our destination on a whim, and only realised it was a National Trust property when we were on the road. We had lunch (baked potato!) in the cafe at the car park, trying not to overhear the young woman giving her elderly recently bereaved companion a pep talk. We then walked along the cliffs in the wind, had cream tea at the lighthouse, sheltering from the wind, and walked back. We could see France, and EE sent me a “welcome to France” text message. Trolls. I woke up the following day feeling really refreshed by the healing power of a long view and a walk. Southwark isn’t great for views.
  • We tried to drop some (quality) stuff at the local Mind charity shop. As we approached, a woman in the doorway started shouting at us “We’re full! We’re full! We’re not accepting donations! We’re full!”. We ended up donating to a charity across the road, which I hadn’t heard of, and now suspect is a religious cult preying on homeless drug users. I hope they do more good than harm, and I hope they’re not homophobic bigots.
  • The timer on our boiler exploded, which I discovered just before I got in the cold shower – win! The electrician came and bypassed the timer and told us we needed the boiler engineer. The boiler engineer replaced the timer and the heating part that had also broken, and complained about the electrician’s fix. Both of them came within 24 hours of being called. And the bills seemed alarming until we realised we were paying for their congestion charge as well as their time. I’m very grateful to be able to afford that, and am acutely aware of neighbours for whom that would be a real problem.
  • I went for a running coaching session with a chi running specialist. I want to try to run without pain. He said I was running pretty much as badly as it was possible to run, but that was good because lots of room for improvement. I like this approach!

Weeknotes 37 (Sept’ 20): Normal human reactions

  • Sarah heard an item on the radio interviewing an expert in crisis planning and management. Apparently he calmly went through all the things you’re meant to do when there’s a major crisis like a pandemic, and explained all the things that Boris Johnson has got wrong. You should tell the truth. Don’t be optimistic about timescales or outcomes. Be fair and have the same rules for everyone… If you don’t do these things, as Johnson hasn’t, then people stop trusting you and feel destabilised. It helped, actually, to know that how I’m feeling is a known human reaction to the situation I am in.
  • Another known human reaction I found reassuring was the information from Dr Aisha Ahmad about the 6 month wall.
  • I have been buying plants. Patch plants are good – lovely plants, lovely pots, safely distanced delivery to the doorstep (in SE1).
  • We have a balcony and decided to put some fake grass on it. (Are you judging? Fine.) In fact, we decided to put some fake grass and some decking on it, using Ikea’s clip together tiling system. The grass has been out of stock for ages, so when it became available again we ordered it, but the decking was out of stock. Then we realised the decking may be out of stock until next year. So we drove 1 hour (which became 1.5 hours) to an Ikea that claimed to have it in stock. It lied. We reserved a table for the restaurant and experienced Ikea table service. We bought a sub-standard plant. We drove home for 1.5 hours. And we have now thrown ourselves upon the mercy of a friend who’s visiting Bristol to get us some Ikea decking for Ikea Bristol. It will probably be back in stock for online delivery tomorrow. I did not ever imagine adulthood, or navigating international crises would have any of these elements in them.
  • We went on a first aid course last week. It was excellent. The trainer used to be purser with BA before she was made redundant. She is now telling a lot of compelling stories about mid-air medical emergencies to get the attention of her trainees. She also had the most incredible soft skills I have ever seen and got the whole room of very varied people fully engaged. As you’d expect, I guess.

Weeknotes 36 (Sept ’20): Making stuff happen

  • We’re teaching three taekwondo classes back to back these days, with 15 minutes between each one to allow for social distancing. On Saturday I found myself jumping side to side over an obstacle in all three sessions. Me and a series of 10-year-olds. Me and a series of 7-year-olds. Me and the rest of the adults. Bit tired.
  • Taekwondo is utterly at the mercy of venue availability. This is true at the best of times, of course, but particularly now. We’ve personally been very lucky with a couple of spaces, but it’s a grim landscape for a lot of clubs at the moment.
  • We went to Borough Market to get something nice for Sunday lunch with my mother. We ended up with 100 day chicken from Ginger Pig. Very expensive, but cheaper than eating out, right?! It was interesting because it’s more fatty than your average chicken. Mum and S liked it, but I wasn’t fussed.
  • Successfully visited the doctor. The system requires phoning at exactly 8am for a call back. I called at 7:59 and got the answerphone. Redialed immediately and was 4th in the queue. And then stayed near my phone for the whole morning for the call back. You need to really want it. And not have anything else on your agenda.
  • We watched chunks of the US Open on Prime. The finals were fantastic, even without the crowds. It was incredible they made it happen.

Weeknotes 35 (Sept ’20): Broken systems

  • I tried to get an appointment with my GP this week. I went to their website and navigated past the Covid-19 messages, and through the variety of opaque options to finally find the bit about making an appointment. I was first encouraged to check my symptoms, which I did, and was told to make an appointment. I was then encouraged to make an appointment online, which needed me to download and register with the NHS app, which I did. Then I discovered appointments are not bookable with my GP through the app. I’m not sure my GP knows this. Then I was told I could contact them digitally and get a call back. I filled in all the medical details, but was told it was too urgent and I needed to call for an appointment. I called and was 14th in the queue. After 35 minutes I spoke to the receptionist who told me to call back after 1pm as all the appointments for the morning had gone. This system isn’t working, is it?
  • I went for brunch on Wednesday. I went to the exact same place a month ago and it was packed. This Wednesday, not so much. Eat Out to Help Out certainly had some impact, it seems.
  • We returned to indoor training, with full social distancing. Very nice to be back in the room. Incredibly hard to work out the financial and practical viability of it all. Indeed, some days it’s very hard to find the motivation to keep navigating everything, and then we teach, and remember what we do it for.
  • Somehow, it is not illegal in the US for the police to hand out ‘courtesy cards‘ to help their friends get away with minor infractions. What possible need would there be for these cards that is not about letting some people get away with breaking the law?
  • We got a smart meter installed. I am now a bit obsessed with my moment by moment electricity usage.
  • WordPress has a headline analyser that tells me my weeknote headlines are too short to be good for click bait. I’m cool with that.