
I decided September would be Infrastructure Month.
I would do no writing, I said to myself.
Zero.
Instead, I would focus my efforts on getting a better handle on the business side of the game. I’ve mentioned that I’ve wanted to explore more uses of AI to help me run my business—something I’ve been doing in bits and pieces for several months, but something I feel like I was only doing a half-assed job of.
It was time to change that.
It was time for Infrastructure Month.
So, as I entered September, I decided I had four main goals:
- Run the Halloween Hearts Kickstarter as well as I could.
- Perform a complete review and overhaul of what I’ll call my advertising schema, based on learning from a cycle of Facebook Ads last spring.
- Develop a stronger sense of how to market a book from the ground up.
- Automate at least one major element of my business.
How has this worked?
Happy you asked.
I’m going to write a series of posts, each focusing on at least one of those elements, though I’ll give short shrift to Halloween Hearts because, as you probably know, the Halloween Hearts project is winding down. It has funded, which is good.
Now comes fulfillment.
No rest for the weary.
Running Kickstarter projects is not a new thing for me, though. I’ve run over a dozen. I get the gig—or at least I thought I did. As we’ll see, though, there’s always more to consider.
But I’m getting ahead of myself.
I’m going to take those four goals one at a time, and, in my own style, since I’m quite excited about it now, I think I’ll work backward, starting with …
Automation: Price Management FTW
Several months ago, I decided to explore how AI could help me run my business. Since then, I’ve used it for several nebulous tasks like talking through concepts of author brands, search discovery, and release strategies. I may discuss those elements as I get into the other pieces of this series, but today I want to talk about how I’ve started using AI to do actual hands-on work—which, for me, is a real value.
I love writing, you know?
I don’t love spending hours working with distributor interfaces.
Note: I’m using ChatGPT for this work. I know a lot of other folks are exploring with Claude, and others with Gemini. It’s all good (or bad), as you will.
Aside: Once again, since it seems perpetually required during this period, I will restate my general view of the use of AI—which is that I do not use AI to create my fiction, and that if I ever do use it to create fiction, I will openly tell you what I’ve done and how I’ve done it. Then I’ll let you decide how to react (kind of me, right?). I am not strident in my view of AI. I am not against people using it for whatever they want, nor am I for it. I’m a “you-do-you” kind of guy who figures the market will eventually decide everyone’s fate. As such, I am watching the legal situation as closely as I can, anxiously awaiting anything that seems like a solid ruling from US and other courts. I am, however, open to using AI in other ways that make sense to me (hence this post).
One of my Infrastructure Month goals has been to create a suite of business tools to automate management of my backlist. One of the biggest aggravations that hits me at times is a sudden requirement to change prices on one or more books at a time.
Sometimes it’s a promotion opportunity.
Other times it’s a business situation, like the news that Amazon increased its max-limit for a 70% royalty rate from $9.99 to $12.99.
For the record, I am a very small press Wide Indie author who publishes directly to Amazon, Kobo, Barnes & Noble, GooglePlay, and several others (including iBooks) through Draft2Digital. I also push books through IngramSpark, Bookvault, and my own Shopify store at Skyfoxpublishing.com. I have many pieces of IP on each of these platforms, let’s say seventy or more on each. I also make use of each platform’s ability to reach international readers. Hence, each instance of a single book on any one platform can have up to fifteen different prices to set.
This is all manual data entry.
Worse, I have thick fingers.
I make mistakes. Lots of mistakes. There is also just me in here. I don’t have anyone to foist work onto. Which explains why adjusting prices can be an entire day’s work for me.
So…anyway…
I began Infrastructure Month focused on analyzing my advertising schema, but that quickly led me to realize that if I pursued that idea further, a system-wide price change was in my future, so I decided to tackle Price Management before finishing that analysis.
How Has It Gone?
Let’s say I’m excited. After a few days of work, I am literally managing my books worldwide as I’m writing this post. As I told Lisa, assuming I don’t have a mistake on the live site (which is no guarantee this first time through), having this tool means it takes me more time to figure out what I want my prices to be than it does to change them.
For example, as I was writing this post, I ran the application to get all nine books of Stealing the Sun into the right price structure. The ap ran for 18 minutes. In the background.
All is good.
That makes me happy.
The Tool and the Process
My approach was to use ChatGPT to write the code for a Python application that runs on my desktop. I did it this way because I wanted the control that comes with a discrete application. I structured it to keep all of my catalog information—titles, ISBN, platform IDs, and, yes, regional prices (both current and new)—in an Excel workbook. The application reads that central data file, connects to my browser (through Playwright), and accesses each platform in series to make only the changes I’ve approved.
Ultimately, this meant I spent well over 80% of my development time teaching the code how to navigate each website, then recognizing various eccentricities that caused errors. I’ve designed the application to require me to log in to each platform manually. Only then can it do any work.
I should probably note that I spent a decent chunk of my life as a workforce professional managing software development projects, but that didn’t really matter. Early in the process, Lisa (my sweetie) asked if I was digging into the code Chat wrote, and I said: “not a chance.” First, while I can write code, as any of those developers I used to manage would tell you, the idea of me writing production code is a Very Bad Idea. Second, the whole point of this was to avoid writing my own code. And finally, there was no need.
The experience of creating this ap was quite fun.
Chat walked me through the design process in the way a professional coder would—structuring requirements as we went, and discussing how we wanted to lay out the architecture. It helped me create the design in stages.
It certainly helped that I have a software background, but that’s mostly because my background made me very comfortable with the process. This is how I would have done it if I’d worked on it completely by myself—except, to be honest, using Chat made me more disciplined about finishing and testing each step than I would have been if I’d managed it by myself.
Creating the application was highly iterative.
I had each piece of code tested to prove it worked before we moved on.
There are probably faster and easier ways to do this, but I am who I am. [grin] I wouldn’t be surprised if I managed 150 builds over the days.
I worked on the platforms one at a time—Kobo first, then Amazon, etc. Each platform was developed as a stand-alone program at first, and I kept at each until the process ran properly. Then I had Chat develop a top-level architecture that would process multi-platform requests. Once that was in place, I had Chat migrate the code from each operational module into that bigger architecture.
When we were done, we could do a book everywhere at once.
Pretty cool.
Another few cycles, and I could process multiple books across all five platforms.
Next Steps
At present, v1.0 can manage eBooks only, but that’s a big chunk of my system. My development plan looks like this
- V2.0 – Add audio (very small changes required)
- V3.0 – Extend eBooks to IngramSpark and Skyfox Publishing
- V4.0 – Add Print prices (which I assume will be a bigger task due to IngramSpark’s unique data configuration).
Given my somewhat conservative nature regarding incremental development and the cycle time I’ve experienced, I expect this will be about two days of work
That said, I’m quite excited.
This is already going to save me both time and stress going forward.
Maybe the best thing is that, now that I’ve figured out how to do this, I’ve got lots more tasks I want to focus on. While I hold onto the right to change my mind, I expect my next Infrastructure Month projects will be applications to:
- Gather and compile sales data from the platforms
- Upload entire books across all platforms
- Change Keywords
- Change Product Descriptions
I have several additional automations I’d love to get to, too. I’m sure I’ll get to them in due time.
But, yeah, for now I’m quite excited.
Next post, I’ll talk about my experience in breaking down advertising information and creating a different framework by which I’m thinking about that thing that I’ll call “Marketing,” but which may be better thought of as “knowing what the heck it is that I’ve written.”
I keep a Patreon Page.
A lot of the things that show up here start there. If you’d like to get these early, or you’d just like to support me, get thee over that way. Thanks so much!