The Notification API provides endpoints for sending notifications to administrators about system events.
notifyAdminOfUserRegistration
Send notification to admin when a new user registers. This is a public endpoint that can be called without authentication.
The name of the newly registered user
The email address of the newly registered user (must be valid email format)
Response
Indicates whether the notification was processed successfully
Indicates whether the WhatsApp notification was sent successfully
Indicates whether the email notification was sent successfully
Array of error messages if any notifications failed
Example
const result = await trpc.notification.notifyAdminOfUserRegistration.mutate({
userName: "John Doe",
userEmail: "[email protected]"
});
console.log(result);
// {
// success: true,
// whatsappSent: true,
// emailSent: true,
// errors: []
// }
Partial Success Example
If one notification method fails, the response will indicate which succeeded:
const result = await trpc.notification.notifyAdminOfUserRegistration.mutate({
userName: "Jane Smith",
userEmail: "[email protected]"
});
console.log(result);
// {
// success: true,
// whatsappSent: true,
// emailSent: false,
// errors: ["Email service unavailable"]
// }
Complete Failure Example
try {
const result = await trpc.notification.notifyAdminOfUserRegistration.mutate({
userName: "Invalid User",
userEmail: "[email protected]"
});
console.log(result);
// {
// success: false,
// whatsappSent: false,
// emailSent: false,
// errors: ["Failed to connect to notification services"]
// }
} catch (error) {
console.error("Notification failed:", error);
}
Implementation Details
This endpoint uses the Mailgun service to send notifications. The implementation:
- Accepts user registration details
- Attempts to send notifications via both WhatsApp and email channels
- Returns a detailed status for each notification method
- Continues execution even if one method fails (graceful degradation)
- Logs all errors for debugging purposes
Use Cases
- User Registration Flow: Automatically notify admins when new users sign up
- Approval Workflow: Alert admins to review and approve pending user accounts
- Audit Trail: Track when new users join the system
Integration Example
// In your registration handler
async function handleUserRegistration(name: string, email: string) {
// ... create user in database ...
// Notify admin of new registration
await trpc.notification.notifyAdminOfUserRegistration.mutate({
userName: name,
userEmail: email
});
// Continue with registration flow
// Note: Don't block on notification result
}
Type Definitions
type NotificationResult = {
success: boolean;
whatsappSent: boolean;
emailSent: boolean;
errors: string[];
};