---
# === IDENTITY ===
id: software/landing-pages/form-lead-capture-setup/2026
canonical_question: "How do I set up lead capture forms — Typeform, Tally, native HTML forms with CRM connection and notifications?"
aliases:
  - "Best lead capture form tool for landing pages"
  - "How to connect Typeform to HubSpot or Salesforce CRM"
  - "Tally form webhook setup for lead notifications"
  - "HTML form to CRM pipeline with Zapier automation"
entity_type: execution_recipe
domain: software > landing-pages > form lead capture setup
region: global
jurisdiction: global
temporal_scope: 2025-2026

# === VERIFICATION ===
last_verified: 2026-03-12
confidence: 0.90
version: 1.0
first_published: 2026-03-12

# === TEMPORAL VALIDITY ===
temporal_validity:
  status: evolving
  last_breaking_change: "Typeform restructured pricing tiers in late 2025 — Growth plans start at $199/mo; Tally.so free plan still unlimited submissions in 2026"
  next_review: 2026-09-08
  change_sensitivity: high

# === CONSTRAINTS ===
constraints:
  - "Typeform free tier limits to 10 responses/month — production lead capture requires Basic plan ($29/mo) for 100 responses/month"
  - "Tally.so free plan allows unlimited submissions but shows 'Made with Tally' branding — remove branding with Pro at $29/mo"
  - "Native HTML forms require a backend endpoint or third-party service (Zapier webhook, Formspree, Getform) to receive submissions"
  - "CRM field mapping must be validated in sandbox before production — mismatched picklist values silently drop data"
  - "GDPR compliance: forms collecting EU resident data must include consent checkbox and link to privacy policy"

# === SKIP CONDITIONS ===
skip_this_unit_if:
  - condition: "User needs to choose a form builder platform, not set one up"
    use_instead: "Search knowledgelib.io for landing page builder selection — no dedicated unit yet"
  - condition: "User needs full marketing automation, not just form capture"
    use_instead: "business/marketing-execution/email-marketing-automation-setup/2026"
  - condition: "User needs analytics tracking, not form setup"
    use_instead: "software/landing-pages/analytics-implementation/2026"

# === AGENT HINTS ===
inputs_needed:
  - key: tool_preference
    question: "Which form tool should be used?"
    type: choice
    options: ["Typeform", "Tally.so", "Native HTML form", "no preference — auto-select"]
  - key: technical_skill
    question: "What is the user's technical skill level?"
    type: choice
    options: ["non-technical (no-code only)", "semi-technical (can edit code)", "developer (can write code)"]
  - key: budget_for_tools
    question: "What's the tool/API budget?"
    type: choice
    options: ["free tier only", "up to $30/month", "up to $100/month", "no limit"]
  - key: crm_platform
    question: "Which CRM will receive leads?"
    type: choice
    options: ["HubSpot", "Salesforce", "Pipedrive", "Google Sheets (no CRM)", "Custom webhook", "no CRM yet"]

# === EXECUTION METADATA ===
execution:
  required_inputs:
    - name: "Landing page (deployed)"
      source: "software/landing-pages/landing-page-platform-deployment/2026"
      format: "live URL"
    - name: "ICP definition or target audience"
      source: "business/customer-research/ideal-customer-profile-worksheet/2026"
      format: "structured document"
  outputs:
    - name: "Embedded lead capture form"
      format: "live form on landing page"
      description: "Working form that captures name, email, and qualifying fields — submissions routed to CRM and notification channel"
    - name: "CRM integration pipeline"
      format: "configured automation"
      description: "Zapier/native integration that creates CRM contacts from form submissions with field mapping"
    - name: "Notification setup"
      format: "configured alerts"
      description: "Email and/or Slack notifications triggered on each new submission"
  tools_required:
    - name: "Form builder"
      purpose: "Create and host the lead capture form"
      tier: "free or paid"
      cost: "$0 (Tally free) to $29/mo (Typeform Basic)"
      alternatives: ["Typeform", "Tally.so", "HTML + Formspree", "HTML + Getform"]
    - name: "Automation platform"
      purpose: "Route form submissions to CRM and notifications"
      tier: "free or paid"
      cost: "$0 (Zapier free: 100 tasks/mo) to $19.99/mo (Zapier Starter)"
      alternatives: ["Zapier", "Make (Integromat)", "n8n (self-hosted)", "native integrations"]
    - name: "CRM platform"
      purpose: "Store and manage captured leads"
      tier: "free or paid"
      cost: "$0 (HubSpot free CRM) to $45/mo (HubSpot Starter)"
      alternatives: ["HubSpot", "Salesforce", "Pipedrive", "Google Sheets"]
  credentials_needed:
    - service: "Typeform"
      type: "OAuth or username+password"
      where_to_get: "https://www.typeform.com/signup"
      free_tier_limits: "10 responses/month, 10 questions/form"
    - service: "Tally.so"
      type: "username+password"
      where_to_get: "https://tally.so/signup"
      free_tier_limits: "Unlimited forms and submissions, Tally branding shown"
    - service: "HubSpot CRM"
      type: "OAuth or API key"
      where_to_get: "https://app.hubspot.com/signup-hubspot/crm"
      free_tier_limits: "Unlimited contacts, basic CRM features"
    - service: "Zapier"
      type: "OAuth"
      where_to_get: "https://zapier.com/sign-up"
      free_tier_limits: "100 tasks/month, 5 Zaps, single-step only"
  estimated_duration: "30-60 minutes for form + CRM + notifications"
  estimated_cost: "$0 (Tally + HubSpot free + Zapier free) to $58/mo (Typeform Basic + Zapier Starter)"

