docs
/
EventOxygen

Notifications

Every email, SMS and in-app notification the event and community modules send, what triggers it, and what push actually exists.

Two systems are at work. Platform notifications are emails and SMS rendered from templates by the server when something happens to a ticket, booking, event or participant. Community notifications are in-app records that fill the Inbox → Notifications tab. They are not the same thing, and only the first reaches someone who has closed the app.

Platform notifications

Dispatched server-side as CreateNotificationCommand with a template name. SMS uses a separate template, normally the same name with -sms.

TriggerTemplateGoes to
Tickets issued from a paid or free booking; pending stock activated at the venueevent-ticket-confirmationTicket holder
Ticket cancelledevent-ticket-cancelledHolder
Ticket refundedevent-ticket-refundedHolder
Booking cancelledevent-order-cancelledBuyer
Event starts in 24 h, then 1 hevent-reminderEvery holder
Event edited (time, venue, and so on)event-updateEvery non-cancelled holder, de-duplicated by email
Photos shared with a guestevent-media-share, event-media-share-smsThe guest, with signed links
Entrance scan recordedevent-checkin-confirmationThe attendee
Participant confirmedevent-participant-confirmedThe speaker or exhibitor
Participant cancelledevent-participant-cancelledThe participant
A party assigned a table from the check-in queue, or re-notifiedreservation-ready, reservation-ready-smsThe guest (email and SMS)

Templates live in Studio Manager under the organization's notification templates, keyed by these names. A missing template is not fatal: the command logs a warning and skips the send, which is the usual reason a message "never arrived" on a fresh organization.

The event-update email is a broadcast

Saving an event change sends event-update to every holder. Batch your edits before the event, and expect an email per save otherwise.

Copies and senders

SettingEffect
notificationCopyToPer-module copy recipients; the reservation copy (reservation.sendCopyTo) defaults to the organization email unless explicitly false.
systemEmailThe from-address for platform email.
systemPhone, systemSmsPhoneThe sending numbers for SMS.

These are organization base-setting keys, edited in Studio Manager. See organization settings.

Community notifications

Datatype community_notification, created by the community services and read by the app through GET /client/community/notifications, notifications/unread-count, notifications/read and notifications/read-all.

TypeTrigger
connection_request, connection_acceptedSomeone requested or accepted a connection
message, group_messageA direct or group message
reaction, comment, mention, shareActivity on your post
followSomeone followed you
page_invite, page_join_requestPage membership
announcementA page announcement
event_reminder, session_startingProgramme reminders
post_trending, badge_earnedCommunity milestones
meeting_invite, meeting_reminderMeetings
systemEverything else

Each record carries the actor, the target, a summary, a groupKey for aggregation, and read state.

There is no device push in the attendee app

The notification record has pushed, pushSentAt and pushChannel (fcm, apns, web, email) fields, and the server can deliver over the /community-chat socket while the app is open. But EventOxygen registers no push token and includes no Firebase or APNs code. A closed app learns about a connection request when it is next opened. Do not promise attendees push alerts.

A quiet Notifications tab on a demo organization usually means no records exist at all, not a delivery failure. Check the community_notification collection before debugging the app.

What attendees see and when

Attendee actionNotified partyChannel
Buys a ticketThemselvesEmail (confirmation)
Transfers a ticketRecipientEmail with a new QR
Is scanned inThemselvesEmail
Sends a connection requestTargetIn-app record
Accepts a requestRequesterIn-app record
Sends a messageRecipientSocket while open; in-app record
Proposes a meetingParticipantsIn-app record
Is seated from a check-in queueThemselvesEmail and SMS