I used to spend roughly 90 minutes every single day writing emails. Follow-ups to leads who visited a quinta in Calheta. Updates to buyers waiting on documentation. Market reports to clients who had gone quiet for two weeks. Every one of those emails was slightly different, needed local context, and had to sound like me — not a template someone bought from a marketing course in 2019. That was the problem. Generic email tools gave me generic output. Then I connected Claude’s API directly to my workflow, and my daily email time dropped to under 20 minutes. Here’s exactly how I did it, step by step.
What You Actually Need Before You Start
Before we get into the steps, let me be clear about the stack. You do not need to be a developer. I am not one. But you do need a few things in place or this will not work:
- Anthropic API access — sign up at anthropic.com, add a credit card, and grab your API key. As of 2026, Claude Sonnet 3.7 costs $3 per million input tokens and $15 per million output tokens. A well-written 400-word email costs you fractions of a cent.
- An automation platform — I use Make.com. Zapier works too. n8n if you want self-hosted. I will show my Make setup because that is what I actually run.
- A trigger source — this is what fires the workflow. In my case: a new row added to a Google Sheet (my lead database), or a Gmail label applied manually, or a form submission from my website.
- A system prompt you actually wrote yourself — this is the part most people skip and then wonder why the output sounds like everyone else’s email. More on that in Step 3.
Cost to run this whole setup: Make.com free tier covers light usage. Claude API at my volume runs me about €12–€18 per month. That is it.
Step 1: Set Up Your Claude API Connection in Make.com
Open Make.com and create a new scenario. Your first module should be your trigger — for me, it is Google Sheets watching for a new row in my “New Leads” tab. Once a new lead is added with their name, property interest, budget range, and how they found me, the scenario fires.
Now add an HTTP module. Claude does not have a native Make.com connector yet (as of early 2026), so you call it directly via API. Here are the exact settings:
- URL:
https://api.anthropic.com/v1/messages - Method: POST
- Headers:
x-api-key: YOUR_KEY,anthropic-version: 2023-06-01,content-type: application/json - Body type: Raw / JSON
The JSON body is where you pass the model, your system prompt, and the user message assembled from your trigger data. I will show the exact structure in Step 3 once we have built the prompts.
Test the connection first with a hardcoded message before you wire in any dynamic data. Simple rule: confirm the pipe works before you make it complicated.
Step 2: Map Your Email Types and Build a Decision Branch
Not every email in my business is the same, and they should not be written the same way. I identified four core email types in my workflow:
| Email Type | Trigger | Approximate Length | Tone |
|---|---|---|---|
| New lead welcome | Form submission | 150–200 words | Warm, personal, asks one question |
| Property match alert | New listing added | 200–250 words | Informative, specific to their criteria |
| Follow-up (no reply, 5 days) | Timer + no reply tag | 80–100 words | Brief, no pressure, leaves door open |
| Monthly market update | 1st of each month | 350–400 words | Analytical, positioned as local insight |
In Make.com, I use a Router module after the trigger to split these into separate branches. Each branch has its own Claude API call with a different system prompt. This matters. If you use one generic prompt for all four types, the output flattens and starts to feel automated — which defeats the point entirely.
Step 3: Write a System Prompt That Sounds Like You
This is the step that takes the most time and returns the most value. Your system prompt is the instruction set Claude receives before it sees any lead data. It defines voice, structure, constraints, and context.
Here is an abbreviated version of my actual system prompt for new lead emails:
You are writing a first-contact email on behalf of Robson Penassi, an independent real estate consultant based in Madeira, Portugal. He has worked in this market since 2012 and knows every micro-zone on the island. His tone is direct, warm, and locally grounded — never corporate, never generic.
Rules:
- Write in first person as Robson
- Reference the specific property interest the lead mentioned
- Include one concrete local detail relevant to their area of interest (not invented — use what is in the data provided)
- End with exactly one question — not multiple questions
- No subject line needed, just the body
- 150–180 words maximum
- Do not use phrases like "I hope this email finds you well" or "Please do not hesitate to contact me"
The JSON body I pass to the API looks like this:
{
"model": "claude-sonnet-4-5",
"max_tokens": 400,
"system": "YOUR SYSTEM PROMPT HERE",
"messages": [
{
"role": "user",
"content": "Write a first-contact email for this lead: Name: {{name}}, Interested in: {{property_type}}, Budget: {{budget}}, Location preference: {{location}}, Source: {{source}}"
}
]
}
The {{variables}} are mapped from the Google Sheet columns via Make.com. Claude receives real lead data, your voice constraints, and produces an email that I usually send with zero edits, or maybe one small tweak.
Step 4: Route the Output to Gmail or Your Email Platform
After the Claude HTTP module returns its response, you need to parse the output. In Make.com, use a JSON Parse module on the API response. The email text lives at content[0].text in Claude’s response structure.
Then add your Gmail module (or whatever you use — I tested with both Gmail and Brevo). I send from Gmail. The module maps:
- To: Lead email from the Sheet
- Subject: I keep a small separate Claude call just for subject lines, or I use a fixed template per email type
- Body: The parsed
content[0].textvalue
One thing I do that saves me from embarrassing mistakes: I added a filter before the Gmail send module. If the Claude output contains certain red-flag phrases — like “I don’t have information about” or “As an AI” — the scenario stops and sends me a Slack notification instead of sending the email. This has caught maybe 6 bad outputs in the past year. Worth the 10 minutes it took to set up.
Step 5: Add a Human Review Layer for High-Value Leads
I do not fully automate every email. For leads with budgets above €500,000, or for anyone who found me through a personal referral, I route the Claude-generated draft to a Google Doc or Notion page first. I get a notification, I read it, I approve or edit, then it sends.
In Make.com, this is a simple conditional: if the budget field in the Sheet is above a threshold, branch to a “Draft for Review” path instead of the direct send path. The draft path creates a Google Doc via the Drive module, pre-populates it with the Claude output, and pings me via Gmail with a link.
This took about 45 minutes to build. It means I never accidentally send an AI-drafted email to a serious buyer without reading it first. My conversion rate on high-value leads has stayed consistent — I credit that partly to keeping a human eye on those specific touchpoints.
My Real-World Experience Running This in Madeira
Let me tell you about October 2026, which was my busiest month for inbound leads in three years. I had 34 new leads come in from three sources — a Portuguese property portal, my website contact form, and two referrals from a lawyer in Funchal. Under my old process, each first-contact email took me 8–12 minutes. Personalizing it, recalling what I knew about their target area, making sure I wasn’t repeating something I’d already said in the listing description. Call it 10 minutes average. That’s 340 minutes, nearly 6 hours, just for first-contact emails. Not including follow-ups.
With this Claude API workflow running, those 34 first-contact emails were drafted and sent in the same afternoon — without me writing a single one from scratch. I reviewed 4 of them (the high-value ones, per my Step 5 rule), made minor edits to 2, and sent all 34 within about 35 minutes of actual attention from me. The other 30 went out automatically while I was doing a property viewing in São Vicente.
The time saved that month across all email types — first contacts, 5-day follow-ups, and property match alerts — was about 7 hours. That’s almost a full working day back. I used it to finally update my Calheta and Ponta do Sol micro-market reports, which I had been putting off for six weeks.
Response rates have held steady. I was genuinely worried the emails would feel less personal, but the system prompt work in Step 3 handles that. A few clients have even commented that my emails are “always so specific” — one German buyer told me he appreciated that I mentioned the exact road access situation in Ribeira Brava that he’d flagged as a concern. That detail came from his lead form, mapped into the prompt, and Claude worked it in naturally.
Total monthly cost for the Claude API usage in October: €16.40. That is my real number.
The Genuine Limitation I Hit After 3 Months of Testing
Claude via API does not have memory between calls. Every email is generated cold, with no awareness of what was sent to that lead last week or last month. This matters more than it sounds.
In my third month of running this, I had a lead receive two emails that referenced the same local detail about a property in Câmara de Lobos — the sea-view terrace angle I had described in their match alert and then again in the follow-up. It looked like I was repeating myself. The lead mentioned it, politely. It was not a disaster, but it was a gap in the system.
My fix was imperfect: I now append a “previous emails sent” summary field to the Google Sheet row and include it in the prompt. But that requires me to update the Sheet manually after each send, which adds friction back. I have been experimenting with having Make.com log email summaries back to the Sheet automatically, but it is not fully reliable yet. If you are running high-frequency sequences to the same leads, plan for this limitation from the start — it will catch you otherwise.
Pro Tips From 18 Months of Running This Workflow
- Version your system prompts. Keep a change log in a simple doc. When output quality shifts, you want to know what you changed and when.
- Test with real lead data. Fictional test data produces misleadingly good results. Run at least 10 real leads through before you trust the workflow for production.
- Set max_tokens conservatively. I use 400 for short emails, 800 for monthly reports. Letting Claude run free produces bloated, padded output. Constrain it.
- Check your API error logs weekly. Make.com will silently skip failed API calls if you are not watching. I set up a basic error notification route in the scenario so I know when something breaks.
- Do not automate apology emails or complaint responses. I tried it once. The output was technically fine and completely wrong for the situation. Some emails need a human brain behind them.
Summary: What This Workflow Actually Delivers
If you run a solo service business with a real lead pipeline — real estate, consulting, law, anything where emails need to be personalized at volume — this setup is worth the 4–5 hours it takes to build properly. The Claude API gives you genuine writing quality, not template fill-in-the-blank output. The Make.com layer gives you the triggers, routing, and delivery without writing a single line of custom code.
My rate for this approach: 9/10 — it recovered 7 hours in a single month and my lead response quality stayed consistent, with the only friction being the memory limitation that requires a manual workaround for follow-up sequences.
The steps again, fast:
- Connect Claude API via HTTP module in Make.com
- Map your email types and build separate routing branches
- Write a real system prompt in your own voice with hard rules
- Parse the output and route to Gmail with a red-flag filter
- Add a human review layer for high-value leads
If you want to see the exact Make.com scenario structure I use — including the error-handling branch and the Sheet logging setup — subscribe to the Solo AI Kit newsletter. I send one practical breakdown per week, no fluff, straight from what I am actually running in my business.
Robson Penassi
Real estate consultant in Madeira, Portugal. Solopreneur since 2012. Testing AI tools since 2023 to automate his one-person business. Writes about what actually works — and what does not.
More articles by Robson →