Infrastructure medium complexity backend
0
Dependencies
0
Dependents
0
Entities
0
Integrations

Description

Handles outbound delivery of demo booking requests to the Norse Digital Products sales team via email or webhook. It abstracts the transport mechanism so DemoBookingService does not depend on a specific delivery protocol. Supports retry logic and failure reporting for reliable lead delivery.

Feature: Booking Form

booking-webhook-client

Sources & reasoning

Lines 337 and 222 explicitly name the demo booking form as a Sales Website MVP deliverable that POSTs to email/webhook with no login - a deliberate lightweight constraint. It is the only interactive conversion surface on a static marketing site, making it critical for early pipeline generation despite low technical complexity.

Responsibilities

  • Send HTTP POST requests to configured webhook endpoints with lead payload
  • Support email fallback delivery when webhook delivery fails or is unconfigured
  • Implement retry logic with exponential backoff on transient failures
  • Report delivery failures with structured error context

Interfaces

send(payload: LeadPayload): Promise<DeliveryResult>
sendWithRetry(payload: LeadPayload, maxRetries: number): Promise<DeliveryResult>