Engineering Case Study · Done 1:1 Digital
Designing an AI-assisted workflow for structured one-to-one meetings
Done 1:1 Digital turns a recurring management process into a traceable product workflow. The platform retrieves OKR context, guides preparation, supports comments and voice input, orchestrates AI assistance and produces a validated meeting record.
- Role
- Full-stack engineering, product workflow design, external integrations, AI orchestration, testing and deployment.
System Responsibilities
- SaaS
- AI Integration
- API Integration
Technologies
- Laravel
- Vue
- Inertia
- Claude API
- GraphQL
- Queues
- State Machine
- Railway
Verified Evidence
7 verified results documented below.
Overview
Recurring manager-employee one-to-one meetings needed relevant OKR context, visibility into previous commitments and a reliable history for each pair, restricted to the approved organization.
- Prepare meetings with relevant OKR context.
- Make previous commitments visible.
- Support manager and employee participation.
- Generate a useful final summary.
- Preserve a reliable history for each manager–employee pair.
- Restrict access to the approved organization.
The problem
Weekly one-to-one meetings often depend on scattered notes, inconsistent preparation and manual follow-up. The system needed to preserve the human conversation while adding structure, context and continuity.
Constraints that shaped the system
- Domain-restricted authentication.
- External OKR data from Perdoo GraphQL.
- Multiple phases with different permissions.
- AI output had to remain contextual and controlled.
- Meeting validation required data integrity.
- Long-running sync work could not block the request cycle.
System architecture
A Laravel-centered SaaS architecture combines Inertia and Vue for the interactive product experience, background jobs for OKR synchronization, an explicit six-state workflow for meeting progression and three controlled AI prompt phases for preparation, analysis and final reporting.
client
Browser
Key engineering decisions
Explicit state machine
AcceptedMeeting permissions and available actions depend on the current phase.
Model the lifecycle as six explicit states: draft, ready for comment, ready for meeting, in progress, completed and archived.
Why
- Prevent invalid actions.
- Make UI permissions predictable.
- Improve testing.
- Preserve auditability.
Alternatives considered
- Loosely coupled boolean status flags
Trade-offs
- More transition logic, but far less ambiguity than loosely coupled boolean flags.
Separate AI phases
AcceptedAI assistance had to support three distinct stages of the meeting workflow - preparation, analysis and final reporting - without collapsing into one generic, hard-to-control prompt.
Use three context-specific AI interactions instead of one generic prompt.
Why
- Different stages require different objectives.
- Smaller prompt responsibilities improve control.
- Context can be injected deliberately.
- Outputs are easier to validate.
Alternatives considered
- One generic prompt handling all meeting stages
Signed meeting content
AcceptedMeeting validation required data integrity.
Create a timestamped signature based on the final structured content.
Why
- Detect unintended changes after validation.
- Strengthen trust in archived records.
Implementation highlights
- Google OAuth and organization-domain restriction.
- Perdoo OKR synchronization through queued jobs.
- Voice input using the Web Speech API.
- Structured content stored as JSON.
- Absolute-date constraints in AI-generated content.
- Railway deployment.
Quality and operations
Testing
- 37 automated tests.
- State-transition coverage.
- Integration debugging against real schema and data.
- Clear separation between web requests and background processing.
Results and evidence
- Implementation fact
Six-state meeting workflow
Draft, ready for comment, ready for meeting, in progress, completed, archived.
- Implementation fact
Three orchestrated AI prompt phases
Preparation, analysis and final reporting.
- Implementation fact
Timestamped content signature
Detects unintended changes after validation.
- Verified metric
Automated tests37
- Implementation fact
Perdoo GraphQL integration
Retrieves OKR context for meeting preparation.
- Implementation fact
Queued OKR synchronization
Background jobs keep long-running sync work outside the request cycle.
- Observable capability
Production deployment available
Deployed on Railway.
Lessons from the system
- AI should support a workflow, not replace its domain model.
- Explicit states improve both UX and backend correctness.
- External data synchronization belongs outside the request lifecycle.