Section 10.8.3: Project 3 — Campaign Automation with Make
🎯 Learning Objective
Design and implement a complete Make scenario automating a sales or marketing campaign, integrating ChatGPT for personalization at scale. This project combines automation skills (Chapter 6) with prompt engineering (Chapter 2) in a high-ROI business use case.
Why AI Automation Is a Commercial Game-Changer
Traditional B2B commercial prospecting is a massive time sink: a salesperson spends on average 65% of their time on non-revenue-generating tasks (prospect research, email drafting, administrative follow-up). AI automation can reduce this time to ~20%, by automating research, qualification, and personalization.
The benefit is twofold:
- →Volume: process 10x more prospects without hiring
- →Quality: each email is personalized to the prospect's profile (no generic mail-merge)
An AI-personalized email has an open rate of 35-45% compared to 15-20% for a classic template email (Lemlist/Apollo 2025 data). The response rate goes from 2-3% to 8-12%.
The Project Brief
Context: you need to automate the commercial prospecting process of a B2B company, from lead generation to appointment booking.
Deliverables:
- →Make scenario architecture (detailed diagram with each module)
- →Functional Make scenario (screenshots + JSON export of the scenario)
- →ChatGPT prompts used (documented with explanation of each variable)
- →Test report with 20 executions (results + qualitative analysis)
- →ROI calculation and optimization recommendations
Difficulty Level: ⭐⭐⭐⭐ (advanced — requires skills from chapters 2, 4, and 6)
Scenario Architecture
Phase 1 — Data Preparation (1h)
Step 1a: Create the Prospect Database
In Google Sheets, create a list of 20 prospects (fictional for testing, real for production) with the following columns:
| Column | Example | Why? |
|---|---|---|
| Last Name | John Smith | Personalization |
| First Name | John | Hook |
| Company | TechCorp Inc | Context |
| Position | Marketing Director | Approach angle |
| john.smith@techcorp.com | Sending | |
| Industry | SaaS / Tech | Industry personalization |
| Company Size | 50-200 employees | Qualification |
| LinkedIn URL | linkedin.com/in/johnsmith | Enrichment |
| Lead Source | Webinar "AI in Marketing" | Contact context |
| Likely Pain Point | Time-consuming content creation | Personalized hook |
Step 1b: Enrich the Profiles
Before writing to someone, you need to understand their context. Use ChatGPT to pre-enrich:
Based on this information about a B2B prospect, enrich the profile:
Name: {{firstName}} {{lastName}}
Position: {{position}} at {{company}} ({{industry}}, {{size}})
Source: {{source}}
Research and return:
1. The 3 main likely challenges for this type of position in this industry in 2026
2. The industry jargon this person probably uses daily
3. An ultra-personalized hook based on their lead source
4. The best time to contact them (insight on the persona's habits)
Step 1c: Build the Scoring and Personalization Prompt
This is the most critical prompt of the scenario — it determines the quality of the ENTIRE pipeline:
You are a B2B sales intelligence expert. Analyze this prospect profile and return ONLY valid JSON (no surrounding text):
Prospect: {{firstName}} {{lastName}} — {{position}} at {{company}}
Industry: {{industry}} | Size: {{size}} employees
Lead source: {{source}}
Likely pain point: {{painPoint}}
Our offer: [describe your product/service in 2 lines]
{
"score": [1-10, based on: position/offer fit (40%), company size (20%), priority industry (20%), warm/cold source (20%)],
"justification": "[score reason in 1 sentence]",
"segment": "[decision_maker | influencer | user | no_fit]",
"approach_angle": "[the unique personalized hook for this prospect — NOT generic]",
"likely_pain_point": "[the SPECIFIC problem our solution solves for THEM]",
"adapted_social_proof": "[which case study or metric would resonate most with this profile]",
"personalized_email": {
"subject": "[email subject, < 50 characters, personalized to name or company]",
"body": "[email of 5-7 lines maximum. Human tone, NO visible framework. Start with a reference to the prospect's situation, not with 'let me introduce myself.' End with an open question, NOT with 'Would you be available for a call?']"
},
"follow_up_angle": "[different angle for the D+3 follow-up, NOT a simple 'just following up']"
}
Prompt Quality = ENTIRE Pipeline Quality
This prompt is the heart of the scenario. If the scoring is poor, you send emails to unqualified profiles. If the personalization is generic, the response rate drops. Spend time on this prompt. Test it manually on 5 profiles BEFORE integrating it into Make. Compare the results with your human judgment.
Phase 2 — Building the Make Scenario (2h)
Step 2a: Create the Trigger
- →Open Make.com → Create a new scenario
- →Add the Google Sheets > Watch Rows module as trigger
- →Configure: select your spreadsheet, the "Prospects" sheet, mode = "New rows only"
- →Test: add a row to the Google Sheet → verify that Make detects it
Step 2b: Add the ChatGPT Module
- →Add the OpenAI > Create a Completion module
- →Model: choose GPT-4o (best quality/cost ratio for scoring, no need for GPT-5 here)
- →System Message: paste the scoring prompt above
- →User Message: map the Google Sheet variables: Prospect:
{{1.LastName}}{{1.FirstName}}—{{1.Position}}at{{1.Company}}... - →Temperature: 0.3 (for consistent and reproducible scoring)
- →Response Format: JSON object
Step 2c: Parse the JSON Response
- →Add a JSON > Parse JSON module
- →Source: the ChatGPT response (
{{2.choices[0].message.content}}) - →This gives you access to fields: score, personalized_email.subject, personalized_email.body, etc.
Step 2d: Route by Score
- →Add a Router with 3 branches:
- →Branch 1 (filter: score > 7) → hot prospects → immediate email
- →Branch 2 (filter: score between 4 and 7) → warm prospects → nurturing
- →Branch 3 (filter: score < 4) → archive
Step 2e: Configure Email Sending (Branch 1)
- →Module Gmail > Send an Email
- →To:
{{1.Email}}(from Google Sheet) - →Subject:
{{3.personalized_email.subject}}(from parsed JSON) - →Body:
{{3.personalized_email.body}} - →Important: add a footer with unsubscribe link (GDPR compliance)
Step 2f: Configure Nurturing (Branch 2)
- →Module Trello > Create a Card (or any other management tool)
- →Board: "Prospects to Nurture"
- →Card name:
{{1.LastName}}—{{1.Company}}(Score:{{3.score}}) - →Description:
{{3.approach_angle}}+{{3.likely_pain_point}}
Step 2g: Configure Tracking (All Branches)
- →Module Google Sheets > Update a Row at the end of each branch
- →Added columns: "AI Score", "Segment", "Action", "Processing Date", "Email Sent (Y/N)"
Step 2h: Add Automatic Follow-up
- →After the Gmail module, add a Sleep module of 3 days (259200 seconds)
- →Then a second OpenAI module with a follow-up prompt:
Write a follow-up email for this prospect who didn't respond to my first email.
First email sent:
Subject: {{initial_subject}}
Body: {{initial_body}}
Prospect profile: {{name}} — {{position}} at {{company}}
Initial angle: {{approach_angle}}
Suggested follow-up angle: {{follow_up_angle}}
Constraints:
- Max 4 lines
- Different tone from the first email (if the first was formal, be more casual)
- Bring NEW value (an article, a data point, a case study)
- End with a short open question
- DO NOT say "I'm just following up" or "further to my previous email"
- →Then a second Gmail > Send an Email module to send the follow-up
Phase 3 — Testing and Measurement (1h)
Step 3a: Controlled Execution
Execute the scenario on your 20 test prospects. Do NOT launch in automatic mode right away! Use "Run once" mode and verify each execution:
- →Is the scoring consistent? (a SMB CEO in your target industry should score > 7)
- →Is the personalization truly personalized? (differs between prospects)
- →Is the email sendable as-is? (no [placeholder], no robotic phrasing)
- →Does the router send to the correct branch?
Step 3b: Evaluation Grid per Prospect
| Prospect | AI Score | Human Score | Email Sent | Email Quality /10 | Personalization /10 | Comment |
|---|---|---|---|---|---|---|
| John Smith — MD, TechCorp | 8 | 7 | ✅ | 7 | 8 | Good angle, natural tone |
| Jane Martin — CEO, StartupX | 9 | 9 | ✅ | 8 | 9 | Excellent hook |
| Paul Brown — Intern, BigCo | 2 | 3 | ❌ (archived) | N/A | N/A | Scoring correct |
| ... | ... | ... | ... | ... | ... | ... |
Key Metrics to Calculate:
- →Scoring agreement rate: % of prospects where AI Score and Human Score are within the same range (±2 points)
- →Average email quality: average rating on generated emails
- →Real personalization rate: % of emails that mention a prospect-specific element (not generic)
- →Error rate: % of emails with errors (wrong name, fabricated information)
AI Scoring vs. Human Scoring
The goal isn't for AI scoring to be perfect — it's for it to be good enough to automate the sorting. An 80% agreement between AI and human score is excellent. The 20% disagreement is normal and is addressed through scoring prompt adjustments (add criteria, give examples of profiles with expected scores).
Phase 4 — Optimization and ROI (1h)
Step 4a: Iterate on the Scoring Prompt
If the scoring agreement rate is < 70%, improve the prompt:
- →Add examples: "A Marketing Director in a 50-200 person SaaS SMB = score 8. An intern = score 2."
- →Specify the weightings: "Position accounts for 40% of the score, industry 30%, size 20%, source 10%"
- →Test with the same 20 prospects and compare
Step 4b: Improve Personalization
If the emails are too generic:
- →Add to the prompt: "The email MUST mention at least 1 specific element: the exact industry, a known challenge for this position, or the lead source."
- →Test: ask a colleague to read 5 emails without seeing the names → can they guess who each email is for?
Step 4c: ROI Calculation
Calculate the ROI of this prospecting automation scenario:
Test data:
- 20 prospects processed
- Total setup time: [X] hours
- Time per prospect with the scenario: [X] min (estimate: verification + final personalization)
- Time per prospect WITHOUT scenario (manual method): [X] min
Costs:
- Make subscription: [free tier or X€/month]
- OpenAI API (GPT-4o): ~€0.005 per prospect (scoring prompt)
- Human time: [hourly rate]
Projections for 500 prospects/month:
1. Time saved in hours
2. Total cost (Make + API + human supervision time)
3. Cost per qualified prospect sent
4. ROI in % vs. manual method
5. Breakeven: at how many prospects does the scenario become profitable?
Typical Calculation Example:
| Metric | Without AI | With Make Scenario |
|---|---|---|
| Time per prospect | 25 min | 3 min (verification) |
| 500 prospects/month | 208h | 25h |
| Human cost (€50/h) | €10,400 | €1,250 |
| Tool cost | €0 | ~€50 (Make + API) |
| Monthly total | €10,400 | €1,300 |
| Savings | — | €9,100/month (87%) |
Step 4d: Optimization Recommendations
Document possible improvements:
- →Short term: refine the scoring prompt, add examples, expand data sources
- →Medium term: add a response detection module (Gmail > Watch Emails) to automatically update the tracker
- →Long term: integrate a CRM (HubSpot, Pipedrive), add behavioral scoring (email opens, link clicks)
GDPR Compliance
Automated email prospecting is subject to GDPR. Ensure you have a legal basis (legitimate interest in B2B — but only to professional email addresses), a working unsubscribe link in every email, and never send automated emails to personal addresses without explicit consent. Maintain a processing register and respect the right to object. Also check the specific regulations of your country (in France: CNIL can impose fines up to 4% of revenue).
Why use an AI score to qualify prospects rather than sending the same email to everyone?
What is the optimal temperature setting for a prospect scoring prompt in an automation scenario?