Automated Lead Collection: Integrating Website Forms with Notion

A typical scenario: leads from the website get lost in email, managers manually transfer them to Notion, missing response deadlines. As a result, up to 30% of leads remain unprocessed — direct losses. The solution is a direct integration: a lead fills out a form → data immediately appears as a page

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1283
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1238
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    981
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1029
  • image_website-sbh_0.webp
    Website development for SBH Partners
    1104
  • image_website-_0.webp
    Website development for Red Pear
    552

A typical scenario: leads from the website get lost in email, managers manually transfer them to Notion, missing response deadlines. As a result, up to 30% of leads remain unprocessed — direct losses. The solution is a direct integration: a lead fills out a form → data immediately appears as a page in your Notion database. We’ve implemented this for 50+ projects, handling rate limits and eliminating data loss. In one project with 3000+ leads per month, lead processing time dropped from 2 hours to 2 minutes.

What Problems We Solve

Lead Loss: without integration, every email can end up in spam or be missed. The Notion API creates a page guaranteed, and we add a Redis queue for high traffic. Manual Copying: managers spend up to 30 minutes per day transferring data. Automation reduces that to zero, saving up to 10 work hours per month. No Single Window: the team uses different systems. Notion is the unified database where lead is visible to everyone immediately.

How We Do It: A Real Case

For an e-commerce store with 2000+ leads per month, we set up integration on Laravel 11 (PHP) with a Redis queue. Stack: Notion API v2022-06-28, Http::withHeaders() from Laravel, predis/predis for the queue. Here’s an example class:

class NotionService { private string $apiKey; private string $databaseId; public function createPage(array $data): array { $resp = Http::withHeaders([ 'Authorization' => "Bearer {$this->apiKey}", 'Notion-Version' => '2022-06-28', 'Content-Type' => 'application/json', ])->post('https://api.notion.com/v1/pages', [ 'parent' => ['database_id' => $this->databaseId], 'properties' => [ 'Name' => [ 'title' => [['text' => ['content' => $data['name']]]] ], 'Email' => [ 'email' => $data['email'] ], 'Phone' => [ 'phone_number' => $data['phone'] ?? '' ], 'Status' => [ 'select' => ['name' => 'New'] ], 'Lead Date' => [ 'date' => ['start' => now()->toIso8601String()] ], ], 'children' => [ [ 'object' => 'block', 'type' => 'paragraph', 'paragraph' => [ 'rich_text' => [[ 'type' => 'text', 'text' => ['content' => $data['message'] ?? ''] ]] ] ] ] ]); return $resp->json(); } } 

Why a Redis Queue Is Better Than a Simple HTTP Request?

Notion limits API to 3 requests per second. With 10 concurrent leads, some requests will get a 429 error. A queue with a 0.4-second pause between sends guarantees 100% delivery. We use Redis via predis — it’s lighter than RabbitMQ and requires no separate server. Load testing showed the queue handles up to 1000 leads per minute without loss. This approach also enables idempotency keys to prevent duplicate page creation.

How to Ensure 100% Lead Delivery?

Besides the queue, we add a retry mechanism with exponential backoff on errors. If Notion is temporarily unavailable, the request retries after 1, 2, 4, 8 seconds. After 5 failed attempts, the lead is saved to a log for manual review. This eliminates loss even during prolonged API outages. For real-time sync of changes, we also set up Notion webhooks (via polling) — this updates data in real time.

What's Included

Component What We Do Result
Integration Configure Notion API, create pages Leads appear in Notion
Queue Redis + queue:work on Laravel 0 lost requests during spikes
Error Handling Retry with exponential backoff Resilience to failures
Documentation Database schema, code examples Team can modify fields

Approach Comparison: Direct API vs Zapier

Criteria Direct Integration Zapier
Transfer Delay 0.5 sec 1-5 min
Cost for 10,000 leads No additional cost Significant cost
Mapping Flexibility Full Limited
Third-party Dependency None Yes

Process

  1. Analysis: study the lead structure, what fields are needed in Notion.
  2. Design: configure form filters, property mapping.
  3. Implementation: write the service class, connect the queue.
  4. Test: 100 leads with different scenarios (empty fields, long messages).
  5. Deploy: to your server or cloud (Vercel, Selectel).

Timelines and Guarantees

Basic integration takes 1-2 days (costs $300). If you need a queue + CRM, up to 5 days (costs $800). We guarantee correct API operation: if a lead doesn't reach Notion due to code issues, we fix it free of charge within a week after delivery. Our team has 5+ years of integration experience and 50+ similar projects, saving clients an average of $500/month.

Typical Mistakes When Setting Up Yourself

Wrong field type: phone is written as rich_text instead of phone_number — Notion API rejects the request. Forgot to add integration to the database: without this, the token doesn't work. Don't handle 409 Conflict on duplicates: our logic checks uniqueness by email.

More about queue setup We use a Redis queue that runs in the background. For Laravel, this is the standard queue:work with Redis driver. Configuration in .env file: QUEUE_CONNECTION=redis. During peak loads, we run multiple workers.

Ready to Automate?

Contact us for a free consultation. Send a link to the form and the Notion database structure — we’ll set up a turnkey integration. Get a solution that saves hours of manual work and increases lead response speed. Order integration with a result guarantee.

Documentation: Notion API