Multichannel Notification System Development
Budget: $30 – $250 USD
cope of Work
1. Novu Self-Hosted Setup
Deploy Novu self-hosted instance (Railway or similar)
Enable multi-tenancy mode (IS_MULTI_TENANCY_ENABLED flag)
Configure tenant management dashboard
Connect email provider (AWS SES or SendGrid)
Connect push provider (Firebase Cloud Messaging)
2. PHP Backend Integration (Laravel)
Install and configure Novu PHP SDK
Build a centralized NotificationService class that handles all notification triggers
Implement tenant-aware subscriber registration (subscriberId = tenantId:userId)
Build trigger endpoints that pass tenant payload (logo, branding, property name) with each notification
Implement step conditions using {{payload.tenant.id}} for per-tenant workflow routing
3. React Web — In-App Inbox
Integrate Novu's pre-built <Inbox /> React component
Connect to Laravel Reverb (WebSocket) for real-time delivery
Implement read/unread state management
Scope inbox feed per tenant using <Inbox subscriber={tenantId:userId} />
Ensure proper styling and RTL support for Arabic content
4. Flutter Mobile — Push Notifications + Inbox
Integrate FCM push notifications (foreground + background handling)
Build notification history screen (in-app inbox equivalent)
Implement tenant-scoped delivery
Handle notification tap actions (deep linking to relevant screens)
5. Notification Workflows (3–5 Sample Workflows)
New Booking Confirmation (email + in-app + push)
Payment Failed Alert (in-app + push)
Task Assigned (in-app + push)
Guest Message Received (in-app + push)
Check-In Reminder (email + push)
Each workflow must demonstrate: multi-channel delivery, dynamic variables (guest name, property name, dates, amounts), tenant-specific branding, and bilingual content (Arabic/English).
6. Email Template Setup
Design and configure at least one HTML email template in the Novu dashboard
Use composable blocks (shared header/footer/branding partials)
Include dynamic variables and bilingual (AR/EN) variants
Test end-to-end delivery via SES or SendGrid
7. Subscriber Preference Management
Implement channel preferences (enable/disable email, in-app, push per notification type)
Implement digest frequency options (immediate, daily, weekly) for non-urgent notifications
Set up tenant-level defaults that team members inherit
Implement workflow overrides API with tenantId conditions (workaround for per-tenant preferences)
8. Role-Based Targeting
Map notification types to 6 subscriber roles: Property Owner, Property Manager, Front Desk, Maintenance, Accounting, Guest
Set default enabled/disabled states per role per notification type
Allow users to customize their own preferences
9. Documentation & Handoff
Architecture overview document
Environment setup guide (how to spin up Novu, connect providers, configure tenants)
Extension guide (how to add new notification types, workflows, and channels)
Code comments and README files for all delivered code
Deliverables Summary
Novu self-hosted instance, configured and running
Laravel NotificationService with tenant-aware trigger endpoints
React <Inbox /> integration with real-time WebSocket delivery
Flutter push notifications + notification history screen
3–5 fully working notification workflows with bilingual templates
Multi-tenancy configuration (isolated feeds, preferences, branding)
Configuration and extension guide for internal team
Required Skills
Strong experience with PHP (Laravel)
Experience with Novu (or similar notification infrastructure platforms)
React integration experience (component-level, not just API)
Flutter + FCM push notification implementation
WebSocket experience (Laravel Reverb or similar)
Understanding of multi-tenant SaaS architecture
Familiarity with AWS SES or SendGrid
Bonus: experience with RTL/bilingual (Arabic/English) content
What We Provide
Access to our Laravel backend, React frontend, and Flutter mobile repos
Existing database schema and tenant architecture documentation
Detailed notification trigger matrix (38+ notification types across 9 modules)
Role-based targeting matrix with default states
Email template design references
Direct access to the product owner for questions and feedback
1. Novu Self-Hosted Setup
Deploy Novu self-hosted instance (Railway or similar)
Enable multi-tenancy mode (IS_MULTI_TENANCY_ENABLED flag)
Configure tenant management dashboard
Connect email provider (AWS SES or SendGrid)
Connect push provider (Firebase Cloud Messaging)
2. PHP Backend Integration (Laravel)
Install and configure Novu PHP SDK
Build a centralized NotificationService class that handles all notification triggers
Implement tenant-aware subscriber registration (subscriberId = tenantId:userId)
Build trigger endpoints that pass tenant payload (logo, branding, property name) with each notification
Implement step conditions using {{payload.tenant.id}} for per-tenant workflow routing
3. React Web — In-App Inbox
Integrate Novu's pre-built <Inbox /> React component
Connect to Laravel Reverb (WebSocket) for real-time delivery
Implement read/unread state management
Scope inbox feed per tenant using <Inbox subscriber={tenantId:userId} />
Ensure proper styling and RTL support for Arabic content
4. Flutter Mobile — Push Notifications + Inbox
Integrate FCM push notifications (foreground + background handling)
Build notification history screen (in-app inbox equivalent)
Implement tenant-scoped delivery
Handle notification tap actions (deep linking to relevant screens)
5. Notification Workflows (3–5 Sample Workflows)
New Booking Confirmation (email + in-app + push)
Payment Failed Alert (in-app + push)
Task Assigned (in-app + push)
Guest Message Received (in-app + push)
Check-In Reminder (email + push)
Each workflow must demonstrate: multi-channel delivery, dynamic variables (guest name, property name, dates, amounts), tenant-specific branding, and bilingual content (Arabic/English).
6. Email Template Setup
Design and configure at least one HTML email template in the Novu dashboard
Use composable blocks (shared header/footer/branding partials)
Include dynamic variables and bilingual (AR/EN) variants
Test end-to-end delivery via SES or SendGrid
7. Subscriber Preference Management
Implement channel preferences (enable/disable email, in-app, push per notification type)
Implement digest frequency options (immediate, daily, weekly) for non-urgent notifications
Set up tenant-level defaults that team members inherit
Implement workflow overrides API with tenantId conditions (workaround for per-tenant preferences)
8. Role-Based Targeting
Map notification types to 6 subscriber roles: Property Owner, Property Manager, Front Desk, Maintenance, Accounting, Guest
Set default enabled/disabled states per role per notification type
Allow users to customize their own preferences
9. Documentation & Handoff
Architecture overview document
Environment setup guide (how to spin up Novu, connect providers, configure tenants)
Extension guide (how to add new notification types, workflows, and channels)
Code comments and README files for all delivered code
Deliverables Summary
Novu self-hosted instance, configured and running
Laravel NotificationService with tenant-aware trigger endpoints
React <Inbox /> integration with real-time WebSocket delivery
Flutter push notifications + notification history screen
3–5 fully working notification workflows with bilingual templates
Multi-tenancy configuration (isolated feeds, preferences, branding)
Configuration and extension guide for internal team
Required Skills
Strong experience with PHP (Laravel)
Experience with Novu (or similar notification infrastructure platforms)
React integration experience (component-level, not just API)
Flutter + FCM push notification implementation
WebSocket experience (Laravel Reverb or similar)
Understanding of multi-tenant SaaS architecture
Familiarity with AWS SES or SendGrid
Bonus: experience with RTL/bilingual (Arabic/English) content
What We Provide
Access to our Laravel backend, React frontend, and Flutter mobile repos
Existing database schema and tenant architecture documentation
Detailed notification trigger matrix (38+ notification types across 9 modules)
Role-based targeting matrix with default states
Email template design references
Direct access to the product owner for questions and feedback