Skip to content

Manage Invitation Lifecycle #28

@mathaix

Description

@mathaix

User Story

As a manager
I want to manage invitation status, resend, and revoke invitations
So that I have full control over who can access interviews

Acceptance Criteria

Invitation Status Tracking

  • Display status for each invitation:
    • Pending: Created but not yet sent
    • Sent: Email dispatched
    • Delivered: Email received by server
    • Opened: Email opened (if tracking enabled)
    • Clicked: Interview link clicked
    • In Progress: Interview started
    • Completed: Interview finished
    • Expired: Link expired without completion
    • Cancelled: Revoked by manager
    • Bounced: Email delivery failed

Status Timeline

  • Show timeline of status changes with timestamps
  • Visual progress indicator
  • Estimated time to completion based on agent config

Resend Functionality

  • "Resend" button for pending/sent/bounced invitations
  • Generates new token (old one invalidated)
  • Tracks resend count
  • Limit resends to 3 per invitation
  • Customizable resend message

Revoke Functionality

  • "Revoke" button for any non-completed invitation
  • Revoked invitations show as cancelled
  • Link returns "Invitation no longer valid" message
  • Confirmation dialog before revoke
  • Cannot revoke in-progress interviews (must force-end instead)

Expiry Management

  • Set expiry period per project (default 7 days)
  • Set expiry per invitation (override project default)
  • Expired invitations auto-marked
  • Option to extend expiry

Batch Operations

  • Select multiple invitations
  • Batch resend
  • Batch revoke
  • Batch extend expiry

Technical Notes

  • Use state machine for status transitions
  • Background job for expiry processing
  • Webhook integration for email events

Definition of Done

  • Status tracking working
  • Resend functionality working
  • Revoke functionality working
  • Expiry management working
  • Code reviewed and merged

Requirement ID

IN-05, IN-07


🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions