DEV3 Technologies home

DEV3 Developer Forum

How we built the DEV3 GrowthPilot: one intake pipeline for every lead channel

dev3 ·

DEV3 GrowthPilot is a self-hosted, multi-tenant CRM and marketing platform. It captures leads from Meta, Google, TikTok, LinkedIn, forms and APIs and routes them to reps.

Stack: Next.js 15 (App Router) and MongoDB, with a worker process (or a per-minute cron on serverless hosting) for scheduled work.

Decisions that mattered

  • Every channel goes through the same ingest step. It de-duplicates contacts across channels, attaches repeat enquiries to the open lead and writes every change to the timeline.
  • Routing is configuration: lead pools choose a strategy (round robin, weighted, load-balanced, skills, language or territory, performance-weighted, claim queue) and respect availability, capacity and working hours.
  • Every message goes through one queue that checks consent, the suppression list, the WhatsApp 24-hour window, quiet hours and frequency caps.
  • SLA checks, campaigns, workflows, connectors and scoring are claimed before they run, so a worker and a cron call never do the same job twice.
  • AI is an optional assistant. With no key every AI control shows a connect state and the rest works.

Limits: sends and social posts are simulated in the public demo.

Trade-off we chose: claiming scheduled work before running it makes overlap safe at the cost of some bookkeeping.

How do you handle consent across several messaging channels? Questions welcome.

#nextjs#mongodb#crm#case-study

0

0 replies

No replies yet. Know the answer? Write the first one below.

Your reply

Every post is reviewed by DEV3 before it appears. Usually reviewed within 24 hours.

Markdown supported. Use ``` for code blocks. Images are not allowed.