Use Case: Lost Item Workflow

Overview

This use case describes the complete workflow for lost and found items using Plings identifiers, from initial loss discovery through recovery and reward distribution. The system enables seamless item recovery through community scanning, automated notifications, and incentivized return processes.

User Story

As a user, I want to report lost items and receive notifications when they’re found so that I can recover my belongings quickly and reward helpful community members.

Business Value

  • User Acquisition: Non-users discover Plings through finding lost items
  • Community Trust: Build trust through transparent lost & found processes
  • User Retention: Increase app adoption through successful recovery stories
  • Revenue Generation: Finder’s fees create economic incentives for participation
  • Brand Recognition: Plings tags become synonymous with item recovery
  • Data Collection: Gather valuable location and usage data from recovery events
  • Viral Growth: Successful recoveries create word-of-mouth marketing

Core Scenario: Ski Glasses Recovery

The Lost Item Discovery

Setting: Ski resort, user realizes glasses fell off helmet during descent

User Actions:

  1. Realize Loss: User notices glasses missing during ski run
  2. Access App: Opens Plings app to report lost item
  3. Quick Report: Uses “Report Lost” feature with minimal input
  4. Set Reward: Offers finder’s fee (e.g., $20) for return
  5. Activate Tracking: System begins monitoring for scans

System Response:

  • Immediately marks item as lost status
  • Activates location tracking and notifications
  • Publishes lost item alert to community
  • Prepares finder’s fee escrow

The Community Discovery

Setting: Another person (non-Plings user) finds glasses on slope, brings them down

Finder Background:

  • New to Plings: Has heard of Plings but never used it
  • Curious: Notices QR code/NFC tag on found item
  • Helpful: Wants to return item to rightful owner
  • Incentivized: Sees potential reward for doing good

Finder Actions:

  1. Discover Item: Finds glasses with visible Plings tag
  2. Recognize Tag: “Oh, this has a Plings tag - I’ve heard of that”
  3. Scan Tag: Uses phone camera to scan QR code/NFC tag
  4. Discover System: First exposure to Plings lost & found
  5. View Status: Sees item is marked as “LOST” with reward
  6. Access Contact: Gets owner’s phone number from public page
  7. Make Contact: Calls owner to arrange return
  8. Consider App: “Maybe I should get the Plings app for my own items”

System Response:

  • Records scan location and timestamp
  • Sends immediate notification to owner
  • Provides finder with contact information
  • Shows finder’s fee amount and claim process
  • User Acquisition: Introduces Plings to potential new user
  • Onboarding: Guides finder through first Plings experience

The Recovery Process

Setting: Owner and finder arrange meeting, complete return

Recovery Actions:

  1. Arrange Meeting: Owner and finder coordinate time/location
  2. Verify Item: Owner confirms glasses are theirs
  3. Scan Recovery: Owner scans item with Plings app
  4. Confirm Return: App asks “Mark as found and release reward?”
  5. Complete Transfer: Owner confirms, system releases finder’s fee

System Response:

  • Changes status from lost to active
  • Releases escrowed finder’s fee to finder
  • Records recovery location and timestamp
  • Sends confirmation to both parties
  • Updates item location in spatial hierarchy

Workflow Steps

Step 1: Report Lost Item

  • Trigger: User realizes item is missing
  • Location: Plings mobile app
  • Required Info: Item identification, last known location, reward amount
  • Optional Info: Description, photos, specific location details

UI Flow:

📱 Report Lost Item

🔍 What did you lose?
   [Search your objects...] or [Scan tag directly]

📍 Last seen where?
   [Current location] [Select from map] [Enter manually]

💰 Reward for return?
   $0 | $5 | $10 | $20 | $50 | [Custom amount]

📝 Additional details (optional)
   "Lost on ski slope, blue frame, prescription lenses"

📞 Contact information
   Phone: [Your number] [Show to finder]
   Email: [Your email] [Keep private]

[🚨 Report Lost] [❌ Cancel]

