a27ee59125
Test backoffice (smb-crm) / test (push) Has been cancelled
Flask fires a fire-and-forget internal webhook (owner_notify.py, mirroring
mailer.py's background-thread queue) on booking create/cancel/reschedule,
carrying the same {booking, business_name, notify_channel} shape the old
EA-driven "Build booking row" node produced, plus an event field so the
Telegram message can say what actually happened. n8n/booking-sync.json gets
a new webhook + IF node feeding the existing Telegram node directly, so it
no longer needs EA's API to build the notification payload; channel routing
(only telegram sends for now) lives in that IF node.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
23 lines
1.1 KiB
Bash
23 lines
1.1 KiB
Bash
# Copy to .env on the host and fill in. .env and secrets/ are gitignored.
|
|
DB_PASSWORD=change-me-strong
|
|
CRM_API_TOKEN=change-me-long-random
|
|
BOOKING_TOKEN_SECRET=change-me-long-random-too
|
|
# Owner-login session cookie signing key (#19). Dedicated secret -- rotating
|
|
# it just logs owners out, without touching CRM_API_TOKEN/BOOKING_TOKEN_SECRET.
|
|
SESSION_SECRET_KEY=change-me-long-random-session-too
|
|
# Booking confirmation email (#18). Left blank, sending is skipped (logged,
|
|
# not fatal) -- mail relay setup is a separate infra/triage item.
|
|
SMTP_HOST=
|
|
SMTP_PORT=587
|
|
SMTP_USERNAME=
|
|
SMTP_PASSWORD=
|
|
# Used as the From address when a client has no domain configured.
|
|
MAIL_FALLBACK_FROM=noreply@mivanchenko.de
|
|
# Base URL the manage-booking link in the confirmation email is built from.
|
|
PUBLIC_BASE_URL=https://onboard.mivanchenko.de
|
|
# Owner Telegram notification (#23). Points at n8n's "Owner notify webhook"
|
|
# node (n8n/booking-sync.json), e.g. https://n8n.mivanchenko.de/webhook/owner-notify.
|
|
# Left blank, sending is skipped (logged, not fatal) -- same convention as
|
|
# SMTP_HOST above.
|
|
OWNER_NOTIFY_WEBHOOK_URL=
|