SPEC-COMP-005 Verificationsrc/engine/chat-next/webhookDispatcher.ts

Webhook Dispatcher Test Suite

Verifies dual webhook delivery: Webhook 1 (Line-Item Post) and Webhook 2 (Consolidated Session Checkout with Top-Level Channel & Recipient).

Interactive Scenario & Item Count Selector

Select item bundle volume (1, 2, or 3 forms) and channel validation profile to preview or dispatch live webhooks.

Webhook 1: Line-Item Dispatch

Dispatches the first completed intake form line-item directly to the line-item catcher endpoint.

https://hooks.zapier.com/hooks/catch/391926/44n281f/

Webhook 2: Session Checkout

Dispatches consolidated session checkout payload with top-level channel, recipient, and formatted message body.

https://hooks.zapier.com/hooks/catch/391926/4h945ci/

Generated Webhook 2 JSON Payload (Exact Wire Format)

channel: "sms"recipient: "5125550144"
{
  "sessionId": "session_qa_001",
  "timestamp": "2026-09-19T17:53:14.595Z",
  "status": "completed",
  "channel": "sms",
  "recipient": "5125550144",
  "completedForms": [
    {
      "sessionId": "session_qa_001",
      "submissionId": "sub_vol_001",
      "formId": "volunteer_reservation",
      "formTitle": "Volunteer Reservation #1: Breakfast Prep",
      "timestamp": "2026-08-31T18:00:00.000Z",
      "slots": {
        "first_name": "Terry",
        "last_name": "Collier",
        "event_name": "Breakfast Prep & Serve",
        "date": "Sat Sep-05-2026",
        "time": "08:00 AM",
        "volunteers_count": "2"
      }
    }
  ],
  "contact": {
    "name": "Terry Collier",
    "firstName": "Terry",
    "lastName": "Collier",
    "email": "terry@streetyouthministry.org",
    "phone": "(512) 555-0144",
    "optInSms": true,
    "streetAddress": "100 Congress Ave, Austin, TX 78701"
  },
  "submissionId": "checkout_1789840394595",
  "smsText": "Hi Terry, thank you for reaching out to Street Youth Ministry! We received your submission for Volunteer Reservation #1: Breakfast Prep. Our team will review and follow up shortly. Info: symin.org — the SYMin team"
}