# === DISTRIBUTION ===
canonical_source: "https://knowledgelib.io/software/landing-pages/form-lead-capture-setup/2026"
suggested_citation: "Source: knowledgelib.io — AI Knowledge Library (verified 2026-03-12)"

# === RELATED UNITS ===
related_kos:
  depends_on:
    - id: "software/landing-pages/landing-page-platform-deployment/2026"
      label: "Landing page must be deployed before embedding forms"
  feeds_into:
    - id: "business/marketing-execution/email-marketing-automation-setup/2026"
      label: "Email marketing automation setup — ESP config, SPF/DKIM/DMARC, 5-7 email welcome sequence, segments, automation triggers, deliverability warmup"
    - id: "software/landing-pages/analytics-implementation/2026"
      label: "Track form conversion rates with analytics"
  alternative_to: []

# === SOURCES ===
sources:
  - id: src1
    title: "Use Typeform to capture leads through contact forms"
    author: Typeform
    url: https://help.typeform.com/hc/en-us/articles/8459314345108-Use-Typeform-to-capture-leads-through-contact-forms
    type: official_docs
    published: 2025-01-01
    reliability: authoritative
  - id: src2
    title: "Webhooks — Tally Help Center"
    author: Tally
    url: https://tally.so/help/webhooks
    type: official_docs
    published: 2025-01-01
    reliability: authoritative
  - id: src3
    title: "Tally Plans and Pricing"
    author: Tally
    url: https://tally.so/help/plans-and-pricing
    type: official_docs
    published: 2025-01-01
    reliability: authoritative
  - id: src4
    title: "Plans & Pricing — Typeform"
    author: Typeform
    url: https://www.typeform.com/pricing
    type: official_docs
    published: 2025-01-01
    reliability: authoritative
  - id: src5
    title: "HubSpot Webhooks by Zapier Integration"
    author: Zapier
    url: https://zapier.com/apps/hubspot/integrations/webhook
    type: official_docs
    published: 2025-01-01
    reliability: authoritative
  - id: src6
    title: "Tally Free Online Form Integrations"
    author: Tally
    url: https://tally.so/help/integrations
    type: official_docs
    published: 2025-01-01
    reliability: authoritative
  - id: src7
    title: "The 2025 Lead Capture Form Report"
    author: Typeform
    url: https://www.typeform.com/blog/2025-lead-capture-form-report
    type: industry_report
    published: 2025-01-01
    reliability: high
---

# Form Lead Capture Setup

## Purpose

This recipe builds a working lead capture system on your landing page — from form creation through CRM integration and real-time notifications. The output is a live embedded form that collects visitor information, automatically creates contacts in your CRM, and sends instant notifications to your sales team via email or Slack. Covers three tool paths: Typeform (conversational UX), Tally.so (free unlimited), and native HTML forms (maximum control). [src1]

## Prerequisites

