I’ve spent years helping businesses build smarter, leaner lead-generation funnels, and one thing I’ve learned is this: you don’t always need to hire to scale. With the right automation stack, a thoughtful set of prompts and workflows, and a well-configured CRM, you can generate and qualify high-quality leads automatically. Below I’ll walk you through the three-automation stack I use—Zapier, OpenAI, and HubSpot—how each piece fits together, and practical examples and templates you can drop into your systems today.
Why this stack?
I chose Zapier, OpenAI and HubSpot because they each solve a specific problem in the lead-generation journey:
Zapier connects tools and automates the flow of data without code.OpenAI handles the heavy lifting for natural language tasks: lead enrichment, intent analysis, email personalization, and qualification.HubSpot is the CRM and orchestration layer where contacts are stored, sequences are launched, and deal stages are managed.Together they form a loop: capture → enrich → qualify → nurture. And you can run that loop 24/7 without adding headcount.
High-level architecture
Here’s the typical flow I implement:
Lead source (web form, Typeform, LinkedIn Lead Gen, Calendly, Stripe checkout, ad leads).Zapier catches the new lead, deduplicates, and pushes it into a staging HubSpot list or passes it to OpenAI for analysis.OpenAI enriches (company description, role inference), scores intent, and generates a tailored outreach snippet.HubSpot receives the processed lead, sets properties (score, persona, next action), and triggers an automated sequence (email/drip, Slack alert for high-value leads, SMS if enabled).This is simple on paper, but the value is in the details—prompts, scoring thresholds, and HubSpot configuration.
Essential Zapier workflows
I build three core Zaps to power the automation:
Zap A — Capture & Deduplicate: Trigger: new form/submission. Actions: run Zapier dedupe, lookup HubSpot contact via email. If contact exists, update; if not, create a new contact in a “Staging” list.Zap B — Enrich & Score (calls OpenAI): Trigger: new contact created in Staging. Actions: send contact data to OpenAI for enrichment + intent scoring, update HubSpot properties with results, and assign a lead score property.Zap C — Orchestrate Follow-up: Trigger: contact property updated with score. Actions: if score > threshold, enroll in HubSpot High-Intent Sequence + notify sales Slack channel; else enroll in nurture sequence.Zapier also handles error retries, retries for rate limits, and routing to different HubSpot pipelines based on inferred persona.
OpenAI: prompts, templates and scoring
OpenAI is the muscle for understanding and creating. I usually use two types of calls:
Classification/Scoring: A short prompt that returns an intent score (0-100) and a primary classification like “Buyer - Immediate”, “Researcher”, “Not a fit”.Enrichment & Outreach Snippets: Use the lead’s name, company, website, and any message to produce a 1-2 sentence personalized email opener and a recommended follow-up CTA.Example scoring prompt (trimmed):
“You are a B2B sales assistant. Given this lead record: {name}, {job_title}, {company}, {message}, {company_website}. Does this lead show high intent to buy a B2B SaaS solution in the next 3 months? Return JSON: {“intent_score”:0-100, “category”: [Buyer, Researcher, NotFit], “reason”: short explanation}.”
Example enrichment prompt:
“Summarize the company from the website and suggest 2 key value props relevant to a marketing automation solution. Then produce a 1-sentence cold email opener addressing the lead’s role.”
Why JSON? Because Zapier can parse JSON responses, map fields into HubSpot properties, and drive logic without manual intervention.
HubSpot configuration
HubSpot is where all data converges. Here’s how I structure it:
Custom properties: intent_score (number), lead_category (buyer/researcher/notfit), enrichment_summary (text), outreach_snippet (text), last_ai_time (datetime).Lists & Workflows: Dynamic lists for High Intent, Nurture, and Not Fit. HubSpot workflows enroll contacts based on those lists and execute sequences, tasks, and notifications.Sequences & Templates: Use the AI-generated outreach snippet as the first email in a HubSpot sequence. Follow-up emails are semi-personalized templates tuned to each persona.I also use HubSpot’s lead scoring in parallel—combining AI-generated intent with behavioral signals (page views, CTA clicks, demo requests).
Example: from form to booked demo
Here’s a practical example of how a lead moves:
1) A marketing manager fills a contact form asking about pricing and integrations.2) Zapier captures the form, deduplicates and creates the contact in HubSpot Staging.3) Zapier calls OpenAI, which reads the message and the company website, returns intent_score = 85 and category = Buyer, plus an outreach_snippet: “Hi Emma — I saw you’re evaluating tools to streamline cross-channel campaigns; we help teams cut campaign launch time by 40% while preserving analytics fidelity. Are you available for a 20-min demo next week?”4) Zapier updates HubSpot properties. HubSpot’s workflow sees intent_score > 80 and enrolls the lead in the High-Intent Sequence and creates a task for SDR if company size > threshold.5) The first automated email is personalized using the snippet. If the lead clicks “book demo”, they’re moved to the Opportunities pipeline; if not, the sequence continues with tailored messages and behavioral triggers.Measuring performance & continuous improvement
Automations aren’t “set and forget”. I track a few core metrics and iterate:
Lead conversion rate by AI intent bucket (Buyer vs Researcher).Response-to-demo rate for AI-personalized emails vs generic templates.False positives where AI labeled leads as high-intent but didn’t convert — drill into prompt changes and additional signals.Cost per qualified lead (including OpenAI tokens and Zapier tasks).I run A/B tests on prompts: slightly different ways of asking OpenAI for intent and outreach snippets. Often small wording changes yield measurable uplifts in reply rates.
Practical considerations, limits and compliance
A few realities to keep in mind:
OpenAI costs scale with usage—favor shorter prompts and caching of results for repeat contacts.Zapier task limits can increase depending on volume—optimize by batching or running enrichment only on new leads or leads with missing data.HubSpot API rate limits and property design: keep property counts sensible and use compact JSON fields where appropriate.Always check GDPR/PECR and data residency rules: store consent and record the lead’s opt-ins. Use HubSpot’s consent properties and Surface the consent in workflows to avoid cold outreach where prohibited.Quick reference table
| Component | Role | Example Action |
| Zapier | Orchestration | Catch lead → dedupe → call OpenAI → update HubSpot |
| OpenAI | Understanding & content | Intent scoring, enrichment, email snippet |
| HubSpot | CRM & workflows | Store properties → enroll in sequences → track conversions |
If you want, I can share a starter Zap template, an OpenAI prompt pack for lead scoring/enrichment, and the HubSpot properties/workflow list I use. That will let you implement this stack quickly and test it on your own lead sources.