Smart Lead Form
Clean, mobile-responsive form with configurable fields for company name, email, phone, and custom questions relevant to B2B prospects.
A simple, GDPR-compliant lead form that connects directly to your existing Zapier workflows. No expensive subscriptions, no vendor lock-in.
A lightweight, GDPR-compliant lead capture form system for B2B SaaS businesses that collects prospect data and forwards it via webhook to existing automation tools like Zapier.
Clean, mobile-responsive form with configurable fields for company name, email, phone, and custom questions relevant to B2B prospects.
Explicit consent checkbox with timestamped records, supporting EU compliance requirements for data collection and processing.
Automatic webhook dispatch on every submission, sending lead data directly to your existing Zapier automation workflows.
Optional confirmation email sent to leads upon submission, confirming receipt and setting expectations.
Password-protected dashboard showing recent submissions, daily/weekly counts, and submission success rates.
Admin endpoints to export all data for a specific lead or delete their record entirely for GDPR subject requests.
Next.js 15 App Router application with a public-facing lead capture form and minimal admin dashboard. Form submissions are stored in a Vercel Postgres database with GDPR consent tracking. On successful submission, a webhook fires to the configured Zapier endpoint. SendGrid handles confirmation emails to leads. The app uses Server Actions for form processing and API routes for webhook delivery and admin data access. All EU user data includes explicit consent timestamps and supports data export/deletion requests for GDPR compliance.
Initialize Next.js 15 project, configure Vercel Postgres, set up environment variables and basic layout components.
Build the public lead capture form with validation, GDPR consent field, and Server Action for database storage.
Implement Zapier webhook dispatcher and SendGrid confirmation email on successful form submission.
Create protected admin route with lead listing, basic analytics, and data export/delete functionality.
Add rate limiting, error handling, mobile responsiveness testing, and deploy to Vercel production.
Receives form submission, stores lead in database, triggers webhook and confirmation email
Admin-only endpoint returning paginated list of captured leads with filters
Returns all stored data for a specific lead (GDPR data subject access)
Permanently deletes a lead record (GDPR right to erasure)
Returns submission counts and success rates for admin dashboard
Admin utility to test webhook connectivity to configured Zapier endpoint
1. Clone repository and run npm install 2. Create Vercel Postgres database from Vercel dashboard and copy DATABASE_URL 3. Set up SendGrid account, verify sender email, and copy API key 4. Create Zapier webhook trigger and copy the webhook URL 5. Generate admin password hash: node -e "console.log(require('bcryptjs').hashSync('yourpassword', 12))" 6. Create .env.local with all required environment variables 7. Run npx prisma db push to initialize database schema 8. Run npm run dev to test locally 9. Deploy to Vercel and add all environment variables in project settings 10. Test form submission and verify webhook delivery in Zapier• Deploy to Vercel with Vercel Postgres addon enabled from the dashboard
• Generate ADMIN_PASSWORD_HASH using bcrypt before deployment (cost factor 12 recommended)
• Verify SendGrid sender email before going live to avoid delivery issues
• Test Zapier webhook with /api/webhook/test endpoint before launching publicly
• Consider adding Vercel Edge Config for rate limit settings in production
• Form includes honeypot field for basic bot detection; monitor for spam patterns
• GDPR consent records are immutable; deletion removes lead data but preserves anonymized consent log for compliance audit
Vercel Postgres connection string for storing leads and webhook logs
Your Zapier webhook endpoint URL that receives lead data on form submission
SendGrid API key for sending confirmation emails to leads
Verified sender email address for SendGrid confirmation emails
Bcrypt hash of admin dashboard password for authentication
Admin user email for dashboard login
Public URL of deployed site, used in confirmation emails
When a lead submits the form, the app immediately sends a POST request to your configured Zapier webhook URL with all lead data as JSON. Your Zap can then route it to your CRM, spreadsheet, or other tools.
The form includes an explicit consent checkbox that must be checked before submission. We store the exact timestamp of consent and provide endpoints to export or delete any individual's data on request.
The alpha includes standard B2B fields (company, name, email, phone, message). Field customization can be added in a future iteration based on your specific needs.
Failed webhook attempts are logged with status codes. The lead data is still safely stored in your database, and you can retry or manually export it from the admin dashboard.
Navigate to /admin and log in with the credentials you set during deployment. The dashboard is password-protected and not publicly accessible.