Learn how to create reliable Notion AI agents that automate lead gen, invoicing, and client updates — plus a ready‑to‑use blueprint you can deploy today.
Most operators waste time copying data between Notion, email, and spreadsheets because they think AI agents need a PhD to set up. The truth is you can build a working agent with a few prompts, a free Make scenario, and a Notion database that already holds your leads. After reading this you’ll be able to spin up an agent that watches a form, pulls a lead, enriches it with a quick web scrape, and drops a ready‑to‑send email draft back into Notion — all without writing a line of code.
Many tutorials start by showing you how to ask Notion AI to write a blog post. That’s cute but it ignores the real operator problem: moving information between systems reliably. They also pretend the agent can remember everything forever, when in fact each interaction is stateless unless you explicitly store state somewhere. The result is fragile workflows that break the moment you add a second step or a slightly longer prompt.
What you actually need is a loop: a trigger, a prompt that reads from a stored context, an action that writes results back, and a way to keep the loop from hitting token limits. I learned this the hard way after my first agent kept forgetting the lead’s company name after the third step.
How I built a lead‑gen scraper that feeds Notion
I use a simple Make scenario that watches a Google Form for new submissions. When a form arrives, Make pulls the name and email, then calls a Notion AI agent via the Notion API with a prompt that looks like this:
You are a research assistant. Given the name {{name}} and email {{email}}, find the person’s current job title and company using a public LinkedIn search. Return only the title and company separated by a pipe.
Take the output from the previous step and format it as a Notion database update: set the “Title” property to the title before the pipe and the “Company” property to the company after the pipe.
Finally, draft a short outreach email in the “Email Draft” property using this template: Hi {{name}}, I noticed you’re at {{company}}. I help operators like you automate lead follow‑up. Want to see a quick demo?
Each step is a separate HTTP request to the Notion AI endpoint, and I store the intermediate result in a temporary Notion page so the agent doesn’t have to keep everything in its context window. The whole thing runs for under two seconds per lead.
Cost wise, the Make free tier handles 1 000 operations a month, which is enough for ~200 leads. The Notion AI add‑on costs $10 per user per month, and I’m on the Personal Pro plan at $8/mo. So the whole pipeline is under $20/mo — a price I find fair for the time saved.
How to debug when the agent loses context
When the agent starts returning blank fields or garbled text, the first place to look is the temporary storage page. Open that page in Notion and see if the previous step’s output is actually there. If it’s missing, your Make scenario probably failed to write it — check the Make logs for a 429 or auth error.
If the storage looks fine but the agent still hallucinates, you’ve likely exceeded the token limit. Trim the prompt or split the task into more steps. I once had a prompt that tried to scrape a LinkedIn profile, summarize the last three posts, and write a personalized icebreaker all in one go. It kept failing until I broke it into three separate calls.
A quick sanity check: run the same prompt directly in the Notion AI chat window with the exact same inputs. If it works there but not in the automation, the issue is in how you’re passing the data, not the model itself.
Reader question: How do you keep the agent from exceeding token limits?
Start by counting tokens in your prompt plus the expected response. Notion AI’s context window is about 4 000 tokens, but you should stay under 2 500 to leave room for the model’s internal reasoning. Use a tool like the OpenAI tokenizer (it works for Notion AI as well) to measure.
If you’re over the limit, move static instructions — like “You are a research assistant” — into a system message or a saved Notion page that you reference with a placeholder. Keep the variable‑heavy part (the data you’re asking the agent to work on) as short as possible.
I also found that asking for bullet‑point outputs instead of paragraphs cuts tokens dramatically. Instead of “Write a friendly email introducing yourself,” try “Give me three short lines: greeting, value proposition, call to action.” The agent still produces a usable draft, and the token count drops by roughly 30 %.
My gripe and love about Notion AI
Gripe: The agent has no built‑in way to retain memory across separate automation runs, which forces you to invent a storage workaround every time you want multi‑step logic. It’s annoying, and I wish Notion offered a simple key‑value store tied to the agent.
Love: When the agent does have the data it needs, it can format a Notion database update in a single prompt with perfect property mapping. I’ve used this to turn a messy CSV import into a clean leads table with one click, and it saved me hours of manual cleanup.
If you want the deep cut on this, deeper coverage of AI agent platforms.
If you’d rather skip the build and deploy a working version in an afternoon, we’ve packaged this workflow as a blueprint at deepusecase.com/vault/ai-agent-builder-kit.