🎯 The Challenge
Today’s article comes directly from my practice – from a project that made me fundamentally rethink how I approach automation with artificial intelligence.
And no, this isn’t about a technical failure.
This is about a crucial insight: sometimes the best solution is NOT to use AI.
Let me tell you about a project that initially seemed elementary, but turned out to be a goldmine of lessons.
📋 The Assignment
A real estate agency approached me with the following task:
“We want our brokers to receive a daily email with:
- Contacted leads they need to follow up with
- New leads for the day
- Questions to ask during meetings
- The 10 most common objections and how to overcome them”
Sounds simple, right? Automation that thousands of agencies would love to have.
(By the way, the requirement for contacted leads came during the work, which complicated the automation by an additional week, but that’s a topic for another article on project management.)

(In the picture above, you can see the initial automation for extracting only new leads and using 1 AI agent and 1 LLM model for preparing the email)
🏗️ The Initial Architecture
As an AI technology enthusiast, I immediately designed the following structure:
Components:
- CRM system – Google Sheets, collecting leads from 7 different advertising channels
- Database – Supabase for broker information
- AI Agent #1 (Strategy) – processes information for each lead and creates a personalized strategy
- AI Agent #2 (Gmail_HTML) – generates HTML code for the email
- Gmail – authorized profile for sending individual emails to each real estate agent (broker)
The Logic:
- Download and filter new leads
- Feed them to the first AI agent to create a strategy
- The strategy and lead information go to the second agent
- The second agent creates the HTML structure
- The HTML is sent via Gmail
- The same process repeats for contacted leads
Elegant. Modern. AI-powered.
And incredibly inefficient.
😱 The Shocking Results
When real data testing began, the numbers were horrifying:
- Execution time: ~90 minutes for a list of 12 leads
- Token cost: Over 300,000 per execution
- Frequency: The automation had to run EVERY DAY
- Monthly projection: 9,000,000+ tokens for this project alone
Imagine what this meant for the client:
- Long waiting time every morning
- Massive monthly API call expenses
- Risk of AI agent hallucinations
- Unpredictable errors in a critical business process
I had two choices: accept this result as “the cost of AI” or take a step back and think critically.
🤔 The Critical Question
Here I returned to the most fundamental question in automation:
When do we really need an AI agent?
I started a detailed analysis of each agent:
AI Agent #1 (Strategy):
- Must analyze different types of lead data
- Must make decisions based on context
- Each lead is unique and requires a personalized approach
- Verdict: NECESSARY
AI Agent #2 (Gmail_HTML):
- Simply formats data into a predefined HTML template
- Follows strict, unchanging rules
- No need for “thinking” or decision-making
- The same task can be performed with code
- Verdict: REDUNDANT
💡 The Insight
The second agent was performing tasks that do not require artificial intelligence.
This was a classic task for traditional programming – taking data and placing it in a template.
As experts suggest, if the task is rules-based and repetitive, with structured input, consider using rule-based automation.
⚡ The Solution
I deleted AI Agent #2 and replaced it with custom JavaScript code, which is simple, deterministic, and predictable.
The New Results:
- Execution time: ~18 minutes (80% improvement)
- Token cost: ~160,000 (47% reduction)
- Reliability: 100% consistency in formatting
- Performance: Fast and predictable
🎓 Why Is This Distinction Important?
1. The Financial Side
AI agents consume a large number of tokens.
With models like GPT-4.1, executing agent systems requires more computational resources, which can lead to increased costs and latency.
2. Reliability
Agents powered by LLM models are probabilistic systems, meaning they can sometimes make incorrect decisions.
For HTML formatting, you don’t want “sometimes” – you want “always correct”.
3. Maintenance
Deterministic code is easy to debug.
You know exactly what each line does.
A clearly defined structure is much easier to test with sample scenarios.
With an agent that makes its own decisions, debugging becomes a nightmare.
4. Performance
Traditional code executes in milliseconds.
AI agents need seconds or minutes for each call.
Multiply that by dozens or hundreds of daily operations.
✅ When to Use AI Agents?
Research shows clear criteria.
Use AI agents when the task involves multi-step decision-making and has a long tail of highly variable inputs and contexts.
Use AI agents for:
- Analysis of unstructured data (documents, emails, images)
- Tasks requiring creativity or judgment
- Processing ambiguity and variable scenarios
- Personalization based on complex context
- Tasks that previously required human intervention
DON’T use AI agents for:
- Repetitive, predictable operations
- Tasks with clearly defined rules
- Data formatting and transformations
- Critical operations with no tolerance for errors
- Cases where traditional code is faster and more reliable
For the most successful cases, AI agents are ideal for scenarios that were previously impossible to automate and required human involvement or judgment.
🔀 The Hybrid Approach – Best of Both Worlds
Ultimately, the most powerful automations use a hybrid model:
- AI agents for intelligent, adaptive tasks
- Traditional code for deterministic operations
- Clearly defined boundaries between the two
By combining both technologies, businesses can achieve operational excellence while driving innovation, enhancing adaptability, and making more intelligent decisions.
⚠️ The Cost of the Easy Path
I observe this mistake being repeated repeatedly in the industry.
Many developers (automation engineers) see prompts as an easy way out:
“Why write code when I can just tell an AI agent what to do?”
The answer is simple:
Because someone has to pay for the tokens. And that someone is the client.
💪 The Work Ethic I Chose

