Phase 2 validates the live handoffs between agents and confirms that data passes correctly across the full pipeline. All tests below run in the sandbox environment with no production credentials. IDs continue from T15.
ID
Scenario
Agents Involved
Expected Handoff Output
Pass Criteria
T16
Classification Agent passes FAQ label to Drafting Agent
Ticket Classification Agent -> First Response Drafting Agent
Drafting Agent receives structured payload: {category, confidence, ticket_id, customer_email, customer_name}; begins Notion fetch
Drafting Agent log shows payload received with all five required fields; Notion fetch initiated within 2 seconds of handoff
T17
Drafting Agent passes completed reply to Zendesk send and then triggers Logging Agent
First Response Drafting Agent -> Zendesk -> Escalation and Logging Agent
Zendesk API confirms reply sent (status 200); Logging Agent receives trigger with ticket_id and reply_timestamp
Zendesk sandbox shows reply; Logging Agent log shows trigger received with correct ticket_id and timestamp
T18
Low-confidence ticket bypasses Drafting Agent and routes directly to Logging Agent via human queue
Ticket Classification Agent -> Zendesk (human queue) -> Escalation and Logging Agent
Ticket placed in human-review queue in Zendesk; Logging Agent logs ticket as human-routed with no reply sent
Zendesk shows ticket in human-review queue; HubSpot note category = human-review; no Zendesk auto-reply present
T19
Escalation ticket triggers both HubSpot log and Slack alert in correct order
Escalation and Logging Agent: HubSpot log then Slack alert
HubSpot note created first; Slack alert posted second; both actions complete within 10 seconds of trigger
HubSpot activity timestamp precedes Slack message timestamp; both present in sandbox within 10 seconds
T20
End-to-end happy path in sandbox: new FAQ ticket flows through all three agents without human input
All three agents in sequence
Ticket classified, Notion article retrieved, reply drafted and sent, HubSpot logged, no Slack alert (non-escalation)
All pipeline steps logged; reply in Zendesk sandbox; HubSpot note present; Slack channel empty for this ticket
T21
Drafting Agent output rejected by confidence gate — handoff to human queue instead of Zendesk send
First Response Drafting Agent -> confidence gate -> Zendesk human queue
Draft produced but confidence below send threshold; draft saved as internal note; ticket flagged for human review
Zendesk sandbox shows ticket as internal note only; public reply not sent; human-review flag true; draft content preserved
T22
Parallel processing of two simultaneous tickets — no cross-contamination of ticket data
All three agents, two concurrent ticket payloads
Each ticket maintains its own isolated context throughout pipeline; replies and logs reference correct ticket IDs
Ticket A reply contains only Ticket A customer name and content; Ticket B reply contains only Ticket B data; no field bleed
T23
Correct Zendesk tags and priority applied for all category types across a batch of five test tickets
Ticket Classification Agent -> Zendesk
FAQ tickets tagged auto-reply-faq; billing tickets tagged billing-human; escalation tickets tagged escalation-urgent
All five sandbox tickets carry the correct tag set; priority field matches category rules defined in the agent specification
ID
Edge Case Scenario
Condition Simulated
Expected Behaviour
Pass Criteria
E01
Duplicate ticket submission
Same customer submits identical ticket twice within 60 seconds; Zendesk assigns two different ticket IDs
Second ticket detected as probable duplicate; flagged in Zendesk with duplicate tag; Logging Agent logs both but Slack alert fires only once
Both tickets in Zendesk sandbox; second ticket carries duplicate tag; only one Slack alert in sandbox channel
E02
Missing customer name field in ticket payload
Zendesk webhook delivers ticket with empty display_name field
Drafting Agent uses fallback salutation 'Hello' instead of customer name; reply still sent; no agent crash
Draft contains 'Hello' as salutation; no null reference error in agent log; reply delivered to Zendesk sandbox
E03
Zendesk webhook delivery failure
Zendesk fails to deliver webhook to the orchestration layer; platform receives no trigger
Zendesk retry policy fires (3 attempts at 5-minute intervals); FullSpec platform logs missed webhook on receipt; alert sent to support@gofullspec.com
Missed webhook alert present in platform error log; retry attempts documented; no ticket silently dropped
E04
Notion knowledge base entirely unavailable
Notion API returns HTTP 503 for all requests during a 5-minute window
All FAQ tickets during outage window routed to human-review queue; error NOTION_UNAVAILABLE logged per ticket; Slack alert sent to support team
Human-review queue in Zendesk sandbox contains all affected tickets; NOTION_UNAVAILABLE log entries present; Slack alert fired
E05
HubSpot contact record has multiple duplicate email entries
Customer email matches three HubSpot contact records
Logging Agent selects the most recently updated record; logs note to that record only; deduplication warning written to error log
Note appears on most-recently-updated contact only; deduplication warning in log with all three contact IDs listed
E06
Human review timeout: flagged ticket not actioned within SLA window
Ticket placed in human-review queue; no agent action taken within 2 hours
Automation fires a Slack reminder to the support team lead after 2 hours; reminder repeats at 4 hours; ticket status updated to overdue
First Slack reminder in sandbox at 2-hour mark; second at 4-hour mark; Zendesk ticket status updated to overdue
E07
Ticket body contains PII beyond email address (e.g. payment card digits)
Ticket body includes partial card number string '4111 1111'
PII detection flag set; ticket body not passed to AI agent; ticket routed immediately to human-review queue; no content logged to HubSpot note
PII flag in classification log; no card-number string present in HubSpot note or Slack message; human-review flag true