Over the past two months, I have gradually automated parts of my customer development work.
The routine now looks like this.
Every morning, the system prepares a report: who replied, who has been quiet for too long, and which email addresses need checking before I send anything else.
During the day, it checks the mailbox once an hour.
In the evening, it prepares drafts in three windows scheduled around customers' local working hours. At 11 p.m. Beijing time, the messages I have approved are sent.
The setup is far from perfect. I will come to its limitations later. First, here is what it actually does.
1. Why I built it
Two problems kept coming back: time zones and remembering everything.
My customers are in different cities across Latin America. Sometimes their working day starts when it is already evening in Beijing. The actual difference depends on the city, date and daylight saving rules. Getting a message into someone's inbox near the start of their day could mean staying up late. Occasionally that is manageable; every day, it is not.
Keeping track was the harder problem.
I had a spreadsheet showing each customer's contact round and next follow-up date. It looked organized, but the records often disagreed with what had happened.
During one review, a customer's status had been “draft awaiting send” for more than twenty days. The mailbox showed that the message had gone out on September 10, followed by another on September 23. The spreadsheet had never caught up.
Another customer was marked “round 3 sent” even though the correspondence had stopped at round 2.
The reason was simple: sending an email and updating a spreadsheet were separate actions, with me standing between them.
I realized that spreadsheets and memory could not be the only evidence of an email action. I needed to check the actual messages.
The server and client can also have synchronization delays. A sent record helps establish that a sending action occurred; it does not, by itself, prove that the recipient received, read or understood the message.
2. What the system does each day
A morning report.
Before I leave home, it checks the inbox, sent folder and spam folder. The report covers:
- Customer replies received the previous day, with a reminder to handle them within 24 hours.
- Bounce notifications.
- Customer domains that appear to have problems and should not be used without checking.
- Customers silent for more than 30 days, where a different approach may be needed.
- Disagreements between the spreadsheet and the mailbox.
- Anything it cannot resolve, listed separately for my decision.
Why check spam for bounces? Because delivery notices can end up there. During one review, it even pulled out a recruitment website's weekly newsletter to establish that it was not a bounce.
An hourly check during the day.
I cannot choose when a customer replies, so it looks once an hour.
When a new reply appears, it checks who the customer is, which contact round we have reached and which angles we have already tried. It reads the development log, then combines our product information with the customer's actual wording to prepare a reply draft.
One detail I like: between 11:30 p.m. and 7 a.m. Beijing time, it continues scanning and recording but does not notify me. That is my own quiet period. Whether it is working time for the customer is a separate question.
Three evening preparation windows.
I group the work around customers' locations and working hours rather than assigning one fixed time difference to an entire country. Local time is checked again before sending, including relevant holidays and daylight saving changes.
At each window, the system prepares the messages due for that group. A review checks whether the angle repeats the previous email, whether it is relevant to that customer, whether the language is natural, and how much effort the requested next action will take.
I set my own review threshold at 95 out of 100. Below that, the draft goes back for revision. This is an internal checklist score, not an objective guarantee of email quality or response rate.
I read the drafts on the train or before bed, approve them or change a line. The 11 p.m. closing window sends only the messages I have approved.
3. One Monday night
Here is one specific evening.
At 10 p.m., two drafts for Colombian customers were ready, with internal scores of 98 and 97. They went into the drafts folder.
At 11:03 p.m., the day's five approved messages were sent.
At 11:07 p.m., a reply arrived to one of them. Four minutes had passed.
I learned about it at 11:55 p.m. The next check found the new message, connected it to the outgoing email, updated the customer files, development log and communication record, and placed the required decision on my list.
The four-minute response was a coincidence, not an everyday result. What happened after that was a process.
The customer wanted two product catalogs. We did not have finished external versions ready. At 2:28 a.m., once the attachments had been confirmed, the reply went out.
To be clear, the automated part was the preparation: noticing the reply, classifying it, listing the materials needed and drafting a response. I still decided what to send and authorized the sending. For part of the intervening time, I was asleep; the draft waited.
The sequence connected the outgoing message, incoming reply and response materials. Preparation happened first; the final decision still waited for me.
There was also an error that night. One of the five drafts had October 4 as its next review date when it should have been October 6. The closing review caught and corrected it.
4. Three limits I put on it
My main concern with automation is being unable to stop a mistake.
Originally, I wanted the system to “send the emails for me.” I stepped back from that idea. Unrestricted sending would leave me worrying about incorrect messages, duplicates and the wrong recipients.
I moved in the opposite direction and narrowed its permissions.
First: no approval, no sending. Every message needs my approval, without exceptions.
Second: a maximum of five messages a day. That is a limit I set for my own workflow. I would rather move slowly than drift into mass mailing.
Third: some decisions remain entirely with me. Quotes, meetings, complaints and replies to important customers can have draft assistance, but they must be listed separately for my decision. The system must not invent a number or make a commitment on my behalf.
People sometimes ask what the automation achieves if I still have to review everything.
My answer is that it helps me remember, while I make the decisions. Separating those responsibilities is what makes me comfortable running it.
5. Mistakes it has made
These are actual failures from my own setup.
Incorrect dates. After one evening's three windows, the final review found three wrong next-check dates. All should have been October 6; two said October 4 and one said October 13. My rules used a seven-day interval after round 2 and fourteen days after round 5. It applied the wrong interval.
Those errors were corrected that day. Left unnoticed, they would have disrupted the follow-up schedule.
Missed synchronization. One reply had been in the inbox since September 10 and entered in the contact record by September 23, but the development log and overview still had not been updated. Comparing the files against the actual email exposed the gap.
A message associated with the wrong customer. A September 11 message in the sent folder appeared, from its subject line, to concern a Chilean customer. Reading the full message and checking the recipient showed that it belonged to a different company in Colombia. A project name in a subject line had led to the wrong association.
The lesson was straightforward: a summary can mislead. Read the source message.
An address inferred from a pattern. For a time, I guessed some addresses using the assumption that Colombian companies would use .com.co. Two messages to one company produced no response. I interpreted that silence as a lack of interest for almost a month.
A later check found a problem with the recipient domain. My earlier conclusion about the customer's interest had not been supported by evidence.
I then reviewed the domains for all customers and found several issues: nonexistent domains, domains without apparent mail service and old spelling errors. The working rule became: check the recipient domain before drafting; if it cannot be verified, mark it “needs verification” and do not send.
Sending and delivery are different things. A domain or mail-service check can reveal some problems, but it cannot establish that a particular mailbox exists or will receive the message.
6. What still does not work well
The records are incomplete. Of roughly sixty customers, only six had complete status cards at the time. The rest would be filled in alongside future work.
The attachment library has gaps. When a customer asks for a catalog, we often still need to produce an external version. The system can identify the request; it cannot conjure up a finished catalog that we do not have.
The computer has to stay on. The evening preparation windows depend on the machine running. That remains an inconvenience.
Business judgment stays with me. Public information can support research, but it does not decide which customer deserves more time, how to negotiate a quote or whether a contact is the real decision maker.
I treat it as a diligent junior assistant rather than a business partner. The assistant keeps records, follows routines, organizes within rules and flags exceptions. The business owner makes the trade-offs.
7. What changed for me
This was not built in one session. It developed gradually from the summer onward: first organizing customer materials, then connecting email, and only later adding scheduled checks and draft preparation. Several approaches were discarded along the way.
At first I wanted it to be cleverer and decide more for itself. Eventually I realized that I wanted something more disciplined: follow the rules and leave decisions where they belong.
I expected efficiency to be the biggest benefit. The first thing I noticed was a quieter mind in the morning.
Previously, I would wake up running through a mental list: who needs a follow-up, who is waiting for a message, whose review date has arrived?
Now those reminders live in records I can inspect, rather than only in my head.