- [ ] **Deployed landing page** available from `landing-page-platform-deployment` — [Landing Page Platform Deployment](/software/landing-pages/landing-page-platform-deployment/2026)
- [ ] **ICP definition or target audience** — know what qualifying questions to ask (company size, role, use case)
- [ ] **CRM account** — free account at [HubSpot](https://app.hubspot.com/signup-hubspot/crm), [Salesforce](https://www.salesforce.com/form/signup/freetrial-sales/), or [Pipedrive](https://www.pipedrive.com/register)
- [ ] **Automation account** (if not using native integrations) — [Zapier](https://zapier.com/sign-up) or [Make](https://www.make.com/en/register)
- [ ] **Form tool account** — [Typeform](https://www.typeform.com/signup), [Tally](https://tally.so/signup), or none (HTML path)

## Constraints

- Typeform free tier allows only 10 responses/month — not viable for production lead capture. Budget $29/mo minimum for Basic plan (100 responses/month). [src4]
- Tally.so free plan allows unlimited submissions but displays "Made with Tally" branding. Remove with Pro at $29/mo. [src3]
- Native HTML forms require a server endpoint or third-party service to process submissions. Raw HTML forms cannot send data without a backend.
- CRM field mapping must be tested in sandbox before production. Mismatched field types (text vs dropdown) silently discard data. [src5]
- GDPR compliance: any form collecting data from EU residents must include explicit consent checkbox and privacy policy link. Non-compliance risks fines up to 4% of annual revenue.

## Tool Selection Decision

```
Which path?
├── User is non-technical AND budget = free
│   └── PATH A: Tally Free — unlimited forms + Google Sheets + email notifications
├── User is non-technical AND budget > $0
│   └── PATH B: Typeform Basic ($29/mo) — conversational UX + native CRM integrations
├── User is semi-technical AND wants maximum free
│   └── PATH C: Tally Free + Zapier Free — 100 automations/month to any CRM
└── User is developer AND wants full control
    └── PATH D: HTML Form + Formspree/Getform — custom design + webhook to CRM
```

| Path | Tools | Cost | Setup Time | Output Quality |
|------|-------|------|------------|----------------|
| A: Tally Free | Tally + Google Sheets + email alerts | $0 | 20 min | Good — unlimited leads, basic CRM |
| B: Typeform Paid | Typeform Basic + native HubSpot/Salesforce | $29/mo | 30 min | Excellent — conversational UX, native integrations |
| C: Tally + Zapier | Tally Free + Zapier Free + CRM | $0 | 40 min | Good — flexible routing, 100 tasks/mo limit |
| D: HTML + Formspree | HTML form + Formspree + Zapier | $0-$8/mo | 45 min | Excellent — full control, custom validation |

## Execution Flow

### Step 1: Create the Form

**Duration**: 10-15 minutes
**Tool**: Typeform, Tally, or code editor

**Path A/C (Tally):**

1. Go to [tally.so](https://tally.so), sign in, click "Create form"
2. Add fields: Name (short text), Email (email type), Company (short text), Role (dropdown), Message (long text)
3. Add a hidden field for UTM source tracking (Settings > Hidden Fields)
4. Enable "Thank you" page with a redirect URL back to your site

```
Recommended form fields for B2B lead capture:
─────────────────────────────────────────
Required:   Email (email validation), Full Name (short text)
Qualifying: Company Name, Job Title/Role (dropdown), Company Size (dropdown)
Optional:   Message/How can we help (long text), Phone (phone type)
Hidden:     UTM Source, UTM Medium, UTM Campaign, Landing Page URL
```

**Path B (Typeform):**

1. Go to [typeform.com](https://www.typeform.com), create a new form
2. Use one-question-at-a-time format for conversational UX [src1]
3. Add Logic Jump: if company size < 10, skip to "not a fit" ending
4. Configure the Thank You screen with CTA button

**Path D (HTML Form):**

```html
<form id="lead-form" action="https://formspree.io/f/YOUR_FORM_ID" method="POST">
  <input type="hidden" name="_subject" value="New Lead from Landing Page">
  <input type="hidden" name="utm_source" id="utm_source">
  <input type="hidden" name="utm_medium" id="utm_medium">
  <input type="hidden" name="utm_campaign" id="utm_campaign">

  <label for="name">Full Name *</label>
  <input type="text" id="name" name="name" required>

  <label for="email">Work Email *</label>
  <input type="email" id="email" name="email" required>

  <label for="company">Company</label>
  <input type="text" id="company" name="company">

  <label for="role">Your Role</label>
  <select id="role" name="role">
    <option value="">Select...</option>
    <option value="founder">Founder/CEO</option>
    <option value="marketing">Marketing</option>
    <option value="sales">Sales</option>
    <option value="engineering">Engineering</option>
    <option value="other">Other</option>
  </select>

  <label>
    <input type="checkbox" name="consent" required>
    I agree to the <a href="/privacy">Privacy Policy</a>
  </label>

  <button type="submit">Get Started</button>
</form>

<script>
// Auto-populate UTM fields from URL parameters
const params = new URLSearchParams(window.location.search);
['utm_source', 'utm_medium', 'utm_campaign'].forEach(key => {
  const el = document.getElementById(key);
  if (el && params.get(key)) el.value = params.get(key);
});
</script>
```

**Verify**: Open the form in a browser, submit a test entry. Confirm you see the submission in Tally dashboard, Typeform responses, or Formspree inbox.
**If failed**: Check that the form action URL is correct. For Formspree, verify the form ID matches your dashboard. For Tally/Typeform, check the form is published (not draft).

### Step 2: Embed the Form on Your Landing Page

**Duration**: 5-10 minutes
**Tool**: Code editor or page builder

**Tally embed:**

```html
<!-- Inline embed (recommended) -->
<iframe data-tally-src="https://tally.so/embed/YOUR_FORM_ID?alignLeft=1&hideTitle=1&transparentBackground=1"
  loading="lazy" width="100%" height="500" frameborder="0"
  marginheight="0" marginwidth="0" title="Lead Capture Form">
</iframe>
<script>var d=document,w="https://tally.so/widgets/embed.js",
  v=function(){"undefined"!=typeof Tally?Tally.loadEmbeds():
  d.querySelectorAll("iframe[data-tally-src]:not([src])").forEach(
  (function(e){e.src=e.dataset.tallySrc}))};
  if("undefined"!=typeof Tally)v();
  else if(d.querySelector('script[src="'+w+'"]')==null){
  var s=d.createElement("script");s.src=w;s.onload=v;
  s.onerror=v;d.body.appendChild(s);}
</script>
```

**Typeform embed:**

```html
<!-- Standard embed -->
<div data-tf-live="YOUR_FORM_ID"></div>
<script src="//embed.typeform.com/next/embed.js"></script>

<!-- Popup on button click -->
<button data-tf-popup="YOUR_FORM_ID" data-tf-size="70"
  data-tf-medium="snippet">Open Form</button>
<script src="//embed.typeform.com/next/embed.js"></script>
```

**HTML form**: Already embedded via Step 1 code — paste directly into your landing page HTML.

**Verify**: Load your landing page and confirm the form renders correctly on both desktop and mobile viewports.
**If failed**: If Tally/Typeform iframe appears blank, check that the embed script is loading (browser console, no CSP errors). If form is cut off, adjust the iframe height.

### Step 3: Connect Form to CRM

**Duration**: 10-15 minutes
**Tool**: Native integration, Zapier, or webhook

**Path A: Tally → Google Sheets (simplest, free):**

1. In Tally form editor, go to Integrations tab
2. Click "Google Sheets" → Connect your Google account
3. Select or create a spreadsheet → Map fields to columns [src6]

**Path B: Typeform → HubSpot (native):**

1. In Typeform, go to Connect tab → Search "HubSpot"
2. Authenticate with HubSpot OAuth
3. Map Typeform questions to HubSpot contact properties:
   - Email → Email (required)
   - Name → First Name + Last Name
   - Company → Company Name
   - Role → Job Title [src1]

**Path C: Tally → Zapier → HubSpot:**

```
Zapier configuration:
─────────────────────────────────────────
Trigger:  Tally — New Submission (select your form)
Action:   HubSpot — Create Contact
Field Mapping:
  Email         →  email
  Full Name     →  firstname + lastname (use Formatter to split)
  Company       →  company
  Role          →  jobtitle
  UTM Source    →  utm_source (custom property)
  UTM Campaign  →  utm_campaign (custom property)
```

**Path D: HTML Formspree → Zapier → Any CRM:**

1. In Zapier, create trigger: Webhooks by Zapier → Catch Hook
2. Copy the webhook URL from Zapier
3. In Formspree dashboard, add a Plugin: Webhook → paste Zapier URL
4. Add Zapier action: HubSpot/Salesforce/Pipedrive → Create Contact [src5]

**Verify**: Submit a test form entry. Check CRM within 60 seconds — a new contact should appear with all mapped fields populated.
**If failed**: Check Zapier task history for errors. Common issue: CRM field type mismatch (sending text to a number field). Fix by adjusting the Zapier field mapping or creating a matching custom property in the CRM.

### Step 4: Set Up Notifications

**Duration**: 5-10 minutes
**Tool**: Email + Slack (optional)

**Email notifications (all paths):**

Tally: Settings → Notifications → add team email addresses. Tally sends notification emails for every submission automatically. [src2]

Typeform: Notifications → Add email notification → configure subject line and included fields.

Formspree: Dashboard → Form Settings → Email Notifications → add recipients.

**Slack notifications (recommended for sales teams):**

```
Zapier configuration for Slack alerts:
─────────────────────────────────────────
Trigger:  Same as CRM trigger (Tally/Typeform/Webhook new submission)
Action:   Slack — Send Channel Message
Channel:  #leads (or #sales-alerts)
Message template:
  🆕 New Lead: {{name}}
  Email: {{email}}
  Company: {{company}}
  Role: {{role}}
  Source: {{utm_source}} / {{utm_campaign}}
```

**Verify**: Submit another test form entry. Confirm you receive both an email notification and Slack message within 2 minutes.
**If failed**: Check Zapier task history. For Slack, verify the bot has permission to post in the target channel. For email, check spam folders.

### Step 5: Add Form Validation and Spam Protection

**Duration**: 5-10 minutes
**Tool**: Form settings or code editor

**Tally/Typeform**: Both have built-in spam filtering. Enable reCAPTCHA in Typeform under Settings → Security. Tally uses its own spam filter by default.

**HTML forms — add honeypot + reCAPTCHA:**

```html
<!-- Honeypot field (hidden from humans, catches basic bots) -->
<div style="display:none">
  <input type="text" name="_gotcha" tabindex="-1" autocomplete="off">
</div>

<!-- Google reCAPTCHA v3 (invisible) -->
<script src="https://www.google.com/recaptcha/api.js?render=YOUR_SITE_KEY"></script>
<script>
document.getElementById('lead-form').addEventListener('submit', function(e) {
  e.preventDefault();
  grecaptcha.ready(function() {
    grecaptcha.execute('YOUR_SITE_KEY', {action: 'submit'}).then(function(token) {
      document.getElementById('lead-form').insertAdjacentHTML(
        'beforeend',
        '<input type="hidden" name="g-recaptcha-response" value="' + token + '">'
      );
      document.getElementById('lead-form').submit();
    });
  });
});
</script>
```

**Verify**: Submit the form with and without filling the honeypot field. Confirm that honeypot submissions are filtered out by Formspree.
**If failed**: If reCAPTCHA blocks legitimate submissions, lower the score threshold or switch to reCAPTCHA v2 (checkbox).

### Step 6: Test End-to-End Pipeline

**Duration**: 5 minutes
**Tool**: Browser + CRM + Slack/email

Run a complete end-to-end test:

```
End-to-end test checklist:
─────────────────────────────────────────
1. Open landing page with UTM parameters:
   https://yourdomain.com/?utm_source=test&utm_medium=email&utm_campaign=launch
2. Fill form with test data (use a +alias email: yourname+test@gmail.com)
3. Submit form → verify thank you page/redirect
4. Check CRM: new contact created with all fields + UTM data
5. Check Slack: notification received in #leads channel
6. Check email: notification received by configured recipients
7. Check form dashboard: submission appears with all data
8. Test on mobile: repeat steps 1-3 on a phone
```

**Verify**: All 8 checkpoints pass. UTM parameters are captured in hidden fields and appear in CRM contact record.
**If failed**: If UTM data is missing, check that hidden fields are populated by the JavaScript snippet (Step 1). If CRM contact is created but fields are empty, check field mapping in Zapier/native integration.

## Output Schema

```json
{
  "output_type": "lead_capture_system",
  "format": "configured pipeline",
  "columns": [
    {"name": "form_url", "type": "string", "description": "URL of the live form or embedded landing page", "required": true},
    {"name": "form_tool", "type": "string", "description": "Form platform used (Typeform/Tally/HTML+Formspree)", "required": true},
    {"name": "crm_integration", "type": "string", "description": "CRM where leads are routed (HubSpot/Salesforce/Google Sheets)", "required": true},
    {"name": "notification_channels", "type": "string", "description": "Email addresses and Slack channels receiving alerts", "required": true},
    {"name": "automation_platform", "type": "string", "description": "Zapier/Make/native integration connecting form to CRM", "required": false},
    {"name": "spam_protection", "type": "string", "description": "Spam filtering method (reCAPTCHA/honeypot/native)", "required": true}
  ],
  "expected_row_count": "1",
  "sort_order": "N/A",
  "deduplication_key": "form_url"
}
```

## Quality Benchmarks

| Quality Metric | Minimum Acceptable | Good | Excellent |
|---------------|-------------------|------|-----------|
| Form completion rate | > 15% | > 25% | > 40% |
| Spam submission rate | < 10% | < 3% | < 1% |
| CRM sync latency | < 5 minutes | < 60 seconds | < 10 seconds |
| Field completion (all fields) | > 60% | > 75% | > 90% |
| Mobile form usability | Submittable without horizontal scroll | Passes Google Mobile-Friendly Test | Touch-optimized with large tap targets |

**If below minimum**: If completion rate is below 15%, reduce form fields to email-only and add progressive profiling. If spam rate exceeds 10%, add reCAPTCHA and honeypot fields. [src7]

## Error Handling

| Error | Likely Cause | Recovery Action |
|-------|-------------|----------------|
| Form submissions not appearing in CRM | Zapier Zap is paused or field mapping broken | Check Zapier task history; re-authenticate CRM connection; verify field mapping |
| "Too many requests" from Typeform API | Exceeded API rate limit (Typeform: 2 req/sec) | Add delay between bulk operations; use webhook instead of polling |
| Duplicate contacts in CRM | No deduplication configured | Set CRM integration to "update existing" instead of "create new"; use email as dedup key |
| Form embed not rendering | Content Security Policy (CSP) blocking iframe | Add form domain to CSP frame-src directive in your landing page headers |
| UTM parameters lost on form submit | Hidden fields not populated by JavaScript | Verify the UTM JavaScript runs before form render; check URL parameter encoding |
| Email notifications going to spam | No SPF/DKIM configured for notification sender | Use the form tool's default notification domain or configure SPF/DKIM for custom sender |

## Cost Breakdown

| Component | Free Tier | Paid Tier | At Scale |
|-----------|-----------|-----------|----------|
| Form builder (Tally) | $0 (unlimited submissions, Tally branding) | $29/mo Pro (no branding, custom domain) | $29/mo (same) |
| Form builder (Typeform) | $0 (10 responses/mo — not viable) | $29/mo Basic (100 responses) | $99/mo Business (10K responses) |
| CRM (HubSpot) | $0 (free CRM, unlimited contacts) | $45/mo Starter (remove branding, sequences) | $800/mo Professional |
| Automation (Zapier) | $0 (100 tasks/mo, 5 Zaps) | $19.99/mo Starter (750 tasks) | $49/mo Professional (2K tasks) |
| Spam protection (reCAPTCHA) | $0 (up to 1M assessments/mo) | $0 | $1/1K assessments beyond 1M |
| **Total (200 leads/mo)** | **$0** (Tally + HubSpot Free + Zapier Free) | **$29-49/mo** | **$148-199/mo** |

## Anti-Patterns

### Wrong: Asking too many questions upfront
Forms with 7+ fields see completion rates drop below 10%. Collecting company size, budget, timeline, and phone number before the user has any reason to trust you kills conversion. [src7]

### Correct: Start with email-only, use progressive profiling
Capture email first (1-2 fields). Use CRM enrichment tools (Clearbit, Apollo) to auto-fill company data. Ask qualifying questions in follow-up emails or a second form after initial engagement.

### Wrong: Using Typeform free tier for production lead capture
Typeform free tier limits to 10 responses/month. After the 10th submission, the form stops accepting responses — all subsequent visitors see an error message. [src4]

### Correct: Use Tally.so for free unlimited submissions or budget Typeform Basic
Tally.so's free plan handles unlimited submissions with the only trade-off being "Made with Tally" branding. For branded forms, Typeform Basic ($29/mo) or Tally Pro ($29/mo) are the minimum viable options.

## When This Matters

Use this recipe when the agent needs to add lead capture capability to an existing landing page — connecting a form tool to a CRM with real-time notifications. Requires a deployed landing page as input. This recipe builds the form, CRM pipeline, and notification system — it does not design the landing page itself.

## Related Units

- [Landing Page Platform Deployment](/software/landing-pages/landing-page-platform-deployment/2026) — deploy the landing page before adding forms
- [Analytics Implementation](/software/landing-pages/analytics-implementation/2026) — track form conversion events
- [Email Automation Platform Setup](/software/marketing-execution/email-automation-platform-setup/2026) — nurture sequences for captured leads
- [Landing Page Builder Selection](/software/landing-pages/landing-page-builder-selection/2026) — choose platform with native form support
