Every new client I take on in Madeira used to cost me about two hours of admin before I even showed them a single property. Welcome email, intake questionnaire, market overview PDF, legal disclaimer, WhatsApp follow-up — all done manually, all done by me, all pulling time away from actual work. In 2026, I handle that entire sequence for a new client in under four minutes. The Claude API is why.
This tutorial walks you through exactly how to automate client onboarding using the Claude API. Not the concept of it. The actual setup — the API calls, the prompt templates, the Make.com workflow that ties it together. By the end you’ll have a working onboarding system that drafts personalized welcome emails, generates a custom market brief based on client answers, and queues a follow-up sequence. All without you touching a keyboard.
What You’ll Build
Here’s the end result: a client fills out a short intake form (I use Tally, free tier). That submission triggers a Make.com scenario. Make sends the client data to the Claude API, which drafts a personalized onboarding email, a one-page property brief summarizing their requirements, and a three-email follow-up sequence. Everything lands in your inbox (or goes straight to the client, your call). Total time from form submission to finished documents: under 90 seconds.
What This System Covers
- Personalized welcome email with client name, budget, and property type baked in
- Custom one-page market brief (Madeira-specific in my case, but adaptable to any market)
- Three-email follow-up sequence spaced over 7 days
- Optional: auto-draft to Gmail via Make so you review before sending
Prerequisites: What You Need Before Starting
- Claude API access — Sign up at anthropic.com. You’ll need a paid account. API pricing as of 2026: Claude Sonnet 3.5 runs at $3 per million input tokens and $15 per million output tokens. For onboarding emails, each full sequence costs me roughly $0.004. Not a typo.
- Make.com account — Free tier works for testing. Pro plan ($9/month) if you’re doing more than 1,000 operations/month.
- Tally.so account — Free. This is your intake form. Typeform or Google Forms also work if you prefer.
- Gmail or any email account connected to Make
- Basic comfort with JSON. You don’t need to code, but you need to not panic when you see curly brackets.
Step-by-Step: Building the Automated Onboarding Workflow
Step 1: Build Your Client Intake Form in Tally
Keep this form short. The longer it is, the fewer people complete it. I use seven fields:
- Full name
- Email address
- Budget range (dropdown: under €300k / €300k–€600k / €600k+)
- Property type (apartment / villa / land / commercial)
- Timeline (buying within 3 months / 6 months / just exploring)
- Primary location preference (free text)
- Any specific requirements (free text, optional)
In Tally: create a new form, add those fields, then go to Integrations → Webhooks and copy the webhook URL. You’ll paste this into Make in Step 3.
Step 2: Get Your Claude API Key
Log into console.anthropic.com. Go to API Keys → Create Key. Name it something like “onboarding-automation”. Copy it immediately — you won’t see it again. Store it in your password manager.
While you’re here, go to Settings → Usage Limits and set a monthly spend cap. I keep mine at $20. Running 30+ client onboardings a month, I’ve never hit $4.
Step 3: Set Up the Make.com Scenario
Open Make.com. Create a new scenario. Your module chain will be:
Tally (Watch Responses) → HTTP (Claude API Call) → Gmail (Create Draft)
Module 1 — Tally Webhook: Add a Tally module, select “Watch Responses,” paste in your webhook URL from Step 1. Run the scenario once and submit a test form entry so Make captures the field structure.
Module 2 — HTTP Module (Claude API): Add an HTTP module. Set it to Make a Request with these exact settings:
- URL:
https://api.anthropic.com/v1/messages - Method: POST
- Headers: Add two headers:
—x-api-key: your API key
—anthropic-version:2023-06-01
—content-type:application/json - Body type: Raw (JSON)
In the Body field, paste this JSON structure — replacing the bracketed parts with Make’s dynamic field mapping from your Tally form:
{
"model": "claude-sonnet-4-5",
"max_tokens": 1500,
"messages": [
{
"role": "user",
"content": "You are a professional real estate consultant based in Madeira, Portugal. A new client has just submitted an inquiry. Write three things:nn1. A warm, professional welcome email (subject line included) addressed to {{1.full_name}}. Mention their interest in {{1.property_type}} properties in {{1.location_preference}} with a budget of {{1.budget_range}}. Keep it under 200 words. Genuine tone, no hollow phrases.nn2. A one-page property brief summarizing what properties at this budget and type typically look like in Madeira right now, what to watch out for legally, and two or three questions the client should be thinking about. Use headers. Max 350 words.nn3. A 3-email follow-up sequence (Day 1, Day 4, Day 7). Each email under 120 words. The goal is to stay useful and keep the conversation going — not to pressure the client.nnClient details:n- Name: {{1.full_name}}n- Budget: {{1.budget_range}}n- Property type: {{1.property_type}}n- Timeline: {{1.timeline}}n- Location preference: {{1.location_preference}}n- Special requirements: {{1.specific_requirements}}nnFormat each section with a clear label: WELCOME EMAIL, PROPERTY BRIEF, FOLLOW-UP SEQUENCE."
}
]
}
The {{1.full_name}} syntax is Make’s dynamic mapping. When you type these in the Make interface, use the variable picker — don’t type them manually or you’ll get literal text.
Step 4: Parse Claude’s Response
Claude returns a JSON object. The actual text you want lives at content[0].text. In Make, after the HTTP module, add a Text Parser → Match Pattern module if you want to split the three sections automatically. Or, for simplicity, just pass the full content[0].text output to Gmail as the email body and review it before sending. That’s what I do. Takes me 45 seconds to scan and hit send.
Step 5: Connect Gmail to Create a Draft
Add a Gmail module: Create a Draft. Map it like this:
- To: Map to Tally’s email field
- Subject: “Welcome — your Madeira property search starts here” (or let Claude’s subject line populate this — just parse the first line of the WELCOME EMAIL section)
- Content: Map to
content[0].textfrom the HTTP module
Save and activate the scenario. Submit a real test form. Within 90 seconds you should see a draft in Gmail with all three sections written and ready.
Step 6: Refine Your Prompt for Your Market
The prompt above is what I use for Madeira. You’ll want to swap in your own market specifics. Here’s a cleaner template you can adapt:
You are a [YOUR PROFESSION] based in [YOUR CITY/REGION].
A new client just submitted an inquiry.
Write three things:
1. WELCOME EMAIL — addressed to [CLIENT NAME], referencing their
interest in [PROPERTY TYPE] in [LOCATION] at [BUDGET].
Under 200 words. Warm but professional.
2. PROPERTY BRIEF — one page covering what properties at this
budget/type look like in [YOUR MARKET], key legal or
process considerations, and 2-3 questions the client
should consider. Use H3 headers. Max 350 words.
3. FOLLOW-UP SEQUENCE — Day 1, Day 4, Day 7. Each email
under 120 words. Helpful tone, no pressure.
Client data:
- Name: [NAME]
- Budget: [BUDGET]
- Property type: [PROPERTY TYPE]
- Timeline: [TIMELINE]
- Location: [LOCATION]
- Special requirements: [REQUIREMENTS]
Label each section clearly.
My Real-World Experience Running This System in Madeira
I’ve been running this exact setup since February 2026. Here’s what actually happened.
Before I built this, onboarding a new client took me somewhere between 90 minutes and two hours. I’d write a welcome email from scratch, pull together a rough market summary based on what they told me, attach a generic PDF about buying property in Portugal (which was fine but not tailored), and then manually schedule follow-up reminders in my calendar. Every single time. For every single client.
In March 2026 I had an unusually busy month — 11 new client inquiries in four weeks, which is high for a solo operation in a market like Madeira. Under my old system, that’s roughly 16-18 hours of onboarding admin. I had 11 property viewings to run, two offers to negotiate, and a lease renewal situation that ate three days. There was no version of that month where I could do everything manually without something slipping.
With the automated system, those 11 onboardings took me a combined 47 minutes. That’s reviewing the Claude drafts, making small edits (usually just tweaking a specific neighborhood reference or a price range), and hitting send. The quality was genuinely good — not “fine for automation” good, but actually good. One client, a German buyer looking at villas in the Calheta area with a €850k budget, replied to the welcome email saying it was the most specific and useful first email she’d received from any agent she’d contacted. Claude had caught a detail she mentioned in the requirements field — that she wanted a sea view but had mobility concerns about steep driveways — and the brief included a paragraph specifically about that trade-off in western Madeira. I did not write that. Claude did it from the form data.
My API costs for March 2026: €3.20. That’s it. For 11 full onboarding sequences.
The follow-up sequences have also made a measurable difference. My old process was sticky-note reminders that I’d miss. Now the three follow-up emails are drafted and sitting in my Gmail queue the moment someone fills out the form. I still send them manually — I choose to review everything before it goes out — but the drafting is done. My response rate on follow-up emails has gone up, partly because I’m actually sending them consistently now instead of forgetting the Day 4 one half the time.
What the Claude API Does NOT Do Well Here
Let me be straight about two real limitations I’ve run into.
It doesn’t know your current inventory. Claude has no idea what properties you have listed right now. It can write a great market brief about what apartments in Funchal typically cost and what the buying process looks like, but it cannot say “I have a 3-bed apartment in Funchal at €380k that matches your criteria.” You still have to add that layer manually, or build a separate workflow that pulls from a database. I haven’t done that yet — it’s on my list.
Occasionally it gets the tone slightly off for high-net-worth clients. I’ve had a handful of cases — maybe 2 out of 35 onboardings — where the welcome email came out a bit too casual for what was clearly a serious high-budget buyer. Nothing offensive, but I’d want something more measured. I now add a line to my prompt when the budget field is over €1M: “The client has a premium budget. Adjust the tone accordingly — professional, measured, direct.” That fixes it, but it means I have a slightly different prompt trigger for high-value leads, which adds a small amount of complexity to the Make scenario.
Troubleshooting: Common Problems and Fixes
| Problem | Likely Cause | Fix |
|---|---|---|
| HTTP module returns 401 error | API key missing or wrong header name | Check header is exactly x-api-key (lowercase, hyphenated) |
| Make pulls blank fields from Tally | Scenario ran before a test submission existed | Submit a test form, then re-run the scenario and re-map fields |
| Claude output cuts off mid-sentence | max_tokens too low |
Increase to 2000 or 2500 — still costs fractions of a cent |
| Gmail draft not appearing | Gmail connection expired in Make | Re-authorize the Gmail connection in Make’s connections panel |
| All three sections run together, hard to read | Claude not using clear labels | Add “Use === as a separator between sections” to your prompt |
Estimated Time and Cost to Build This
First-time setup took me about three hours, including testing and fixing a field-mapping issue in Make. If you’ve used Make before and you’re comfortable with API calls, budget 90 minutes. The ongoing cost to run it is negligible — I’ve averaged about €3-4/month across all my Claude API usage, and that includes other automations beyond onboarding.
| Tool | Cost | Notes |
|---|---|---|
| Claude API (Anthropic) | ~$0.004 per full onboarding sequence | Pay-as-you-go, no subscription |
| Make.com | Free tier or $9/month Pro | Free tier enough for under ~40 onboardings/month |
| Tally.so | Free | Webhook on free tier |
| Gmail | Free / included in Google Workspace | Make’s Gmail module is straightforward |
Practical Summary: What to Do This Week
If you’re a solopreneur spending real time on new client admin, this is one of the highest-ROI automations you can build. The Claude API is cheap, the quality is genuinely good, and the setup isn’t complicated once you’ve seen the structure laid out.
Start small: build the welcome email piece first. Get that running and sending clean drafts before you add the property brief and follow-up sequence. One module at a time is easier to debug than the whole chain at once.
The one thing I’d tell you not to skip: spend 30 minutes fine-tuning your prompt with your actual market details before going live. A generic prompt gives generic output. The more specific you are about your city, your client types, your process, the better Claude performs. I spent an extra hour rewriting the Madeira-specific parts of my prompt in March and the quality difference was noticeable immediately.
I’d rate this setup 9/10 for solo real estate operators — it handles the most time-consuming onboarding tasks with near-zero ongoing cost, and the only gap is inventory-awareness, which you can partially cover with a manual review step before sending.
Ready to build this? Grab your Anthropic API key, open Make.com
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 →