Back to Post-Meeting Recap & Follow-up

Test and QA Plan

How the build is validated before go-live: three sequential test phases, edge cases, and production verification.

4 pagesPDF · Quality
FS-DOC-06Quality

Test and QA Plan

Post-Meeting Recap and Follow-up

[YourCompany.com] · Sales Department · Prepared by FullSpec · [Today's Date]

This document defines the complete test and quality assurance programme for the Post-Meeting Recap and Follow-up automation. It covers three sequential phases: unit testing of individual agents in isolation, integration and edge-case testing of agent handoffs and failure scenarios, and a final end-to-end production run with process owner sign-off. The FullSpec team runs all phases and configures all test tooling. Your team joins in Phase 3 to review outputs and confirm readiness for full rollout. No phase begins until every test case in the preceding phase achieves a full pass.

01Testing approach

Testing runs in three sequential phases. Phase 1 validates each agent in isolation using sandbox credentials only. Phase 2 tests the handoffs between agents and exercises edge cases including missing data, tool outages, and duplicate events. Phase 3 performs a live end-to-end production run with real credentials and real meeting data. No phase begins until the previous phase fully passes with zero open failures. Any failure in a later phase that reveals a root cause in an earlier phase requires re-running the affected cases in that phase before proceeding.

1
Phase 1: Unit Testing
Each agent tested in isolation with stubbed inputs
Scope
Meeting Trigger Agent, Recap Drafting Agent, and CRM and Task Sync Agent tested individually with mocked or sandboxed inputs and outputs
Environment
Sandbox only: Fireflies.ai test workspace, Gmail sandbox account, HubSpot developer sandbox, Notion test page, Slack test channel
Credential rule
No production API keys permitted. All credentials must reference sandbox or developer-tier accounts confirmed in the environment variable store
Pass condition
All cases T01 through T12 return expected outputs with no unhandled exceptions
Who runs it
FullSpec team only
2
Phase 2: Integration and Edge-Case Testing
Agent handoffs and failure scenarios validated end to end in sandbox
Scope
Agent-to-agent data handoffs, conditional branching logic, duplicate-event handling, missing-data fallbacks, tool-unavailability responses, and rep review timeout behaviour
Environment
Sandbox only: same credential set as Phase 1, with simulated API failure responses injected via mock endpoints
Credential rule
No production API keys permitted. Mock endpoints may be used to simulate third-party error states
Pass condition
All cases T13 through T20 and E01 through E07 pass with correct routing, correct error handling, and no data written to any production system
Who runs it
FullSpec team only
3
Phase 3: End-to-End Production Test
Full workflow validated against live systems with process owner present
Scope
A real sales meeting is used as the trigger. The full workflow runs against production Fireflies.ai, Gmail, HubSpot, Notion, and Slack. All outputs are inspected and then voided
Environment
Production credentials. A designated internal test address is used for all outbound email. The HubSpot test deal record is voided after each run
Credential rule
Production API keys active. All outbound email must target the internal test address only. No prospect-facing messages may be sent during testing
Pass condition
All cases T21 through T25 pass. Process owner reviews outputs and confirms sign-off, recorded in the FullSpec confirmation log
Who runs it
FullSpec team runs the workflow. Process owner (sales manager) joins to review outputs and record approval
Test and QA PlanPage 1 of 4
FS-DOC-06Quality

02Phase 1 — unit test cases

Sandbox credentials only for all Phase 1 cases. Do not connect any production API key during this phase. Use the developer sandbox for HubSpot, a dedicated test workspace for Fireflies.ai, and a non-primary Gmail account. All Slack messages must route to the designated test channel only.

Meeting Trigger Agent: Monitors Google Calendar and Zoom webhooks, filters attendee domains to identify qualifying sales calls, and passes confirmed meeting metadata downstream. Estimated build time: 5 hours. Complexity: Moderate.

ID
Scenario
Input
Expected Output
Pass Criteria
T01
Happy path: external sales meeting ends on schedule
Google Calendar event end webhook with external attendee domain and tag 'sales'
Confirmed meeting record containing transcript URL, attendee list, and meeting metadata passed to Recap Drafting Agent
Record emitted within 60 seconds of webhook receipt; all required fields populated
T02
Internal meeting filtered out
Calendar event with all attendees sharing the [YourCompany.com] domain
Event discarded; no downstream trigger fired
No data passed to next agent; filter log entry recorded
T03
Zoom call ends before calendar end time
Zoom webhook fires 10 minutes before calendar end time
Trigger uses Zoom webhook as authoritative end signal; meeting record emitted
Correct end time stamped from Zoom, not calendar; no duplicate trigger
T04
Fireflies.ai transcript not yet available at trigger time
Calendar end webhook received; Fireflies.ai API returns 202 Accepted with no transcript body
Agent enters a retry loop with 30-second intervals, up to 5 attempts; alert raised if transcript absent after 5 retries
Retry loop executes correctly; error alert fires after fifth failed attempt; no null record passed downstream
T05
Duplicate calendar webhook received for same meeting
Two identical end webhooks fired within 5 seconds for the same event ID
Idempotency check on event ID prevents duplicate trigger; second webhook discarded
Only one meeting record emitted; deduplication log entry present

Recap Drafting Agent: Consumes transcript and attendee data from the Meeting Trigger Agent, extracts key themes, objections, agreements, and next steps from the Fireflies.ai transcript, produces a personalised Gmail draft, and appends a structured summary block to the Notion page. Estimated build time: 9 hours. Complexity: Complex.

ID
Scenario
Input
Expected Output
Pass Criteria
T06
Happy path: full transcript with clear next steps
Fireflies.ai transcript containing two named action items, one objection, and a confirmed follow-on meeting date
Gmail draft addressed to all attendees; Notion block appended with attendees, pain points, next steps, and date
Draft saved to rep inbox within 90 seconds; Notion block present with all four required fields
T07
Transcript available but AI summary is empty
Fireflies.ai transcript body present; AI summary field returned as empty string
Agent falls back to raw transcript for extraction; draft produced with a note flagging that the AI summary was unavailable
Draft created; fallback note visible in email body; no exception thrown
T08
Multiple attendees with mixed domains
Calendar event with three attendees: one internal, two external at different prospect domains
Gmail draft addressed to both external attendees; internal attendee excluded from To field
To field contains exactly the two external addresses; CC field matches calendar data
T09
Gmail draft creation fails with 429 rate-limit error
Gmail API returns HTTP 429 on draft creation attempt
Agent retries after exponential backoff (2 s, 4 s, 8 s); logs failure if all retries exhausted; Slack error alert fired
Retry sequence executes; error message posted to test Slack channel if unresolvable; no silent failure
T10
Notion page for deal does not exist
Meeting metadata references a HubSpot deal ID that has no linked Notion page
Agent creates a new Notion page under the configured parent database and appends the summary block
New Notion page created with correct title format; summary block appended; no error raised
T11
Transcript contains no detectable action items
Transcript from a discovery call with no explicit commitments or follow-up statements
Draft produced with a 'No specific action items detected' placeholder in the next steps section
Placeholder text present; draft not suppressed; Notion block reflects same placeholder

CRM and Task Sync Agent: Receives the queued recap draft confirmation and meeting summary from the Recap Drafting Agent, writes the outcome to the correct HubSpot deal record, creates follow-up tasks from extracted action items, and posts a Slack notification for deals above the value threshold. Estimated build time: 8 hours. Complexity: Moderate.

ID
Scenario
Input
Expected Output
Pass Criteria
T12
Happy path: deal found, action items present, deal above Slack threshold
HubSpot deal ID matched; two action items extracted; deal value above configured threshold
Deal record updated with meeting outcome and last-contact date; two tasks created with due dates; Slack message posted to test channel
All three writes confirmed via HubSpot API response 200; Slack message visible in test channel within 30 seconds
T13
Deal below Slack notification threshold
HubSpot deal ID matched; deal value below threshold
Deal record updated and tasks created; no Slack message posted
HubSpot writes confirmed; Slack message absent from test channel; threshold check log entry present
T14
HubSpot deal ID not found for meeting participants
No deal record in sandbox HubSpot matches the attendee email addresses
Agent creates a new HubSpot deal in 'Meeting Held' stage, associates attendee contacts, and flags the record for manual review
New deal created with correct stage and contact associations; manual review flag visible on record
T15
Stage keyword detected but not in mapping table
Transcript contains the word 'evaluation' which is not present in the configured stage keyword map
Deal stage left unchanged; a warning note appended to the deal record indicating an unmapped keyword was detected
Deal stage field unchanged; warning note present on deal timeline; no exception raised
Test and QA PlanPage 2 of 4
FS-DOC-06Quality

03Phase 2 — integration and edge case tests

Phase 2 validates the handoffs between agents and verifies that data passes correctly from Meeting Trigger Agent to Recap Drafting Agent and then to CRM and Task Sync Agent. All tests remain in the sandbox environment. IDs continue from the Phase 1 sequence.

ID
Scenario
Input
Expected Output
Pass Criteria
T16
Full handoff: Trigger Agent to Recap Drafting Agent
Meeting Trigger Agent emits a confirmed meeting record with transcript URL, attendee list, and metadata
Recap Drafting Agent receives the record, fetches the transcript from Fireflies.ai using the URL, and produces a Gmail draft and Notion block
Draft present in sandbox Gmail inbox; Notion block appended; no manual intervention required between agents
T17
Full handoff: Recap Drafting Agent to CRM and Task Sync Agent
Recap Drafting Agent confirms draft queued and Notion block written; passes structured summary with action items to CRM agent
CRM and Task Sync Agent updates HubSpot deal, creates tasks, and evaluates Slack threshold
All HubSpot writes confirmed; task count matches detected action items; Slack threshold evaluated correctly
T18
Recap Drafting Agent output delayed beyond 3-minute SLA
Recap Drafting Agent takes longer than 180 seconds to produce output due to simulated processing delay
Orchestration layer logs a timeout warning; CRM agent enters a wait state and retries pickup after 60 seconds
Timeout warning logged; CRM agent does not fail silently; downstream processing completes once output is available
T19
Correct deal matched when rep has multiple open deals with same prospect
Two open HubSpot deals linked to the same prospect contact email; meeting title matches one deal name
Agent selects the deal whose name most closely matches the calendar event title; flags ambiguity in the deal note
Correct deal updated; ambiguity flag visible; second deal untouched
T20
Slack API unavailable at time of notification
Slack API returns 503 Service Unavailable when CRM agent attempts to post deal update
Agent retries up to 3 times with 15-second intervals; logs failure and stores the unsent notification payload for manual review
Retry sequence executes; HubSpot writes not blocked by Slack failure; unsent payload stored and retrievable

The following edge-case tests cover scenarios outside the normal happy path that are likely to occur in real-world usage. These use the E-series ID prefix and are run as part of Phase 2.

ID
Scenario
Input
Expected Output
Pass Criteria
E01
Duplicate meeting event triggered by calendar reschedule
A rescheduled calendar event fires an end webhook for both the original and rescheduled time slot
Idempotency check on event ID and meeting start time prevents duplicate processing; second event discarded
Only one workflow run initiated; duplicate suppressed; deduplication log entry present
E02
Fireflies.ai transcript missing attendee names
Transcript body present but speaker labels all read as 'Speaker 1' and 'Speaker 2' with no identified names
Draft produced using generic salutation; Notion block notes that speaker identification was unavailable
Draft not suppressed; generic salutation used; Notion block contains speaker-identification warning
E03
Meeting transcript in a language other than English
Fireflies.ai returns a transcript in Spanish for a call conducted with a Latin American prospect
Summarisation agent detects non-English content and either processes it or flags it for manual review, depending on configured language support setting
No unhandled exception; flag or processed output present; rep notified via Slack in test channel
E04
HubSpot API key revoked mid-run
CRM and Task Sync Agent receives a 401 Unauthorized response from HubSpot partway through a deal update
Agent halts, logs a credential error with the affected deal ID, and fires an alert to the FullSpec monitoring channel
No partial write committed; error logged with deal ID; alert visible in monitoring channel
E05
Rep does not review Gmail draft within 24 hours
Gmail draft created; no rep action detected for 24 hours after draft delivery
Slack nudge re-sent to rep; draft remains in inbox; no auto-send triggered
Second Slack nudge fired at 24-hour mark; draft not sent without rep action
E06
Notion API rate limit reached during batch of back-to-back meetings
Three meetings end within 10 minutes; all three Recap Drafting Agent instances attempt simultaneous Notion writes
Orchestration layer queues Notion writes sequentially with 2-second gaps; all three blocks eventually appended
All three Notion blocks present after queuing resolves; no 429 errors propagated as failures
E07
Meeting held in person with no Zoom recording and no Fireflies.ai transcript
Calendar end webhook fires; Fireflies.ai API returns 404 for the meeting ID
Agent falls back to calendar-only summary mode: draft produced from event title, attendee names, and meeting duration only, with a note flagging the absent transcript
Draft produced with fallback content; fallback flag visible in draft body and Notion block; no exception raised
Test and QA PlanPage 3 of 4
FS-DOC-06Quality

04Phase 3 — end-to-end production test

Important before running Phase 3: All outbound email during this phase must be addressed to the designated internal test address only. Do not send any message to a live prospect address. After each production test run, void the HubSpot test deal record, delete the Gmail draft, and remove the Notion block appended during the test. Confirm these cleanup steps are completed before running subsequent cases. FullSpec will verify the audit log after each run.
Production credentials are active in Phase 3. Confirm that the Slack value threshold is set correctly before the first run, that the Fireflies.ai bot is joined to the test meeting, and that the HubSpot test deal record is in place and associated with the test attendee contact before triggering the workflow.
ID
Scenario
Input
Expected Output
Pass Criteria
T21
Full production run: external sales meeting ends, transcript available within 2 minutes
Live Google Calendar end webhook for a tagged sales meeting; Fireflies.ai bot present in Zoom call; production credentials active
Meeting record emitted; Fireflies.ai transcript fetched; Gmail draft created in rep inbox addressed to internal test address; HubSpot deal updated; tasks created; Notion block appended; Slack message posted to sales channel if deal above threshold
All seven outputs confirmed within 5 minutes of meeting end; no step skipped; all data accurate against the transcript
T22
Gmail draft content quality review
Output of T21: Gmail draft in rep inbox
Draft contains: correct attendee greeting, summary of key pain points from transcript, action items with owners and implied dates, proposed next step, rep signature block
All five structural elements present; no placeholder text visible; tone matches rep's historical email style if reference emails were provided
T23
HubSpot deal record accuracy review
Output of T21: updated HubSpot deal record
Deal notes contain AI-extracted summary; last-contact date updated to test meeting date; deal stage updated only if a mapped keyword was detected; follow-up tasks present with due dates and assigned to rep
All fields updated correctly; no unrelated deal records touched; task due dates within expected range
T24
Error log and monitoring verification
Platform execution log for the Phase 3 production run
Log contains a complete execution trace: trigger received, transcript fetched, draft created, CRM updated, tasks created, Notion appended, Slack evaluated; no unhandled errors; retry events (if any) logged with timestamps
Execution log complete and retrievable; no silent failures; all retry events documented with outcome
T25
Process owner review and approval
Process owner (Sales Manager) reviews all outputs from T21 through T24: Gmail draft, HubSpot deal record, Notion block, Slack message, and execution log
Process owner confirms that all outputs meet the agreed quality standard for recap content, CRM completeness, task accuracy, and Notion summary structure, and records approval in the FullSpec confirmation log
Approval recorded in the FullSpec confirmation log with the owner's name and the review date; all outstanding observations documented; no critical issues unresolved at time of sign-off
Once T25 is recorded as passed in the FullSpec confirmation log, Phase 3 is complete and the automation is cleared for production rollout. Any issue raised during the owner review in T25 is logged as a defect, resolved by the FullSpec team, and re-tested before clearance is granted. Contact the FullSpec team at support@gofullspec.com for any query arising during or after the QA programme.
Test and QA PlanPage 4 of 4

More documents for this process

Every document generated for Post-Meeting Recap & Follow-up.

Launch Plan
Operations · Owner
View
ROI and Business Case
Finance · Owner
View
Process Runbook / SOP
Operations · Owner
View
Developer Handover Pack
Technical · Developer
View
Integration and API Spec
Technical · Developer
View