n8n webhook for booking confirmation emails #8

Closed
opened 2026-07-07 21:38:58 -06:00 by jhodgkin · 0 comments
Owner

Goal

Wire the API to the existing n8n instance so both the client and photographer get automated emails at key booking events.

Trigger points

  1. Booking created — client submits the form (after Venmo step)
  2. Contract signed — signed PDF is ready
  3. Payment confirmed — photographer marks payment received in admin

n8n workflow

  • Webhook node receives POST from API with booking data
  • Branch on event field: booking_created | contract_signed | payment_confirmed
  • Client email (booking_created): "Thanks for booking! Here's your summary... Your session is pending payment confirmation."
  • Photographer email (booking_created): "New booking from [name] on [date] — [type], [length]. Check admin to confirm payment."
  • Client email (contract_signed): Attach signed PDF, "Your signed contract is attached for your records."
  • Client email (payment_confirmed): "Your session is confirmed! See you on [date] at [location]."

API changes

  • POST /api/notify internal helper that POSTs to N8N_WEBHOOK_URL (from .env)
  • Called after booking created, contract signed, and payment confirmed
  • Fire-and-forget (non-blocking) — failures logged but don't break the booking flow

Config

  • N8N_WEBHOOK_URL in api/.env
  • n8n credentials: SMTP or Gmail node for sending

Acceptance

  • Creating a test booking triggers emails to both addresses
  • Signed PDF attached to contract confirmation email
## Goal Wire the API to the existing n8n instance so both the client and photographer get automated emails at key booking events. ## Trigger points 1. **Booking created** — client submits the form (after Venmo step) 2. **Contract signed** — signed PDF is ready 3. **Payment confirmed** — photographer marks payment received in admin ## n8n workflow - Webhook node receives POST from API with booking data - Branch on `event` field: `booking_created` | `contract_signed` | `payment_confirmed` - **Client email (booking_created):** "Thanks for booking! Here's your summary... Your session is pending payment confirmation." - **Photographer email (booking_created):** "New booking from [name] on [date] — [type], [length]. Check admin to confirm payment." - **Client email (contract_signed):** Attach signed PDF, "Your signed contract is attached for your records." - **Client email (payment_confirmed):** "Your session is confirmed! See you on [date] at [location]." ## API changes - `POST /api/notify` internal helper that POSTs to `N8N_WEBHOOK_URL` (from `.env`) - Called after booking created, contract signed, and payment confirmed - Fire-and-forget (non-blocking) — failures logged but don't break the booking flow ## Config - `N8N_WEBHOOK_URL` in `api/.env` - n8n credentials: SMTP or Gmail node for sending ## Acceptance - Creating a test booking triggers emails to both addresses - Signed PDF attached to contract confirmation email
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jhodgkin/lisilou-portfolio#8