Send real-time notifications to your customers and operators.
Oquira's push notifications allow you to alert customers when their turn is approaching and notify operators of important events.
| Type | Recipient | Description |
|---|---|---|
ticket.almost_called | Customer | Your turn is approaching (3 people ahead) |
ticket.called | Customer | You are being called |
ticket.served | Customer | Your ticket has been served |
ticket.cancelled | Customer | Your ticket has been cancelled |
ticket.skipped | Customer | Your ticket was skipped |
ticket.transferred | Customer | Your ticket was transferred to another queue |
ticket.expired | Customer | Ticket expired (no-show) |
ticket.auto_skipped | Customer | Ticket auto-skipped due to inactivity |
review.request | Customer | Post-service review request |
queue.status_changed | Operator | Queue status changed |
appointment.reminder | Customer | Appointment reminder |
system.announcement | All | System announcement |
When an operator creates a ticket on behalf of a visitor (offline ticket or VIP ticket), the ticket is marked with isGhostMode: true. Ghost mode tickets do not trigger any user-facing notifications — no push notifications, no in-app notifications, and no review requests are sent.
This prevents operators from receiving irrelevant notifications for tickets they create themselves during daily operations. Notifications are only sent to end-users who join a queue from the public-facing platform (mobile app or web).
To receive notifications, the device must be registered with a Firebase token.
POST /v1/push/register
X-API-Key: your_api_key_here
Content-Type: application/json
{
"platform": "ios",
"fcmToken": "fMC32kL9...",
"deviceId": "device_unique_id"
}| Property | Type | Required | Description |
|---|---|---|---|
platform | string | Yes | ios, android, or web |
fcmToken | string | Yes | Firebase Cloud Messaging token |
deviceId | string | No | Unique device identifier |
DELETE /v1/push/unregister
X-API-Key: your_api_key_here
Content-Type: application/json
{
"fcmToken": "fMC32kL9..."
}Users can customize their preferences.
GET /v1/notifications/preferences
X-API-Key: your_api_key_herePATCH /v1/notifications/preferences
X-API-Key: your_api_key_here
Content-Type: application/json
{
"smsNotifications": true,
"ticketReminders": true
}Get a user's notification history.
GET /v1/notifications?limit=20&unreadOnly=true
X-API-Key: your_api_key_herePOST /v1/notifications/{notificationId}/read
X-API-Key: your_api_key_here
---
POST /v1/notifications/read-all
X-API-Key: your_api_key_hereOperators and administrators receive specific notifications.
| Event | Description |
|---|---|
queue.capacity_warning | Queue near max capacity |
queue.long_wait | Abnormally long wait time |
ticket.no_show | Customer didn't show up |
member.joined | New member in organization |
| Channel | Description | Configuration |
|---|---|---|
| Push | Mobile notifications | FCM token required |
| SMS | Text messages | Pro plan required |
| Emails | Verified address | |
| WhatsApp messages | Enterprise plan |
For organizations with the Pro plan, SMS notifications are available.
POST /v1/notifications/sms
X-API-Key: your_api_key_here
Content-Type: application/json
{
"phone": "+14155551234",
"message": "Your ticket A-045 has been called. Counter 2.",
"purpose": "ticket_called"
}Note: SMS sending is subject to usage limits based on your plan.
Oquira uses localized templates for notifications:
| Template Key | Description |
|---|---|
ticket.created | Ticket creation confirmation |
ticket.almost_called | Turn approaching |
ticket.called | Ticket called |
ticket.served | Service completed |
ticket.cancelled | Ticket cancelled |
ticket.skipped | Ticket skipped (with optional reason) |
ticket.transferred | Ticket transferred to another queue |
ticket.expired | Ticket expired |
ticket.recovered | New ticket created (recovery) |
ticket.auto_skipped | Ticket auto-skipped (inactivity) |
review.request | Post-service review request |
inactivity.warning | Inactivity warning before auto-skip |
appointment.reminder | Appointment reminder (24h before) |
appointment.confirmed | Appointment confirmation |
Messages are automatically translated according to the user's preferred language (French and English supported).