Webhook /webhook/onboard → read Clients → compute next C-#### →
append Clients row (status onboarding, renewal_date auto from billing
cycle) → seed Projects row (checklist from services, +14d go-live) →
log Activity → Telegram confirmation. Sheets writes retry on fail.
Verified end-to-end (C-0002 created across all three tabs).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
deploy/smb-demos: compose + runbook for the static demo host
(httpd on the proxy network, routed by Caddy at demos.mivanchenko.de).
Pending a DNS A record before Caddy can issue TLS.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add retryOnFail (4 tries, 3s apart) to all Google Sheets nodes in
lead-intake and renewal-reminder so a transient API throttle/race
re-tries instead of silently dropping a row.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- demo-tier-a / demo-tier-b: forms POST JSON to /webhook/lead-intake
(hidden client_id + source, named fields), async submit with
success/error toast.
- lead-intake webhook: enable CORS (allowedOrigins=*) so the static
demos (different origin) can submit; re-export n8n/lead-intake.json.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Daily 08:00 schedule → read Clients → flag active clients whose
renewal_date is due (14/7/3/1/0 days out or overdue) → Telegram
summary → log to Activity Log. Quiet on days with nothing due.
Verified end-to-end via CLI run against a seeded due client.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Notify Telegram node (bot @smb_leads_bot) between Leads append and
Activity Log; notified flag set TRUE. Verified end-to-end (lead →
Telegram + Leads row + Activity Log).
- Re-export n8n/lead-intake.json with the notify node.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- templates/landing: two self-contained demos (Tier A barbershop / Google stack,
Tier B physio / self-hosted) + chooser page
- sheets/SCHEMA.md: Google Sheets CRM workbook spec
- playbooks: per-client setup checklists for both tiers
- README + .gitignore
- Demos avoid unverifiable claims (no "DSGVO-konform", no "Ende-zu-Ende")
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>