Communications - Product Requirements Document
Version: 2.0 | Status: Ready for Review | Last Updated: January 2026
Change Log
| Version | Date | Author | Changes |
|---|---|---|---|
| 2.0 | January 2026 | Product Team | Converted to business-focused format; added success metrics; consolidated requirements |
| 1.0 | Initial | Product Team | Technical implementation specification |
1. Overview
1.1 Purpose
The Communications system provides multi-channel notification capabilities for Toprent.app, enabling rental companies to send automated and manual email and SMS messages to clients, staff, and partners throughout the rental lifecycle.
1.2 Business Value
| Value Claim | Measurable Outcome | Target | Timeframe |
|---|---|---|---|
| Reduces manual communication overhead | 75% reduction in manual notification tasks | From 40+ manual sends/day to <10 | Within 3 months |
| Improves customer experience | Customer satisfaction score for communications | Baseline +15 points (NPS) | Within 6 months |
| Increases operational efficiency | Staff time saved on communication tasks | 10+ hours/week per company | Within 3 months |
| Brand consistency | Template compliance rate | 95%+ of messages use branded templates | Within 2 months |
| Multi-language support | International customer coverage | 90%+ messages in recipient’s preferred language | Within 4 months |
| Delivery tracking | Message delivery visibility | 99%+ delivery status tracked | Within 1 month |
1.3 Target Users
| User Role | Business Context | Key Needs |
|---|---|---|
| Company Administrators | Manage brand identity and communication policies | Template customization, notification controls, delivery monitoring |
| Operations Staff | Handle day-to-day rental workflows | Automated notifications, reduced manual intervention |
| Customers | Complete rental transactions | Timely updates, clear next steps, preferred language |
| Couriers/Drivers | Execute vehicle deliveries | Immediate assignment notifications, location links |
| Business Owners | Oversee company performance | Communication analytics, cost visibility |
1.4 Scope
In Scope:
- Email template management with customization per tenant
- SMS notifications via Twilio integration
- Automated notifications triggered by order events
- Manual communication sending
- Link shortening for improved deliverability
- Multi-language template support (9 languages)
- Message delivery tracking
- Company branding integration
Out of Scope:
- Push notifications
- In-app messaging
- WhatsApp or other messaging platforms
- Advanced marketing automation
- A/B testing for communications
2. Success Metrics
| Metric | Definition | Baseline | Target | Measurement Method |
|---|---|---|---|---|
| Automation Rate | % of notifications sent automatically vs. manually | To be measured | 90%+ automated | Message logs categorized by trigger type |
| Delivery Success Rate | % of messages successfully delivered | To be measured | 98%+ emails, 95%+ SMS | Delivery status tracking in database |
| Time to Notification | Average time from event to message sent | Manual: 5-15 min | Automated: <30 seconds | Timestamp comparison (event → send) |
| Template Utilization | % of companies using custom templates | To be measured | 70%+ companies | Template table analysis per tenant |
| Language Coverage | % of messages sent in recipient’s preferred language | To be measured | 90%+ | Message logs with locale matching |
| Staff Time Savings | Hours saved per week on manual communications | 15+ hours/company | 10+ hours saved | Time study before/after implementation |
| Customer Response Rate | % of customers clicking notification links | To be measured | 40%+ click-through | Link tracking analytics |
| SMS Cost Efficiency | Cost per successful SMS delivery | To be measured | <$0.05 average | Twilio billing reports |
Measurement Schedule:
- Weekly: Delivery rates, automation rate
- Monthly: Template utilization, language coverage, cost efficiency
- Quarterly: Customer satisfaction, time savings analysis
3. User Stories
P0 - Critical (Launch Blockers)
US-1: Automated Order Notifications
- As an operations staff member, I want order confirmation emails sent automatically so that I don’t need to manually notify each customer
- Priority: P0
- Acceptance Criteria:
- Given a new order is created, when the order status is confirmed, then email is sent to customer within 30 seconds
- Given order status changes, when status is significant (e.g., confirmed → in progress), then all relevant stakeholders receive notifications
- Given a notification fails, when delivery error occurs, then error is logged and staff can view failure reason
US-2: SMS Driver Assignment
- As a courier, I want immediate SMS notification when assigned to a delivery so that I can begin preparations
- Priority: P0
- Acceptance Criteria:
- Given a driver is assigned to an order, when assignment is saved, then SMS is sent within 10 seconds
- Given SMS contains order details, when driver receives message, then pickup location link is clickable and opens maps
- Given phone number is invalid, when system attempts to send, then error is reported and assignor is notified
US-3: Template Variable Substitution
- As an administrator, I want emails to include order-specific details so that customers receive personalized, accurate information
- Priority: P0
- Acceptance Criteria:
- Given a template with variables, when email is rendered, then all variables (order number, dates, vehicle, pricing) are correctly populated
- Given a variable has no value, when rendering occurs, then graceful fallback or empty string is used (no broken tokens visible)
P1 - High Priority (Core Functionality)
US-4: Custom Template Management
- As an administrator, I want to customize email templates to match my company brand so that communications appear professional and consistent
- Priority: P1
- Acceptance Criteria:
- Given access to template management, when admin edits template, then changes save and apply to future messages immediately
- Given company branding is enabled, when email is sent, then company logo and colors appear in header/footer
- Given template preview, when admin views preview, then rendered email matches what customer will receive
US-5: Multi-Language Support
- As a customer, I want notifications in my preferred language so that I can understand important information about my rental
- Priority: P1
- Acceptance Criteria:
- Given customer has language preference set, when notification is sent, then message uses matching locale template
- Given no template exists for preferred locale, when notification is sent, then English fallback is used
- Given 9 supported languages, when templates are created, then all locales can have unique content
US-6: Delivery Status Tracking
- As an administrator, I want to see message delivery status so that I can troubleshoot communication issues
- Priority: P1
- Acceptance Criteria:
- Given a message is sent, when delivery status changes, then status is updated in system
- Given delivery fails, when admin queries message history, then failure reason is visible
- Given SMS delivery, when Twilio webhook fires, then status is updated in real-time
P2 - Medium Priority (Enhancements)
US-7: Self-Check-In Email
- As a customer, I want to receive a self-check-in email with a direct link so that I can complete check-in independently
- Priority: P2
- Acceptance Criteria:
- Given self-check-in is enabled, when order is within check-in window, then email with unique link is sent
- Given link is clicked, when customer authenticates, then they land directly on check-in workflow
- Given customer already checked in, when system evaluates, then duplicate email is not sent
US-8: Birthday and Feedback Emails
- As a company, I want to send birthday greetings and feedback requests to build customer relationships
- Priority: P2
- Acceptance Criteria:
- Given birthday greeting is enabled, when today matches customer’s birth date, then greeting email is sent (once per year)
- Given feedback request is enabled, when order is completed, then feedback email is sent within configured window
- Given either feature is disabled, when conditions are met, then no email is sent
US-9: SMS Usage and Billing
- As a business owner, I want SMS costs tracked and reported so that I can manage communication expenses
- Priority: P2
- Acceptance Criteria:
- Given SMS is sent, when delivery succeeds, then usage is reported to billing system
- Given billing query, when owner reviews costs, then SMS count and costs are visible per period
- Given pricing information, when cost is calculated, then Twilio actual rates are used
4. Functional Requirements
4.1 Email Notifications
FR-1: Template-Based Emails
- System must support customizable email templates per company
- Supported template types: Order notifications, status updates, self-check-in invitations, payment notifications, birthday greetings, feedback requests, authentication links
- Templates must support company branding (logo, colors, footer)
- Templates must render responsively for mobile and desktop
FR-2: Variable Substitution
- Templates must support dynamic variables: order details, customer information, vehicle information, company branding, action links, location information
- Missing variables must render gracefully without displaying raw tokens
FR-3: Multi-Locale Templates
- Each template type can exist in multiple languages (en, fr, ar, de, pt, es, it, hu, pl)
- System must select template matching recipient’s preferred language
- System must fall back to English when preferred locale unavailable
4.2 SMS Notifications
FR-4: SMS Delivery
- System must send SMS via Twilio for: order status changes, driver assignments, signature requests, OTP verification, check-in reminders
- System must validate phone numbers before sending
- System must track delivery status for each message
FR-5: SMS Optimization
- All URLs in SMS must be shortened for deliverability
- Message content must be optimized for SMS character limits
- Links must include company context for post-authentication routing
4.3 Automated Triggers
FR-6: Event-Driven Notifications
- System must automatically send notifications on: order creation, status changes, driver assignment, payment confirmation, check-in window opening
- System must respect recipient notification preferences
- System must not send duplicate notifications for same event
4.4 Link Management
FR-7: Shortened Links
- All private application links must be shortened
- Links must preserve destination after authentication
- Links must include partial company identifier for context switching
4.5 Delivery Tracking
FR-8: Status Monitoring
- System must track delivery status for all messages (sent, delivered, failed)
- System must log delivery failures with error details
- System must mask PII in error logs
5. Business Rules
Notification Triggers
| Rule | Condition | Action |
|---|---|---|
| BR-1 | Order created + recipients enabled + valid contacts | Send order notification |
| BR-2 | Status changed to configured notification state | Send status update to relevant parties |
| BR-3 | Order in check-in window + self-check-in enabled + not already checked in | Send self-check-in email |
| BR-4 | Birthday setting enabled + template exists + today = birth date + not sent this year | Send birthday greeting |
| BR-5 | Feedback setting enabled + template exists + order completed in window + not sent | Send feedback request |
Delivery Rules
| Rule | Condition | Action |
|---|---|---|
| BR-6 | Recipient opted out | Skip notification, log skip reason |
| BR-7 | Phone number invalid (Twilio lookup) | Reject SMS, return error |
| BR-8 | Email invalid or bounced | Skip email, log reason |
| BR-9 | Private app route or long URL | Shorten link before sending |
| BR-10 | API rate limit reached | Queue for retry with backoff |
Template Rules
| Rule | Condition | Action |
|---|---|---|
| BR-11 | No template exists for type | Create default empty template |
| BR-12 | Attempting duplicate type+locale | Reject creation |
| BR-13 | Deleting last template of type | Block deletion, disable related settings |
| BR-14 | Template updated | Apply to future messages only |
6. Acceptance Criteria
Email System
- Given new order, when confirmation sent, then customer receives within 30 seconds
- Given custom template, when email sent, then company branding appears correctly
- Given template variables, when rendered, then all values populated accurately
- Given multi-locale setup, when recipient has language preference, then correct locale template used
- Given template deletion attempt on last template, when confirmed, then deletion blocked with explanation
SMS System
- Given driver assignment, when SMS sent, then delivery within 10 seconds
- Given invalid phone number, when send attempted, then error returned without delivery attempt
- Given successful delivery, when status updated, then tracking record created
- Given SMS with URL, when message sent, then link is shortened and clickable
- Given SMS sent, when billing calculated, then cost recorded in billing system
Automated Notifications
- Given order status change, when relevant parties identified, then each receives appropriate notification
- Given notification preferences disabled, when trigger fires, then message not sent
- Given same event fires twice, when system processes, then only one notification sent
- Given self-check-in enabled, when customer already checked in, then no duplicate email
Delivery Tracking
- Given any message sent, when delivery attempt completes, then status recorded
- Given delivery failure, when admin queries history, then error reason visible
- Given error logging, when PII present, then sensitive data masked
7. Dependencies
Upstream Dependencies
| System | Dependency Type | Impact if Unavailable |
|---|---|---|
| Multi-Tenant Architecture | Tenant isolation for templates | Templates not properly scoped |
| Client Management | Contact information, preferences | Cannot deliver notifications |
| Order System | Lifecycle events triggering notifications | No automated notifications |
| Authentication | Link redirect handling | Links fail after sign-in |
| Vehicle Management | Vehicle info in notifications | Incomplete message content |
Downstream Dependencies
| System | Dependency Type | Impact if Communications Unavailable |
|---|---|---|
| Self-Check-In | Email link delivery | Customers cannot initiate check-in |
| Billing | SMS usage tracking | Inaccurate communication costs |
| Reporting | Message delivery analytics | No communication metrics |
External Dependencies
| Service | Purpose | Fallback |
|---|---|---|
| Twilio | SMS delivery | None (required for SMS) |
| External Mailer | Email delivery | None (required for email) |
| Link Shortener | URL shortening | Use full URLs (degraded experience) |
8. Non-Functional Requirements
| Category | Requirement | Target |
|---|---|---|
| Performance | Email send latency | <5 seconds from trigger |
| Performance | SMS send latency | <10 seconds from trigger |
| Reliability | Message delivery uptime | 99.5%+ |
| Scalability | Concurrent notifications | 1,000+ per minute |
| Security | PII in logs | Masked (phone: +1XXXXXXX123) |
| Compliance | Message audit trail | 2 years retention |
9. Glossary
| Term | Definition |
|---|---|
| Template | Reusable, customizable message structure stored per company |
| Link Shortening | Creating compact URLs for tracking and deliverability |
| Partial Company ID | Shortened identifier (removes last 8 characters) for URL security |
| OTP | One-Time Password sent via SMS for verification |
| Magic Link | Passwordless authentication link sent via email |
| E.164 Format | International phone number standard (+country code + number) |
| Delivery Webhook | Callback from Twilio reporting SMS delivery status |