Skip to main content

Quote Follow-Up — system overview

Audience: developers & AI agents · Scope: the Quote Follow-Up System as a whole — a map to its spoke docs · Last reviewed: 2026-07-24

TL;DR — Quote Follow-Up lets a field agent update a quote (status / stage / dates / comments) from a no-login email link, keeps the sales forecast current, and drives the reminders and reporting around it. It spans a web page, a machine API, cron jobs, a Pipedrive webhook, and Google Sheets. This page maps the parts; each spoke has the detail.

The parts (map)

emailed magic link (a scoped grant, NOT a login)

┌──────────────┬──────────┴───────────┬────────────────────┐
▼ ▼ ▼ ▼
Landing page Nudge cadence Stage-sync log Link API
agent updates → "due for a nudge" → a row per stage/ mints a link for
the quote Google Sheet (cron) status change (→Sheet) an automation

quotes ↔ Pipedrive deals: import stages/pipelines · push status/stage · webhook back
SpokeDocWhat it covers
Landing pagelanding-page.mdthe no-login update page — states, the save/write split, the data model
Authenticationauthentication.mdthe magic-link grant token (a scoped capability, not a login), its validation, endpoint gating, and the machine Link API that mints links
Pipelines & stagespipeline-stages.mdthe imported Pipedrive pipelines/stages behind the picker — multi-pipeline handling, won-derivation, the read-only admin lists
Nudge cadencenudge-cadence.mdthe cron that reconciles a Google Sheet of quotes "due for a follow-up nudge" (per-stage × value-bucket cadence)
Stage-sync sheetstage-sync.mdappends a row on every deal stage/status change (site + webhook), mirrored to a Google Sheet
Link API (n8n)link-api-n8n.mdconsumer-facing guide for the machine endpoint (documented internally in authentication.md) that hands a magic link to an external automation

End-to-end flow

An agent gets an emailed magic link → opens the landing page → sets status / stage / dates / comments. That one write (a) syncs to the quote's Pipedrive deal (status, native stage, expected close date, a note), (b) stamps "stage last moved" and appends a stage-sync row (later mirrored to a Sheet), and (c) feeds the nudge engine, which lists quotes that have sat too long in a stage so an automation can re-prompt the agent — with a fresh magic link, closing the loop.

Shared concepts

The pieces every spoke leans on — documented once, here, with the detail linked:

  • The magic-link token — a grant, not a login. A signed, expiring token identifies the agent and unlocks the follow-up tool for their own quotes; it never logs anyone in. The same minting code backs the landing page, the Link API, and the nudge sheet. Detail: authentication.md.
  • Imported Pipedrive pipelines & stages. The stage picker, the nudge cadence, and the stage-sync stage name/probability all read the stages imported from Pipedrive into #__configbox_external_pipedrive_stages, curated in the backend (Settings → Quote Follow-ups). Detail: pipeline-stages.md.
  • The quote ↔ Pipedrive deal link. Every spoke reads or writes the quote's pipedrive_* fields; the deal is the shared external record.

Dependencies (Integration layers)

Quote Follow-Up builds on shared layers documented at the top level — not part of this System:

Cross-cutting ops & testing

  • Admin / operations: ../pipedrive/admin-manual.md.
  • Go-live runbook: ../pipedrive/deployment.md.
  • The scheduled jobs behind this System (the nudge build, the stage-sync export) are inventoried with every other cron in ../scheduled-jobs.md; what watches them is in ../monitoring.md.
  • Testing: ../pipedrive/testing.md · ../testing/guide.md. The whole chain above is exercised end to end by one golden-path spec — nudge-due → emailed magic link → landing-page update → stage-sync row + captured Pipedrive deal — tests/specs/anon/quote-follow-up-nudge-to-deal.spec.ts (catalog); the per-part specs cover each slice in depth.
  • Operator how-tos (data entry / settings, plain-language): the Admin Guide at admin-guide/quote-follow-up/.