Optimizing this automation took me an additional week of work.
I slept 3-4 hours a day to meet deadlines.
Could I have delivered the project in its initial form?
Technically – yes. The system worked.
But I’m not in the business of just “making things work”.
I aim to develop solutions that genuinely benefit clients – financially, operationally, and in the long term.
In my work, I have three principles:
- Efficiency before elegance – The best solution is what works best, not what looks best in the portfolio
- Costs for the client, not the developer – I invest my time to save their money
- Sustainability, not short-term fixes – Automation must work well for months and years ahead
🎯 Lessons for Business Owners
If you’re a business owner approaching an agency for automation:
Ask the right questions:
- “Why are you using an AI agent for this specific task?”
- “Are there other alternatives that are more efficient?”
- “What are the projected monthly token costs?”
- “How will the system scale with growth?”
Look for a partner, not just an executor:
A good developer will:
- Explain why they chose a specific technology
- Offer alternatives with pros and cons
- Optimize for YOUR costs, not THEIR convenience
- Think long-term about maintenance and scalability
🚩 Red flags:
- “We’ll use AI for everything” – without explaining why
- Lack of discussion about token costs
- Focus on “how cool it is” rather than “how efficient it is”
- Unwillingness to discuss alternative approaches
👨💻 Lessons for Developers
If you’re building AI automations:
Remember:
- AI agents aren’t a universal solution – They’re a powerful tool for the right tasks
- Your client’s time is valuable – 90 minutes vs 18 minutes daily adds up
- Tokens cost money – 300K vs 160K tokens daily is a huge difference
- Reliability matters – Deterministic systems >> Probabilistic systems for critical operations
- Your convenience is not equal to the client value – Writing a prompt is easy, writing optimized code requires skill
Practical tips:
- Before adding an AI agent, ask: “Can this be done with traditional code?”
- Start with the simplest solution, complicate only when necessary
- Measure and report: execution time, token cost, success rate
- Document why you chose each technology
🏁 Conclusion
This week of persistent work wasn’t about proving how good an automation engineer I am.
It was about proving that I put the client’s interests before my own convenience.
The big lesson: AI agents are an incredible tool, but like any tool, they must be used wisely.
Not every problem is solved with a hammer, even if the hammer is the latest and most advanced technology on the market.
In the world of automation, the most innovative solution is often not the most technologically advanced.
The most innovative solution is one that strikes a balance between functionality, cost, reliability, and maintenance.
And sometimes, the smartest solution is to say “no” to AI.
It remains to hope that these efforts will truly be appreciated. However, regardless, I know I did the right thing for the project, the client, and the future sustainability of the system.
What do you think? Have you had similar experiences with overengineering AI solutions? Share in the comments!