Step 2: System Activation

  • Status Update: Item marked as lost in database
  • Notification Setup: Email/SMS alerts configured
  • Community Alert: Lost item published to local community
  • Reward Escrow: Finder’s fee held in escrow account
  • Location Tracking: System monitors for future scans

Backend Processing:

async def report_lost_item(user_id: str, item_id: str, reward_amount: float, 
                          last_location: Location, contact_info: ContactInfo):
    """Report item as lost and activate recovery system"""
    
    # Update item status
    await update_object_statuses(item_id, ['lost'])
    
    # Create lost item record
    lost_record = LostItemRecord(
        id=generate_uuid(),
        item_id=item_id,
        owner_id=user_id,
        reported_at=datetime.utcnow(),
        last_known_location=last_location,
        reward_amount=reward_amount,
        contact_info=contact_info,
        status=LostItemStatus.ACTIVE
    )
    
    # Escrow reward amount
    await escrow_finder_fee(user_id, reward_amount)
    
    # Send notifications to community
    await notify_community_of_lost_item(lost_record)
    
    # Activate scan monitoring
    await activate_scan_monitoring(item_id)
    
    return lost_record

Step 3: Community Scanning

  • Trigger: Anyone scans Plings tag on lost item
  • Access: Public web page accessible without app
  • Information: Item status, owner contact, reward amount
  • Actions: Contact owner, claim reward, install app

Public Scan Page:

🔍 Item Found: Ski Glasses

📊 Status: LOST - Reward Available
💰 Finder's Fee: $20.00

👤 Owner Contact:
   📞 Phone: (555) 123-4567
   📧 Email: [Contact through app]

📍 Last Seen: Ski Resort, Main Slope
⏰ Lost Since: 2 hours ago

💡 First time using Plings?
   This is a lost & found system that helps people
   recover their belongings. You can help by contacting
   the owner and earn a reward!

📱 Get Plings App:
   • Track your own items
   • Earn rewards for helping others
   • Join the community

[📞 Call Owner] [📱 Get App] [❌ Close]

Step 4: Owner Notification

  • Trigger: Item scanned by finder
  • Delivery: Email, SMS, push notification
  • Content: Scan location, finder contact, recovery instructions
  • Actions: Contact finder, arrange pickup

Notification Content:

🚨 Your Ski Glasses Were Found!

📍 Scanned at: Ski Resort Lodge
⏰ Time: 3:45 PM today
👤 Finder: Available for contact

📞 Contact: (555) 987-6543
📧 Email: finder@email.com

💰 Reward: $20.00 (held in escrow)

[📞 Call Finder] [📱 Open App] [📍 View Location]

Step 5: Item Recovery

  • Meeting: Owner and finder meet at agreed location
  • Verification: Owner confirms item identity
  • Scan: Owner scans item with Plings app
  • Confirmation: App prompts for recovery confirmation
  • Reward: System releases finder’s fee

Recovery UI:

✅ Item Recovery

🔍 Confirming: Ski Glasses
📍 Location: Coffee Shop, Main Street
⏰ Time: 4:30 PM

💰 Reward: $20.00 ready to release

📋 Recovery Checklist:
   ☑️ Item is yours
   ☑️ In good condition
   ☑️ Ready to release reward

[✅ Confirm Recovery] [❌ Cancel]

Step 6: Reward Distribution

  • Escrow Release: Finder’s fee transferred to finder
  • Status Update: Item marked as active
  • Location Update: Item location updated in system
  • Confirmation: Both parties receive confirmation

Reward Processing:

async def complete_item_recovery(item_id: str, owner_id: str, finder_id: str):
    """Complete item recovery and distribute reward"""
    
    # Update item status
    await update_object_statuses(item_id, ['active'])
    
    # Release escrowed reward
    reward_amount = await get_lost_item_reward(item_id)
    await release_finder_fee(owner_id, finder_id, reward_amount)
    
    # Update item location
    current_location = await get_user_location(owner_id)
    await update_object_location(item_id, current_location)
    
    # Send confirmations
    await send_recovery_confirmation(owner_id, item_id)
    await send_reward_confirmation(finder_id, reward_amount)
    
    # Record recovery event
    await record_recovery_event(item_id, owner_id, finder_id)

