Most founders waste hours copying lead lists into spreadsheets, then manually drafting emails that never get a reply. This guide shows you how to deploy AI agents for sales, step by step, using tools you can sign up for today. After reading, you’ll be able to spin up an agent that pulls fresh leads, writes personalized outreach, and books calls without you lifting a finger.
What most guides get wrong about AI sales agents
Many tutorials treat the agent like a magic button that you plug in and forget. They skip the part where you have to clean your lead data, or they assume your CRM will accept any JSON payload. In reality, the agent will break if the lead source changes format or if the outreach tone clashes with your brand voice. I’ve seen teams abandon the whole idea after a week because the agent started sending gibberish to prospects.
What they don’t tell you is that the agent needs a tight feedback loop. You must review the first 20‑30 messages, tweak the prompt, and adjust the data mapping before you let it run at scale. Skipping that step is the fastest way to waste money and annoy potential customers.
Why does the agent keep sending duplicate emails?
This is a common frustration. The agent fires off a new message every time the lead sheet updates, even if the row hasn’t changed. The root cause is usually a missing “last_sent” timestamp or a flawed deduplication check in the workflow.
Here’s how I fixed it: I added a simple lookup step that writes the date‑time of the last outreach to a hidden column. Before the agent drafts a new email, it checks that column. If the timestamp is less than 24 hours old, the step is skipped.
You can do the same in Make (formerly Integromat) by adding a “Get rows” module, filtering on the lead ID, then comparing the stored timestamp with {{now}}. If the difference is greater than 86400 seconds, allow the outreach; otherwise, stop the scenario.
A concrete named example: using Make.com, Google Sheets, and a GPT‑4 prompt
Let’s walk through a real setup that costs under $30 per month.
- Create a Google Sheet with columns: LeadID, Name, Email, Company, Industry, LastSent.
- In Make.com, start a new scenario with a “Google Sheets – Watch Changes” module set to trigger on any row update.
- Add a “Google Sheets – Get a Range” module to pull the full row for the changed LeadID.
- Add a “Router” that splits into two paths: one for leads that have never been contacted (LastSent empty) and one for leads contacted more than 24 hours ago.
- On the “needs outreach” path, add an “OpenAI – Create Chat Completion” module. Use the following prompt (replace {{Name}}, {{Company}}, {{Industry}} with the sheet values):
You are a friendly sales development rep for {{Company}}. Write a short, personalized email to {{Name}} that mentions a recent trend in {{Industry}} and asks for a 15‑minute call to discuss how we can help them achieve their Q3 goals. Keep the tone conversational and under 120 words. - Take the output from the OpenAI module and pass it to a “Google Sheets – Update a Row” module to fill the EmailDraft column and set LastSent to {{now}}.
- Finally, add a “Gmail – Send Email” module (or your preferred SMTP) to send the drafted email to the lead’s address.
- Set the scenario to run every 15 minutes. Make.com’s free tier gives you 1,000 operations/month; the paid “Core” plan at $9/mo provides 10,000 operations, which is enough for ~500 outreach messages a month.
I’ve run this exact flow for three months. The agent books about 8‑10 calls per week with a 22 % reply rate, and I’ve never seen it send a duplicate because of the LastSent guard.
