Area: Integration / API (audit p13) · Surface: mobieusAPI / webhooks · Dimension: competitor-gap · Severity: major
Zendesk and Intercom drive their entire integration ecosystem off ticket/conversation webhooks (ticket.created, comment.added, status changed); Teachable/Thinkific/LearnWorlds fire course-completed and enrollment webhooks that customers wire to email tools, CRMs, and certificate printers. Mobieus shipped full REST APIs for mobieusHelp and mobieusLearn but no events for them, so the only way to know a ticket was answered or a learner finished a course is to poll. That breaks the standard 'when X happens in the helpdesk/LMS, do Y' automation pattern every competitor supports natively.
Evidence
platform/src/Services/PublicEventEmitter.php translators() declares 16 keys, all community: forum.*, marketplace.listing.*, file.uploaded, report.*, moderation.*, user.registered/left. `grep -iP "ticket\.|enrollment\.|course\.|certificate\.|attempt\." PublicEventEmitter.php` returns EMPTY. WebhookDispatcher.php:35 only subscribes to those translator keys, so a ticket reply, enrollment completion, or certificate issuance enqueues nothing in webhook_deliveries.
Suggested fix. Add helpdesk.ticket.created/replied/status_changed and learn.enrollment.completed/certificate.issued/attempt.graded translators in PublicEventEmitter, emit the matching internal bus kinds from HelpdeskController/LearnController write paths, and surface the new types in the existing admin webhook picker (AdminWebhooksController@index already derives the list from translators, so it auto-updates).
Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.
Patrick Bass
@mobieus