Technical Implementation

Database Schema Extensions

Lost Items Table:

CREATE TABLE lost_items (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    item_id UUID NOT NULL REFERENCES object_instances(id),
    owner_id UUID NOT NULL REFERENCES auth.users(id),
    reported_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    last_known_location GEOGRAPHY(POINT),
    reward_amount DECIMAL(10,2) NOT NULL,
    contact_info JSONB NOT NULL,
    status lost_item_status DEFAULT 'active',
    found_at TIMESTAMP WITH TIME ZONE,
    finder_id UUID REFERENCES auth.users(id),
    recovery_location GEOGRAPHY(POINT),
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

CREATE TYPE lost_item_status AS ENUM ('active', 'found', 'expired', 'cancelled');

Finder Rewards Table:

CREATE TABLE finder_rewards (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    lost_item_id UUID NOT NULL REFERENCES lost_items(id),
    finder_id UUID NOT NULL REFERENCES auth.users(id),
    amount DECIMAL(10,2) NOT NULL,
    status reward_status DEFAULT 'pending',
    claimed_at TIMESTAMP WITH TIME ZONE,
    paid_at TIMESTAMP WITH TIME ZONE,
    payment_method payment_method_type,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

CREATE TYPE reward_status AS ENUM ('pending', 'claimed', 'paid', 'expired');
CREATE TYPE payment_method_type AS ENUM ('stripe', 'paypal', 'crypto', 'credits');

GraphQL Schema Extensions

Lost Item Types:

type LostItem {
  id: ID!
  item: ObjectInstance!
  owner: User!
  reportedAt: String!
  lastKnownLocation: Location
  rewardAmount: Float!
  contactInfo: ContactInfo!
  status: LostItemStatus!
  foundAt: String
  finder: User
  recoveryLocation: Location
  scanEvents: [ScanEvent!]!
  timeSinceLost: String!
}

type ScanEvent {
  id: ID!
  lostItem: LostItem!
  scannedAt: String!
  location: Location!
  deviceInfo: DeviceInfo
  finderContact: ContactInfo
}

type ContactInfo {
  phone: String
  email: String
  name: String
  preferredContact: ContactMethod!
}

enum LostItemStatus {
  ACTIVE
  FOUND
  EXPIRED
  CANCELLED
}

enum ContactMethod {
  PHONE
  EMAIL
  APP_ONLY
}

# Lost Item Queries
type Query {
  getMyLostItems(status: LostItemStatus): [LostItem!]!
  getLostItem(id: ID!): LostItem
  searchLostItemsNearby(
    location: LatLngInput!
    radiusKm: Float = 10.0
    category: String
  ): [LostItem!]!
  getFinderRewards: [FinderReward!]!
}

# Lost Item Mutations
type Mutation {
  reportLostItem(
    itemId: ID!
    rewardAmount: Float!
    lastKnownLocation: LatLngInput
    contactInfo: ContactInfoInput!
  ): LostItem!
  
  updateLostItem(
    id: ID!
    rewardAmount: Float
    contactInfo: ContactInfoInput
  ): LostItem!
  
  cancelLostItem(id: ID!): Boolean!
  
  scanLostItem(
    itemId: ID!
    location: LatLngInput!
    contactInfo: ContactInfoInput
  ): ScanEvent!
  
  completeRecovery(
    lostItemId: ID!
    finderId: ID!
    location: LatLngInput!
  ): RecoveryResult!
  
  claimFinderReward(
    lostItemId: ID!
    paymentMethod: PaymentMethodInput!
  ): FinderReward!
}

input ContactInfoInput {
  phone: String
  email: String
  name: String
  preferredContact: ContactMethod!
}

type RecoveryResult {
  success: Boolean!
  lostItem: LostItem
  reward: FinderReward
  message: String
}

Notification System Integration

Email Templates:

// Lost item scan notification
const lostItemScanTemplate = {
  subject: "🚨 Your  was found!",
  body: `
    <h2>Great news! Your  was found!</h2>
    
    <p><strong>Scanned at:</strong> </p>
    <p><strong>Time:</strong> </p>
    <p><strong>Reward:</strong> $</p>
    
    <p>The finder can contact you at: </p>
    
    <a href="" class="button">View Recovery Details</a>
  `
};

// Recovery confirmation
const recoveryConfirmationTemplate = {
  subject: "✅  recovered successfully!",
  body: `
    <h2>Recovery Complete!</h2>
    
    <p>Your  has been marked as found and the reward has been released.</p>
    
    <p><strong>Recovery location:</strong> </p>
    <p><strong>Reward paid:</strong> $</p>
    
    <p>Thank you for using Plings!</p>
  `
};

User Experience Design

Mobile App Workflows

Report Lost Item Flow:

1. Open App → Objects → [Select Item] → "Report Lost"
2. Set Reward Amount → "Continue"
3. Confirm Contact Info → "Report Lost"
4. Success: "Item reported as lost. We'll notify you when found."

Recovery Flow:

1. Receive Notification → "View Details"
2. Contact Finder → Arrange Meeting
3. Meet & Verify → Scan Item → "Confirm Recovery"
4. Success: "Item recovered! Reward released."

Public Web Interface

Finder Experience:

1. Scan QR Code → Public Web Page
2. Discover Plings: "Oh, this is a lost & found system!"
3. See Item Status: "LOST - $20 Reward"
4. View Owner Contact → Call/Email
5. Arrange Return → Install App (Optional)
6. Claim Reward → Receive Payment
7. Consider: "I should tag my own items with Plings"

Business Rules

Reward System

  • Minimum Reward: $5.00 (encourages participation)
  • Maximum Reward: $500.00 (prevents abuse)
  • Escrow Period: 30 days (automatic refund if not claimed)
  • Payment Methods: Stripe, PayPal, Plings credits, crypto
  • Tax Handling: Finder responsible for tax reporting

Privacy Protection

  • Owner Contact: Phone/email only shared when item is lost
  • Location Data: Generalized to protect privacy
  • Finder Info: Optional, can remain anonymous
  • Data Retention: Lost item records deleted after 1 year

Community Guidelines

  • No False Reports: Penalties for fraudulent lost item reports
  • Respectful Contact: Guidelines for finder-owner communication
  • Fair Rewards: Suggested reward amounts based on item value
  • Community Rating: Both parties can rate each other

Success Metrics

Recovery Success

  • Recovery Rate: Percentage of lost items successfully recovered
  • Average Recovery Time: Time from loss to recovery
  • Community Participation: Number of unique finders
  • Reward Effectiveness: Correlation between reward amount and recovery speed

User Engagement

  • App Adoption: New users from finder experiences
  • User Acquisition: Conversion rate from finder to registered user
  • Retention: Users who report multiple lost items
  • Community Growth: Active users in lost & found network
  • Satisfaction: User ratings and feedback
  • Viral Coefficient: Finders who recommend Plings to others

Business Impact

  • Revenue: Finder’s fee processing fees
  • Brand Recognition: Plings as go-to lost & found solution
  • Data Value: Location and usage patterns
  • Partnerships: Integration with venues and events

Future Enhancements

Advanced Features

  • AI Matching: Automatic matching of found items to lost reports
  • Community Alerts: Push notifications to nearby users
  • Venue Integration: Partner with venues for lost & found desks
  • Insurance Integration: Connect with item insurance providers

Technology Integration

  • IoT Tracking: Real-time location tracking for high-value items
  • Blockchain Rewards: Decentralized reward distribution
  • AR Scanning: Augmented reality for item identification
  • Voice Commands: Voice-activated lost item reporting

Community Features

  • Lost & Found Groups: Local community groups for item recovery
  • Volunteer Network: Dedicated volunteers for item recovery
  • Educational Content: Tips for preventing item loss
  • Success Stories: Community sharing of recovery experiences

Core System Dependencies

Complementary Features


Use Case Created: Mån 7 Jul 2025 13:15:22 CEST - Comprehensive lost item workflow with community-based recovery and incentivized return system